Files
DedicatedServerCourse/Plugins/GameLiftPlugin/Source/AWSSDK/Include/aws/gamelift/model/Event.h

283 lines
17 KiB
C
Raw Normal View History

/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include <aws/gamelift/GameLift_EXPORTS.h>
#include <aws/core/utils/memory/stl/AWSString.h>
#include <aws/gamelift/model/EventCode.h>
#include <aws/core/utils/DateTime.h>
#include <utility>
namespace Aws
{
namespace Utils
{
namespace Json
{
class JsonValue;
class JsonView;
} // namespace Json
} // namespace Utils
namespace GameLift
{
namespace Model
{
/**
* <p>Log entry describing an event that involves Amazon GameLift resources (such
* as a fleet). In addition to tracking activity, event codes and messages can
* provide additional information for troubleshooting and debugging
* problems.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/Event">AWS API
* Reference</a></p>
*/
class Event
{
public:
AWS_GAMELIFT_API Event();
AWS_GAMELIFT_API Event(Aws::Utils::Json::JsonView jsonValue);
AWS_GAMELIFT_API Event& operator=(Aws::Utils::Json::JsonView jsonValue);
AWS_GAMELIFT_API Aws::Utils::Json::JsonValue Jsonize() const;
///@{
/**
* <p>A unique identifier for a fleet event.</p>
*/
inline const Aws::String& GetEventId() const{ return m_eventId; }
inline bool EventIdHasBeenSet() const { return m_eventIdHasBeenSet; }
inline void SetEventId(const Aws::String& value) { m_eventIdHasBeenSet = true; m_eventId = value; }
inline void SetEventId(Aws::String&& value) { m_eventIdHasBeenSet = true; m_eventId = std::move(value); }
inline void SetEventId(const char* value) { m_eventIdHasBeenSet = true; m_eventId.assign(value); }
inline Event& WithEventId(const Aws::String& value) { SetEventId(value); return *this;}
inline Event& WithEventId(Aws::String&& value) { SetEventId(std::move(value)); return *this;}
inline Event& WithEventId(const char* value) { SetEventId(value); return *this;}
///@}
///@{
/**
* <p>A unique identifier for an event resource, such as a fleet ID.</p>
*/
inline const Aws::String& GetResourceId() const{ return m_resourceId; }
inline bool ResourceIdHasBeenSet() const { return m_resourceIdHasBeenSet; }
inline void SetResourceId(const Aws::String& value) { m_resourceIdHasBeenSet = true; m_resourceId = value; }
inline void SetResourceId(Aws::String&& value) { m_resourceIdHasBeenSet = true; m_resourceId = std::move(value); }
inline void SetResourceId(const char* value) { m_resourceIdHasBeenSet = true; m_resourceId.assign(value); }
inline Event& WithResourceId(const Aws::String& value) { SetResourceId(value); return *this;}
inline Event& WithResourceId(Aws::String&& value) { SetResourceId(std::move(value)); return *this;}
inline Event& WithResourceId(const char* value) { SetResourceId(value); return *this;}
///@}
///@{
/**
* <p>The type of event being logged. </p> <p> <b>Fleet state transition
* events:</b> </p> <ul> <li> <p>FLEET_CREATED -- A fleet resource was successfully
* created with a status of <code>NEW</code>. Event messaging includes the fleet
* ID.</p> </li> <li> <p>FLEET_STATE_DOWNLOADING -- Fleet status changed from
* <code>NEW</code> to <code>DOWNLOADING</code>. Amazon GameLift is downloading the
* compressed build and running install scripts.</p> </li> <li>
* <p>FLEET_STATE_VALIDATING -- Fleet status changed from <code>DOWNLOADING</code>
* to <code>VALIDATING</code>. Amazon GameLift has successfully installed build and
* is now validating the build files.</p> </li> <li> <p>FLEET_STATE_BUILDING --
* Fleet status changed from <code>VALIDATING</code> to <code>BUILDING</code>.
* Amazon GameLift has successfully verified the build files and is now launching a
* fleet instance.</p> </li> <li> <p>FLEET_STATE_ACTIVATING -- Fleet status changed
* from <code>BUILDING</code> to <code>ACTIVATING</code>. Amazon GameLift is
* launching a game server process on the fleet instance and is testing its
* connectivity with the Amazon GameLift service.</p> </li> <li>
* <p>FLEET_STATE_ACTIVE -- The fleet's status changed from <code>ACTIVATING</code>
* to <code>ACTIVE</code>. The fleet is now ready to host game sessions.</p> </li>
* <li> <p>FLEET_STATE_ERROR -- The Fleet's status changed to <code>ERROR</code>.
* Describe the fleet event message for more details.</p> </li> </ul> <p> <b>Fleet
* creation events (ordered by fleet creation activity):</b> </p> <ul> <li>
* <p>FLEET_BINARY_DOWNLOAD_FAILED -- The build failed to download to the fleet
* instance.</p> </li> <li> <p>FLEET_CREATION_EXTRACTING_BUILD -- The game server
* build was successfully downloaded to an instance, and Amazon GameLiftis now
* extracting the build files from the uploaded build. Failure at this stage
* prevents a fleet from moving to ACTIVE status. Logs for this stage display a
* list of the files that are extracted and saved on the instance. Access the logs
* by using the URL in <i>PreSignedLogUrl</i>.</p> </li> <li>
* <p>FLEET_CREATION_RUNNING_INSTALLER -- The game server build files were
* successfully extracted, and Amazon GameLift is now running the build's install
* script (if one is included). Failure in this stage prevents a fleet from moving
* to ACTIVE status. Logs for this stage list the installation steps and whether or
* not the install completed successfully. Access the logs by using the URL in
* <i>PreSignedLogUrl</i>.</p> </li> <li> <p>FLEET_CREATION_COMPLETED_INSTALLER --
* The game server build files were successfully installed and validation of the
* installation will begin soon.</p> </li> <li> <p>FLEET_CREATION_FAILED_INSTALLER
* -- The installed failed while attempting to install the build files. This event
* indicates that the failure occurred before Amazon GameLift could start
* validation. </p> </li> <li> <p>FLEET_CREATION_VALIDATING_RUNTIME_CONFIG -- The
* build process was successful, and the GameLift is now verifying that the game
* server launch paths, which are specified in the fleet's runtime configuration,
* exist. If any listed launch path exists, Amazon GameLift tries to launch a game
* server process and waits for the process to report ready. Failures in this stage
* prevent a fleet from moving to <code>ACTIVE</code> status. Logs for this stage
* list the launch paths in the runtime configuration and indicate whether each is
* found. Access the logs by using the URL in <i>PreSignedLogUrl</i>.</p> </li>
* <li> <p>FLEET_VALIDATION_LAUNCH_PATH_NOT_FOUND -- Validation of the runtime
* configuration failed because the executable specified in a launch path does not
* exist on the instance.</p> </li> <li>
* <p>FLEET_VALIDATION_EXECUTABLE_RUNTIME_FAILURE -- Validation of the runtime
* configuration failed because the executable specified in a launch path failed to
* run on the fleet instance.</p> </li> <li> <p>FLEET_VALIDATION_TIMED_OUT --
* Validation of the fleet at the end of creation timed out. Try fleet creation
* again.</p> </li> <li> <p>FLEET_ACTIVATION_FAILED -- The fleet failed to
* successfully complete one of the steps in the fleet activation process. This
* event code indicates that the game build was successfully downloaded to a fleet
* instance, built, and validated, but was not able to start a server process. For
* more information, see <a
* href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-creating-debug.html#fleets-creating-debug-creation">Debug
* Fleet Creation Issues</a>.</p> </li> <li>
* <p>FLEET_ACTIVATION_FAILED_NO_INSTANCES -- Fleet creation was not able to obtain
* any instances based on the input fleet attributes. Try again at a different time
* or choose a different combination of fleet attributes such as fleet type,
* instance type, etc.</p> </li> <li> <p>FLEET_INITIALIZATION_FAILED -- A generic
* exception occurred during fleet creation. Describe the fleet event message for
* more details.</p> </li> </ul> <p> <b>VPC peering events:</b> </p> <ul> <li>
* <p>FLEET_VPC_PEERING_SUCCEEDED -- A VPC peering connection has been established
* between the VPC for an Amazon GameLift fleet and a VPC in your Amazon Web
* Services account.</p> </li> <li> <p>FLEET_VPC_PEERING_FAILED -- A requested VPC
* peering connection has failed. Event details and status information provide
* additional detail. A common reason for peering failure is that the two VPCs have
* overlapping CIDR blocks of IPv4 addresses. To resolve this, change the CIDR
* block for the VPC in your Amazon Web Services account. For more information on
* VPC peering failures, see <a
* href="https://docs.aws.amazon.com/AmazonVPC/latest/PeeringGuide/invalid-peering-configurations.html">https://docs.aws.amazon.com/AmazonVPC/latest/PeeringGuide/invalid-peering-configurations.html</a>
* </p> </li> <li> <p>FLEET_VPC_PEERING_DELETED -- A VPC peering connection has
* been successfully deleted.</p> </li> </ul> <p> <b>Container group events:</b>
* </p> <ul> <li> <p>CONTAINER_GROUP_REGISTRATION_FAILED A game server container
* group started, but timed out before calling <code>RegisterCompute</code>. </p>
* </li> <li> <p>CONTAINER_GROUP_CRASHED A game server container group started and
* terminated without calling <code>RegisterCompute</code>.</p> </li> </ul> <p>
* <b>Spot instance events:</b> </p> <ul> <li> <p> INSTANCE_INTERRUPTED -- A spot
* instance was interrupted by EC2 with a two-minute notification.</p> </li> <li>
* <p>INSTANCE_RECYCLED -- A spot instance was determined to have a high risk of
* interruption and is scheduled to be recycled once it has no active game
* sessions.</p> </li> </ul> <p> <b>Server process events:</b> </p> <ul> <li>
* <p>SERVER_PROCESS_INVALID_PATH -- The game server executable or script could not
* be found based on the Fleet runtime configuration. Check that the launch path is
* correct based on the operating system of the Fleet.</p> </li> <li>
* <p>SERVER_PROCESS_SDK_INITIALIZATION_TIMEOUT -- The server process did not call
* <code>InitSDK()</code> within the time expected (5 minutes). Check your game
* session log to see why <code>InitSDK()</code> was not called in time.</p> </li>
* <li> <p>SERVER_PROCESS_PROCESS_READY_TIMEOUT -- The server process did not call
* <code>ProcessReady()</code> within the time expected (5 minutes) after calling
* <code>InitSDK()</code>. Check your game session log to see why
* <code>ProcessReady()</code> was not called in time.</p> </li> <li>
* <p>SERVER_PROCESS_CRASHED -- The server process exited without calling
* <code>ProcessEnding()</code>. Check your game session log to see why
* <code>ProcessEnding()</code> was not called.</p> </li> <li>
* <p>SERVER_PROCESS_TERMINATED_UNHEALTHY -- The server process did not report a
* valid health check for too long and was therefore terminated by GameLift. Check
* your game session log to see if the thread became stuck processing a synchronous
* task for too long.</p> </li> <li> <p>SERVER_PROCESS_FORCE_TERMINATED -- The
* server process did not exit cleanly within the time expected after
* <code>OnProcessTerminate()</code> was sent. Check your game session log to see
* why termination took longer than expected.</p> </li> <li>
* <p>SERVER_PROCESS_PROCESS_EXIT_TIMEOUT -- The server process did not exit
* cleanly within the time expected (30 seconds) after calling
* <code>ProcessEnding()</code>. Check your game session log to see why termination
* took longer than expected.</p> </li> </ul> <p> <b>Game session events:</b> </p>
* <ul> <li> <p>GAME_SESSION_ACTIVATION_TIMEOUT -- GameSession failed to activate
* within the expected time. Check your game session log to see why
* <code>ActivateGameSession()</code> took longer to complete than expected.</p>
* </li> </ul> <p> <b>Other fleet events:</b> </p> <ul> <li> <p>FLEET_SCALING_EVENT
* -- A change was made to the fleet's capacity settings (desired instances,
* minimum/maximum scaling limits). Event messaging includes the new capacity
* settings.</p> </li> <li> <p>FLEET_NEW_GAME_SESSION_PROTECTION_POLICY_UPDATED --
* A change was made to the fleet's game session protection policy setting. Event
* messaging includes both the old and new policy setting. </p> </li> <li>
* <p>FLEET_DELETED -- A request to delete a fleet was initiated.</p> </li> <li>
* <p> GENERIC_EVENT -- An unspecified event has occurred.</p> </li> </ul>
*/
inline const EventCode& GetEventCode() const{ return m_eventCode; }
inline bool EventCodeHasBeenSet() const { return m_eventCodeHasBeenSet; }
inline void SetEventCode(const EventCode& value) { m_eventCodeHasBeenSet = true; m_eventCode = value; }
inline void SetEventCode(EventCode&& value) { m_eventCodeHasBeenSet = true; m_eventCode = std::move(value); }
inline Event& WithEventCode(const EventCode& value) { SetEventCode(value); return *this;}
inline Event& WithEventCode(EventCode&& value) { SetEventCode(std::move(value)); return *this;}
///@}
///@{
/**
* <p>Additional information related to the event.</p>
*/
inline const Aws::String& GetMessage() const{ return m_message; }
inline bool MessageHasBeenSet() const { return m_messageHasBeenSet; }
inline void SetMessage(const Aws::String& value) { m_messageHasBeenSet = true; m_message = value; }
inline void SetMessage(Aws::String&& value) { m_messageHasBeenSet = true; m_message = std::move(value); }
inline void SetMessage(const char* value) { m_messageHasBeenSet = true; m_message.assign(value); }
inline Event& WithMessage(const Aws::String& value) { SetMessage(value); return *this;}
inline Event& WithMessage(Aws::String&& value) { SetMessage(std::move(value)); return *this;}
inline Event& WithMessage(const char* value) { SetMessage(value); return *this;}
///@}
///@{
/**
* <p>Time stamp indicating when this event occurred. Format is a number expressed
* in Unix time as milliseconds (for example <code>"1469498468.057"</code>).</p>
*/
inline const Aws::Utils::DateTime& GetEventTime() const{ return m_eventTime; }
inline bool EventTimeHasBeenSet() const { return m_eventTimeHasBeenSet; }
inline void SetEventTime(const Aws::Utils::DateTime& value) { m_eventTimeHasBeenSet = true; m_eventTime = value; }
inline void SetEventTime(Aws::Utils::DateTime&& value) { m_eventTimeHasBeenSet = true; m_eventTime = std::move(value); }
inline Event& WithEventTime(const Aws::Utils::DateTime& value) { SetEventTime(value); return *this;}
inline Event& WithEventTime(Aws::Utils::DateTime&& value) { SetEventTime(std::move(value)); return *this;}
///@}
///@{
/**
* <p>Location of stored logs with additional detail that is related to the event.
* This is useful for debugging issues. The URL is valid for 15 minutes. You can
* also access fleet creation logs through the Amazon GameLift console.</p>
*/
inline const Aws::String& GetPreSignedLogUrl() const{ return m_preSignedLogUrl; }
inline bool PreSignedLogUrlHasBeenSet() const { return m_preSignedLogUrlHasBeenSet; }
inline void SetPreSignedLogUrl(const Aws::String& value) { m_preSignedLogUrlHasBeenSet = true; m_preSignedLogUrl = value; }
inline void SetPreSignedLogUrl(Aws::String&& value) { m_preSignedLogUrlHasBeenSet = true; m_preSignedLogUrl = std::move(value); }
inline void SetPreSignedLogUrl(const char* value) { m_preSignedLogUrlHasBeenSet = true; m_preSignedLogUrl.assign(value); }
inline Event& WithPreSignedLogUrl(const Aws::String& value) { SetPreSignedLogUrl(value); return *this;}
inline Event& WithPreSignedLogUrl(Aws::String&& value) { SetPreSignedLogUrl(std::move(value)); return *this;}
inline Event& WithPreSignedLogUrl(const char* value) { SetPreSignedLogUrl(value); return *this;}
///@}
///@{
/**
* <p>The number of times that this event occurred.</p>
*/
inline long long GetCount() const{ return m_count; }
inline bool CountHasBeenSet() const { return m_countHasBeenSet; }
inline void SetCount(long long value) { m_countHasBeenSet = true; m_count = value; }
inline Event& WithCount(long long value) { SetCount(value); return *this;}
///@}
private:
Aws::String m_eventId;
bool m_eventIdHasBeenSet = false;
Aws::String m_resourceId;
bool m_resourceIdHasBeenSet = false;
EventCode m_eventCode;
bool m_eventCodeHasBeenSet = false;
Aws::String m_message;
bool m_messageHasBeenSet = false;
Aws::Utils::DateTime m_eventTime;
bool m_eventTimeHasBeenSet = false;
Aws::String m_preSignedLogUrl;
bool m_preSignedLogUrlHasBeenSet = false;
long long m_count;
bool m_countHasBeenSet = false;
};
} // namespace Model
} // namespace GameLift
} // namespace Aws