/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Represents a potential game session placement, including the full details of
* the original placement request and the current status. If the
* game session placement status is PENDING, the properties for game
* session ID/ARN, region, IP address/DNS, and port aren't final. A game session is
* not active and ready to accept players until placement status reaches
* FULFILLED. When the placement is in PENDING status,
* Amazon GameLift may attempt to place a game session multiple times before
* succeeding. With each attempt it creates a GameSession object and updates
* this placement object with the new game session properties..See Also:
AWS
* API Reference
A unique identifier for a game session placement.
*/ inline const Aws::String& GetPlacementId() const{ return m_placementId; } inline bool PlacementIdHasBeenSet() const { return m_placementIdHasBeenSet; } inline void SetPlacementId(const Aws::String& value) { m_placementIdHasBeenSet = true; m_placementId = value; } inline void SetPlacementId(Aws::String&& value) { m_placementIdHasBeenSet = true; m_placementId = std::move(value); } inline void SetPlacementId(const char* value) { m_placementIdHasBeenSet = true; m_placementId.assign(value); } inline GameSessionPlacement& WithPlacementId(const Aws::String& value) { SetPlacementId(value); return *this;} inline GameSessionPlacement& WithPlacementId(Aws::String&& value) { SetPlacementId(std::move(value)); return *this;} inline GameSessionPlacement& WithPlacementId(const char* value) { SetPlacementId(value); return *this;} ///@} ///@{ /** *A descriptive label that is associated with game session queue. Queue names * must be unique within each Region.
*/ inline const Aws::String& GetGameSessionQueueName() const{ return m_gameSessionQueueName; } inline bool GameSessionQueueNameHasBeenSet() const { return m_gameSessionQueueNameHasBeenSet; } inline void SetGameSessionQueueName(const Aws::String& value) { m_gameSessionQueueNameHasBeenSet = true; m_gameSessionQueueName = value; } inline void SetGameSessionQueueName(Aws::String&& value) { m_gameSessionQueueNameHasBeenSet = true; m_gameSessionQueueName = std::move(value); } inline void SetGameSessionQueueName(const char* value) { m_gameSessionQueueNameHasBeenSet = true; m_gameSessionQueueName.assign(value); } inline GameSessionPlacement& WithGameSessionQueueName(const Aws::String& value) { SetGameSessionQueueName(value); return *this;} inline GameSessionPlacement& WithGameSessionQueueName(Aws::String&& value) { SetGameSessionQueueName(std::move(value)); return *this;} inline GameSessionPlacement& WithGameSessionQueueName(const char* value) { SetGameSessionQueueName(value); return *this;} ///@} ///@{ /** *Current status of the game session placement request.
* PENDING -- The placement request is in the queue waiting to be processed. * Game session properties are not yet final.
FULFILLED * -- A new game session has been successfully placed. Game session properties are * now final.
CANCELLED -- The placement request was * canceled.
TIMED_OUT -- A new game session was not * successfully created before the time limit expired. You can resubmit as a new * placement request as needed.
FAILED -- Amazon GameLift * is not able to complete the process of placing the game session. Common reasons * are the game session terminated before the placement process was completed, or * an unexpected internal error.
A set of key-value pairs that can store custom data in a game session. For
* example: {"Key": "difficulty", "Value": "novice"}.
The maximum number of players that can be connected simultaneously to the * game session.
*/ inline int GetMaximumPlayerSessionCount() const{ return m_maximumPlayerSessionCount; } inline bool MaximumPlayerSessionCountHasBeenSet() const { return m_maximumPlayerSessionCountHasBeenSet; } inline void SetMaximumPlayerSessionCount(int value) { m_maximumPlayerSessionCountHasBeenSet = true; m_maximumPlayerSessionCount = value; } inline GameSessionPlacement& WithMaximumPlayerSessionCount(int value) { SetMaximumPlayerSessionCount(value); return *this;} ///@} ///@{ /** *A descriptive label that is associated with a game session. Session names do * not need to be unique.
*/ inline const Aws::String& GetGameSessionName() const{ return m_gameSessionName; } inline bool GameSessionNameHasBeenSet() const { return m_gameSessionNameHasBeenSet; } inline void SetGameSessionName(const Aws::String& value) { m_gameSessionNameHasBeenSet = true; m_gameSessionName = value; } inline void SetGameSessionName(Aws::String&& value) { m_gameSessionNameHasBeenSet = true; m_gameSessionName = std::move(value); } inline void SetGameSessionName(const char* value) { m_gameSessionNameHasBeenSet = true; m_gameSessionName.assign(value); } inline GameSessionPlacement& WithGameSessionName(const Aws::String& value) { SetGameSessionName(value); return *this;} inline GameSessionPlacement& WithGameSessionName(Aws::String&& value) { SetGameSessionName(std::move(value)); return *this;} inline GameSessionPlacement& WithGameSessionName(const char* value) { SetGameSessionName(value); return *this;} ///@} ///@{ /** *A unique identifier for the game session. This value isn't final until
* placement status is FULFILLED.
Identifier for the game session created by this placement request. This
* identifier is unique across all Regions. This value isn't final until placement
* status is FULFILLED.
Name of the Region where the game session created by this placement request
* is running. This value isn't final until placement status is
* FULFILLED.
A set of values, expressed in milliseconds, that indicates the amount of * latency that a player experiences when connected to @aws; Regions.
*/ inline const Aws::VectorTime stamp indicating when this request was placed in the queue. Format is a
* number expressed in Unix time as milliseconds (for example
* "1469498468.057").
Time stamp indicating when this request was completed, canceled, or timed * out.
*/ inline const Aws::Utils::DateTime& GetEndTime() const{ return m_endTime; } inline bool EndTimeHasBeenSet() const { return m_endTimeHasBeenSet; } inline void SetEndTime(const Aws::Utils::DateTime& value) { m_endTimeHasBeenSet = true; m_endTime = value; } inline void SetEndTime(Aws::Utils::DateTime&& value) { m_endTimeHasBeenSet = true; m_endTime = std::move(value); } inline GameSessionPlacement& WithEndTime(const Aws::Utils::DateTime& value) { SetEndTime(value); return *this;} inline GameSessionPlacement& WithEndTime(Aws::Utils::DateTime&& value) { SetEndTime(std::move(value)); return *this;} ///@} ///@{ /** *The IP address of the game session. To connect to a Amazon GameLift game
* server, an app needs both the IP address and port number. This value isn't final
* until placement status is FULFILLED.
The DNS identifier assigned to the instance that is running the game session. * Values have the following format:
TLS-enabled fleets:
* <unique identifier>.<region
* identifier>.amazongamelift.com.
Non-TLS-enabled
* fleets: ec2-<unique identifier>.compute.amazonaws.com. (See
* Amazon
* EC2 Instance IP Addressing.)
When connecting to a game * session that is running on a TLS-enabled fleet, you must use the DNS name, not * the IP address.
*/ inline const Aws::String& GetDnsName() const{ return m_dnsName; } inline bool DnsNameHasBeenSet() const { return m_dnsNameHasBeenSet; } inline void SetDnsName(const Aws::String& value) { m_dnsNameHasBeenSet = true; m_dnsName = value; } inline void SetDnsName(Aws::String&& value) { m_dnsNameHasBeenSet = true; m_dnsName = std::move(value); } inline void SetDnsName(const char* value) { m_dnsNameHasBeenSet = true; m_dnsName.assign(value); } inline GameSessionPlacement& WithDnsName(const Aws::String& value) { SetDnsName(value); return *this;} inline GameSessionPlacement& WithDnsName(Aws::String&& value) { SetDnsName(std::move(value)); return *this;} inline GameSessionPlacement& WithDnsName(const char* value) { SetDnsName(value); return *this;} ///@} ///@{ /** *The port number for the game session. To connect to a Amazon GameLift game
* server, an app needs both the IP address and port number. This value isn't final
* until placement status is FULFILLED.
A collection of information on player sessions created in response to the
* game session placement request. These player sessions are created only after a
* new game session is successfully placed (placement status is
* FULFILLED). This information includes the player ID, provided in
* the placement request, and a corresponding player session ID.
A set of custom game session properties, formatted as a single string value. * This data is passed to a game server process with a request to start a new game * session. For more information, see Start * a game session.
*/ inline const Aws::String& GetGameSessionData() const{ return m_gameSessionData; } inline bool GameSessionDataHasBeenSet() const { return m_gameSessionDataHasBeenSet; } inline void SetGameSessionData(const Aws::String& value) { m_gameSessionDataHasBeenSet = true; m_gameSessionData = value; } inline void SetGameSessionData(Aws::String&& value) { m_gameSessionDataHasBeenSet = true; m_gameSessionData = std::move(value); } inline void SetGameSessionData(const char* value) { m_gameSessionDataHasBeenSet = true; m_gameSessionData.assign(value); } inline GameSessionPlacement& WithGameSessionData(const Aws::String& value) { SetGameSessionData(value); return *this;} inline GameSessionPlacement& WithGameSessionData(Aws::String&& value) { SetGameSessionData(std::move(value)); return *this;} inline GameSessionPlacement& WithGameSessionData(const char* value) { SetGameSessionData(value); return *this;} ///@} ///@{ /** *Information on the matchmaking process for this game. Data is in JSON syntax, * formatted as a string. It identifies the matchmaking configuration used to * create the match, and contains data on all players assigned to the match, * including player attributes and team assignments. For more details on matchmaker * data, see Match * Data.
*/ inline const Aws::String& GetMatchmakerData() const{ return m_matchmakerData; } inline bool MatchmakerDataHasBeenSet() const { return m_matchmakerDataHasBeenSet; } inline void SetMatchmakerData(const Aws::String& value) { m_matchmakerDataHasBeenSet = true; m_matchmakerData = value; } inline void SetMatchmakerData(Aws::String&& value) { m_matchmakerDataHasBeenSet = true; m_matchmakerData = std::move(value); } inline void SetMatchmakerData(const char* value) { m_matchmakerDataHasBeenSet = true; m_matchmakerData.assign(value); } inline GameSessionPlacement& WithMatchmakerData(const Aws::String& value) { SetMatchmakerData(value); return *this;} inline GameSessionPlacement& WithMatchmakerData(Aws::String&& value) { SetMatchmakerData(std::move(value)); return *this;} inline GameSessionPlacement& WithMatchmakerData(const char* value) { SetMatchmakerData(value); return *this;} ///@} private: Aws::String m_placementId; bool m_placementIdHasBeenSet = false; Aws::String m_gameSessionQueueName; bool m_gameSessionQueueNameHasBeenSet = false; GameSessionPlacementState m_status; bool m_statusHasBeenSet = false; Aws::Vector