

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# SDK 5.x del servidor de Amazon GameLift Servers
<a name="reference-serversdk"></a>

Esta sección contiene la documentación de referencia del SDK 5.x del servidor de Amazon GameLift Servers. El SDK del servidor proporciona la funcionalidad principal que el servidor de juegos utiliza para interactuar con el servicio de Amazon GameLift Servers. Por ejemplo, el servidor de juegos recibe peticiones del servicio para iniciar y detener las sesiones de juego, y le envía al servicio actualizaciones periódicas del estado de las sesiones de juego. Integre los servidores de juegos con el SDK del servidor antes de implementarlos para el alojamiento.

Utilice esta referencia del SDK del servidor con el fin de integrar servidores de juegos multijugador personalizados para el alojamiento con Amazon GameLift Servers. Para obtener ayuda con el proceso de integración, consulte [Adición de Amazon GameLift Servers al servidor de juegos con el SDK del servidor](gamelift-sdk-server-api.md).

La versión principal más reciente del SDK del servidor de Amazon GameLift Servers es la 5.x. Las siguientes características de alojamiento requieren el uso de la versión 5.x: 
+ Amazon GameLift Servers Anywhere
+ Complemento de Amazon GameLift Servers para Unreal Engine y Unity

**nota**  
Si necesita utilizar la versión 4.x, o una versión anterior, del SDK del servidor, consulte [SDK del servidor de las versiones 4 y anteriores de Amazon GameLift Servers](reference-serversdk4.md) para obtener documentación y la información de descarga.

**Topics**
+ [Actualizaciones del SDK 5 del servidor de Amazon GameLift Servers](#reference-serversdk5-about)
+ [Migración al SDK 5.x del servidor de Amazon GameLift Servers](reference-serversdk5-migration.md)
+ [SDK 5.x del servidor de C\$1\$1 para Amazon GameLift Servers: acciones](integration-server-sdk5-cpp-actions.md)
+ [SDK 5.x del servidor de C\$1 para Amazon GameLift Servers: acciones](integration-server-sdk5-csharp-actions.md)
+ [SDK del servidor de Go para Amazon GameLift Servers: acciones](integration-server-sdk-go-actions.md)
+ [SDK 5.x del servidor de C\$1\$1 (Unreal) para Amazon GameLift Servers: acciones](integration-server-sdk5-unreal-actions.md)

## Actualizaciones del SDK 5 del servidor de Amazon GameLift Servers
<a name="reference-serversdk5-about"></a>

Los servidores de juego alojados utilizan el SDK del servidor de Amazon GameLift Servers para comunicarse con el servicio de Amazon GameLift Servers a fin de iniciar y administrar las sesiones de juego para los jugadores. La última versión, el SDK del servidor 5 de Amazon GameLift Servers, ofrece mejoras y compatibilidad con las nuevas características de Amazon GameLift Servers. Si su compilación de servidor de juegos utiliza actualmente el SDK 4 del servidor de Amazon GameLift Servers (o una versión anterior), siga las instrucciones de este tema para actualizar los juegos. 

La versión 5.0.0, y versiones posteriores, del SDK del servidor de Amazon GameLift Servers incluyen las siguientes actualizaciones:
+ Más lenguajes: las bibliotecas están disponibles en C\$1\$1, C\$1 y Go; puede compilar las bibliotecas en C\$1\$1 para usarlas con Unreal Engine.
+ Compatibilidad con complementos de motor de juegos: los complementos independientes de Amazon GameLift Servers para Unreal Engine y Unity requieren las bibliotecas del SDK 5 del servidor de Amazon GameLift Servers. Estos complementos ofrecen flujos de trabajo guiados para integrar, probar e implementar juegos en Amazon GameLift Servers para el alojamiento. Consulte [Complemento de Amazon GameLift Servers para Unity (SDK 5.x del servidor)](unity-plug-in.md) y la documentación [Complemento de Amazon GameLift Servers para Unreal Engine](unreal-plugin.md).
+ Compatibilidad con Amazon GameLift Servers Anywhere: con flotas de Anywhere, puede configurar sus propios recursos de alojamiento para utilizar las características de Amazon GameLift Servers (incluido el emparejamiento). Añada el agente de Amazon GameLift Servers para automatizar la administración del ciclo de vida de las sesiones de juego. Utilice flotas de Anywhere para el alojamiento de producción con hardware en las instalaciones, o configure entornos de prueba para desarrollar juegos de un modo rápido e iterativo. Consulte [Alojamiento con Anywhere](gamelift-intro-flavors.md#gamelift-intro-flavors-hosting-anywhere) y el [agente de Amazon GameLift Servers](https://github.com/aws/amazon-gamelift-agent).
+ Herramientas de prueba actualizadas: la característica de Amazon GameLift Servers Anywhere le permite configurar entornos de prueba locales o basados en la nube para los juegos. Configure las pruebas con o sin el agente de Amazon GameLift Servers. Estas herramientas sustituyen a la versión local de Amazon GameLift Servers. Consulte [Configuración de pruebas locales con Amazon GameLift Servers Anywhere](integration-testing.md).
+ Solución .NET consolidada para C\$1: el SDK 5.1\$1 del servidor para C\$1 es compatible con .NET Framework 4.6.2 (actualizado desde la versión 4.6.1) y .NET 6.0 en una sola solución. .NET Standard 2.1 está disponible con las bibliotecas creadas por Unity.
+ Nuevo recurso `Compute`: este nuevo recurso combina diferentes tipos de recursos de alojamiento. Incluye recursos de alojamiento basados en la nube (flotas de contenedores o de EC2 administradas) y recursos de alojamiento controlados por el cliente (flotas de Anywhere). Incluye las siguientes actualizaciones: 
  + Algunas de las nuevas llamadas a la API para el recurso `Compute` son [ListCompute()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_ListCompute.html), [DescribeCompute()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_DescribeCompute.html) y [GetComputeAccess()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetComputeAccess.html). Estas acciones devuelven información sobre los recursos de alojamiento para cualquier tipo de flota de Amazon GameLift Servers. En términos generales, para las flotas con servidores de juegos que utilicen el SDK 5.x del servidor, utilice las acciones específicas del recurso de computación para reemplazar a las acciones específicas de la instancia. Además, las siguientes acciones se deben usar en flotas de Amazon GameLift Servers sin el agente de : [RegisterCompute()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html), [DeregisterCompute()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_DeregisterCompute.html) y [GetComputeAuthToken()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetComputeAuthToken.html).
  + Nueva métrica `ActiveCompute` con dimensiones de CloudWatch `FleetId`, `Location` y `ComputeType`. Esta métrica reemplaza a la métrica anterior `ActiveInstances`.
+ Amazon EC2 Systems Manager (SSM) para acceso remoto: para mayor seguridad, utilice SSM en lugar de SSH cuando se conecte a instancias en flotas administradas por Amazon GameLift Servers. Consulte [Conéctese a instancias de flota](fleets-remote-access.md).

# Migración al SDK 5.x del servidor de Amazon GameLift Servers
<a name="reference-serversdk5-migration"></a>

Para actualizar un proyecto de juego para que utilice la versión 5.x del SDK del servidor, realice los siguientes cambios:

**nota**  
Si necesita seguir usando la versión 4.x, o una versión anterior, del SDK del servidor, consulte [SDK del servidor de las versiones 4 y anteriores de Amazon GameLift Servers](reference-serversdk4.md) para obtener documentación y la información de descarga. En concreto, para la versión 4.0.2 del SDK, puedes descargarla desde las [ GitHub versiones oficiales](https://github.com/amazon-gamelift/amazon-gamelift-servers-csharp-server-sdk/releases).

1. Obtenga el paquete más reciente del SDK del servidor de Amazon GameLift Servers para su entorno de desarrollo **[[sitio de descarga](https://aws.amazon.com/gamelift/servers/getting-started-sdks/)]**. Sigue las instrucciones de instalación del `Readme` archivo correspondiente al paquete y la versión descargados. Consulta estas instrucciones para usar el servidor SDKs con tu proyecto de juego.
   + [Para entornos de desarrollo que utilizan C\$1\$1, C\$1 o Go](gamelift-sdk-server-api.md)
   + [Para proyectos de Unreal Engine (SDK del servidor de C\$1\$1 solo para bibliotecas de Unreal)](integration-engines-setup-unreal.md)
   + [Para proyectos de Unity (SDK del servidor de C\$1 solo para bibliotecas de Unity)](integration-engines-unity-using.md)
   + [Para su uso con el complemento de Amazon GameLift Servers para Unreal Engine](unreal-plugin.md)
   + [Para su uso con el complemento de Amazon GameLift Servers para Unity](unity-plug-in.md)

1. Actualice el código del servidor de la siguiente manera:
   + Cambie la función de devolución de llamada del código del servidor, de `onCreateGameSession()` a `onStartGameSession()`.
   + Actualice las entradas `InitSDK()` como corresponda: 
     + Si planea implementar la compilación del servidor de juegos en una flota de EC2 administrada por Amazon GameLift Servers o en una flota de Anywhere con el agente de Amazon GameLift Servers: 

       Llame a `InitSDK()` sin parámetros ([C\$1\$1](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-initsdk)) ([C\$1](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-initsdk)) ([Unreal](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-initsdk)). Esta llamada configura el entorno informático y una WebSocket conexión al Amazon GameLift Servers servicio. 
     + Si planea implementar la compilación del servidor de juegos en una flota de Anywhere sin el agente de Amazon GameLift Servers:

       Llame a `InitSDK()` con parámetros de servidor ([C\$1\$1](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-initsdk-anywhere)) ([C\$1](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-initsdk-anywhere)) ([Unreal](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-initsdk-anywhere)). Un proceso del servidor de juegos utiliza estos parámetros para establecer una conexión con el servicio de Amazon GameLift Servers.

1. Si la compilación del servidor de juegos, u otras aplicaciones alojadas, se comunican con otros recursos de AWS mientras se están ejecutando, tendrá que cambiar cómo accede la aplicación a esos recursos. Sustituya el uso de `AssumeRoleCredentials` por la nueva acción `GetFleetRoleCredentials()` del SDK del servidor (para servidores de juegos) o utilice credenciales compartidas (para otras aplicaciones). Para obtener más información sobre cómo implementar este cambio, consulte [Conecta tu servidor de juegos Amazon GameLift Servers alojado a otros AWS recursos](gamelift-sdk-server-resources.md).

1. Si el proyecto ha llamado a la acción `GetInstanceCertificate()` del SDK del servidor a fin de recuperar un certificado TLS, modifique el código para usar el nuevo `GetComputeCertificate()` ([C\$1\$1](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-getcomputecertificate)) ([C\$1](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-getcomputecertificate)) ([Unreal](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-getcomputecertificate)) en su lugar.

1. Cuando subas la versión del juego a Amazon GameLift Servers (por ejemplo, con [upload-build](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/gamelift/upload-build.html) o [CreateBuild())](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateBuild.html), establece el `ServerSdkVersion` parámetro en la versión 5.x que estés utilizando (este parámetro actualmente tiene el valor predeterminado 4.0.2). Este parámetro debe coincidir con las bibliotecas reales del SDK del servidor en la compilación del servidor del juego. Si especifica una versión incorrecta para una compilación de servidor de juegos cargada, todas las flotas que cree con esa compilación generarán errores. Consulte [Creación de una compilación de servidor de juegos para Amazon GameLift Servers](gamelift-build-cli-uploading.md).

   En el siguiente ejemplo, se muestra cómo especificar la versión del SDK del servidor: 

   ```
   aws gamelift upload-build \
       --operating-system AMAZON_LINUX_2023 \
       --server-sdk-version "5.0.0" \
       --build-root "~/mygame" \
       --name "My Game Nightly Build" \
       --build-version "build 255" \
       --region us-west-2
   ```

1. Si utiliza scripts para conectarse remotamente a flotas administradas, actualice los scripts para utilizar el nuevo proceso, tal y como se describe en [Conéctese a instancias de flota](fleets-remote-access.md).

# SDK 5.x del servidor de C\$1\$1 para Amazon GameLift Servers: acciones
<a name="integration-server-sdk5-cpp-actions"></a>

Utilice la referencia del SDK 5.x del servidor para integrar su juego multijugador para el alojamiento con Amazon GameLift Servers. Para obtener ayuda con el proceso de integración, consulte [Adición de Amazon GameLift Servers al servidor de juegos con el SDK del servidor](gamelift-sdk-server-api.md).

**nota**  
En este tema se describe la API de C\$1\$1 de Amazon GameLift Servers que puede utilizar al realizar la compilación con la biblioteca estándar de C\$1\$1 (`std`). En concreto, esta documentación se aplica al código que se compila con la opción `-DDGAMELIFT_USE_STD=1`. 

# SDK 5.x del servidor de C\$1\$1 para Amazon GameLift Servers: tipos de datos
<a name="integration-server-sdk5-cpp-datatypes"></a>

Utilice la referencia del SDK 5.x del servidor de C\$1\$1 de Amazon GameLift Servers para integrar su juego multijugador para el alojamiento con Amazon GameLift Servers. Para obtener ayuda con el proceso de integración, consulte [Adición de Amazon GameLift Servers al servidor de juegos con el SDK del servidor](gamelift-sdk-server-api.md).

**nota**  
En este tema se describe la API de C\$1\$1 de Amazon GameLift Servers que puede utilizar al realizar la compilación con la biblioteca estándar de C\$1\$1 (`std`). En concreto, esta documentación se aplica al código que se compila con la opción `-DDGAMELIFT_USE_STD=1`. 

[SDK 5.x del servidor de C\$1\$1 para Amazon GameLift Servers: acciones](integration-server-sdk5-cpp-actions.md)

**Topics**
+ [LogParameters](#integration-server-sdk5-cpp-dataypes-log)
+ [MetricsParameters](#integration-server-sdk5-cpp-datatypes-metricsparameters)
+ [ProcessParameters](#integration-server-sdk5-cpp-dataypes-process)
+ [UpdateGameSession](#integration-server-sdk5-cpp-dataypes-updategamesession)
+ [GameSession](#integration-server-sdk5-cpp-dataypes-gamesession)
+ [ServerParameters](#integration-server-sdk5-cpp-dataypes-serverparameters)
+ [StartMatchBackfillRequest](#integration-server-sdk5-cpp-dataypes-startmatchbackfillrequest)
+ [Jugador](#integration-server-sdk5-cpp-dataypes-player)
+ [DescribePlayerSessionsRequest](#integration-server-sdk5-cpp-dataypes-playersessions)
+ [StopMatchBackfillRequest](#integration-server-sdk5-cpp-dataypes-stopmatchbackfillrequest)
+ [AttributeValue](#integration-server-sdk5-cpp-dataypes-attributevalue)
+ [GetFleetRoleCredentialsRequest](#integration-server-sdk5-cpp-dataypes-getfleetrolecredentialsrequest)
+ [AwsLongOutcome](#integration-server-sdk5-cpp-datatypes-awslongoutcome)
+ [AwsStringOutcome](#integration-server-sdk5-cpp-datatypes-awsstringoutcome)
+ [DescribePlayerSessionsOutcome](#integration-server-sdk5-cpp-datatypes-describeplayersessionsoutcome)
+ [DescribePlayerSessionsResult](#integration-server-sdk5-cpp-datatypes-describeplayersessionsresult)
+ [GenericOutcome](#integration-server-sdk5-cpp-datatypes-genericoutcome)
+ [GenericOutcomeCallable](#integration-server-sdk5-cpp-datatypes-genericoutcomecallable)
+ [PlayerSession](#integration-server-sdk5-cpp-datatypes-playersession)
+ [StartMatchBackfillOutcome](#integration-server-sdk5-cpp-datatypes-startmatchbackfilloutcome)
+ [StartMatchBackfillResult](#integration-server-sdk5-cpp-datatypes-startmatchbackfillresult)
+ [GetComputeCertificateOutcome](#integration-server-sdk5-cpp-datatypes-getcomputecertificateoutcome)
+ [GetComputeCertificateResult](#integration-server-sdk5-cpp-datatypes-getcomputecertificateresult)
+ [GetFleetRoleCredentialsOutcome](#integration-server-sdk5-cpp-datatypes-getfleetrolecredentialsoutcome)
+ [GetFleetRoleCredentialsResult](#integration-server-sdk5-cpp-datatypes-getfleetrolecredentialsresult)
+ [Iniciar SDKOutcome](#integration-server-sdk5-cpp-datatypes-initsdkoutcome)
+ [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror)
+ [Enums](#integration-server-sdk5-cpp-dataypes-enums)

## LogParameters
<a name="integration-server-sdk5-cpp-dataypes-log"></a>

Un objeto que identifica los archivos generados durante una sesión de juego que quiere que Amazon GameLift Servers cargue y almacene una vez finalizada la sesión de juego. El servidor de juegos proporciona `LogParameters` a Amazon GameLift Servers como parte de un objeto `ProcessParameters` en una llamada a [ProcessReady()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-processready).


|  |  | 
| --- |--- |
|  **Propiedades**  | Descripción | 
| LogPaths |  Lista de las rutas de directorio a archivos de registro del servidor de juegos que desea que Amazon GameLift Servers almacene para futuros accesos. El proceso del servidor genera esos archivos durante una sesión de juego. Defina los nombres y las rutas de los archivos en el servidor de juegos y almacénelos en el directorio raíz de compilación del juego.  Las rutas del registro deben ser absolutas. Por ejemplo, si la compilación del juego almacena los registros de sesión de juego en una ruta del tipo `MyGame\sessionLogs\`, la ruta sería `c:\game\MyGame\sessionLogs` en una instancia de Windows. **Tipo:** `std:vector<std::string>` **Obligatorio**: no  | 

## MetricsParameters
<a name="integration-server-sdk5-cpp-datatypes-metricsparameters"></a>

Utilice este tipo de datos para configurar la recopilación de métricas y los informes de bloqueo del servidor del juego. El servidor de juegos comunica `MetricsParameters` a Amazon GameLift Servers en una llamada a [InitMetrics()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-initmetrics).


|  |  | 
| --- |--- |
|  **Propiedades**  | Descripción | 
| StatsdHost |  Nombre de host o dirección IP del servidor de StatsD para la recopilación de métricas. **Tipo:** `std::string` **Obligatorio**: no  | 
| StatsdPort |  Número de puerto del servidor de StatsD para la recopilación de métricas. **Tipo:** `int` **Obligatorio**: no  | 
| CrashReporterHost |  Nombre de host o dirección IP del servidor que notifica el bloqueo. **Tipo:** `std::string` **Obligatorio**: no  | 
| CrashReporterPort |  Número de puerto del servidor que notifica el bloqueo. **Tipo:** `int` **Obligatorio**: no  | 
| FlushIntervalMs |  Intervalo en milisegundos para vaciar los datos de las métricas al servidor. **Tipo:** `int` **Obligatorio**: no  | 
| MaxPacketSize |  Tamaño máximo en bytes de los paquetes de métricas enviados al servidor. **Tipo:** `int` **Obligatorio**: no  | 

## ProcessParameters
<a name="integration-server-sdk5-cpp-dataypes-process"></a>

Este tipo de datos contiene el conjunto de parámetros enviado a Amazon GameLift Servers en una [ProcessReady()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-processready).


|  |  | 
| --- |--- |
|  **Propiedades**  | Descripción | 
| LogParameters | Un objeto con rutas de directorio a los archivos que se generan durante una sesión de juego. Amazon GameLift Servers copia y almacena los archivos para accesos futuros.**Tipo:** `Aws::GameLift::Server::LogParameters`**Obligatorio**: no | 
| OnHealthCheck | Nombre de la función de devolución de llamada que invoca Amazon GameLift Servers para solicitar un informe de estado del proceso del servidor. Amazon GameLift Servers llama a esta función cada 60 segundos y espera otros 60 segundos para obtener una respuesta. El proceso del servidor devuelve TRUE si está en buen estado y FALSE si no. Si no se devuelve ninguna respuesta, Amazon GameLift Servers registra el proceso del servidor como defectuoso.**Tipo:** `std::function<bool()> onHealthCheck`**Obligatorio**: no | 
| OnProcessTerminate | La función de devolución de llamada que invoca Amazon GameLift Servers para forzar el cierre del proceso de servidor. Después de llamar a esta función, Amazon GameLift Servers espera 5 minutos hasta que el proceso del servidor se cierre y responde con una llamada a [ProcessEnding()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-processending) antes de cerrar el proceso del servidor.**Tipo:** `std::function<void()> onProcessTerminate`**Obligatorio**: sí | 
| OnStartGameSession | La función de devolución de llamada que se Amazon GameLift Servers invoca para activar una nueva sesión de juego. Amazon GameLift Serversllama a esta función en respuesta a una solicitud de un cliente. [CreateGameSession](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateGameSession.html) La función de devolución de llamada pasa un objeto [GameSession](#integration-server-sdk5-cpp-dataypes-gamesession).**Tipo:** `const std::function<void(Aws::GameLift::Model::GameSession)> onStartGameSession`**Obligatorio**: sí | 
| OnUpdateGameSession | Nombre de la función de devolución de llamada que invoca Amazon GameLift Servers para proporcionar un objeto de sesión de juego actualizado. Amazon GameLift Servers llama a esta función una vez que se ha procesado una solicitud de reposición de emparejamiento para proporcionar datos actualizados del emparejador. Pasa un objeto [GameSession](#integration-server-sdk5-cpp-dataypes-gamesession), una actualización de estado (updateReason) y el ID del ticket de reposición de emparejamiento.**Tipo:** `std::function<void(Aws::GameLift::Server::Model::UpdateGameSession)> onUpdateGameSession`**Obligatorio**: no | 
| Puerto | El número de puerto en el que escucha el proceso del servidor para recibir conexiones de jugador nuevas. El valor debe estar en el rango de puertos configurado para cualquier flota que implemente esa compilación de servidor de juegos. Este número de puerto se incluye en los objetos de sesión de juego y de jugador, que las sesiones de juego utilizan a la hora de conectarse a un proceso del servidor.**Tipo:** `Integer`**Obligatorio**: sí | 

## UpdateGameSession
<a name="integration-server-sdk5-cpp-dataypes-updategamesession"></a>

Este tipo de datos se actualiza a un objeto de sesión de juego, que incluye el motivo por el que se actualizó la sesión de juego y el ID del ticket de reposición correspondiente si la reposición se utiliza para reponer las sesiones de los jugadores en la sesión de juego.


| Propiedades | **Descripción** | 
| --- | --- | 
| GameSession | Un objeto [GameSession](#integration-server-sdk5-cpp-dataypes-gamesession). El objeto GameSession contiene propiedades que describen una sesión de juego. **Tipo:** `Aws::GameLift::Server::GameSession`**Obligatorio**: sí | 
| UpdateReason | El motivo por el que se actualiza la sesión de juego.**Tipo:** `Aws::GameLift::Server::UpdateReason`**Obligatorio**: sí | 
| BackfillTicketId | El ID de ticket de reposición que intenta actualizar la sesión de juego.**Tipo:** `std::string`**Obligatorio**: no | 

## GameSession
<a name="integration-server-sdk5-cpp-dataypes-gamesession"></a>

Este tipo de datos proporciona detalles de una sesión de juego. 


| Propiedades | **Descripción** | 
| --- | --- | 
| GameSessionId |  Un identificador único de la sesión de juego. El ARN de una sesión de juego tiene el siguiente formato: `arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>`. **Tipo:** `std::string` **Obligatorio**: no  | 
| Name |  Una etiqueta descriptiva de la sesión de juego.  **Tipo:** `std::string` **Obligatorio**: no  | 
| FleetId |  Un identificador único para la flota en la que se ejecuta la sesión de juego. **Tipo:** `std::string` **Obligatorio**: no  | 
| MaximumPlayerSessionCount |  El número máximo de conexiones de jugadores a la sesión de juego. **Tipo:** `int` **Obligatorio**: no  | 
| Puerto |  El número de puerto de la sesión de juego. Para conectarse a un servidor de Amazon GameLift Servers juegos, la aplicación necesita tanto la dirección IP como el número de puerto. **Tipo:** `in` **Obligatorio**: no  | 
| IpAddress |  La dirección IP del servidor de la sesión de juego. Para conectarse a un servidor de Amazon GameLift Servers juegos, la aplicación necesita tanto la dirección IP como el número de puerto. **Tipo:** `std::string` **Obligatorio**: no  | 
| GameSessionData |  Un conjunto de propiedades de sesión de juego personalizadas, formateadas como un valor de una sola cadena.  **Tipo:** `std::string` **Obligatorio**: no  | 
| MatchmakerData |  Información sobre el proceso de emparejamiento que se utilizó para crear la sesión de juego, en sintaxis JSON, con formato como cadena. Además de la configuración de emparejamiento utilizada, contiene datos sobre todos los jugadores asignados al emparejamiento, incluidos los atributos de los jugadores y las asignaciones de los equipos. **Tipo:** `std::string` **Obligatorio**: no  | 
| GameProperties |  Un conjunto de propiedades personalizadas de una sesión de juego, con formato como pares clave-valor. Estas propiedades se pasan a una solicitud de iniciar una nueva sesión de juego. **Tipo:** `std :: vector < GameProperty >` **Obligatorio**: no  | 
| DnsName |  El identificador de DNS asignado a la instancia que ejecuta la sesión de juego. Los valores tienen formato siguiente: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/gameliftservers/latest/developerguide/integration-server-sdk5-cpp-datatypes.html) Cuando se conecte a una sesión de juego que se ejecute en una flota habilitada de TLS, debe utilizar el nombre de DNS, no la dirección IP. **Tipo:** `std::string` **Obligatorio**: no  | 

## ServerParameters
<a name="integration-server-sdk5-cpp-dataypes-serverparameters"></a>

Información utilizada por el proceso del servidor de juegos para establecer una conexión con el servicio de Amazon GameLift Servers. Incluya estos parámetros al llamar a [InitSDK()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-initsdk-anywhere) solo si la compilación del servidor de juegos se va a implementar en una flota de Anywhere o en una flota de contenedores sin el agente de Amazon GameLift Servers. Para todos los demás escenarios de implementación, llame a [InitSDK()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-initsdk) sin parámetros.


| Propiedades | **Descripción** | 
| --- | --- | 
| webSocketUrl |  El `GameLiftServerSdkEndpoint` que devuelve Amazon GameLift Servers cuando se invoca [https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html) para un recurso de computación de Amazon GameLift Servers Anywhere. **Tipo:** `std::string` **Obligatorio**: sí   | 
| processId |  Un identificador único registrado en el proceso de servidor que aloja el juego. **Tipo:** `std::string` **Obligatorio**: sí  | 
| hostId | El HostID es el ComputeName utilizado cuando registró el recurso informático. Para obtener más información, consulte, [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html).**Tipo:** `std::string`**Obligatorio**: sí | 
| fleetId | El identificador único de la flota en la que está registrado el recurso informático. Para obtener más información, consulte, [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html).**Tipo:** `std::string`**Obligatorio**: sí | 
| authToken | El token de autenticación generado por Amazon GameLift Servers que autentica el servidor en Amazon GameLift Servers. Para obtener más información, consulte, [GetComputeAuthToken](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetComputeAuthToken.html).**Tipo:** `std::string`**Obligatorio**: sí | 

## StartMatchBackfillRequest
<a name="integration-server-sdk5-cpp-dataypes-startmatchbackfillrequest"></a>

Información utilizada para crear una solicitud de reposición de emparejamiento. El servidor de juegos comunica esa información a Amazon GameLift Servers en una llamada a [StartMatchBackfill()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-startmatchbackfill).


| Propiedades | **Descripción** | 
| --- | --- | 
| GameSessionArn |  Un identificador único de la sesión de juegos. El `[GetGameSessionId](https://docs.aws.amazon.com/gameliftservers/latest/developerguide/integration-server-sdk5-cpp-actions.html#integration-server-sdk5-cpp-getgamesessionid)` de la operación de la API devuelve el identificador en formato de ARN. **Tipo:** `std::string` **Obligatorio**: sí  | 
| MatchmakingConfigurationArn |  Un identificador único, con formato de ARN, que el emparejador utiliza para esta solicitud. El ARN del emparejador para la sesión de juego original se encuentra en el objeto de sesión de juego en la propiedad de datos del emparejador. Puede obtener más información sobre los datos del emparejador en [Trabajo con datos del emparejador](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-server.html#match-server-data.html). **Tipo:** `std::string` **Obligatorio**: sí  | 
| Players |  Un conjunto de datos que representa a todos los jugadores que están en la sesión de juego. El creador de emparejamientos utiliza esta información para buscar nuevos jugadores que son idóneos para los jugadores actuales. **Tipo:** `std::vector<Player>` **Obligatorio**: sí  | 
| TicketId |  Un identificador único para un ticket de solicitud de emparejamiento o reposición de emparejamiento. Si no proporciona un valor, Amazon GameLift Servers generará uno. Use este identificador para realizar un seguimiento del estado del ticket de reposición de emparejamiento o cancelar la solicitud si es necesario.  **Tipo:** `std::string` **Obligatorio**: no  | 

## Jugador
<a name="integration-server-sdk5-cpp-dataypes-player"></a>

Este tipo de datos representa a un jugador en el sistema de emparejamiento. Al iniciar una solicitud de emparejamiento, un jugador tiene un ID de jugador, atributos y, posiblemente, datos de latencia. Amazon GameLift Servers añada la información de los equipos tras realizar un emparejamiento.


| Propiedades | **Descripción** | 
| --- | --- | 
| LatencyInMS |  Un conjunto de valores expresados en milisegundos que indican la cantidad de latencia que experimenta un jugador cuando se conecta a una ubicación.  Si se utiliza esta propiedad, el jugador solo se empareja con las ubicaciones que aparecen. Si un creador de emparejamientos tiene una regla que evalúa la latencia de los jugadores, estos deben informar de la latencia para ser emparejados. **Tipo:** `Dictionary<string,int>` **Obligatorio**: no  | 
| PlayerAttributes |  Una colección de pares de clave-valor que contienen información del jugador para su uso en el emparejamiento. Las claves de atributos del jugador deben coincidir con las PlayerAttributes utilizadas en un conjunto de reglas de emparejamiento. Para obtener más información sobre los atributos de los jugadores, consulte [AttributeValue](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_AttributeValue.html). **Tipo:** `std::map<std::string,AttributeValue>` **Obligatorio**: no  | 
| PlayerId |  Un identificador único de un jugador. **Tipo:** `std::string` **Obligatorio**: no  | 
| Equipo |  El nombre del equipo al que está asignado el jugador en un emparejamiento. Defina el nombre del equipo se define en el conjunto de reglas de emparejamiento. **Tipo:** `std::string` **Obligatorio**: no  | 

## DescribePlayerSessionsRequest
<a name="integration-server-sdk5-cpp-dataypes-playersessions"></a>

Un objeto que especifica las sesiones de jugador que recuperar. El proceso del servidor proporciona esta información con una llamada [DescribePlayerSessions()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-describeplayersessions) a Amazon GameLift Servers.


| Propiedades | **Descripción** | 
| --- | --- | 
| GameSessionId |  Un identificador único de la sesión de juegos. Use este parámetro para solicitar todas las sesiones de jugador de la sesión de juego especificada.  El formato de ID de sesión de juego es `arn:aws:gamelift:<region>::gamesession/fleet-<fleet ID>/<ID string>`. El `GameSessionID` es una cadena de ID personalizada o una **Tipo:** `std::string` **Obligatorio**: no  | 
| PlayerSessionId |  El identificador único de una sesión de jugador. Utilice este parámetro para solicitar una sesión de jugador específica. **Tipo:** `std::string` **Obligatorio**: no  | 
| PlayerId |  El identificador único de un jugador. Utilice este parámetro para solicitar todas las sesiones de jugador para un jugador específico. Consulte [Generación de ID de jugador](player-sessions-player-identifiers.md). **Tipo:** `std::string` **Obligatorio**: no  | 
| PlayerSessionStatusFilter |  El estado de la sesión de jugador para filtrar los resultados. Los posibles estados de sesión de jugador son los siguientes: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/gameliftservers/latest/developerguide/integration-server-sdk5-cpp-datatypes.html) **Tipo:** `std::string` **Obligatorio**: no  | 
| NextToken |  El token que indica el inicio de la siguiente página de resultados. Para especificar el inicio del conjunto de resultados, no indique ningún valor. Si se especifica un ID de sesión de jugador, este parámetro se ignora. **Tipo:** `std::string` **Obligatorio**: no  | 
| Límite |  El número máximo de resultados que devolver. Si se especifica un ID de sesión de jugador, este parámetro se ignora. **Tipo:** `int` **Obligatorio**: no  | 

## StopMatchBackfillRequest
<a name="integration-server-sdk5-cpp-dataypes-stopmatchbackfillrequest"></a>

Información utilizada para cancelar una solicitud de reposición de emparejamiento. El servidor de juegos comunica esa información al servicio Amazon GameLift Servers en una llamada a [StopMatchBackfill()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-stopmatchbackfill).


| Propiedades | **Descripción** | 
| --- | --- | 
| GameSessionArn |  Un identificador único de sesión de juego de la solicitud que se va a cancelar. **Tipo:** `char[]` **Obligatorio**: no  | 
| MatchmakingConfigurationArn |  Un identificador único del emparejador al que se envió esta solicitud. **Tipo:** `char[]` **Obligatorio**: no  | 
| TicketId |  Un identificador único del ticket de solicitud de reposición que se va a cancelar. **Tipo:** `char[]` **Obligatorio**: no  | 

## AttributeValue
<a name="integration-server-sdk5-cpp-dataypes-attributevalue"></a>

Utilice estos valores en pares de clave-valor de atributo [Jugador](#integration-server-sdk5-cpp-dataypes-player). Este objeto le permite especificar un valor de atributo mediante cualquiera de los tipos de datos válidos: cadena, número, matriz de cadenas o mapa de datos. Cada objeto `AttributeValue` debe utilizar exactamente una de las propiedades disponibles: `S`, `N`, `SL` o `SDM`.


| Propiedades | Description (Descripción) | 
| --- | --- | 
| AttrType |  Especifica el tipo de valor del atributo. Entre los posibles tipos de valores de atributo se incluyen:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/gameliftservers/latest/developerguide/integration-server-sdk5-cpp-datatypes.html) **Obligatorio**: no  | 
| S |  Representa un valor de atributo de cadena. **Tipo:** `std::string` **Obligatorio**: no  | 
| N |  Representa un valor de atributo numérico. **Tipo:** `double` **Obligatorio**: no  | 
| SL |  Representa una matriz de valores de atributos de cadena. **Tipo:** `std::vector<std::string>` **Obligatorio**: no  | 
| SDM |  Representa un diccionario de claves de cadena y valores dobles. **Tipo:** `std::map<std::string, double>` **Obligatorio**: no  | 

## GetFleetRoleCredentialsRequest
<a name="integration-server-sdk5-cpp-dataypes-getfleetrolecredentialsrequest"></a>

Este tipo de datos proporciona al servidor del juego un acceso limitado al resto de tus AWS recursos. Para obtener más información, consulte, [Configuración de un rol de servicio de IAM para Amazon GameLift Servers](setting-up-role.md).


| Propiedades | **Descripción** | 
| --- | --- | 
| RoleArn | El nombre de recurso de Amazon (ARN) de la función de servicio que amplía el acceso limitado a sus AWS recursos.**Tipo:** `std::string`**Obligatorio**: no | 
| RoleSessionName | El nombre de sesión del rol que puede usar para identificar de forma exclusiva una AWS Security Token Service [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)sesión. Este nombre aparece en los registros de auditoría, como los de CloudTrail. **Tipo:** `std::string`  **Obligatorio**: no  | 

## AwsLongOutcome
<a name="integration-server-sdk5-cpp-datatypes-awslongoutcome"></a>

Este tipo de datos es el resultado de una acción y produce un objeto con las siguientes propiedades:


| Propiedades | Description (Descripción) | 
| --- | --- | 
| Resultado |  El resultado de la acción. **Tipo:** `long` **Obligatorio**: no  | 
| ResultWithOwnership |   El resultado de la acción, expresado como un valor r, para que el código de llamada pueda tomar posesión del objeto.  **Tipo:** `long&&` **Obligatorio**: no  | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **Obligatorio**: no  | 

## AwsStringOutcome
<a name="integration-server-sdk5-cpp-datatypes-awsstringoutcome"></a>

Este tipo de datos es el resultado de una acción y produce un objeto con las siguientes propiedades:


| Propiedades | Description (Descripción) | 
| --- | --- | 
| Resultado |  El resultado de la acción. **Tipo:** `std::string` **Obligatorio**: no  | 
| ResultWithOwnership |   El resultado de la acción, expresado como un valor r, para que el código de llamada pueda tomar posesión del objeto.  **Tipo:** `long&&` **Obligatorio**: no  | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **Obligatorio**: no  | 

## DescribePlayerSessionsOutcome
<a name="integration-server-sdk5-cpp-datatypes-describeplayersessionsoutcome"></a>

Este tipo de datos es el resultado de una acción y produce un objeto con las siguientes propiedades:


| Propiedades | Description (Descripción) | 
| --- | --- | 
| Resultado |  El resultado de la acción. **Tipo:** [DescribePlayerSessionsResult](#integration-server-sdk5-cpp-datatypes-describeplayersessionsresult) **Obligatorio**: no   | 
| ResultWithOwnership |   El resultado de la acción, expresado como un valor r, para que el código de llamada pueda tomar posesión del objeto.  **Tipo:** `Aws::GameLift::Server::Model::DescribePlayerSessionsResult&&` **Obligatorio**: no  | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **Obligatorio**: no  | 

## DescribePlayerSessionsResult
<a name="integration-server-sdk5-cpp-datatypes-describeplayersessionsresult"></a>

Una colección de objetos que contiene propiedades para cada sesión de jugador que se empareja con la solicitud. 


| Propiedades | Description (Descripción) | 
| --- | --- | 
| NextToken |  Un token que indica el inicio de la siguiente página de resultados secuencial. Utilice el token devuelto con una llamada anterior a esta operación. Para especificar el inicio del conjunto de resultados, no especifique ningún valor. Si se especifica un ID de sesión de jugador, este parámetro se ignora.  **Tipo:** `std::string` **Obligatorio**: sí  | 
| PlayerSessions |  **Tipo:** `IList<PlayerSession>` **Obligatorio:**   | 
| ResultWithOwnership |   El resultado de la acción, expresado como un valor r, para que el código de llamada pueda tomar posesión del objeto.  **Tipo:** `std::string&&` **Obligatorio**: no  | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **Obligatorio**: no  | 

## GenericOutcome
<a name="integration-server-sdk5-cpp-datatypes-genericoutcome"></a>

Este tipo de datos es el resultado de una acción y produce un objeto con las siguientes propiedades:


| Propiedades | Description (Descripción) | 
| --- | --- | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **Obligatorio**: no  | 

## GenericOutcomeCallable
<a name="integration-server-sdk5-cpp-datatypes-genericoutcomecallable"></a>

Este tipo de datos es un resultado genérico asíncrono. Tiene las siguientes propiedades: 


| Propiedades | Description (Descripción) | 
| --- | --- | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **Obligatorio**: no  | 

## PlayerSession
<a name="integration-server-sdk5-cpp-datatypes-playersession"></a>

Este tipo de datos representa la sesión de un jugador que Amazon GameLift Servers transfiere al servidor de juegos. Para obtener más información, consulte [PlayerSession](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_PlayerSession.html). 


| Propiedades | Description (Descripción) | 
| --- | --- | 
| CreationTime |  **Tipo:** `long` **Obligatorio**: no  | 
| FleetId |  **Tipo:** `std::string` **Obligatorio**: no  | 
| GameSessionId |  **Tipo:** `std::string` **Obligatorio**: no  | 
| IpAddress |  **Tipo:** `std::string` **Obligatorio**: no  | 
| PlayerData |  **Tipo:** `std::string` **Obligatorio**: no  | 
| PlayerId |  **Tipo:** `std::string` **Obligatorio**: no  | 
| PlayerSessionId |  **Tipo:** `std::string` **Obligatorio**: no  | 
| Puerto |  **Tipo:** `int` **Obligatorio**: no  | 
| Status |  Estado de la sesión de juego para filtrar los resultados. Cuando PlayerId se proporciona una PlayerSessionId o, no PlayerSessionStatusFilter tiene ningún efecto en la respuesta.  **Tipo:** una enumeración de `PlayerSessionStatus`. Entre los valores posibles se incluyen:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/gameliftservers/latest/developerguide/integration-server-sdk5-cpp-datatypes.html) **Obligatorio**: no  | 
| TerminationTime |  **Tipo:** `long` **Obligatorio**: no  | 
| DnsName |  **Tipo:** `std::string` **Obligatorio**: no  | 

## StartMatchBackfillOutcome
<a name="integration-server-sdk5-cpp-datatypes-startmatchbackfilloutcome"></a>

Este tipo de datos es el resultado de una acción y produce un objeto con las siguientes propiedades:


| Propiedades | Description (Descripción) | 
| --- | --- | 
| Resultado |  El resultado de la acción. **Tipo:** [StartMatchBackfillResult](#integration-server-sdk5-cpp-datatypes-startmatchbackfillresult) **Obligatorio**: no  | 
| ResultWithOwnership |   El resultado de la acción, expresado como un valor r, para que el código de llamada pueda tomar posesión del objeto.  **Tipo:** `StartMatchBackfillResult&&` **Obligatorio**: no  | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **Obligatorio**: no  | 

## StartMatchBackfillResult
<a name="integration-server-sdk5-cpp-datatypes-startmatchbackfillresult"></a>

Este tipo de datos es el resultado de una acción y produce un objeto con las siguientes propiedades:


| Propiedades | Description (Descripción) | 
| --- | --- | 
| TicketId |  Un identificador único de un ticket de emparejamiento Si no se especifica ningún ID de ticket aquí, Amazon GameLift Servers generará uno en forma de UUID. Utilice este identificador para realizar un seguimiento del estado del ticket de relleno del emparejamiento y recuperar los resultados del emparejamiento.  **Tipo:** `std::string` **Obligatorio**: no  | 

## GetComputeCertificateOutcome
<a name="integration-server-sdk5-cpp-datatypes-getcomputecertificateoutcome"></a>

Este tipo de datos es el resultado de una acción y produce un objeto con las siguientes propiedades:


| Propiedades | Description (Descripción) | 
| --- | --- | 
| Resultado |  El resultado de la acción. **Tipo:** [GetComputeCertificateResult](#integration-server-sdk5-cpp-datatypes-getcomputecertificateresult) **Obligatorio**: no   | 
| ResultWithOwnership |   El resultado de la acción, expresado como un valor r, para que el código de llamada pueda tomar posesión del objeto.  **Tipo:** `Aws::GameLift::Server::Model::GetComputeCertificateResult&&` **Obligatorio**: no  | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **Obligatorio**: no  | 

## GetComputeCertificateResult
<a name="integration-server-sdk5-cpp-datatypes-getcomputecertificateresult"></a>

La ruta al certificado TLS de su recurso informático y el nombre de host del equipo.


| Propiedades | Description (Descripción) | 
| --- | --- | 
| CertificatePath |  La ruta al certificado TLS de su recurso informático. Cuando se utiliza una flota administrada por Amazon GameLift Servers, la ruta contiene los siguientes elementos:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/gameliftservers/latest/developerguide/integration-server-sdk5-cpp-datatypes.html) **Tipo:** `std::string` **Obligatorio**: no  | 
| ComputeName |  El nombre del recurso informático. **Tipo:** `std::string` **Obligatorio**: no  | 

## GetFleetRoleCredentialsOutcome
<a name="integration-server-sdk5-cpp-datatypes-getfleetrolecredentialsoutcome"></a>

Este tipo de datos es el resultado de una acción y produce un objeto con las siguientes propiedades:


| Propiedades | Description (Descripción) | 
| --- | --- | 
| Resultado |  El resultado de la acción. **Tipo:** [GetFleetRoleCredentialsResult](#integration-server-sdk5-cpp-datatypes-getfleetrolecredentialsresult) **Obligatorio**: no   | 
| ResultWithOwnership |   El resultado de la acción, expresado como un valor r, para que el código de llamada pueda tomar posesión del objeto.  **Tipo:** `Aws::GameLift::Server::Model::GetFleetRoleCredentialsResult` **Obligatorio**: no  | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **Obligatorio**: no  | 

## GetFleetRoleCredentialsResult
<a name="integration-server-sdk5-cpp-datatypes-getfleetrolecredentialsresult"></a>


| Propiedades | Description (Descripción) | 
| --- | --- | 
| AccessKeyId |  El ID de la clave de acceso para autenticar y proporcionar acceso a los recursos de AWS . **Tipo:** `string` **Obligatorio**: no  | 
| AssumedRoleId |  El ID del usuario al que pertenece el rol de servicio. **Tipo:** `string` **Obligatorio**: no  | 
| AssumedRoleUserArn |  El nombre de recurso de Amazon (ARN) del usuario al que pertenece el rol de servicio. **Tipo:** `string` **Obligatorio**: no  | 
| Expiration |  El tiempo que queda hasta que caduquen las credenciales de la sesión. **Tipo:** `DateTime` **Obligatorio**: no  | 
| SecretAccessKey |  El ID de clave de acceso secreta para la autenticación. **Tipo:** `string` **Obligatorio**: no  | 
| SessionToken |  Un token para identificar la sesión activa actual que interactúa con tus AWS recursos. **Tipo:** `string` **Obligatorio**: no  | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [GameLiftError](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-gamelifterror) **Obligatorio**: no  | 

## Iniciar SDKOutcome
<a name="integration-server-sdk5-cpp-datatypes-initsdkoutcome"></a>

**nota**  
`InitSDKOutcome` se devuelve solo cuando compila el SDK con la marca `std`. Si realiza la compilación con la marca `nostd`, se devuelve [GenericOutcome](#integration-server-sdk5-cpp-datatypes-genericoutcome) en su lugar.


| Propiedades | Description (Descripción) | 
| --- | --- | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **Obligatorio**: no  | 

## GameLiftError
<a name="integration-server-sdk5-cpp-datatypes-gamelifterror"></a>


| Propiedades | Description (Descripción) | 
| --- | --- | 
| ErrorType |  Tipo de error. **Tipo:** una [enumeración](#integration-server-sdk5-cpp-dataypes-enums) de `GameLiftErrorType`. **Obligatorio**: no   | 
| ErrorName |  El nombre del error.  **Tipo:** `std::string`  **Obligatorio**: no   | 
| ErrorMessage |  Mensaje de error.  **Tipo:** `std::string`  **Obligatorio**: no   | 

## Enums
<a name="integration-server-sdk5-cpp-dataypes-enums"></a>

Las enumeraciones definidas para el SDK del servidor para Amazon GameLift Servers (C\$1\$1) se definen de la siguiente manera: 

**GameLiftErrorType**  
Valor de cadena que indica el tipo de error. Los valores válidos son:  
+ **BAD\$1REQUEST\$1EXCEPTION** 
+ **GAMESESSION\$1ID\$1NOT\$1SET**: no se ha establecido el ID de sesión de juego. 
+ **INTERNAL\$1SERVICE\$1EXCEPTION** 
+ **LOCAL\$1CONNECTION\$1FAILED**: se ha producido un error en la conexión local a Amazon GameLift Servers. 
+ **NETWORK\$1NOT\$1INITIALIZED**: la red no se ha inicializado. 
+ **SERVICE\$1CALL\$1FAILED: se produjo** un error en una llamada a un servicio. AWS 
+ **WEBSOCKET\$1CONNECT\$1FAILURE** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1FORBIDDEN** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1INVALID\$1URL** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1TIMEOUT** 
+ **ALREADY\$1INITIALIZED**: el servidor o cliente de Amazon GameLift Servers ya se inicializó con Initialize(). 
+ **FLEET\$1MISMATCH**: la flota de destino no coincide con la flota de gameSession o playerSession. 
+ **GAMELIFT\$1CLIENT\$1NOT\$1INITIALIZED**: el cliente de Amazon GameLift Servers no se ha inicializado. 
+ **GAMELIFT\$1SERVER\$1NOT\$1INITIALIZED**: el servidor de Amazon GameLift Servers no se ha inicializado. 
+ **GAME\$1SESSION\$1ENDED\$1FAILED**: el SDK del servidor de Amazon GameLift Servers no pudo ponerse en contacto con el servicio para informar de que la sesión de juego había finalizado. 
+ **GAME\$1SESSION\$1NOT\$1READY**: no se activó la sesión de juego del servidor de Amazon GameLift Servers. 
+ **GAME\$1SESSION\$1READY\$1FAILED**: el SDK del servidor de Amazon GameLift Servers no pudo ponerse en contacto con el servicio para informar de que la sesión de juego estaba lista. 
+ **INITIALIZATION\$1MISMATCH**: se llamó a un método de cliente después de Server::Initialize() o viceversa. 
+ **NOT\$1INITIALIZED**: el servidor o el cliente de Amazon GameLift Servers no se han iniciado con Initialize(). 
+ **NO\$1TARGET\$1ALIASID\$1SET**: no se ha establecido un aliasId de destino. 
+ **NO\$1TARGET\$1FLEET\$1SET**: no se ha establecido una flota de destino. 
+ **PROCESS\$1ENDING\$1FAILED**: el SDK del servidor de Amazon GameLift Servers no pudo contactar con el servicio para informar de que el proceso está finalizando. 
+ **PROCESS\$1NOT\$1ACTIVE** — El proceso del servidor aún no está activo, no está vinculado a un y no puede aceptarlo ni procesarlo. GameSession PlayerSessions 
+ **PROCESS\$1NOT\$1READY**: el proceso de servidor aún no está listo para activarse. 
+ **PROCESS\$1READY\$1FAILED**: el SDK del servidor de Amazon GameLift Servers no pudo contactar con el servicio para informar de que el proceso está listo. 
+ **SDK\$1VERSION\$1DETECTION\$1FAILED**: no se pudo detectar la versión del SDK. 
+ **STX\$1CALL\$1FAILED: no se pudo realizar una llamada** al componente de backend del servidor. XStx 
+ **STX\$1INITIALIZATION\$1FAILED: el componente de backend del servidor no se pudo inicializar**. XStx 
+ **UNEXPECTED\$1PLAYER\$1SESSION**: el servidor ha detectado una sesión de jugador no registrada. 
+ **WEBSOCKET\$1CONNECT\$1FAILURE** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1FORBIDDEN** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1INVALID\$1URL** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1TIMEOUT** 
+ **WEBSOCKET\$1RETRIABLE\$1SEND\$1MESSAGE\$1FAILURE**: error recuperable al enviar un mensaje al servicio. GameLift WebSocket 
+ **WEBSOCKET\$1SEND\$1MESSAGE\$1FAILURE**: error al enviar un mensaje al GameLift servicio. WebSocket 
+ **MATCH\$1BACKFILL\$1REQUEST\$1VALIDATION**: se ha producido un error en la validación de la solicitud. 
+ **PLAYER\$1SESSION\$1REQUEST\$1VALIDATION**: se ha producido un error en la validación de la solicitud. 

**PlayerSessionCreationPolicy**  
Valor de cadena que indica si la sesión de juego acepta jugadores nuevos. Los valores válidos son:   
+ **ACCEPT\$1ALL**: se aceptan todas las sesiones de jugador nuevas. 
+ **DENY\$1ALL**: se rechazan todas las sesiones de jugador nuevas. 
+ **NOT\$1SET**: la sesión de juego no está configurada para aceptar o denegar sesiones de nuevos jugadores. 

[SDK 5.x del servidor de C\$1\$1 para Amazon GameLift Servers: tipos de datos](integration-server-sdk5-cpp-datatypes.md)

**Topics**
+ [SDK 5.x del servidor de C\$1\$1 para Amazon GameLift Servers: tipos de datos](integration-server-sdk5-cpp-datatypes.md)
+ [GetSdkVersion()](#integration-server-sdk5-cpp-getsdkversion)
+ [InitMetrics()](#integration-server-sdk5-cpp-initmetrics)
+ [InitSDK()](#integration-server-sdk5-cpp-initsdk)
+ [InitSDK()](#integration-server-sdk5-cpp-initsdk-anywhere)
+ [ProcessReady()](#integration-server-sdk5-cpp-processready)
+ [ProcessReadyAsync()](#integration-server-sdk5-cpp-processreadyasync)
+ [ProcessEnding()](#integration-server-sdk5-cpp-processending)
+ [ActivateGameSession()](#integration-server-sdk5-cpp-activategamesession)
+ [UpdatePlayerSessionCreationPolicy()](#integration-server-sdk5-cpp-updateplayersessioncreationpolicy)
+ [GetGameSessionId()](#integration-server-sdk5-cpp-getgamesessionid)
+ [GetTerminationTime()](#integration-server-sdk5-cpp-getterm)
+ [AcceptPlayerSession()](#integration-server-sdk5-cpp-acceptplayersession)
+ [RemovePlayerSession()](#integration-server-sdk5-cpp-removeplayersession)
+ [DescribePlayerSessions()](#integration-server-sdk5-cpp-describeplayersessions)
+ [StartMatchBackfill()](#integration-server-sdk5-cpp-startmatchbackfill)
+ [StopMatchBackfill()](#integration-server-sdk5-cpp-stopmatchbackfill)
+ [GetComputeCertificate()](#integration-server-sdk5-cpp-getcomputecertificate)
+ [GetFleetRoleCredentials()](#integration-server-sdk5-cpp-getfleetrolecredentials)
+ [Destroy()](#integration-server-sdk5-cpp-ref-destroy)

## GetSdkVersion()
<a name="integration-server-sdk5-cpp-getsdkversion"></a>

Devuelve el número de versión actual del SDK integrado en el proceso del servidor.

### Sintaxis
<a name="integration-server-sdk5-cpp-getsdkversion-syntax"></a>

```
Aws::GameLift::AwsStringOutcome Server::GetSdkVersion();
```

### Valor devuelto
<a name="integration-server-sdk5-cpp-getsdkversion-return"></a>

Si funciona correctamente, devuelve la versión del SDK actual como objeto [AwsStringOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-awsstringoutcome). El objeto devuelto incluye el número de versión (por ejemplo, `5.0.0`). Si no funciona, devuelve un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-cpp-getsdkversion-example"></a>

```
Aws::GameLift::AwsStringOutcome SdkVersionOutcome = Aws::GameLift::Server::GetSdkVersion(); 
```

## InitMetrics()
<a name="integration-server-sdk5-cpp-initmetrics"></a>

Inicializa el sistema de métricas para recopilar los datos de rendimiento del servidor e informar sobre ellos. Para obtener unos resultados óptimos, llame a este método antes que [InitSDK()](#integration-server-sdk5-cpp-initsdk) para habilitar la recopilación de métricas durante la inicialización del SDK.

### Sintaxis
<a name="integration-server-sdk5-cpp-initmetrics-syntax"></a>

```
Aws::GameLift::GenericOutcome InitMetrics();
Aws::GameLift::GenericOutcome InitMetrics(const Aws::GameLift::Server::MetricsParameters &metricsParameters);
```

### Parameters
<a name="integration-server-sdk5-cpp-initmetrics-parameter"></a>

[MetricsParameters](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-metricsparameters) (opcional)  
Parámetros de configuración de la recopilación de métricas. Si no se proporciona, utiliza valores predeterminados que pueden ser anulados por variables de entorno.

### Valor devuelto
<a name="integration-server-sdk5-cpp-initmetrics-return"></a>

Si se ejecuta correctamente, devuelve un objeto [GenericOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-genericoutcome) que indica un resultado correcto. Si no funciona, devuelve un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-cpp-initmetrics-example"></a>

```
// Initialize with default parameters (uses environment variables if available)
// Defaults: localhost:8125 for StatsD, localhost:8126 for crash reporter
// FlushInterval: 10000ms, MaxPacketSize: 512 bytes
Aws::GameLift::GenericOutcome outcome = Aws::GameLift::Server::InitMetrics();
if (outcome.IsSuccess()) {
    // Metrics system initialized successfully
}

// Initialize with custom parameters
Aws::GameLift::Server::MetricsParameters metricsParams("localhost", 8125, "crash-host", 8126, 5000, 1024);
Aws::GameLift::GenericOutcome customOutcome = Aws::GameLift::Server::InitMetrics(metricsParams);
if (customOutcome.IsSuccess()) {
    // Metrics system initialized with custom parameters
}
```

## InitSDK()
<a name="integration-server-sdk5-cpp-initsdk"></a>

Inicializa el SDK de Amazon GameLift Servers. Llame a este método en el lanzamiento, antes de cualquier otro paso de inicialización relacionado con Amazon GameLift Servers. Esta acción lee los parámetros del servidor desde el entorno de host para configurar la comunicación entre el proceso del servidor de juegos y el servicio Amazon GameLift Servers. Utiliza un token de idempotencia, por lo que puede volver a intentar esta llamada de forma segura cuando falle.

Si la compilación del servidor de juegos se va a implementar sin el agente de Amazon GameLift Servers en una flota de Amazon GameLift Servers Anywhere o flota de contenedores, llame a [InitSDK()](#integration-server-sdk5-cpp-initsdk-anywhere) y especifique un conjunto de parámetros de servidor.

### Sintaxis
<a name="integration-server-sdk5-cpp-initsdk-syntax"></a>

```
Server::InitSDKOutcome Server::initSdkOutcome = InitSDK();
```

### Valor devuelto
<a name="integration-server-sdk5-cpp-initsdk-return"></a>

Devuelve un objeto [Iniciar SDKOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-initsdkoutcome) que indica si el proceso del servidor está listo para llamar a [ProcessReady()](#integration-server-sdk5-cpp-processready). 

### Ejemplo
<a name="integration-server-sdk5-cpp-initsdk-example"></a>

```
//Call InitSDK to establish a local connection with the Amazon GameLift Servers Agent to enable further communication.
Aws::GameLift::Server::InitSDKOutcome initSdkOutcome = 
  Aws::GameLift::Server::InitSDK();
```

## InitSDK()
<a name="integration-server-sdk5-cpp-initsdk-anywhere"></a>

Inicializa el SDK de Amazon GameLift Servers. Llame a este método en el lanzamiento, antes de cualquier otro paso de inicialización relacionado con Amazon GameLift Servers. Para esta acción, es necesario que un conjunto de parámetros del servidor establezca la comunicación entre el proceso del servidor de juegos y el servicio Amazon GameLift Servers. Utiliza un token de idempotencia, por lo que puede volver a intentar esta llamada de forma segura cuando falle.

Si la compilación del servidor de juegos se va a implementar en una flota de EC2 administrada por Amazon GameLift Servers o en una flota de Amazon GameLift Servers Anywhere o flota de contenedores con el agente de Amazon GameLift Servers, llame a [InitSDK()](#integration-server-sdk5-cpp-initsdk) sin especificar los parámetros del servidor.

### Sintaxis
<a name="integration-server-sdk5-cpp-initsdk-anywhere-syntax"></a>

```
Server::InitSDKOutcome Server::initSdkOutcome = InitSDK(serverParameters);
```

### Parameters
<a name="integration-server-sdk5-cpp-initsdk-anywhere-parameter"></a>

[ServerParameters](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-serverparameters)  
Para inicializar un servidor de juegos en una flota de Amazon GameLift Servers Anywhere, cree un objeto `ServerParameters` con la siguiente información:  
+ La URL WebSocket utilizada para conectarse a tu servidor de juegos. 
+ El ID del proceso utilizado para alojar su servidor de juegos. 
+ El ID del proceso utilizado para alojar los procesos del servidor de juegos. 
+ El ID de la flota de Amazon GameLift Servers que contiene su recurso de computación de Amazon GameLift Servers Anywhere.
+ El token de autorización generado por la operación de Amazon GameLift Servers. 

### Valor devuelto
<a name="integration-server-sdk5-cpp-initsdk-anywhere-return"></a>

Devuelve un objeto [Iniciar SDKOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-initsdkoutcome) que indica si el proceso del servidor está listo para llamar a [ProcessReady()](#integration-server-sdk5-cpp-processready). 

**nota**  
Si las llamadas a `InitSDK()` no funcionan en las compilaciones de juegos implementadas en las flotas de Anywhere, compruebe el parámetro `ServerSdkVersion` que se utiliza al crear el recurso de compilación. Debe establecer este valor de forma explícita en la versión del SDK del servidor en uso. El valor predeterminado de este parámetro es 4.x, que no es compatible. Para resolver este problema, cree una compilación nueva e impleméntela en una flota nueva.

### Ejemplo
<a name="integration-server-sdk5-cpp-initsdk-anywhere-example"></a>

Ejemplo de Amazon GameLift Servers Anywhere

```
//Define the server parameters
std::string websocketUrl = "wss://us-west-1.api.amazongamelift.com";
std::string processId = "PID1234";
std::string fleetId = "arn:aws:gamelift:us-west-1:111122223333:fleet/fleet-9999ffff-88ee-77dd-66cc-5555bbbb44aa";
std::string hostId = "HardwareAnywhere";
std::string authToken = "1111aaaa-22bb-33cc-44dd-5555eeee66ff";
Aws::GameLift::Server::Model::ServerParameters serverParameters = 
  Aws::GameLift::Server::Model::ServerParameters(webSocketUrl, authToken, fleetId, hostId, processId);

//Call InitSDK to establish a local connection with the Amazon GameLift Servers Agent to enable further communication.
Aws::GameLift::Server::InitSDKOutcome initSdkOutcome = Aws::GameLift::Server::InitSDK(serverParameters);
```

## ProcessReady()
<a name="integration-server-sdk5-cpp-processready"></a>

Notifica a Amazon GameLift Servers que el proceso del servidor de juegos está listo para alojar sesiones de juego. Llame a este método después de invocar [InitSDK()](#integration-server-sdk5-cpp-initsdk). Se debe llamar a este método solo una vez por proceso.

### Sintaxis
<a name="integration-server-sdk5-cpp-processready-syntax"></a>

`GenericOutcome ProcessReady(const Aws::GameLift::Server::ProcessParameters &processParameters);`

### Parameters
<a name="integration-server-sdk5-cpp-processready-parameter"></a>

**processParameters**  
Es un objeto [ProcessParameters](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-process) que comunica la siguiente información acerca del proceso del servidor:  
+ Nombres de métodos de devolución de llamada, implementados en el código de servidor de juegos, que el servicio Amazon GameLift Servers invoca para comunicarse con el proceso del servidor.
+ Número de puerto de escucha del servidor de proceso.
+ Ruta a cualquier archivo específico de la sesión de juego que desea que Amazon GameLift Servers capture y almacene.

### Valor devuelto
<a name="integration-server-sdk5-cpp-processready-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-cpp-processready-example"></a>

Este ejemplo ilustra las implementaciones tanto de la función de llamada [ProcessReady()](#integration-server-sdk5-cpp-processready) como de la función de delegación.

```
// Set parameters and call ProcessReady
std::string serverLog("serverOut.log");        // Example of a log file written by the game server
std::vector<std::string> logPaths;
logPaths.push_back(serverLog);
int listenPort = 9339;

Aws::GameLift::Server::ProcessParameters processReadyParameter = 
  Aws::GameLift::Server::ProcessParameters(
    std::bind(&Server::onStartGameSession, this, std::placeholders::_1),
    std::bind(&Server::onProcessTerminate, this), 
    std::bind(&Server::OnHealthCheck, this), 
    std::bind(&Server::OnUpdateGameSession, this), 
    listenPort, 
    Aws::GameLift::Server::LogParameters(logPaths)
  ); 

Aws::GameLift::GenericOutcome outcome = 
  Aws::GameLift::Server::ProcessReady(processReadyParameter);

// Implement callback functions
void Server::onStartGameSession(Aws::GameLift::Model::GameSession myGameSession)
{
  // game-specific tasks when starting a new game session, such as loading map
  GenericOutcome outcome = 
    Aws::GameLift::Server::ActivateGameSession (maxPlayers);
}

void Server::onProcessTerminate()
{
  // game-specific tasks required to gracefully shut down a game session, 
  // such as notifying players, preserving game state data, and other cleanup
  GenericOutcome outcome = Aws::GameLift::Server::ProcessEnding();
}

bool Server::onHealthCheck()
{
  bool health;
  // complete health evaluation within 60 seconds and set health
  return health;
}
```

## ProcessReadyAsync()
<a name="integration-server-sdk5-cpp-processreadyasync"></a>

Notifica al servicio Amazon GameLift Servers que el proceso del servidor está listo para alojar sesiones de juego. Este método debe llamarse después de que el proceso del servidor esté listo para alojar una sesión de juego. Los parámetros especifican los nombres de funciones de devolución de llamada para que Amazon GameLift Servers llame en determinadas circunstancias. El código de servidor de juegos debe implementar estas funciones.

La llamada es asíncrona. Para realizar una llamada síncrona, utilice [ProcessReady()](#integration-server-sdk5-cpp-processready). Consulte [Inicialización del proceso del servidor](gamelift-sdk-server-api.md#gamelift-sdk-server-initialize) para obtener más detalles.

### Sintaxis
<a name="integration-server-sdk5-cpp-processreadyasync-syntax"></a>

```
GenericOutcomeCallable ProcessReadyAsync(
    const Aws::GameLift::Server::ProcessParameters &processParameters);
```

### Parameters
<a name="integration-server-sdk5-cpp-processreadyasync-parameter"></a>

**processParameters**  
Es un objeto [ProcessParameters](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-process) que comunica la siguiente información acerca del proceso del servidor:  
+ Nombres de métodos de devolución de llamada, implementados en el código de servidor de juegos, que el servicio Amazon GameLift Servers invoca para comunicarse con el proceso del servidor.
+ Número de puerto de escucha del servidor de proceso.
+ Ruta a cualquier archivo específico de la sesión de juego que desea que Amazon GameLift Servers capture y almacene.
Obligatorio: sí

### Valor devuelto
<a name="integration-server-sdk5-cpp-processreadyasync-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-cpp-processreadyasync-example"></a>

```
// Set parameters and call ProcessReady
std::string serverLog("serverOut.log");        // This is an example of a log file written by the game server
std::vector<std::string> logPaths;
logPaths.push_back(serverLog);
int listenPort = 9339;

Aws::GameLift::Server::ProcessParameters processReadyParameter = 
  Aws::GameLift::Server::ProcessParameters(std::bind(&Server::onStartGameSession, this, std::placeholders::_1),
  std::bind(&Server::onProcessTerminate, this), std::bind(&Server::OnHealthCheck, this),
  std::bind(&Server::OnUpdateGameSession, this), listenPort, Aws::GameLift::Server::LogParameters(logPaths));

Aws::GameLift::GenericOutcomeCallable outcome = 
  Aws::GameLift::Server::ProcessReadyAsync(processReadyParameter);

// Implement callback functions
void onStartGameSession(Aws::GameLift::Model::GameSession myGameSession)
{
  // game-specific tasks when starting a new game session, such as loading map
  GenericOutcome outcome = Aws::GameLift::Server::ActivateGameSession (maxPlayers);
}

void onProcessTerminate()
{
  // game-specific tasks required to gracefully shut down a game session, 
  // such as notifying players, preserving game state data, and other cleanup
  GenericOutcome outcome = Aws::GameLift::Server::ProcessEnding();
}

bool onHealthCheck()
{
  // perform health evaluation and complete within 60 seconds
  return health;
}
```

## ProcessEnding()
<a name="integration-server-sdk5-cpp-processending"></a>

Informa a Amazon GameLift Servers de que el proceso del servidor está finalizando. Llame a este método después de realizar todas las demás tareas de limpieza (lo que incluye el cierre de la sesión de juegos activa) y antes de finalizar el proceso. Según el resultado de `ProcessEnding()`, el proceso finaliza con éxito (0) o error (-1) y genera un evento de flota. Si el proceso finaliza con un error, el evento de flota generado será `SERVER_PROCESS_TERMINATED_UNHEALTHY`.

### Sintaxis
<a name="integration-server-sdk5-cpp-processending-syntax"></a>

```
Aws::GameLift::GenericOutcome processEndingOutcome = Aws::GameLift::Server::ProcessEnding();
```

### Valor devuelto
<a name="integration-server-sdk5-cpp-processending-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-cpp-processending-example"></a>

En este ejemplo, se llama a `ProcessEnding()` y `Destroy()` antes de finalizar el proceso del servidor con un código de salida correcto o erróneo.

```
Aws::GameLift::GenericOutcome processEndingOutcome = Aws::GameLift::Server::ProcessEnding();
Aws::GameLift::Server::Destroy();

// Exit the process with success or failure
if (processEndingOutcome.IsSuccess()) {
  exit(0);
}
else {
  cout << "ProcessEnding() failed. Error: " << processEndingOutcome.GetError().GetErrorMessage();
  exit(-1);
}
```

## ActivateGameSession()
<a name="integration-server-sdk5-cpp-activategamesession"></a>

Notifica a Amazon GameLift Servers que el proceso del servidor ha iniciado una sesión de juego y que está listo para recibir las conexiones de los jugadores. Esta acción debe llamarse como parte de la función de devolución de llamada `onStartGameSession()`, después de la inicialización de todas las sesiones de juego.

### Sintaxis
<a name="integration-server-sdk5-cpp-activategamesession-syntax"></a>

```
Aws::GameLift::GenericOutcome activateGameSessionOutcome = Aws::GameLift::Server::ActivateGameSession();
```

### Valor devuelto
<a name="integration-server-sdk5-cpp-activategamesession-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-cpp-activategamesession-example"></a>

Este ejemplo muestra cómo se llama a `ActivateGameSession()` como parte de la función de delegación `onStartGameSession()`. 

```
void onStartGameSession(Aws::GameLift::Model::GameSession myGameSession)
{
  // game-specific tasks when starting a new game session, such as loading map
  GenericOutcome outcome = Aws::GameLift::Server::ActivateGameSession();
}
```

## UpdatePlayerSessionCreationPolicy()
<a name="integration-server-sdk5-cpp-updateplayersessioncreationpolicy"></a>

Actualiza la capacidad de la sesión de juego actual para aceptar sesiones de jugador nuevas. Una sesión de juego se puede configurar para que acepte o deniegue todas las sesiones nuevas de los jugadores.

### Sintaxis
<a name="integration-server-sdk5-cpp-updateplayersessioncreationpolicy-syntax"></a>

```
GenericOutcome UpdatePlayerSessionCreationPolicy(Aws::GameLift::Model::PlayerSessionCreationPolicy newPlayerSessionPolicy);
```

### Parameters
<a name="integration-server-sdk5-cpp-updateplayersessioncreationpolicy-parameter"></a>

**playerCreationSessionPolítica**  
Tipo: valor de `PlayerSessionCreationPolicy` [enumeración](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-enums).  
Obligatorio: sí

### Valor devuelto
<a name="integration-server-sdk5-cpp-updateplayersessioncreationpolicy-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-cpp-updateplayersessioncreationpolicy-example"></a>

Este ejemplo establece la política de participación en la sesión de juego actual para aceptar todos los jugadores.

```
Aws::GameLift::GenericOutcome outcome = 
  Aws::GameLift::Server::UpdatePlayerSessionCreationPolicy(Aws::GameLift::Model::PlayerSessionCreationPolicy::ACCEPT_ALL);
```

## GetGameSessionId()
<a name="integration-server-sdk5-cpp-getgamesessionid"></a>

Recupera el ID de la sesión de juego alojada por el proceso del servidor. 

En el caso de los procesos inactivos que no se activan con una sesión de juego, la llamada devuelve [GameLiftError](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-gamelifterror).

### Sintaxis
<a name="integration-server-sdk5-cpp-getgamesessionid-syntax"></a>

```
AwsStringOutcome GetGameSessionId()
```

### Parameters
<a name="integration-server-sdk5-cpp-getgamesessionid-parameter"></a>

Esta acción no tiene parámetros.

### Valor devuelto
<a name="integration-server-sdk5-cpp-getgamesessionid-return"></a>

Si funciona correctamente, devuelve el ID de sesión del juego como objeto [AwsStringOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-awsstringoutcome). Si no funciona, devuelve un mensaje de error.

En el caso de los procesos inactivos que no se activan con una sesión de juego, la llamada devuelve `Success`=`True` y `GameSessionId`=`""`.

### Ejemplo
<a name="integration-server-sdk5-cpp-getgamesessionid-example"></a>

```
Aws::GameLift::AwsStringOutcome sessionIdOutcome = Aws::GameLift::Server::GetGameSessionId();
```

## GetTerminationTime()
<a name="integration-server-sdk5-cpp-getterm"></a>

Devuelve la hora a la que está programada el cierre de un proceso de servidor, si hay una hora de terminación disponible. Un proceso del servidor realiza esta acción después de recibir una devolución de llamada `onProcessTerminate()` desde Amazon GameLift Servers. Amazon GameLift Servers llama a `onProcessTerminate()` por los motivos siguientes: 
+ Cuando el proceso del servidor informa de un mal estado o no responde a Amazon GameLift Servers.
+ Al finalizar la instancia durante un evento de reducción vertical.
+ [Cuando se finaliza una instancia debido a la interrupción de una instancia de spot](spot-tasks.md).

### Sintaxis
<a name="integration-server-sdk5-cpp-getterm-syntax"></a>

```
AwsDateTimeOutcome GetTerminationTime()
```

### Valor devuelto
<a name="integration-server-sdk5-cpp-getterm-return"></a>

Si el proceso se realiza correctamente, devuelve la hora de terminación como un objeto `AwsDateTimeOutcome`. El valor es la hora de terminación expresado en ciclos transcurridos desde `0001 00:00:00`. Por ejemplo, el valor de la fecha y hora `2020-09-13 12:26:40 -000Z` es igual a `637355968000000000` ciclos. Si no hay una hora de terminación disponible, devuelve un mensaje de error.

Si el proceso no ha recibido un ProcessParameters. OnProcessTerminate() devolución de llamada, se devuelve un mensaje de error. Para obtener más información sobre cómo cerrar un proceso de servidor, consulte [Respuesta a una notificación de cierre del proceso del servidor](gamelift-sdk-server-api.md#gamelift-sdk-server-terminate).

### Ejemplo
<a name="integration-server-sdk5-cpp-getterm-example"></a>

```
Aws::GameLift::AwsLongOutcome TermTimeOutcome = Aws::GameLift::Server::GetTerminationTime(); 
```

## AcceptPlayerSession()
<a name="integration-server-sdk5-cpp-acceptplayersession"></a>

Notifica a Amazon GameLift Servers que un jugador con el ID de sesión de jugador especificado se ha conectado al proceso del servidor y requiere validación. Amazon GameLift Servers verifica que el ID de sesión de jugador es válido. Una vez validada la sesión del jugador, Amazon GameLift Servers cambia el estado del espacio de jugador de RESERVADO a ACTIVO. 

### Sintaxis
<a name="integration-server-sdk5-cpp-acceptplayersession-syntax"></a>

```
GenericOutcome AcceptPlayerSession(String playerSessionId)
```

### Parameters
<a name="integration-server-sdk5-cpp-acceptplayersession-parameter"></a>

playerSessionId  
ID único emitido por Amazon GameLift Servers cuando se crea una nueva sesión de jugador.

### Valor devuelto
<a name="integration-server-sdk5-cpp-acceptplayersession-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error. 

### Ejemplo
<a name="integration-server-sdk5-cpp-acceptplayersession-example"></a>

Este ejemplo gestiona una solicitud de conexión que incluye la validación y el rechazo de una sesión de jugador no válida. IDs

```
void ReceiveConnectingPlayerSessionID (Connection& connection, const std::string& playerSessionId)
{
  Aws::GameLift::GenericOutcome connectOutcome = Aws::GameLift::Server::AcceptPlayerSession(playerSessionId);
  if(connectOutcome.IsSuccess())
  {
    connectionToSessionMap.emplace(connection, playerSessionId);
    connection.Accept();
  }
  else 
  {
    connection.Reject(connectOutcome.GetError().GetMessage();
  }       
}
```

## RemovePlayerSession()
<a name="integration-server-sdk5-cpp-removeplayersession"></a>

Informa a Amazon GameLift Servers de que un jugador se ha desconectado del proceso del servidor. Como respuesta, Amazon GameLift Servers cambia el espacio del jugador para que esté disponible. 

### Sintaxis
<a name="integration-server-sdk5-cpp-removeplayersession-syntax"></a>

```
GenericOutcome RemovePlayerSession(String playerSessionId)
```

### Parameters
<a name="integration-server-sdk5-cpp-removeplayersession-parameter"></a>

**`playerSessionId`**  
ID único emitido por Amazon GameLift Servers cuando se crea una nueva sesión de jugador.

### Valor devuelto
<a name="integration-server-sdk5-cpp-removeplayersession-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-cpp-removeplayersession-example"></a>

```
Aws::GameLift::GenericOutcome disconnectOutcome = Aws::GameLift::Server::RemovePlayerSession(playerSessionId);
```

## DescribePlayerSessions()
<a name="integration-server-sdk5-cpp-describeplayersessions"></a>

Recupera datos de sesión de jugador, incluida la configuración, los metadatos de la sesión y los datos de jugador. Utilice este método para obtener información sobre los siguientes elementos:
+ Una sesión para un jugador
+ Todas las sesiones del jugador en una sesión de juego
+ Todas las sesiones de jugador están asociadas a un único ID de jugador

### Sintaxis
<a name="integration-server-sdk5-cpp-describeplayersessions-syntax"></a>

```
DescribePlayerSessionsOutcome DescribePlayerSessions(DescribePlayerSessionsRequest describePlayerSessionsRequest)
```

### Parameters
<a name="integration-server-sdk5-cpp-describeplayersessions-parameter"></a>

**[DescribePlayerSessionsRequest](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-playersessions)**  
Un objeto [DescribePlayerSessionsRequest](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-playersessions) que describe las sesiones de jugador que recuperar.

### Valor devuelto
<a name="integration-server-sdk5-cpp-describeplayersessions-return"></a>

Si funciona correctamente, devuelve un objeto [DescribePlayerSessionsOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-describeplayersessionsoutcome) que contiene un conjunto de objetos de sesión de jugador que se ajusta a los parámetros de la solicitud.

### Ejemplo
<a name="integration-server-sdk5-cpp-describeplayersessions-example"></a>

En este ejemplo se solicitan todas las sesiones de jugador conectadas activamente a una sesión de juego específica. Al omitir *NextToken*y establecer el valor *límite* en 10, Amazon GameLift Servers devuelve los registros de las sesiones de los primeros 10 jugadores que coincidan con la solicitud.

```
// Set request parameters
Aws::GameLift::Server::Model::DescribePlayerSessionsRequest request;
request.SetPlayerSessionStatusFilter(Aws::GameLift::Server::Model::PlayerSessionStatusMapper::GetNameForPlayerSessionStatus(Aws::GameLift::Server::Model::PlayerSessionStatus::Active));
request.SetLimit(10);
request.SetGameSessionId("the game session ID");    // can use GetGameSessionId()

// Call DescribePlayerSessions
Aws::GameLift::DescribePlayerSessionsOutcome playerSessionsOutcome = Aws::GameLift::Server::DescribePlayerSessions(request);
```

## StartMatchBackfill()
<a name="integration-server-sdk5-cpp-startmatchbackfill"></a>

Envía una solicitud para encontrar nuevos jugadores para ranuras abiertas en una sesión de juego creada con FlexMatch. Para obtener más información, consulte [Característica de reposición de FlexMatch](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html).

Esta acción es asíncrona. Si se emparejan nuevos jugadores, Amazon GameLift Servers ofrece datos actualizados del emparejador mediante la función de devolución de llamada `OnUpdateGameSession()`.

Un proceso del servidor solo puede tener una solicitud de reposición de emparejamiento activa a la vez. Para enviar una nueva solicitud, en primer lugar llame a [StopMatchBackfill()](#integration-server-sdk5-cpp-stopmatchbackfill) para cancelar la solicitud original.

### Sintaxis
<a name="integration-server-sdk5-cpp-startmatchbackfill-syntax"></a>

```
StartMatchBackfillOutcome StartMatchBackfill (StartMatchBackfillRequest startBackfillRequest);
```

### Parameters
<a name="integration-server-sdk5-cpp-startmatchbackfill-parameter"></a>

**[StartMatchBackfillRequest](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-startmatchbackfillrequest)**  
 StartMatchBackfillRequest Objeto que comunica la siguiente información:  
+ Un ID de ticket que se asignará a la solicitud de reposición. Esta información es opcional; si no se proporciona ningún ID, Amazon GameLift Servers generará uno.
+ El creador de emparejamientos al que se enviará la solicitud. El ARN de configuración completo es obligatorio. Este valor se encuentra en los datos del emparejador de la sesión de juego.
+ El ID de la sesión de juego que se va a reponer.
+ Datos del emparejador disponibles para los jugadores actuales de la sesión de juego.

### Valor devuelto
<a name="integration-server-sdk5-cpp-startmatchbackfill-return"></a>

Devuelve un objeto [StartMatchBackfillOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-startmatchbackfilloutcome) con el ID del ticket de reposición de emparejamiento o un error con un mensaje de error. 

### Ejemplo
<a name="integration-server-sdk5-cpp-startmatchbackfill-example"></a>

```
// Build a backfill request
std::vector<Player> players;
Aws::GameLift::Server::Model::StartMatchBackfillRequest startBackfillRequest;
startBackfillRequest.SetTicketId("1111aaaa-22bb-33cc-44dd-5555eeee66ff");  // optional, autogenerated if not provided
startBackfillRequest.SetMatchmakingConfigurationArn("arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MyMatchmakerConfig"); //from the game session matchmaker data
startBackfillRequest.SetGameSessionArn("the game session ARN");        // can use GetGameSessionId()
startBackfillRequest.SetPlayers(players);                                  // from the game session matchmaker data

// Send backfill request
Aws::GameLift::StartMatchBackfillOutcome backfillOutcome = 
  Aws::GameLift::Server::StartMatchBackfill(startBackfillRequest);

// Implement callback function for backfill
void Server::OnUpdateGameSession(Aws::GameLift::Server::Model::GameSession gameSession, Aws::GameLift::Server::Model::UpdateReason updateReason, std::string backfillTicketId)
{
  // handle status messages
  // perform game-specific tasks to prep for newly matched players
}
```

## StopMatchBackfill()
<a name="integration-server-sdk5-cpp-stopmatchbackfill"></a>

Cancela una solicitud de reposición de emparejamiento activa. Para obtener más información, consulte [Característica de reposición de FlexMatch](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html).

### Sintaxis
<a name="integration-server-sdk5-cpp-stopmatchbackfill-syntax"></a>

```
GenericOutcome StopMatchBackfill (StopMatchBackfillRequest stopBackfillRequest);
```

### Parameters
<a name="integration-server-sdk5-cpp-stopmatchbackfill-parameter"></a>

**[StopMatchBackfillRequest](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-stopmatchbackfillrequest)**  
Un StopMatchBackfillRequest objeto que identifique el billete de emparejamiento que se va a cancelar:   
+ ID del ticket que se asignará a la solicitud de reposición
+ El emparejador al que se envió la solicitud de reposición
+ La sesión de juego asociada a la solicitud de reposición.

### Valor devuelto
<a name="integration-server-sdk5-cpp-stopmatchbackfill-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-cpp-stopmatchbackfill-example"></a>

```
// Set backfill stop request parameters

Aws::GameLift::Server::Model::StopMatchBackfillRequest stopBackfillRequest;
stopBackfillRequest.SetTicketId("1111aaaa-22bb-33cc-44dd-5555eeee66ff");
stopBackfillRequest.SetGameSessionArn("the game session ARN"); // can use GetGameSessionId()
stopBackfillRequest.SetMatchmakingConfigurationArn("arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MyMatchmakerConfig");
// from the game session matchmaker data

Aws::GameLift::GenericOutcome stopBackfillOutcome = 
  Aws::GameLift::Server::StopMatchBackfill(stopBackfillRequest);
```

## GetComputeCertificate()
<a name="integration-server-sdk5-cpp-getcomputecertificate"></a>

Recupera la ruta al certificado TLS utilizado para cifrar la conexión de red entre el recurso de computación de Amazon GameLift Servers Anywhere y Amazon GameLift Servers. Puede utilizar la ruta del certificado al registrar el dispositivo informático en una flota de Amazon GameLift Servers Anywhere. Para obtener más información, consulte, [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html).

### Sintaxis
<a name="integration-server-sdk5-cpp-getcomputecertificate-syntax"></a>

```
GetComputeCertificateOutcome Server::GetComputeCertificate()
```

### Valor devuelto
<a name="integration-server-sdk5-cpp-getcomputecertificate-return"></a>

Devuelve [GetComputeCertificateOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-getcomputecertificateoutcome).

### Ejemplo
<a name="integration-server-sdk5-cpp-getcomputecertificate-example"></a>

```
Aws::GameLift::GetComputeCertificateOutcome certificate = Aws::GameLift::Server::GetComputeCertificate();
```

## GetFleetRoleCredentials()
<a name="integration-server-sdk5-cpp-getfleetrolecredentials"></a>

Recupera las credenciales del rol de IAM que autorizan a Amazon GameLift Servers a interactuar con otros Servicios de AWS. Para obtener más información, consulte [Conecta tu servidor de juegos Amazon GameLift Servers alojado a otros AWS recursos](gamelift-sdk-server-resources.md).

### Sintaxis
<a name="integration-server-sdk5-cpp-getfleetrolecredentials-syntax"></a>

```
GetFleetRoleCredentialsOutcome GetFleetRoleCredentials(GetFleetRoleCredentialsRequest request);
```

### Parameters
<a name="integration-server-sdk5-cpp-getfleetrolecredentials-parameters"></a>

[GetFleetRoleCredentialsRequest](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-getfleetrolecredentialsrequest)

### Valor devuelto
<a name="integration-server-sdk5-cpp-getfleetrolecredentials-return"></a>

Devuelve un objeto [GetFleetRoleCredentialsOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-getfleetrolecredentialsoutcome).

### Ejemplo
<a name="integration-server-sdk5-cpp-getfleetrolecredentials-example"></a>

```
// form the fleet credentials request 
Aws::GameLift::Server::Model::GetFleetRoleCredentialsRequest getFleetRoleCredentialsRequest; 
getFleetRoleCredentialsRequest.SetRoleArn("arn:aws:iam::123456789012:role/service-role/exampleGameLiftAction");

Aws::GameLift::GetFleetRoleCredentialsOutcome credentials = Aws::GameLift::Server::GetFleetRoleCredentials(getFleetRoleCredentialsRequest);
```

En este ejemplo, se muestra el uso del valor `RoleSessionName` opcional para asignar un nombre a la sesión de credenciales con fines de auditoría. Si no proporciona un nombre de sesión de rol, se utilizará el valor predeterminado *[host-id]* "*[fleet-id]*-».

```
// form the fleet credentials request 
Aws::GameLift::Server::Model::GetFleetRoleCredentialsRequest getFleetRoleCredentialsRequest; 
getFleetRoleCredentialsRequest.SetRoleArn("arn:aws:iam::123456789012:role/service-role/exampleGameLiftAction");
getFleetRoleCredentialsRequest.SetRoleSessionName("MyFleetRoleSession"); 

Aws::GameLift::GetFleetRoleCredentialsOutcome credentials = Aws::GameLift::Server::GetFleetRoleCredentials(getFleetRoleCredentialsRequest);
```

## Destroy()
<a name="integration-server-sdk5-cpp-ref-destroy"></a>

Libera de la memoria el SDK del servidor de juegos de Amazon GameLift Servers. Como práctica recomendada, llame a este método después de `ProcessEnding()` y antes de finalizar el proceso. Si utiliza una flota de Anywhere y no va a finalizar los procesos del servidor después de cada sesión de juego, llame a `Destroy()` y, a continuación, a `InitSDK()` para reinicializar antes de informar a Amazon GameLift Servers de que el proceso está listo para organizar una sesión de juego con `ProcessReady()`.

### Sintaxis
<a name="integration-server-sdk5-cpp-ref-destroy-syntax"></a>

```
GenericOutcome Aws::GameLift::Server::Destroy();
```

### Parameters
<a name="integration-server-sdk5-cpp-ref-destroy-parameter"></a>

No hay parámetros.

### Valor devuelto
<a name="integration-server-sdk5-cpp-ref-destroy-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-cpp-ref-destroy-example"></a>

```
Aws::GameLift::GenericOutcome processEndingOutcome = Aws::GameLift::Server::ProcessEnding();
Aws::GameLift::Server::Destroy();

// Exit the process with success or failure
if (processEndingOutcome.IsSuccess()) {
  exit(0);
}
else {
  cout << "ProcessEnding() failed. Error: " << processEndingOutcome.GetError().GetErrorMessage();
  exit(-1);
}
```

# SDK 5.x del servidor de C\$1 para Amazon GameLift Servers: acciones
<a name="integration-server-sdk5-csharp-actions"></a>

Utilice la referencia del SDK 5.x del servidor para integrar su juego multijugador para el alojamiento con Amazon GameLift Servers. Para obtener ayuda con el proceso de integración, consulte [Adición de Amazon GameLift Servers al servidor de juegos con el SDK del servidor](gamelift-sdk-server-api.md). Si utiliza el complemento de Amazon GameLift Servers para Unity, consulte también [Complemento de Amazon GameLift Servers para Unity (SDK 5.x del servidor)](unity-plug-in.md).

# SDK 5.x del servidor de C\$1 para Amazon GameLift Servers: tipos de datos
<a name="integration-server-sdk5-csharp-datatypes"></a>

Utilice la referencia del SDK 5.x del servidor de C\$1 de Amazon GameLift Servers para integrar su juego multijugador para el alojamiento con Amazon GameLift Servers. Para obtener ayuda con el proceso de integración, consulte [Adición de Amazon GameLift Servers al servidor de juegos con el SDK del servidor](gamelift-sdk-server-api.md). Si utiliza el complemento de Amazon GameLift Servers para Unity, consulte también [Complemento de Amazon GameLift Servers para Unity (SDK 5.x del servidor)](unity-plug-in.md).

[SDK 5.x del servidor de C\$1 para Amazon GameLift Servers: acciones](integration-server-sdk5-csharp-actions.md)

**Topics**
+ [LogParameters](#integration-server-sdk5-csharp-dataypes-log)
+ [MetricsParameters](#integration-server-sdk5-csharp-datatypes-metricsparameters)
+ [ProcessParameters](#integration-server-sdk5-csharp-dataypes-process)
+ [UpdateGameSession](#integration-server-sdk5-csharp-dataypes-updategamesession)
+ [GameSession](#integration-server-sdk5-csharp-dataypes-gamesession)
+ [ServerParameters](#integration-server-sdk5-csharp-dataypes-serverparameters)
+ [StartMatchBackfillRequest](#integration-server-sdk5-csharp-dataypes-startmatchbackfillrequest)
+ [Jugador](#integration-server-sdk5-csharp-dataypes-player)
+ [DescribePlayerSessionsRequest](#integration-server-sdk5-csharp-dataypes-playersessions)
+ [StopMatchBackfillRequest](#integration-server-sdk5-csharp-dataypes-stopmatchbackfillrequest)
+ [GetFleetRoleCredentialsRequest](#integration-server-sdk5-csharp-dataypes-getfleetrolecredentialsrequest)
+ [AttributeValue](#integration-server-sdk5-csharp-datatypes-attributevalue)
+ [AwsStringOutcome](#integration-server-sdk5-csharp-datatypes-awsstringoutcome)
+ [GenericOutcome](#integration-server-sdk5-csharp-datatypes-genericoutcome)
+ [MetricsManagerOutcome](#integration-server-sdk5-csharp-datatypes-metricsmanageroutcome)
+ [DescribePlayerSessionsOutcome](#integration-server-sdk5-csharp-datatypes-describeplayersessionsoutcome)
+ [DescribePlayerSessionsResult](#integration-server-sdk5-csharp-datatypes-describeplayersessionsresult)
+ [PlayerSession](#integration-server-sdk5-csharp-datatypes-playersession)
+ [StartMatchBackfillOutcome](#integration-server-sdk5-csharp-datatypes-startmatchbackfilloutcome)
+ [StartMatchBackfillResult](#integration-server-sdk5-csharp-datatypes-startmatchbackfillresult)
+ [GetComputeCertificateOutcome](#integration-server-sdk5-csharp-datatypes-getcomputecertificateoutcome)
+ [GetComputeCertificateResult](#integration-server-sdk5-csharp-datatypes-getcomputecertificateresult)
+ [GetFleetRoleCredentialsOutcome](#integration-server-sdk5-csharp-datatypes-getfleetrolecredentialsoutcome)
+ [GetFleetRoleCredentialsResult](#integration-server-sdk5-csharp-datatypes-getfleetrolecredentialsresult)
+ [AwsDateTimeOutcome](#integration-server-sdk5-csharp-datatypes-awsdatetimeoutcome)
+ [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror)
+ [Enums](#integration-server-sdk5-csharp-datatypes-enums)

## LogParameters
<a name="integration-server-sdk5-csharp-dataypes-log"></a>

Utilice este tipo de datos para identificar los archivos generados durante una sesión de juegos que desee cargar en Amazon GameLift Servers cuando finalice la sesión de juego. El servidor de juegos comunica `LogParameters to` a Amazon GameLift Servers en una llamada a [ProcessReady()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-processready).


|  |  | 
| --- |--- |
|  **Propiedades**  | Descripción | 
| LogPaths |  Lista de las rutas de directorio a archivos de registro del servidor de juegos que desea que Amazon GameLift Servers almacene para futuros accesos. El proceso del servidor genera esos archivos durante una sesión de juego. Defina los nombres y las rutas de los archivos en el servidor de juegos y almacénelos en el directorio raíz de compilación del juego.  Las rutas del registro deben ser absolutas. Por ejemplo, si la compilación del juego almacena los registros de sesión de juego en una ruta del tipo `MyGame\sessionLogs\`, la ruta sería `c:\game\MyGame\sessionLogs` en una instancia de Windows. **Tipo:** `List<String>` **Obligatorio**: no  | 

## MetricsParameters
<a name="integration-server-sdk5-csharp-datatypes-metricsparameters"></a>

Utilice este tipo de datos para configurar la recopilación de métricas y los informes de bloqueo del servidor del juego. El servidor de juegos comunica `MetricsParameters` a Amazon GameLift Servers en una llamada a [InitMetrics()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-initmetrics).


|  |  | 
| --- |--- |
|  **Propiedades**  | Descripción | 
| StatsdHost |  Nombre de host o dirección IP del servidor de StatsD para la recopilación de métricas. **Tipo:** `String` **Obligatorio**: no  | 
| StatsdPort |  Número de puerto del servidor de StatsD para la recopilación de métricas. **Tipo:** `Integer` **Obligatorio**: no  | 
| CrashReporterHost |  Nombre de host o dirección IP del servidor que notifica el bloqueo. **Tipo:** `String` **Obligatorio**: no  | 
| CrashReporterPort |  Número de puerto del servidor que notifica el bloqueo. **Tipo:** `Integer` **Obligatorio**: no  | 
| FlushIntervalMs |  Intervalo en milisegundos para vaciar los datos de las métricas al servidor. **Tipo:** `Integer` **Obligatorio**: no  | 
| MaxPacketSize |  Tamaño máximo en bytes de los paquetes de métricas enviados al servidor. **Tipo:** `Integer` **Obligatorio**: no  | 

## ProcessParameters
<a name="integration-server-sdk5-csharp-dataypes-process"></a>

Este tipo de datos contiene el conjunto de parámetros enviado a Amazon GameLift Servers en una llamada a [ProcessReady()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-processready).


|  |  | 
| --- |--- |
|  **Propiedades**  | Descripción | 
| LogParameters | El objeto con una lista de rutas de directorio a archivos de registro de la sesión de juego.**Tipo:** `Aws::GameLift::Server::LogParameters`**Obligatorio**: sí | 
| OnHealthCheck | Nombre de la función de devolución de llamada que invoca Amazon GameLift Servers para solicitar un informe de estado del proceso del servidor. Amazon GameLift Servers llama a esta función cada 60 segundos. Después de llamar a esta función, Amazon GameLift Servers espera una respuesta durante 60 segundos y si no recibe ninguna, Amazon GameLift Servers registra el proceso del servidor como en mal estado.**Tipo:** `void OnHealthCheckDelegate()`**Obligatorio**: sí | 
| OnProcessTerminate | Nombre de la función de devolución de llamada que invoca Amazon GameLift Servers para forzar el cierre del proceso de servidor. Después de llamar a esta función, Amazon GameLift Servers espera cinco minutos hasta que el proceso del servidor se cierre y responde con una llamada a [ProcessEnding()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-processending) antes de cerrar el proceso del servidor.**Tipo:** `void OnProcessTerminateDelegate()`**Obligatorio**: sí | 
| OnStartGameSession | El nombre de la función de devolución de llamada que se Amazon GameLift Servers invoca para activar una nueva sesión de juego. Amazon GameLift Serversllama a esta función en respuesta a la solicitud del cliente. [CreateGameSession](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateGameSession.html) La función de devolución de llamada obtiene un objeto [GameSession](#integration-server-sdk5-csharp-dataypes-gamesession).**Tipo:** `void OnStartGameSessionDelegate(GameSession)`**Obligatorio**: sí | 
| OnUpdateGameSession | Nombre de la función de devolución de llamada que invoca Amazon GameLift Servers para proporcionar un objeto de sesión de juego actualizado. Amazon GameLift Servers llama a esta función una vez que se ha procesado una solicitud de reposición de emparejamiento para proporcionar datos actualizados del emparejador. Pasa un objeto [GameSession](#integration-server-sdk5-csharp-dataypes-gamesession), una actualización de estado (updateReason) y el ID del ticket de reposición de emparejamiento.**Tipo:** void OnUpdateGameSessionDelegate ([UpdateGameSession](#integration-server-sdk5-csharp-dataypes-updategamesession))**Obligatorio**: no | 
| Puerto | El número de puerto en el que escucha el proceso del servidor para recibir conexiones de jugador nuevas. El valor debe estar en el rango de puertos configurado para cualquier flota que implemente esa compilación de servidor de juegos. Este número de puerto se incluye en los objetos de sesión de juego y de jugador, que las sesiones de juego utilizan a la hora de conectarse a un proceso del servidor.**Tipo:** `Integer`**Obligatorio**: sí | 

## UpdateGameSession
<a name="integration-server-sdk5-csharp-dataypes-updategamesession"></a>

La información actualizada de un objeto de sesión de juego incluido el motivo por el que se actualizó la sesión de juego. Si la actualización está relacionada con una acción de reposición del emparejamiento, este tipo de datos incluye el ID de ticket de reposición.


| Propiedades | **Descripción** | 
| --- | --- | 
| GameSession | Un objeto [GameSession](#integration-server-sdk5-csharp-dataypes-gamesession). El objeto GameSession contiene propiedades que describen una sesión de juego. **Tipo:** `GameSession GameSession()`**Obligatorio**: sí | 
| UpdateReason | El motivo por el que se actualiza la sesión de juego.**Tipo:** `UpdateReason UpdateReason()`**Obligatorio**: sí | 
| BackfillTicketId | El ID de ticket de reposición que intenta actualizar la sesión de juego.**Tipo:** `String`**Obligatorio**: sí | 

## GameSession
<a name="integration-server-sdk5-csharp-dataypes-gamesession"></a>

Detalles de una sesión de juego. 


| Propiedades | **Descripción** | 
| --- | --- | 
| GameSessionId |  Un identificador único de la sesión de juego. El ARN de una sesión de juego tiene el siguiente formato: `arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>`. **Tipo:** `String` **Obligatorio**: no  | 
| Name |  Una etiqueta descriptiva de la sesión de juego.  **Tipo:** `String` **Obligatorio**: no  | 
| FleetId |  Un identificador único para la flota en la que se ejecuta la sesión de juego. **Tipo:** `String` **Obligatorio**: no  | 
| MaximumPlayerSessionCount |  El número máximo de conexiones de jugadores a la sesión de juego. **Tipo:** `Integer` **Obligatorio**: no  | 
| Puerto |  El número de puerto de la sesión de juego. Para conectarse a un servidor de Amazon GameLift Servers juegos, la aplicación necesita tanto la dirección IP como el número de puerto. **Tipo:** `Integer` **Obligatorio**: no  | 
| IpAddress |  La dirección IP del servidor de la sesión de juego. Para conectarse a un servidor de Amazon GameLift Servers juegos, la aplicación necesita tanto la dirección IP como el número de puerto. **Tipo:** `String` **Obligatorio**: no  | 
| GameSessionData |  Un conjunto de propiedades de sesión de juego personalizadas, formateadas como un valor de una sola cadena.  **Tipo:** `String` **Obligatorio**: no  | 
| MatchmakerData |  La información sobre el proceso de emparejamiento que se utilizó para crear la sesión de juego, en sintaxis JSON, con formato como cadena. Además de la configuración de emparejamiento utilizada, contiene datos sobre todos los jugadores asignados al emparejamiento, incluidos los atributos de los jugadores y las asignaciones de los equipos. **Tipo:** `String` **Obligatorio**: no  | 
| GameProperties |  Un conjunto de propiedades personalizadas de una sesión de juego, con formato como pares clave-valor. Estas propiedades se pasan a una solicitud de iniciar una nueva sesión de juego. **Tipo:** `Dictionary<string, string>` **Obligatorio**: no  | 
| DnsName |  El identificador de DNS asignado a la instancia que ejecuta la sesión de juego. Los valores tienen formato siguiente: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/gameliftservers/latest/developerguide/integration-server-sdk5-csharp-datatypes.html) Cuando se conecte a una sesión de juego que se ejecute en una flota habilitada de TLS, debe utilizar el nombre de DNS, no la dirección IP. **Tipo:** `String` **Obligatorio**: no  | 

## ServerParameters
<a name="integration-server-sdk5-csharp-dataypes-serverparameters"></a>

La información utilizada para mantener la conexión entre un servidor de Amazon GameLift Servers Anywhere y el servicio Amazon GameLift Servers. Esta información se utiliza al inicializar nuevos procesos de servidor con [InitSDK()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-initsdk). Para los servidores alojados en instancias de EC2 administradas por Amazon GameLift Servers, utilice un objeto vacío.


| Propiedades | **Descripción** | 
| --- | --- | 
| WebSocketUrl |  El `GameLiftServerSdkEndpoint` devuelto cuando se llama a `RegisterCompute` como parte de Amazon GameLift Servers Anywhere. **Tipo:** `String` **Obligatorio**: sí  | 
| ProcessId |  Un identificador único registrado en el proceso del servidor que aloja el juego. **Tipo:** `String` **Obligatorio**: sí  | 
| HostId |  Un identificador único para el alojamiento con el servidor que procesa el juego. El HostiD es el que ComputeName se utilizó al registrar el ordenador. Para obtener más información, consulte: [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html) **Tipo:** `String` **Obligatorio**: sí  | 
| FleetId | El ID de la flota de la flota en la que está registrado el recurso informático. Para obtener más información, consulte, [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html).**Tipo:** `String`**Obligatorio**: sí | 
| AuthToken | El token de autenticación generado por Amazon GameLift Servers que autentica el servidor en Amazon GameLift Servers. Para obtener más información, consulte, [GetComputeAuthToken](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetComputeAuthToken.html).**Tipo:** `String`**Obligatorio**: sí | 

## StartMatchBackfillRequest
<a name="integration-server-sdk5-csharp-dataypes-startmatchbackfillrequest"></a>

Información utilizada para crear una solicitud de reposición de emparejamiento. El servidor de juegos comunica esa información a Amazon GameLift Servers en una llamada a [StartMatchBackfill()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-startmatchbackfill).


| Propiedades | **Descripción** | 
| --- | --- | 
| GameSessionArn |  El identificador único de la sesión de juego. El `[GetGameSessionId](https://docs.aws.amazon.com/gameliftservers/latest/developerguide/integration-server-sdk5-csharp-actions.html#integration-server-sdk5-csharp-getgamesessionid)` de la operación de la API devuelve el identificador en formato de ARN. **Tipo:** `String` **Obligatorio**: sí  | 
| MatchmakingConfigurationArn |  El identificador único, con formato de ARN, que el emparejador utiliza para esta solicitud. El ARN del emparejador para la sesión de juego original se encuentra en el objeto de sesión de juego en la propiedad de datos del emparejador. Puede obtener más información sobre los datos del emparejador en [Trabajo con datos del emparejador](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-server.html#match-server-data.html). **Tipo:** `String` **Obligatorio**: sí  | 
| Players |  Un conjunto de datos que representa a todos los jugadores que están actualmente en la sesión de juego. El creador de emparejamientos utiliza esta información para buscar nuevos jugadores que son idóneos para los jugadores actuales. **Tipo:** `List<Player>` **Obligatorio**: sí  | 
| TicketId |  El identificador único para un ticket de solicitud de emparejamiento o reposición de emparejamiento. Si no proporciona un valor, Amazon GameLift Servers generará uno. Use este identificador para realizar un seguimiento del estado del ticket de reposición de emparejamiento o cancelar la solicitud si es necesario.  **Tipo:** `String` **Obligatorio**: no  | 

## Jugador
<a name="integration-server-sdk5-csharp-dataypes-player"></a>

Representa a un jugador en el emparejamiento. Al iniciar una solicitud de emparejamiento, un jugador tiene un ID de jugador, atributos y, posiblemente, datos de latencia. Amazon GameLift Servers añade la información de los equipos tras realizar un emparejamiento.


| Propiedades | **Descripción** | 
| --- | --- | 
| LatencyInMS |  Un conjunto de valores expresados en milisegundos que indican la cantidad de latencia que experimenta un jugador cuando se conecta a una ubicación.  Si se utiliza esta propiedad, el jugador solo se empareja con las ubicaciones que aparecen. Si un creador de emparejamientos tiene una regla que evalúa la latencia de los jugadores, estos deben informar de la latencia para ser emparejados. **Tipo:** `Dictionary<string, int>` **Obligatorio**: no  | 
| PlayerAttributes |  Una colección de pares de clave-valor que contienen información del jugador para su uso en el emparejamiento. Las claves de atributos del jugador deben coincidir con las PlayerAttributes utilizadas en un conjunto de reglas de emparejamiento. Para obtener más información sobre los atributos de los jugadores, consulte [AttributeValue](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_AttributeValue.html). **Tipo:** `Dictionary<string, AttributeValue` **Obligatorio**: no  | 
| PlayerId |  Un identificador único de un jugador. **Tipo:** `String` **Obligatorio**: no  | 
| Equipo |  El nombre del equipo al que está asignado el jugador en un emparejamiento. Defina el nombre del equipo se define en el conjunto de reglas de emparejamiento. **Tipo:** `String` **Obligatorio**: no  | 

## DescribePlayerSessionsRequest
<a name="integration-server-sdk5-csharp-dataypes-playersessions"></a>

Este tipo de datos se utiliza para especificar qué sesión o sesiones de jugador recuperar. Se puede usar de varias maneras: (1) proporcionar una PlayerSessionId para solicitar una sesión de jugador específica; (2) proporcionar una GameSessionId para solicitar todas las sesiones de jugador de la sesión de juego especificada; o (3) proporcionar una PlayerId para solicitar todas las sesiones de jugador para el jugador especificado. Para grandes recopilaciones de sesiones de jugador, utilice los parámetros de paginación para recuperar resultados como páginas secuenciales.


| Propiedades | **Descripción** | 
| --- | --- | 
| GameSessionId |  El identificador único de la sesión de juego. Use este parámetro para solicitar todas las sesiones de jugador de la sesión de juego especificada. El formato de ID de la sesión de juego es el siguiente: `arn:aws:gamelift:<region>::gamesession/fleet-<fleet ID>/<ID string>`. El valor de la <ID string> es una cadena de ID personalizada (si se especificó una cuando se creó la sesión de juego) o una cadena generada.  **Tipo:** `String` **Obligatorio**: no  | 
| PlayerSessionId |  El identificador único de una sesión de jugador. **Tipo:** `String` **Obligatorio**: no  | 
| PlayerId |  El identificador único de un jugador. Consulte [Generación de ID de jugador](player-sessions-player-identifiers.md). **Tipo:** `String` **Obligatorio**: no  | 
| PlayerSessionStatusFilter |  El estado de la sesión de jugador para filtrar los resultados. Los posibles estados de sesión de jugador son: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/gameliftservers/latest/developerguide/integration-server-sdk5-csharp-datatypes.html) **Tipo:** `String` **Obligatorio**: no  | 
| NextToken |  El token que indica el inicio de la siguiente página de resultados. Para especificar el inicio del conjunto de resultados, no indique ningún valor. Si se especifica un ID de sesión de jugador, este parámetro se ignora. **Tipo:** `String` **Obligatorio**: no  | 
| Límite |  El número máximo de resultados que devolver. Si se especifica un ID de sesión de jugador, este parámetro se ignora. **Tipo:** `int` **Obligatorio**: no  | 

## StopMatchBackfillRequest
<a name="integration-server-sdk5-csharp-dataypes-stopmatchbackfillrequest"></a>

Información utilizada para cancelar una solicitud de reposición de emparejamiento. El servidor de juegos comunica esa información al servicio Amazon GameLift Servers en una llamada a [StopMatchBackfill()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-stopmatchbackfill).


| Propiedades | **Descripción** | 
| --- | --- | 
| GameSessionArn |  El identificador único de sesión de juego de la solicitud que se va a cancelar. **Tipo:** `string` **Obligatorio**: sí  | 
| MatchmakingConfigurationArn |  El identificador único del emparejador al que se envió esta solicitud. **Tipo:** `string` **Obligatorio**: sí  | 
| TicketId |  El identificador único del ticket de solicitud de reposición que se va a cancelar. **Tipo:** `string` **Obligatorio**: sí  | 

## GetFleetRoleCredentialsRequest
<a name="integration-server-sdk5-csharp-dataypes-getfleetrolecredentialsrequest"></a>

Este tipo de datos proporciona al servidor del juego un acceso limitado al resto de tus recursos. AWS Para obtener más información, consulte, [Configuración de un rol de servicio de IAM para Amazon GameLift Servers](setting-up-role.md).


| Propiedades | **Descripción** | 
| --- | --- | 
| RoleArn | El nombre de recurso de Amazon (ARN) de la función de servicio que amplía el acceso limitado a sus AWS recursos. **Tipo:** `string` **Obligatorio**: sí  | 
| RoleSessionName | El nombre de la sesión que describe el uso de las credenciales del rol. **Tipo:** `string` **Obligatorio**: no  | 

## AttributeValue
<a name="integration-server-sdk5-csharp-datatypes-attributevalue"></a>

Utilice estos valores en pares de clave-valor de atributo [Jugador](#integration-server-sdk5-csharp-dataypes-player). Este objeto le permite especificar un valor de atributo mediante cualquiera de los tipos de datos válidos: cadena, número, matriz de cadenas o mapa de datos. Cada objeto `AttributeValue` puede utilizar solo una de las propiedades disponibles.


| Propiedades | Description (Descripción) | 
| --- | --- | 
| attrType |  Especifica el tipo de valor del atributo. **Tipo:** un valor de [enum](#integration-server-sdk5-csharp-datatypes-enums) de `AttrType`.  **Obligatorio**: no  | 
| S |  Representa un valor de atributo de cadena. **Tipo:** `string` **Obligatorio**: sí  | 
| N |  Representa un valor de atributo numérico. **Tipo:** `double` **Obligatorio**: sí  | 
| SL |  Representa una matriz de valores de atributos de cadena. **Tipo:** `string[]` **Obligatorio**: sí  | 
| SDM |  Representa un diccionario de claves de cadena y valores dobles. **Tipo:** `Dictionary<string, double>` **Obligatorio**: sí  | 

## AwsStringOutcome
<a name="integration-server-sdk5-csharp-datatypes-awsstringoutcome"></a>

Este tipo de datos es el resultado de una acción y produce un objeto con las siguientes propiedades:


| Propiedades | Description (Descripción) | 
| --- | --- | 
| Resultado |  El resultado de la acción. **Tipo:** `string` **Obligatorio**: no  | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **Obligatorio**: no  | 

## GenericOutcome
<a name="integration-server-sdk5-csharp-datatypes-genericoutcome"></a>

Este tipo de datos es el resultado de una acción y produce un objeto con las siguientes propiedades:


| Propiedades | Description (Descripción) | 
| --- | --- | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **Obligatorio**: no  | 

## MetricsManagerOutcome
<a name="integration-server-sdk5-csharp-datatypes-metricsmanageroutcome"></a>

Representa el resultado de una llamada [InitMetrics()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-initmetrics). Contiene una MetricsManager instancia de éxito o información de error en caso de error.


|  |  | 
| --- |--- |
| Resultado |  La MetricsManager instancia para recopilar métricas e informar sobre ellas. **Tipo:** `MetricsManager` **Obligatorio**: no  | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **Obligatorio**: no  | 

## DescribePlayerSessionsOutcome
<a name="integration-server-sdk5-csharp-datatypes-describeplayersessionsoutcome"></a>

Este tipo de datos es el resultado de una acción y produce un objeto con las siguientes propiedades:


| Propiedades | Description (Descripción) | 
| --- | --- | 
| Resultado |  El resultado de la acción. **Tipo:** [DescribePlayerSessionsResult](#integration-server-sdk5-csharp-datatypes-describeplayersessionsresult) **Obligatorio**: no   | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **Obligatorio**: no  | 

## DescribePlayerSessionsResult
<a name="integration-server-sdk5-csharp-datatypes-describeplayersessionsresult"></a>


| Propiedades | Description (Descripción) | 
| --- | --- | 
| NextToken |  El token que indica el inicio de la siguiente página de resultados. Para especificar el inicio del conjunto de resultados, no indique ningún valor. Si se especifica un ID de sesión de jugador, este parámetro se ignora. **Tipo:** `string` **Obligatorio**: sí  | 
| PlayerSessions |  Una colección de objetos que contiene propiedades para cada sesión de jugador que se empareja con la solicitud.  **Tipo:** `IList<PlayerSession>` **Obligatorio:**   | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **Obligatorio**: no  | 

## PlayerSession
<a name="integration-server-sdk5-csharp-datatypes-playersession"></a>


| Propiedades | Description (Descripción) | 
| --- | --- | 
| CreationTime |  **Tipo:** `long` **Obligatorio**: sí  | 
| FleetId |  **Tipo:** `string` **Obligatorio**: sí  | 
| GameSessionId |  **Tipo:** `string` **Obligatorio**: sí  | 
| IpAddress |  **Tipo:** `string` **Obligatorio**: sí  | 
| PlayerData |  **Tipo:** `string` **Obligatorio**: sí  | 
| PlayerId |  **Tipo:** `string` **Obligatorio**: sí  | 
| PlayerSessionId |  **Tipo:** `string` **Obligatorio**: sí  | 
| Puerto |  **Tipo:** `int` **Obligatorio**: sí  | 
| Status |  **Tipo:** una [enumeración](#integration-server-sdk5-csharp-datatypes-enums) de `PlayerSessionStatus`. **Obligatorio**: sí  | 
| TerminationTime |  **Tipo:** `long` **Obligatorio**: sí  | 
| DnsName |  **Tipo:** `string` **Obligatorio**: sí  | 

## StartMatchBackfillOutcome
<a name="integration-server-sdk5-csharp-datatypes-startmatchbackfilloutcome"></a>

Este tipo de datos es el resultado de una acción y produce un objeto con las siguientes propiedades:


| Propiedades | Description (Descripción) | 
| --- | --- | 
| Resultado |  El resultado de la acción. **Tipo:** [StartMatchBackfillResult](#integration-server-sdk5-csharp-datatypes-startmatchbackfillresult) **Obligatorio**: no  | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **Obligatorio**: no  | 

## StartMatchBackfillResult
<a name="integration-server-sdk5-csharp-datatypes-startmatchbackfillresult"></a>


| Propiedades | Description (Descripción) | 
| --- | --- | 
| TicketId |  **Tipo:** `string` **Obligatorio**: sí  | 

## GetComputeCertificateOutcome
<a name="integration-server-sdk5-csharp-datatypes-getcomputecertificateoutcome"></a>

Este tipo de datos es el resultado de una acción y produce un objeto con las siguientes propiedades:


| Propiedades | Description (Descripción) | 
| --- | --- | 
| Resultado |  El resultado de la acción. **Tipo:** [GetComputeCertificateResult](#integration-server-sdk5-csharp-datatypes-getcomputecertificateresult) **Obligatorio**: no   | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **Obligatorio**: no  | 

## GetComputeCertificateResult
<a name="integration-server-sdk5-csharp-datatypes-getcomputecertificateresult"></a>

La ruta al certificado TLS de su recurso informático y el nombre de host del equipo.


| Propiedades | Description (Descripción) | 
| --- | --- | 
| CertificatePath |  **Tipo:** `string` **Obligatorio**: sí  | 
| ComputeName |  **Tipo:** `string` **Obligatorio**: sí  | 

## GetFleetRoleCredentialsOutcome
<a name="integration-server-sdk5-csharp-datatypes-getfleetrolecredentialsoutcome"></a>

Este tipo de datos es el resultado de una acción y produce un objeto con las siguientes propiedades:


| Propiedades | Description (Descripción) | 
| --- | --- | 
| Resultado |  El resultado de la acción. **Tipo:** [GetFleetRoleCredentialsResult](#integration-server-sdk5-csharp-datatypes-getfleetrolecredentialsresult) **Obligatorio**: no  | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **Obligatorio**: no  | 

## GetFleetRoleCredentialsResult
<a name="integration-server-sdk5-csharp-datatypes-getfleetrolecredentialsresult"></a>


| Propiedades | Description (Descripción) | 
| --- | --- | 
| AccessKeyId |  El ID de la clave de acceso para autenticar y proporcionar acceso a los recursos de AWS . **Tipo:** `string` **Obligatorio**: no  | 
| AssumedRoleId |  El ID del usuario al que pertenece el rol de servicio. **Tipo:** `string` **Obligatorio**: no  | 
| AssumedRoleUserArn |  El nombre de recurso de Amazon (ARN) del usuario al que pertenece el rol de servicio. **Tipo:** `string` **Obligatorio**: no  | 
| Expiration |  El tiempo que queda hasta que caduquen las credenciales de la sesión. **Tipo:** `DateTime` **Obligatorio**: no  | 
| SecretAccessKey |  El ID de clave de acceso secreta para la autenticación. **Tipo:** `string` **Obligatorio**: no  | 
| SessionToken |  Un token para identificar la sesión activa actual que interactúa con tus AWS recursos. **Tipo:** `string` **Obligatorio**: no  | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **Obligatorio**: no  | 

## AwsDateTimeOutcome
<a name="integration-server-sdk5-csharp-datatypes-awsdatetimeoutcome"></a>

Este tipo de datos es el resultado de una acción y produce un objeto con las siguientes propiedades:


| Propiedades | Description (Descripción) | 
| --- | --- | 
| Resultado |  El resultado de la acción. **Tipo:** `DateTime` **Obligatorio**: no   | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **Obligatorio**: no  | 

## GameLiftError
<a name="integration-server-sdk5-csharp-datatypes-gamelifterror"></a>


| Propiedades | Description (Descripción) | 
| --- | --- | 
| ErrorType |  Tipo de error. **Tipo:** una [enumeración](#integration-server-sdk5-csharp-datatypes-enums) de `GameLiftErrorType`. **Obligatorio**: no   | 
| ErrorName |  El nombre del error.  **Tipo:** `string`  **Obligatorio**: no   | 
| ErrorMessage |  Mensaje de error.  **Tipo:** `string`  **Obligatorio**: no   | 

## Enums
<a name="integration-server-sdk5-csharp-datatypes-enums"></a>

Las enumeraciones definidas para el SDK del servidor para Amazon GameLift Servers (C\$1) se definen de la siguiente manera:

**AttrType**  
+ **NONE**
+ **STRING**
+ **DOUBLE**
+ **STRING\$1LIST**
+ **STRING\$1DOUBLE\$1MAP**

**GameLiftErrorType**  
Valor de cadena que indica el tipo de error. Los valores válidos son:  
+ **SERVICE\$1CALL\$1FAILED**: se produjo un error en una llamada a un AWS servicio. 
+ **LOCAL\$1CONNECTION\$1FAILED**: se ha producido un error en la conexión local a Amazon GameLift Servers. 
+ **NETWORK\$1NOT\$1INITIALIZED**: la red no se ha inicializado. 
+ **GAMESESSION\$1ID\$1NOT\$1SET**: no se ha establecido el ID de sesión de juego. 
+ **BAD\$1REQUEST\$1EXCEPTION** 
+ **INTERNAL\$1SERVICE\$1EXCEPTION** 
+ **ALREADY\$1INITIALIZED**: el servidor o cliente de Amazon GameLift Servers ya se inicializó con Initialize(). 
+ **FLEET\$1MISMATCH**: la flota de destino no coincide con la flota de gameSession o playerSession. 
+ **GAMELIFT\$1CLIENT\$1NOT\$1INITIALIZED**: el cliente de Amazon GameLift Servers no se ha inicializado. 
+ **GAMELIFT\$1SERVER\$1NOT\$1INITIALIZED**: el servidor de Amazon GameLift Servers no se ha inicializado. 
+ **GAME\$1SESSION\$1ENDED\$1FAILED**: el SDK del servidor de Amazon GameLift Servers no pudo ponerse en contacto con el servicio para informar de que la sesión de juego había finalizado. 
+ **GAME\$1SESSION\$1NOT\$1READY**: no se activó la sesión de juego del servidor de Amazon GameLift Servers. 
+ **GAME\$1SESSION\$1READY\$1FAILED**: el SDK del servidor de Amazon GameLift Servers no pudo ponerse en contacto con el servicio para informar de que la sesión de juego estaba lista. 
+ **INITIALIZATION\$1MISMATCH**: se llamó a un método de cliente después de Server::Initialize() o viceversa. 
+ **NOT\$1INITIALIZED**: el servidor o el cliente de Amazon GameLift Servers no se han iniciado con Initialize(). 
+ **NO\$1TARGET\$1ALIASID\$1SET**: no se ha establecido un aliasId de destino. 
+ **NO\$1TARGET\$1FLEET\$1SET**: no se ha establecido una flota de destino. 
+ **PROCESS\$1ENDING\$1FAILED**: el SDK del servidor de Amazon GameLift Servers no pudo contactar con el servicio para informar de que el proceso está finalizando. 
+ **PROCESS\$1NOT\$1ACTIVE** — El proceso del servidor aún no está activo, no está vinculado a un y no puede aceptarlo ni procesarlo. GameSession PlayerSessions 
+ **PROCESS\$1NOT\$1READY**: el proceso de servidor aún no está listo para activarse. 
+ **PROCESS\$1READY\$1FAILED**: el SDK del servidor de Amazon GameLift Servers no pudo contactar con el servicio para informar de que el proceso está listo. 
+ **SDK\$1VERSION\$1DETECTION\$1FAILED**: no se pudo detectar la versión del SDK. 
+ **STX\$1CALL\$1FAILED: no se pudo realizar una llamada** al componente de backend del servidor. XStx 
+ **STX\$1INITIALIZATION\$1FAILED: el componente de backend del servidor no se pudo inicializar**. XStx 
+ **UNEXPECTED\$1PLAYER\$1SESSION**: el servidor ha detectado una sesión de jugador no registrada. 
+ **WEBSOCKET\$1CONNECT\$1FAILURE** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1FORBIDDEN** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1INVALID\$1URL** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1TIMEOUT** 
+ **WEBSOCKET\$1RETRIABLE\$1SEND\$1MESSAGE\$1FAILURE**: error recuperable al enviar un mensaje al servicio. GameLift WebSocket 
+ **WEBSOCKET\$1SEND\$1MESSAGE\$1FAILURE**: error al enviar un mensaje al GameLift servicio. WebSocket 
+ **MATCH\$1BACKFILL\$1REQUEST\$1VALIDATION**: se ha producido un error en la validación de la solicitud. 
+ **PLAYER\$1SESSION\$1REQUEST\$1VALIDATION**: se ha producido un error en la validación de la solicitud. 

**PlayerSessionCreationPolicy**  
Valor de cadena que indica si la sesión de juego acepta jugadores nuevos. Los valores válidos son:   
+ **ACCEPT\$1ALL**: se aceptan todas las sesiones de jugador nuevas. 
+ **DENY\$1ALL**: se rechazan todas las sesiones de jugador nuevas. 
+ **NOT\$1SET**: la sesión de juego no está configurada para aceptar o denegar sesiones de nuevos jugadores. 

**PlayerSessionStatus**  
+ **ACTIVE**
+ **COMPLETED**
+ **NOT\$1SET**
+ **RESERVED**
+ **TIMEDOUT**

[SDK 5.x del servidor de C\$1 para Amazon GameLift Servers: tipos de datos](integration-server-sdk5-csharp-datatypes.md)

**Topics**
+ [SDK 5.x del servidor de C\$1 para Amazon GameLift Servers: tipos de datos](integration-server-sdk5-csharp-datatypes.md)
+ [GetSdkVersion()](#integration-server-sdk5-csharp-getsdkversion)
+ [InitMetrics()](#integration-server-sdk5-csharp-initmetrics)
+ [InitSDK()](#integration-server-sdk5-csharp-initsdk)
+ [InitSDK()](#integration-server-sdk5-csharp-initsdk-anywhere)
+ [ProcessReady()](#integration-server-sdk5-csharp-processready)
+ [ProcessEnding()](#integration-server-sdk5-csharp-processending)
+ [ActivateGameSession()](#integration-server-sdk5-csharp-activategamesession)
+ [UpdatePlayerSessionCreationPolicy()](#integration-server-sdk5-csharp-updateplayersessioncreationpolicy)
+ [GetGameSessionId()](#integration-server-sdk5-csharp-getgamesessionid)
+ [GetTerminationTime()](#integration-server-sdk5-csharp-getterm)
+ [AcceptPlayerSession()](#integration-server-sdk5-csharp-acceptplayersession)
+ [RemovePlayerSession()](#integration-server-sdk5-csharp-removeplayersession)
+ [DescribePlayerSessions()](#integration-server-sdk5-csharp-describeplayersessions)
+ [StartMatchBackfill()](#integration-server-sdk5-csharp-startmatchbackfill)
+ [StopMatchBackfill()](#integration-server-sdk5-csharp-stopmatchbackfill)
+ [GetComputeCertificate()](#integration-server-sdk5-csharp-getcomputecertificate)
+ [GetFleetRoleCredentials()](#integration-server-sdk5-csharp-getfleetrolecredentials)
+ [Destroy()](#integration-server-sdk5-csharp-destroy)

## GetSdkVersion()
<a name="integration-server-sdk5-csharp-getsdkversion"></a>

Devuelve el número de versión actual del SDK integrado en el proceso del servidor.

### Sintaxis
<a name="integration-server-sdk5-csharp-getsdkversion-syntax"></a>

```
AwsStringOutcome GetSdkVersion();
```

### Valor devuelto
<a name="integration-server-sdk5-csharp-getsdkversion-return"></a>

Si funciona correctamente, devuelve la versión del SDK actual como objeto [AwsStringOutcome](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-awsstringoutcome). La cadena devuelta solo incluye el número de versión (por ejemplo, `5.0.0`). Si no funciona, devuelve un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-csharp-getsdkversion-example"></a>

```
var getSdkVersionOutcome = GameLiftServerAPI.GetSdkVersion();
```

## InitMetrics()
<a name="integration-server-sdk5-csharp-initmetrics"></a>

Inicializa el sistema de métricas para recopilar los datos de rendimiento del servidor e informar sobre ellos. Para obtener unos resultados óptimos, llame a este método antes que [InitSDK()](#integration-server-sdk5-csharp-initsdk) para habilitar la recopilación de métricas durante la inicialización del SDK.

### Sintaxis
<a name="integration-server-sdk5-csharp-initmetrics-syntax"></a>

```
MetricsManagerOutcome InitMetrics();
MetricsManagerOutcome InitMetrics(MetricsParameters metricsParameters);
```

### Parameters
<a name="integration-server-sdk5-csharp-initmetrics-parameter"></a>

[MetricsParameters](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-metricsparameters) (opcional)  
Parámetros de configuración de la recopilación de métricas. Si no se proporciona, utiliza valores predeterminados que pueden ser anulados por variables de entorno.

### Valor devuelto
<a name="integration-server-sdk5-csharp-initmetrics-return"></a>

Si tiene éxito, devuelve un [MetricsManagerOutcome](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-metricsmanageroutcome) objeto que contiene la MetricsManager instancia. Si no funciona, devuelve un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-csharp-initmetrics-example"></a>

```
// Initialize with default parameters (uses environment variables if available)
var outcome = GameLiftServerAPI.InitMetrics();
if (outcome.Success) {
    var metricsManager = outcome.Result;
} else {
    Console.WriteLine("Failed to initialize metrics: " + outcome.Error.ErrorMessage);
}

// Initialize with custom parameters
var metricsParams = new MetricsParameters("localhost", 8125, "crash-host", 9999, 1000, 1024);
var customOutcome = GameLiftServerAPI.InitMetrics(metricsParams);
if (customOutcome.Success) {
    var metricsManager = customOutcome.Result;
}
```

## InitSDK()
<a name="integration-server-sdk5-csharp-initsdk"></a>

Inicializa el SDK de Amazon GameLift Servers para una flota de EC2 administrada. Llame a este método en el lanzamiento, antes de cualquier otra inicialización relacionada con Amazon GameLift Servers. Este método lee parámetros de servidor del entorno de host para configurar la comunicación entre el servidor y el servicio Amazon GameLift Servers. Utiliza un token de idempotencia, por lo que puede volver a intentar esta llamada de forma segura cuando falle.

### Sintaxis
<a name="integration-server-sdk5-csharp-initsdk-syntax"></a>

```
GenericOutcome InitSDK();
```

### Valor devuelto
<a name="integration-server-sdk5-csharp-initsdk-return"></a>

Si tiene éxito, devuelve un InitSdkOutcome objeto para indicar que el proceso del servidor está listo para la llamada[ProcessReady()](#integration-server-sdk5-csharp-processready). 

### Ejemplo
<a name="integration-server-sdk5-csharp-initsdk-example"></a>

```
//Call InitSDK to establish a local connection with the GameLift agent to enable further communication.
GenericOutcome initSDKOutcome = GameLiftServerAPI.InitSDK();
```

## InitSDK()
<a name="integration-server-sdk5-csharp-initsdk-anywhere"></a>

Inicializa el SDK de Amazon GameLift Servers para una flota de Anywhere. Llame a este método en el lanzamiento, antes de cualquier otra inicialización relacionada con Amazon GameLift Servers. Este método requiere que los parámetros del servidor explícito configure la comunicación entre el servidor y el servicio Amazon GameLift Servers. Utiliza un token de idempotencia, por lo que puede volver a intentar esta llamada de forma segura cuando falle.

### Sintaxis
<a name="integration-server-sdk5-csharp-initsdk-anywhere-syntax"></a>

```
GenericOutcome InitSDK(ServerParameters serverParameters);
```

### Parameters
<a name="integration-server-sdk5-csharp-initsdk-anywhere-parameter"></a>

[ServerParameters](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-dataypes-serverparameters)  
Para inicializar un servidor de juegos en una flota de Amazon GameLift Servers Anywhere, cree un objeto `ServerParameters` con la siguiente información:  
+ La URL WebSocket utilizada para conectarse al servidor del juego. 
+ El ID del proceso utilizado para alojar su servidor de juegos. 
+ El ID del proceso utilizado para alojar los procesos del servidor de juegos. 
+ El ID de la flota de Amazon GameLift Servers que contiene su recurso de computación de Amazon GameLift Servers Anywhere.
+ El token de autorización generado por la operación de Amazon GameLift Servers. 

### Valor devuelto
<a name="integration-server-sdk5-csharp-initsdk-anywhere-return"></a>

Si tiene éxito, devuelve un InitSdkOutcome objeto que indica que el proceso del servidor está listo para la llamada[ProcessReady()](#integration-server-sdk5-csharp-processready). 

**nota**  
Si las llamadas a `InitSDK()` no funcionan en las compilaciones de juegos implementadas en las flotas de Anywhere, compruebe el parámetro `ServerSdkVersion` que se utiliza al crear el recurso de compilación. Debe establecer este valor de forma explícita en la versión del SDK del servidor en uso. El valor predeterminado de este parámetro es 4.x, que no es compatible. Para resolver este problema, cree una compilación nueva e impleméntela en una flota nueva.

### Ejemplo
<a name="integration-server-sdk5-csharp-initsdk-anywhere-example"></a>

```
//Define the server parameters
string websocketUrl = "wss://us-west-1.api.amazongamelift.com";
string processId = "PID1234";
string fleetId = "aarn:aws:gamelift:us-west-1:111122223333:fleet/fleet-9999ffff-88ee-77dd-66cc-5555bbbb44aa";
string hostId = "HardwareAnywhere";
string authToken = "1111aaaa-22bb-33cc-44dd-5555eeee66ff";
ServerParameters serverParameters = 
  new ServerParameters(webSocketUrl, processId, hostId, fleetId, authToken);

//Call InitSDK to establish a local connection with the GameLift agent to enable further communication.
GenericOutcome initSDKOutcome = GameLiftServerAPI.InitSDK(serverParameters);
```

## ProcessReady()
<a name="integration-server-sdk5-csharp-processready"></a>

Notifica a Amazon GameLift Servers que el proceso del servidor de juegos está listo para alojar sesiones de juego. Llame a este método después de invocar [InitSDK()](#integration-server-sdk5-csharp-initsdk). Se debe llamar a este método solo una vez por proceso.

### Sintaxis
<a name="integration-server-sdk5-csharp-processready-syntax"></a>

```
GenericOutcome ProcessReady(ProcessParameters processParameters)
```

### Parameters
<a name="integration-server-sdk5-csharp-processready-parameter"></a>

**[ProcessParameters](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-dataypes-process)**  
Un objeto `ProcessParameters` contiene información sobre el proceso del servidor.

### Valor devuelto
<a name="integration-server-sdk5-csharp-processready-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-csharp-processready-example"></a>

Este ejemplo muestra las implementaciones tanto de la función de método como de la función de delegación.

```
// Set parameters and call ProcessReady
ProcessParameters processParams = new ProcessParameters(
  this.OnStartGameSession,
  this.OnProcessTerminate,
  this.OnHealthCheck,
  this.OnUpdateGameSession,
  port,
  new LogParameters(new List<string>()  
  // Examples of log and error files written by the game server
  {
    "C:\\game\\logs",
    "C:\\game\\error"
  })
);
GenericOutcome processReadyOutcome = GameLiftServerAPI.ProcessReady(processParams);
```

## ProcessEnding()
<a name="integration-server-sdk5-csharp-processending"></a>

Informa a Amazon GameLift Servers de que el proceso del servidor está finalizando. Llame a este método después de realizar todas las demás tareas de limpieza (lo que incluye el cierre de la sesión de juegos activa) y antes de finalizar el proceso. Según el resultado de `ProcessEnding()`, el proceso finaliza con éxito (0) o error (-1) y genera un evento de flota. Si el proceso finaliza con un error, el evento de flota generado será `SERVER_PROCESS_TERMINATED_UNHEALTHY`.

### Sintaxis
<a name="integration-server-sdk5-csharp-processending-syntax"></a>

```
GenericOutcome ProcessEnding()
```

### Valor devuelto
<a name="integration-server-sdk5-csharp-processending-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-csharp-processending-example"></a>

En este ejemplo, se llama a `ProcessEnding()` y `Destroy()` antes de finalizar el proceso del servidor con un código de salida correcto o erróneo.

```
GenericOutcome processEndingOutcome = GameLiftServerAPI.ProcessEnding();
GameLiftServerAPI.Destroy();

if (processEndingOutcome.Success)
  {
    Environment.Exit(0);
  }
else
  {
    Console.WriteLine("ProcessEnding() failed. Error: " + processEndingOutcome.Error.ToString());
    Environment.Exit(-1);  
  }
```

## ActivateGameSession()
<a name="integration-server-sdk5-csharp-activategamesession"></a>

Notifica a Amazon GameLift Servers que el proceso del servidor ha iniciado una sesión de juego y que está listo para recibir las conexiones de los jugadores. Esta acción debe llamarse como parte de la función de devolución de llamada `onStartGameSession()`, después de la inicialización de todas las sesiones de juego.

### Sintaxis
<a name="integration-server-sdk5-csharp-activategamesession-syntax"></a>

```
GenericOutcome ActivateGameSession()
```

### Valor devuelto
<a name="integration-server-sdk5-csharp-activategamesession-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-csharp-activategamesession-example"></a>

Este ejemplo muestra cómo se llama a `ActivateGameSession()` como parte de la función de delegación `onStartGameSession()`. 

```
void OnStartGameSession(GameSession gameSession)
{
  // game-specific tasks when starting a new game session, such as loading map   
  // When ready to receive players   
  GenericOutcome activateGameSessionOutcome = GameLiftServerAPI.ActivateGameSession();
}
```

## UpdatePlayerSessionCreationPolicy()
<a name="integration-server-sdk5-csharp-updateplayersessioncreationpolicy"></a>

Actualiza la capacidad de la sesión de juego actual para aceptar sesiones de jugador nuevas. Una sesión de juego se puede configurar para que acepte o deniegue todas las sesiones nuevas de los jugadores.

### Sintaxis
<a name="integration-server-sdk5-csharp-updateplayersessioncreationpolicy-syntax"></a>

```
GenericOutcome UpdatePlayerSessionCreationPolicy(PlayerSessionCreationPolicy playerSessionPolicy)
```

### Parameters
<a name="integration-server-sdk5-csharp-updateplayersessioncreationpolicy-parameter"></a>

**playerSessionPolicy**  
Valor de cadena que indica si la sesión de juego acepta jugadores nuevos.   
Los valores válidos son:  
+ **ACCEPT\$1ALL**: se aceptan todas las sesiones de jugador nuevas.
+ **DENY\$1ALL**: se rechazan todas las sesiones de jugador nuevas.

### Valor devuelto
<a name="integration-server-sdk5-csharp-updateplayersessioncreationpolicy-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-csharp-updateplayersessioncreationpolicy-example"></a>

Este ejemplo establece la política de participación en la sesión de juego actual para aceptar todos los jugadores.

```
GenericOutcome updatePlayerSessionPolicyOutcome = 
  GameLiftServerAPI.UpdatePlayerSessionCreationPolicy(PlayerSessionCreationPolicy.ACCEPT_ALL);
```

## GetGameSessionId()
<a name="integration-server-sdk5-csharp-getgamesessionid"></a>

Recupera el ID de la sesión de juego alojada por el proceso del servidor.

En el caso de los procesos inactivos que no se activan con una sesión de juego, la llamada devuelve [GameLiftError](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-gamelifterror).

### Sintaxis
<a name="integration-server-sdk5-csharp-getgamesessionid-syntax"></a>

```
AwsStringOutcome GetGameSessionId()
```

### Valor devuelto
<a name="integration-server-sdk5-csharp-getgamesessionid-return"></a>

Si funciona correctamente, devuelve el ID de sesión del juego como objeto [AwsStringOutcome](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-awsstringoutcome). Si no funciona, devuelve un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-csharp-getgamesessionid-example"></a>

```
AwsStringOutcome getGameSessionIdOutcome = GameLiftServerAPI.GetGameSessionId();
```

## GetTerminationTime()
<a name="integration-server-sdk5-csharp-getterm"></a>

Devuelve la hora a la que está programada el cierre de un proceso de servidor, si hay una hora de terminación disponible. Un proceso del servidor realiza esta acción después de recibir una devolución de llamada `onProcessTerminate()` desde Amazon GameLift Servers. Amazon GameLift Servers llama a `onProcessTerminate()` por los motivos siguientes: 
+ Cuando el proceso del servidor informa de un mal estado o no responde a Amazon GameLift Servers.
+ Al finalizar la instancia durante un evento de reducción vertical.
+ [Cuando se finaliza una instancia debido a la interrupción de una instancia de spot](spot-tasks.md).

### Sintaxis
<a name="integration-server-sdk5-csharp-getterm-syntax"></a>

```
AwsDateTimeOutcome GetTerminationTime()
```

### Valor devuelto
<a name="integration-server-sdk5-csharp-getterm-return"></a>

Si el proceso se realiza correctamente, devuelve la hora de terminación como un objeto [AwsDateTimeOutcome](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-awsdatetimeoutcome). El valor es la hora de terminación expresado en ciclos transcurridos desde `0001 00:00:00`. Por ejemplo, el valor de la fecha y hora `2020-09-13 12:26:40 -000Z` es igual a `637355968000000000` ciclos. Si no hay una hora de terminación disponible, devuelve un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-csharp-getterm-example"></a>

```
AwsDateTimeOutcome getTerminationTimeOutcome = GameLiftServerAPI.GetTerminationTime(); 
```

## AcceptPlayerSession()
<a name="integration-server-sdk5-csharp-acceptplayersession"></a>

Notifica a Amazon GameLift Servers que un jugador con el ID de sesión de jugador especificado se ha conectado al proceso del servidor y requiere validación. Amazon GameLift Servers verifica que el ID de sesión de jugador es válido. Una vez validada la sesión del jugador, Amazon GameLift Servers cambia el estado del espacio de jugador de RESERVADO a ACTIVO. 

### Sintaxis
<a name="integration-server-sdk5-csharp-acceptplayersession-syntax"></a>

```
GenericOutcome AcceptPlayerSession(String playerSessionId)
```

### Parameters
<a name="integration-server-sdk5-csharp-acceptplayersession-parameter"></a>

playerSessionId  
ID único que se emite GameLift cuando se crea una nueva sesión de jugador.

### Valor devuelto
<a name="integration-server-sdk5-csharp-acceptplayersession-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error. 

### Ejemplo
<a name="integration-server-sdk5-csharp-acceptplayersession-example"></a>

Este ejemplo ilustra una función para gestionar una solicitud de conexión, incluida la validación y el rechazo de una sesión de jugador no válida. IDs 

```
void ReceiveConnectingPlayerSessionID (Connection connection, String playerSessionId)
{
  GenericOutcome acceptPlayerSessionOutcome = GameLiftServerAPI.AcceptPlayerSession(playerSessionId);
  if(acceptPlayerSessionOutcome.Success)
  {
    connectionToSessionMap.emplace(connection, playerSessionId);
    connection.Accept();
  }
  else 
  {
    connection.Reject(acceptPlayerSessionOutcome.Error.ErrorMessage);
  }       
}
```

## RemovePlayerSession()
<a name="integration-server-sdk5-csharp-removeplayersession"></a>

Informa a Amazon GameLift Servers de que un jugador se ha desconectado del proceso del servidor. Como respuesta, Amazon GameLift Servers cambia el espacio del jugador para que esté disponible. 

### Sintaxis
<a name="integration-server-sdk5-csharp-removeplayersession-syntax"></a>

```
GenericOutcome RemovePlayerSession(String playerSessionId)
```

### Parameters
<a name="integration-server-sdk5-csharp-removeplayersession-parameter"></a>

**playerSessionId**  
ID único emitido por Amazon GameLift Servers cuando se crea una nueva sesión de jugador.

### Valor devuelto
<a name="integration-server-sdk5-csharp-removeplayersession-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-csharp-removeplayersession-example"></a>

```
GenericOutcome removePlayerSessionOutcome = GameLiftServerAPI.RemovePlayerSession(playerSessionId);
```

## DescribePlayerSessions()
<a name="integration-server-sdk5-csharp-describeplayersessions"></a>

Recupera datos de sesión de jugador, incluida la configuración, los metadatos de la sesión y los datos de jugador. Utilice esta acción para obtener información para una única sesión de jugador, para todas las sesiones de jugador de una sesión de juego o para todas las sesiones de jugador asociadas a un solo ID de jugador.

### Sintaxis
<a name="integration-server-sdk5-csharp-describeplayersessions-syntax"></a>

```
DescribePlayerSessionsOutcome DescribePlayerSessions(DescribePlayerSessionsRequest describePlayerSessionsRequest)
```

### Parameters
<a name="integration-server-sdk5-csharp-describeplayersessions-parameter"></a>

**[DescribePlayerSessionsRequest](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-dataypes-playersessions)**  
Un objeto [DescribePlayerSessionsRequest](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-dataypes-playersessions) que describe las sesiones de jugador que recuperar.

### Valor devuelto
<a name="integration-server-sdk5-csharp-describeplayersessions-return"></a>

Si funciona correctamente, devuelve un objeto [DescribePlayerSessionsOutcome](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-describeplayersessionsoutcome) que contiene un conjunto de objetos de sesión de jugador que se ajusta a los parámetros de la solicitud.

### Ejemplo
<a name="integration-server-sdk5-csharp-describeplayersessions-example"></a>

Este ejemplo muestra una solicitud de todas las sesiones de jugador conectadas activamente a una sesión de juego específica. Si se omite *NextToken*y se establece el valor *límite* en 10, Amazon GameLift Servers se devolverán los registros de las sesiones de los primeros 10 jugadores que coincidan con la solicitud.

```
// Set request parameters 
DescribePlayerSessionsRequest describePlayerSessionsRequest = new DescribePlayerSessionsRequest()
{
  GameSessionId = GameLiftServerAPI.GetGameSessionId().Result,    //gets the ID for the current game session
  Limit = 10,
  PlayerSessionStatusFilter = 
    PlayerSessionStatusMapper.GetNameForPlayerSessionStatus(PlayerSessionStatus.ACTIVE)
}; 
// Call DescribePlayerSessions
DescribePlayerSessionsOutcome describePlayerSessionsOutcome = 
  GameLiftServerAPI.DescribePlayerSessions(describePlayerSessionsRequest);
```

## StartMatchBackfill()
<a name="integration-server-sdk5-csharp-startmatchbackfill"></a>

Envía una solicitud para encontrar nuevos jugadores para ranuras abiertas en una sesión de juego creada con FlexMatch. Para obtener más información, consulte [Característica de reposición de FlexMatch](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html).

Esta acción es asíncrona. Si se emparejan nuevos jugadores, Amazon GameLift Servers ofrece datos actualizados del emparejador mediante la función de devolución de llamada `OnUpdateGameSession()`.

Un proceso del servidor solo puede tener una solicitud de reposición de emparejamiento activa a la vez. Para enviar una nueva solicitud, en primer lugar llame a [StopMatchBackfill()](#integration-server-sdk5-csharp-stopmatchbackfill) para cancelar la solicitud original.

### Sintaxis
<a name="integration-server-sdk5-csharp-startmatchbackfill-syntax"></a>

```
StartMatchBackfillOutcome StartMatchBackfill (StartMatchBackfillRequest startBackfillRequest);
```

### Parameters
<a name="integration-server-sdk5-csharp-startmatchbackfill-parameter"></a>

**[StartMatchBackfillRequest](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-dataypes-startmatchbackfillrequest)**  
Un objeto `StartMatchBackfillRequest` contiene información sobre la solicitud de reposición.

### Valor devuelto
<a name="integration-server-sdk5-csharp-startmatchbackfill-return"></a>

Devuelve un objeto [StartMatchBackfillOutcome](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-startmatchbackfilloutcome) con el ID del ticket de reposición de emparejamiento o un error con un mensaje de error. 

### Ejemplo
<a name="integration-server-sdk5-csharp-startmatchbackfill-example"></a>

```
// Build a backfill request
StartMatchBackfillRequest startBackfillRequest = new StartMatchBackfillRequest()
{
  TicketId = "1111aaaa-22bb-33cc-44dd-5555eeee66ff", //optional
  MatchmakingConfigurationArn = "arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MyMatchmakerConfig", 
  GameSessionId = GameLiftServerAPI.GetGameSessionId().Result,    // gets ID for current game session
  MatchmakerData matchmakerData = 
    MatchmakerData.FromJson(gameSession.MatchmakerData),  // gets matchmaker data for current players
  // get matchmakerData.Players
  // remove data for players who are no longer connected
  Players = ListOfPlayersRemainingInTheGame
};

// Send backfill request
StartMatchBackfillOutcome startBackfillOutcome = GameLiftServerAPI.StartMatchBackfill(startBackfillRequest);

// Implement callback function for backfill
void OnUpdateGameSession(GameSession myGameSession)
{
  // game-specific tasks to prepare for the newly matched players and update matchmaker data as needed  
}
```

## StopMatchBackfill()
<a name="integration-server-sdk5-csharp-stopmatchbackfill"></a>

Cancela una solicitud de reposición de emparejamiento activa. Para obtener más información, consulte [Característica de reposición de FlexMatch](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html).

### Sintaxis
<a name="integration-server-sdk5-csharp-stopmatchbackfill-syntax"></a>

```
GenericOutcome StopMatchBackfill (StopMatchBackfillRequest stopBackfillRequest);
```

### Parameters
<a name="integration-server-sdk5-csharp-stopmatchbackfill-parameter"></a>

**[StopMatchBackfillRequest](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-dataypes-stopmatchbackfillrequest)**  
Un objeto `StopMatchBackfillRequest` que proporciona detalles sobre el ticket de emparejamiento que va a detener.

### Valor devuelto
<a name="integration-server-sdk5-csharp-stopmatchbackfill-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-csharp-stopmatchbackfill-example"></a>

```
// Set backfill stop request parameters
StopMatchBackfillRequest stopBackfillRequest = new StopMatchBackfillRequest(){
  TicketId = "1111aaaa-22bb-33cc-44dd-5555eeee66ff", //optional, if not provided one is autogenerated
  MatchmakingConfigurationArn = "arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MyMatchmakerConfig",
  GameSessionId = GameLiftServerAPI.GetGameSessionId().Result    //gets the ID for the current game session
};
GenericOutcome stopBackfillOutcome = GameLiftServerAPI.StopMatchBackfillRequest(stopBackfillRequest);
```

## GetComputeCertificate()
<a name="integration-server-sdk5-csharp-getcomputecertificate"></a>

 Recupera la ruta al certificado TLS utilizado para cifrar la conexión de red entre el servidor de juegos y el cliente de juego. Puede utilizar la ruta del certificado al registrar el dispositivo informático en una flota de Amazon GameLift Servers Anywhere. Para obtener más información, consulte, [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html).

### Sintaxis
<a name="integration-server-sdk5-csharp-getcomputecertificate-syntax"></a>

```
GetComputeCertificateOutcome GetComputeCertificate();
```

### Valor devuelto
<a name="integration-server-sdk5-csharp-getcomputecertificate-return"></a>

Devuelve un GetComputeCertificateResponse objeto que contiene lo siguiente: 
+  CertificatePath: La ruta al certificado TLS de su recurso informático. Cuando se utiliza una flota administrada por Amazon GameLift Servers, la ruta contiene los siguientes elementos:
  + `certificate.pem`: el certificado del usuario final. La cadena de certificados completa es la combinación del `certificateChain.pem` adjunto a este certificado.
  + `certificateChain.pem`: la cadena de certificados que contiene el certificado raíz y los certificados intermedios.
  + `rootCertificate.pem`: el certificado raíz.
  + `privateKey.pem`: la clave privada del certificado del usuario final.
+ ComputeName: el nombre del recurso informático.

### Ejemplo
<a name="integration-server-sdk5-csharp-getcomputecertificate-example"></a>

```
GetComputeCertificateOutcome getComputeCertificateOutcome = GameLiftServerAPI.GetComputeCertificate();
```

## GetFleetRoleCredentials()
<a name="integration-server-sdk5-csharp-getfleetrolecredentials"></a>

Recupera las credenciales del rol de IAM que autorizan a Amazon GameLift Servers a interactuar con otros Servicios de AWS. Para obtener más información, consulte [Conecta tu servidor de juegos Amazon GameLift Servers alojado a otros AWS recursos](gamelift-sdk-server-resources.md).

### Sintaxis
<a name="integration-server-sdk5-csharp-getfleetrolecredentials-syntax"></a>

```
GetFleetRoleCredentialsOutcome GetFleetRoleCredentials(GetFleetRoleCredentialsRequest request);
```

### Parameters
<a name="integration-server-sdk5-csharp-getfleetrolecredentials-parameters"></a>

[GetFleetRoleCredentialsRequest](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-dataypes-getfleetrolecredentialsrequest)  
Credenciales de rol que amplían el acceso limitado a tus AWS recursos al servidor del juego.

### Valor devuelto
<a name="integration-server-sdk5-csharp-getfleetrolecredentials-return"></a>

Devuelve un objeto [GetFleetRoleCredentialsOutcome](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-getfleetrolecredentialsoutcome).

### Ejemplo
<a name="integration-server-sdk5-csharp-getfleetrolecredentials-example"></a>

```
// form the fleet credentials request  
GetFleetRoleCredentialsRequest getFleetRoleCredentialsRequest = new GetFleetRoleCredentialsRequest(){  
  RoleArn = "arn:aws:iam::123456789012:role/service-role/exampleGameLiftAction"  
};
GetFleetRoleCredentialsOutcome GetFleetRoleCredentialsOutcome credentials = GetFleetRoleCredentials(getFleetRoleCredentialsRequest);
```

## Destroy()
<a name="integration-server-sdk5-csharp-destroy"></a>

Libera de la memoria el SDK del servidor de juegos de Amazon GameLift Servers. Como práctica recomendada, llame a este método después de `ProcessEnding()` y antes de finalizar el proceso. Si utiliza una flota de Anywhere y no va a finalizar los procesos del servidor después de cada sesión de juego, llame a `Destroy()` y, a continuación, a `InitSDK()` para reinicializar antes de informar a Amazon GameLift Servers de que el proceso está listo para organizar una sesión de juego con `ProcessReady()`.

### Sintaxis
<a name="integration-server-sdk5-csharp-destroy-syntax"></a>

```
GenericOutcome Destroy()
```

### Valor devuelto
<a name="integration-server-sdk5-csharp-destroy-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-csharp-destroy-example"></a>

```
// Operations to end game sessions and the server process
GenericOutcome processEndingOutcome = GameLiftServerAPI.ProcessEnding();

// Shut down and destroy the instance of the GameLift Game Server SDK
GenericOutcome destroyOutcome = GameLiftServerAPI.Destroy();

// Exit the process with success or failure
if (processEndingOutcome.Success)
  { 
    Environment.Exit(0); 
  }
else
  {
    Console.WriteLine("ProcessEnding() failed. Error: " + processEndingOutcome.Error.ToString());
    Environment.Exit(-1); 
  }
```

# SDK del servidor de Go para Amazon GameLift Servers: acciones
<a name="integration-server-sdk-go-actions"></a>

Utilice la referencia del SDK 5.x del servidor para integrar su juego multijugador para el alojamiento con Amazon GameLift Servers. Para obtener ayuda con el proceso de integración, consulte [Adición de Amazon GameLift Servers al servidor de juegos con el SDK del servidor](gamelift-sdk-server-api.md).

`GameLiftServerAPI.go` define las acciones del SDK del servidor Go.

# SDK del servidor de Go para Amazon GameLift Servers: tipos de datos
<a name="integration-server-sdk-go-datatypes"></a>

Utilice la referencia del SDK del servidor para integrar su juego multijugador para el alojamiento con Amazon GameLift Servers. Para obtener ayuda con el proceso de integración, consulte [Adición de Amazon GameLift Servers al servidor de juegos con el SDK del servidor](gamelift-sdk-server-api.md).

`GameLiftServerAPI.go` define las acciones del SDK del servidor Go.

[SDK del servidor de Go para Amazon GameLift Servers: acciones](integration-server-sdk-go-actions.md)

**Topics**
+ [LogParameters](#integration-server-sdk-go-dataypes-log)
+ [MetricsParameters](#integration-server-sdk-go-dataypes-metrics)
+ [ProcessParameters](#integration-server-sdk-go-dataypes-process)
+ [UpdateGameSession](#integration-server-sdk-go-dataypes-updategamesession)
+ [GameSession](#integration-server-sdk-go-dataypes-gamesession)
+ [ServerParameters](#integration-server-sdk-go-dataypes-serverparameters)
+ [StartMatchBackfillRequest](#integration-server-sdk-go-dataypes-startmatchbackfillrequest)
+ [Jugador](#integration-server-sdk-go-dataypes-player)
+ [DescribePlayerSessionsRequest](#integration-server-sdk-go-dataypes-playersessions)
+ [StopMatchBackfillRequest](#integration-server-sdk-go-dataypes-stopmatchbackfillrequest)
+ [GetFleetRoleCredentialsRequest](#integration-server-sdk-go-dataypes-getfleetrolecredentialsrequest)

## LogParameters
<a name="integration-server-sdk-go-dataypes-log"></a>

Un objeto que identifica los archivos generados durante una sesión de juego que quiere que Amazon GameLift Servers cargue y almacene una vez finalizada la sesión de juego. El servidor de juegos proporciona `LogParameters` a Amazon GameLift Servers como parte de un objeto `ProcessParameters` en una llamada a [ProcessReady()](integration-server-sdk-go-actions.md#integration-server-sdk-go-processready).


|  |  | 
| --- |--- |
|  **Propiedades**  | Descripción | 
| LogPaths |  Lista de las rutas de directorio a archivos de registro del servidor de juegos que desea que Amazon GameLift Servers almacene para futuros accesos. El proceso del servidor genera esos archivos durante una sesión de juego. Defina los nombres y las rutas de los archivos en el servidor de juegos y almacénelos en el directorio raíz de compilación del juego.  Las rutas del registro deben ser absolutas. Por ejemplo, si la compilación del juego almacena los registros de sesión de juego en una ruta del tipo `MyGame\sessionLogs\`, la ruta sería `c:\game\MyGame\sessionLogs` en una instancia de Windows. **Tipo:** `[]string` **Obligatorio**: no  | 

## MetricsParameters
<a name="integration-server-sdk-go-dataypes-metrics"></a>

Objeto que comunica los parámetros de configuración para inicializar el sistema de métricas. Esta configuración se utiliza para configurar los informes de StatsD, los informes de bloqueo y el comportamiento de procesamiento de las métricas. El servidor de juegos proporciona `MetricsParameters` a Amazon GameLift Servers como parte de una llamada a [InitMetrics()](integration-server-sdk-go-actions.md#integration-server-sdk-go-initmetrics).


|  |  | 
| --- |--- |
|  **Propiedades**  | Descripción | 
| StatsdHost |  Host del servidor de StatsD para los informes de métricas (por ejemplo, “localhost”). **Tipo:** `string` **Obligatorio**: sí  | 
| StatsdPort |  Puerto del servidor de StatsD para los informes de métricas (por ejemplo, 8125). **Tipo:** `int` **Obligatorio**: sí  | 
| CrashReporterHost |  Host del servidor que notifica el bloqueo con fines de seguimiento y supervisión de procesos. **Tipo:** `string` **Obligatorio**: sí  | 
| CrashReporterPort |  Puerto que notifica el bloqueo con fines de seguimiento y supervisión de procesos. **Tipo:** `int` **Obligatorio**: sí  | 
| FlushIntervalMs |  Intervalo de vaciado de métricas en milisegundos. Controla la frecuencia con la que se envían las métricas a StatsD. **Tipo:** `int` **Obligatorio**: sí  | 
| MaxPacketSize |  Tamaño máximo de paquete para las métricas, en bytes. Limita el tamaño de los paquetes UDP enviados a StatsD. **Tipo:** `int` **Obligatorio**: sí  | 

## ProcessParameters
<a name="integration-server-sdk-go-dataypes-process"></a>

Un objeto que describe la comunicación entre un proceso del servidor y Amazon GameLift Servers. El proceso del servidor proporciona esta información a Amazon GameLift Servers con una llamada a [ProcessReady()](integration-server-sdk-go-actions.md#integration-server-sdk-go-processready).


|  |  | 
| --- |--- |
|  **Propiedades**  | Descripción | 
| LogParameters | Un objeto con rutas de directorio a los archivos que se generan durante una sesión de juego. Amazon GameLift Servers copia y almacena los archivos para accesos futuros.**Tipo:** `LogParameters`**Obligatorio**: no | 
| OnHealthCheck | Nombre de la función de devolución de llamada que invoca Amazon GameLift Servers para solicitar un informe de estado del proceso del servidor. Amazon GameLift Servers llama a esta función cada 60 segundos y espera otros 60 segundos para obtener una respuesta. El proceso del servidor devuelve TRUE si está en buen estado y FALSE si no. Si no se devuelve ninguna respuesta, Amazon GameLift Servers registra el proceso del servidor como defectuoso.**Tipo:** `OnHealthCheck func() bool`**Obligatorio**: no | 
| OnProcessTerminate | La función de devolución de llamada que invoca Amazon GameLift Servers para forzar el cierre del proceso de servidor. Después de llamar a esta función, Amazon GameLift Servers espera 5 minutos hasta que el proceso del servidor se cierre y responde con una llamada a [ProcessEnding()](integration-server-sdk-go-actions.md#integration-server-sdk-go-processending) antes de cerrar el proceso del servidor.**Tipo:** `OnProcessTerminate func()`**Obligatorio**: sí | 
| OnStartGameSession | Nombre de la función de devolución de llamada que invoca Amazon GameLift Servers para proporcionar un objeto de sesión de juego actualizado. Amazon GameLift Servers llama a esta función una vez que se ha procesado una solicitud de reposición de emparejamiento para proporcionar datos actualizados del emparejador. Pasa un objeto [GameSession](#integration-server-sdk-go-dataypes-gamesession), una actualización de estado (updateReason) y el ID del ticket de reposición de emparejamiento.**Tipo:** `OnStartGameSession func (model.GameSession )`**Obligatorio**: sí | 
| OnUpdateGameSession | Función de devolución de llamada que invoca Amazon GameLift Servers para pasar la información de sesión de juego actualizada al proceso del servidor. Amazon GameLift Servers llama a esta función una vez que se ha procesado una solicitud de reposición de emparejamiento para proporcionar datos actualizados del emparejador. **Tipo:** `OnUpdateGameSession func (model.UpdateGameSession)`**Obligatorio**: no | 
| Port | El número de puerto en el que escucha el proceso del servidor para recibir conexiones de jugador nuevas. El valor debe estar en el rango de puertos configurado para cualquier flota que implemente esa compilación de servidor de juegos. Este número de puerto se incluye en los objetos de sesión de juego y de jugador, que las sesiones de juego utilizan a la hora de conectarse a un proceso del servidor.**Tipo:** `int`**Obligatorio**: sí | 

## UpdateGameSession
<a name="integration-server-sdk-go-dataypes-updategamesession"></a>

Las actualizaciones en un objeto de sesión de juego, que incluye el motivo por el que se actualizó la sesión de juego y el ID del ticket de reposición correspondiente si la reposición se utiliza para reponer las sesiones de los jugadores en la sesión de juego.


| Propiedades | **Descripción** | 
| --- | --- | 
| GameSession | Un objeto [GameSession](#integration-server-sdk-go-dataypes-gamesession). El objeto GameSession contiene propiedades que describen una sesión de juego. **Tipo:** `GameSession GameSession()`**Obligatorio**: sí | 
| UpdateReason | El motivo por el que se actualiza la sesión de juego.**Tipo:** `UpdateReason UpdateReason()`**Obligatorio**: sí | 
| BackfillTicketId | El ID de ticket de reposición que intenta actualizar la sesión de juego.**Tipo:** `String`**Obligatorio**: no | 

## GameSession
<a name="integration-server-sdk-go-dataypes-gamesession"></a>

Los detalles de una sesión de juego. 


| Propiedades | **Descripción** | 
| --- | --- | 
| GameSessionId |  Un identificador único de la sesión de juego. Un nombre de recurso de Amazon (ARN) de sesión de juego tiene el siguiente formato: `arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>`. **Tipo:** `String` **Obligatorio**: no  | 
| Name |  Una etiqueta descriptiva de la sesión de juego.  **Tipo:** `String` **Obligatorio**: no  | 
| FleetId |  Un identificador único para la flota en la que se ejecuta la sesión de juego. **Tipo:** `String` **Obligatorio**: no  | 
| MaximumPlayerSessionCount |  El número máximo de conexiones de jugadores a la sesión de juego. **Tipo:** `Integer` **Obligatorio**: no  | 
| Puerto |  El número de puerto de la sesión de juego. Para conectarse a un servidor de Amazon GameLift Servers juegos, una aplicación necesita tanto la dirección IP como el número de puerto. **Tipo:** `Integer` **Obligatorio**: no  | 
| IpAddress |  La dirección IP del servidor de la sesión de juego. Para conectarse a un servidor de Amazon GameLift Servers juegos, la aplicación necesita tanto la dirección IP como el número de puerto. **Tipo:** `String` **Obligatorio**: no  | 
| GameSessionData |  Un conjunto de propiedades de sesión de juego personalizadas, formateadas como un valor de una sola cadena.  **Tipo:** `String` **Obligatorio**: no  | 
| MatchmakerData |  La información sobre el proceso de emparejamiento que se utilizó para crear la sesión de juego, en sintaxis JSON, con formato como cadena. Además de la configuración de emparejamiento utilizada, contiene datos sobre todos los jugadores asignados al emparejamiento, incluidos los atributos de los jugadores y las asignaciones de los equipos. **Tipo:** `String` **Obligatorio**: no  | 
| GameProperties |  Un conjunto de propiedades personalizadas de una sesión de juego, con formato como pares clave-valor. Estas propiedades se pasan a una solicitud de iniciar una nueva sesión de juego. **Tipo:** `map[string] string` **Obligatorio**: no  | 
| DnsName |  El identificador de DNS asignado a la instancia que ejecuta la sesión de juego. Los valores tienen formato siguiente: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/gameliftservers/latest/developerguide/integration-server-sdk-go-datatypes.html) Cuando se conecte a una sesión de juego que se ejecute en una flota habilitada de TLS, debe utilizar el nombre de DNS, no la dirección IP. **Tipo:** `String` **Obligatorio**: no  | 

## ServerParameters
<a name="integration-server-sdk-go-dataypes-serverparameters"></a>

La información utilizada para mantener la conexión entre un servidor de Amazon GameLift Servers Anywhere y el servicio Amazon GameLift Servers. Esta información se utiliza al inicializar nuevos procesos de servidor con [InitSDK()](integration-server-sdk-go-actions.md#integration-server-sdk-go-initsdk). Para los servidores alojados en instancias de EC2 administradas por Amazon GameLift Servers, utilice un objeto vacío.


| Propiedades | **Descripción** | 
| --- | --- | 
| WebSocketURL |  `GameLiftServerSdkEndpoint` que devuelve Amazon GameLift Servers cuando se invoca [https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html) para un recurso de computación de Amazon GameLift Servers Anywhere. **Tipo:** `string` **Obligatorio**: sí  | 
| ProcessID |  Un identificador único registrado en el proceso del servidor que aloja el juego. **Tipo:** `string` **Obligatorio**: sí  | 
| HostID |  El identificador único del recurso informático que aloja el nuevo proceso del servidor.  El `HostID` es el `ComputeName` utilizado cuando registró el recurso informático. Para obtener más información, consulte [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html). **Tipo:** `string` **Obligatorio**: sí  | 
| FleetID | El identificador único de la flota en la que está registrado el recurso informático. Para obtener más información, consulte [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html).**Tipo:** `string`**Obligatorio**: sí | 
| AuthToken | El token de autenticación generado por Amazon GameLift Servers que autentica el servidor en Amazon GameLift Servers. Para obtener más información, consulte [GetComputeAuthToken](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetComputeAuthToken.html).**Tipo:** `string`**Obligatorio**: sí | 

## StartMatchBackfillRequest
<a name="integration-server-sdk-go-dataypes-startmatchbackfillrequest"></a>

Información utilizada para crear una solicitud de reposición de emparejamiento. El servidor de juegos comunica esa información a Amazon GameLift Servers en una llamada a [StartMatchBackfill()](integration-server-sdk-go-actions.md#integration-server-sdk-go-startmatchbackfill).


| Propiedades | **Descripción** | 
| --- | --- | 
| GameSessionArn |  El identificador único de la sesión de juego. El `[GetGameSessionId](https://docs.aws.amazon.com/gameliftservers/latest/developerguide/integration-server-sdk-go-actions.html#integration-server-sdk-go-getgamesessionid)` de la operación de la API devuelve el identificador en formato de ARN. **Tipo:** `String` **Obligatorio**: sí  | 
| MatchmakingConfigurationArn |  El identificador único, en forma de ARN, que el emparejador utiliza para esta solicitud. El ARN del emparejador para la sesión de juego original se encuentra en el objeto de sesión de juego en la propiedad de datos del emparejador. Para obtener más información sobre los datos del emparejador, consulte [Trabajo con datos del emparejador](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-server.html#match-server-data.html). **Tipo:** `String` **Obligatorio**: sí  | 
| Players |  Un conjunto de datos que representa a todos los jugadores que están actualmente en la sesión de juego. El creador de emparejamientos utiliza esta información para buscar nuevos jugadores que son idóneos para los jugadores actuales. **Tipo:** `[]model.Player` **Obligatorio**: sí  | 
| TicketId |  El identificador único para un ticket de solicitud de emparejamiento o reposición de emparejamiento. Si no proporciona un valor, Amazon GameLift Servers generará uno. Use este identificador para realizar un seguimiento del estado del ticket de reposición de emparejamiento o cancelar la solicitud si es necesario.  **Tipo:** `String` **Obligatorio**: no  | 

## Jugador
<a name="integration-server-sdk-go-dataypes-player"></a>

El objeto que representa a un jugador en el emparejamiento. Al iniciar una solicitud de emparejamiento, un jugador tiene un ID de jugador, atributos y, posiblemente, datos de latencia. Amazon GameLift Servers añade la información de los equipos tras realizar un emparejamiento.


| Propiedades | **Descripción** | 
| --- | --- | 
| LatencyInMS |  Un conjunto de valores expresados en milisegundos que indican la cantidad de latencia que experimenta un jugador cuando se conecta a una ubicación.  Si se utiliza esta propiedad, el jugador solo se empareja con las ubicaciones que aparecen. Si un creador de emparejamientos tiene una regla que evalúa la latencia de los jugadores, estos deben informar de la latencia para ser emparejados. **Tipo:** `map[string] int` **Obligatorio**: no  | 
| PlayerAttributes |  Una colección de pares de clave-valor que contienen información del jugador para su uso en el emparejamiento. Las claves de atributos del jugador deben coincidir con las PlayerAttributes utilizadas en un conjunto de reglas de emparejamiento. Para obtener más información sobre los atributos de los jugadores, consulte [AttributeValue](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_AttributeValue.html). **Tipo:** `map[string] AttributeValue` **Obligatorio**: no  | 
| PlayerId |  Un identificador único de un jugador. **Tipo:** `String` **Obligatorio**: no  | 
| Equipo |  El nombre del equipo al que está asignado el jugador en un emparejamiento. Defina el nombre del equipo se define en el conjunto de reglas de emparejamiento. **Tipo:** `String` **Obligatorio**: no  | 

## DescribePlayerSessionsRequest
<a name="integration-server-sdk-go-dataypes-playersessions"></a>

Un objeto que especifica las sesiones de jugador que recuperar. El proceso del servidor proporciona esta información con una llamada [DescribePlayerSessions()](integration-server-sdk-go-actions.md#integration-server-sdk-go-describeplayersessions) a Amazon GameLift Servers.


| Propiedades | **Descripción** | 
| --- | --- | 
| GameSessionID |  Un identificador único de la sesión de juegos. Use este parámetro para solicitar todas las sesiones de jugador de la sesión de juego especificada.  El formato de ID de sesión de juego es `arn:aws:gamelift:<region>::gamesession/fleet-<fleet ID>/<ID string>`. El `GameSessionID` es una cadena de ID personalizada o una cadena generada.  **Tipo:** `String` **Obligatorio**: no  | 
| PlayerSessionID |  El identificador único de una sesión de jugador. Utilice este parámetro para solicitar una sesión de jugador específica. **Tipo:** `String` **Obligatorio**: no  | 
| PlayerID |  El identificador único de un jugador. Utilice este parámetro para solicitar todas las sesiones de jugador para un jugador específico. Consulte [Generación de ID de jugador](player-sessions-player-identifiers.md). **Tipo:** `String` **Obligatorio**: no  | 
| PlayerSessionStatusFilter |  El estado de la sesión de jugador para filtrar los resultados. Los posibles estados de sesión de jugador son los siguientes: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/gameliftservers/latest/developerguide/integration-server-sdk-go-datatypes.html) **Tipo:** `String` **Obligatorio**: no  | 
| NextToken |  El token que indica el inicio de la siguiente página de resultados. Para especificar el inicio del conjunto de resultados, no indique ningún valor. Si se especifica un ID de sesión de jugador, este parámetro se ignora. **Tipo:** `String` **Obligatorio**: no  | 
| Limit |  El número máximo de resultados que devolver. Si se especifica un ID de sesión de jugador, este parámetro se ignora. **Tipo:** `int` **Obligatorio**: no  | 

## StopMatchBackfillRequest
<a name="integration-server-sdk-go-dataypes-stopmatchbackfillrequest"></a>

Información utilizada para cancelar una solicitud de reposición de emparejamiento. El servidor de juegos comunica esa información al servicio Amazon GameLift Servers en una llamada a [StopMatchBackfill()](integration-server-sdk-go-actions.md#integration-server-sdk-go-stopmatchbackfill).


| Propiedades | **Descripción** | 
| --- | --- | 
| GameSessionArn |  El identificador único de sesión de juego de la solicitud que se va a cancelar. **Tipo:** `string` **Obligatorio**: no  | 
| MatchmakingConfigurationArn |  El identificador único del emparejador al que se envió esta solicitud. **Tipo:** `string` **Obligatorio**: no  | 
| TicketId |  El identificador único del ticket de solicitud de reposición que se va a cancelar. **Tipo:** `string` **Obligatorio**: no  | 

## GetFleetRoleCredentialsRequest
<a name="integration-server-sdk-go-dataypes-getfleetrolecredentialsrequest"></a>

Las credenciales de rol que amplían el acceso limitado a tus AWS recursos al servidor del juego. Para obtener más información, consulte, [Configuración de un rol de servicio de IAM para Amazon GameLift Servers](setting-up-role.md).


| Propiedades | **Descripción** | 
| --- | --- | 
| RoleArn | El ARN del rol de servicio que amplía el acceso limitado a sus recursos de AWS .**Tipo:** `string`**Obligatorio**: sí | 
| RoleSessionName | El nombre de la sesión que describe el uso de las credenciales del rol.**Tipo:** `string`**Obligatorio**: sí | 

[SDK del servidor de Go para Amazon GameLift Servers: tipos de datos](integration-server-sdk-go-datatypes.md)

**Topics**
+ [SDK del servidor de Go para Amazon GameLift Servers: tipos de datos](integration-server-sdk-go-datatypes.md)
+ [GetSdkVersion()](#integration-server-sdk-go-getsdkversion)
+ [InitMetrics()](#integration-server-sdk-go-initmetrics)
+ [InitMetricsFromEnvironment()](#integration-server-sdk-go-initmetricsfromenv)
+ [InitSDK()](#integration-server-sdk-go-initsdk)
+ [ProcessReady()](#integration-server-sdk-go-processready)
+ [ProcessEnding()](#integration-server-sdk-go-processending)
+ [ActivateGameSession()](#integration-server-sdk-go-activategamesession)
+ [UpdatePlayerSessionCreationPolicy()](#integration-server-sdk-go-updateplayersessioncreationpolicy)
+ [GetGameSessionId()](#integration-server-sdk-go-getgamesessionid)
+ [GetTerminationTime()](#integration-server-sdk-go-getterm)
+ [AcceptPlayerSession()](#integration-server-sdk-go-acceptplayersession)
+ [RemovePlayerSession()](#integration-server-sdk-go-removeplayersession)
+ [DescribePlayerSessions()](#integration-server-sdk-go-describeplayersessions)
+ [StartMatchBackfill()](#integration-server-sdk-go-startmatchbackfill)
+ [StopMatchBackfill()](#integration-server-sdk-go-stopmatchbackfill)
+ [GetComputeCertificate()](#integration-server-sdk-go-getcomputecertificate)
+ [GetFleetRoleCredentials()](#integration-server-sdk-go-getfleetrolecredentials)
+ [Destroy()](#integration-server-sdk-go-destroy)

## GetSdkVersion()
<a name="integration-server-sdk-go-getsdkversion"></a>

Devuelve el número de versión actual del SDK integrado en el proceso del servidor.

### Sintaxis
<a name="integration-server-sdk-go-getsdkversion-syntax"></a>

```
func GetSdkVersion() (string, error)
```

### Valor devuelto
<a name="integration-server-sdk-go-getsdkversion-return"></a>

Si funciona correctamente, devuelve la versión del SDK actual como una cadena. La cadena devuelta solo incluye el número de versión (por ejemplo, `5.0.0`). Si no funciona, devuelve un mensaje de error, como `common.SdkVersionDetectionFailed`.

### Ejemplo
<a name="integration-server-sdk-go-getsdkversion-example"></a>

```
version, err := server.GetSdkVersion()
```

## InitMetrics()
<a name="integration-server-sdk-go-initmetrics"></a>

Inicializa la recopilación de métricas para el SDK de Amazon GameLift Servers. Este método configura los informes de métricas para ayudar a supervisar el rendimiento y el estado de los servidores. Llame a este método después de [InitSDK()](#integration-server-sdk-go-initsdk), pero antes de [ProcessReady()](#integration-server-sdk-go-processready).

### Sintaxis
<a name="integration-server-sdk-go-initmetrics-syntax"></a>

```
func InitMetrics() error
func InitMetrics(metricsParameters MetricsParameters) error
```

### Parameters
<a name="integration-server-sdk-go-initmetrics-parameter"></a>

MetricsParameters (opcional)  
Objeto `MetricsParameters` que configura la recopilación de métricas. Si no se proporciona, se utiliza la configuración de métricas predeterminada. La MetricsParameters estructura contiene los siguientes campos:  
+ `StatsdHost`: el nombre de host o dirección IP del servidor de StatsD.
+ `StatsdPort`: número de puerto del servidor de StatsD.
+ `CrashReporterHost`: nombre de host o dirección IP del servidor que notifica el bloqueo.
+ `CrashReporterPort`: número de puerto del servidor que notifica el bloqueo.
+ `FlushIntervalMs`: intervalo en milisegundos para vaciar los datos de las métricas al servidor.
+ `MaxPacketSize`: tamaño máximo de paquete para las métricas, en bytes.
Para obtener más información sobre la MetricsParameters estructura, consulte [Server SDK 5.x para los tipos de datos de C\$1](https://docs.aws.amazon.com/gameliftservers/latest/developerguide/integration-server-sdk5-csharp-datatypes.html).

### Valor devuelto
<a name="integration-server-sdk-go-initmetrics-return"></a>

Si se realiza correctamente, devuelve un error `nil` para indicar que la recopilación de métricas se ha inicializado correctamente.

### Ejemplo
<a name="integration-server-sdk-go-initmetrics-example"></a>

Inicialización de las métricas con la configuración predeterminada:

```
err := server.InitMetrics()
```

Inicialización de las métricas con una configuración personalizada:

```
metricsParams := MetricsParameters{
    StatsdHost:        "localhost",
    StatsdPort:        8125,
    CrashReporterHost: "localhost",
    CrashReporterPort: 9125,
    FlushIntervalMs:   5000,
    MaxPacketSize:     1024,
}

err := server.InitMetrics(metricsParams)
```

## InitMetricsFromEnvironment()
<a name="integration-server-sdk-go-initmetricsfromenv"></a>

Inicializa la recopilación de métricas para el SDK de Amazon GameLift Servers utilizando la configuración de las variables de entorno. Este método configura los informes de métricas utilizando la configuración predeterminada derivada del entorno de tiempo de ejecución.

Llame a este método después de [InitSDK()](#integration-server-sdk-go-initsdk), pero antes de [ProcessReady()](#integration-server-sdk-go-processready).

### Sintaxis
<a name="integration-server-sdk-go-initmetricsfromenv-syntax"></a>

```
func InitMetricsFromEnvironment() error
```

### Valor devuelto
<a name="integration-server-sdk-go-initmetricsfromenv-return"></a>

Si se realiza correctamente, devuelve un error `nil` para indicar que la recopilación de métricas se ha inicializado correctamente con la configuración del entorno.

### Ejemplo
<a name="integration-server-sdk-go-initmetricsfromenv-example"></a>

```
err := server.InitMetricsFromEnvironment()
```

## InitSDK()
<a name="integration-server-sdk-go-initsdk"></a>

Inicializa el SDK de Amazon GameLift Servers. Llame a este método en el lanzamiento, antes de cualquier otra inicialización relacionada con Amazon GameLift Servers. Este método establece la comunicación entre el servidor y el servicio Amazon GameLift Servers.

### Sintaxis
<a name="integration-server-sdk-go-initsdk-syntax"></a>

```
func InitSDK(params ServerParameters) error 
```

### Parameters
<a name="integration-server-sdk-go-initsdk-parameter"></a>

[ServerParameters](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-serverparameters)  
Para inicializar un servidor de juegos en una flota de Amazon GameLift Servers Anywhere, cree un objeto `ServerParameters` con la siguiente información:  
+ La URL WebSocket utilizada para conectarse al servidor de juegos. 
+ El ID del proceso utilizado para alojar su servidor de juegos. 
+ El ID del proceso utilizado para alojar los procesos del servidor de juegos. 
+ El ID de la flota de Amazon GameLift Servers que contiene su recurso de computación de Amazon GameLift Servers Anywhere.
+ El token de autorización generado por la operación de Amazon GameLift Servers. 
Para inicializar un servidor de juegos en una flota de EC2 administrada de Amazon GameLift Servers, cree un objeto `ServerParameters` sin parámetros. Con esta llamada, el agente de Amazon GameLift Servers configura el entorno informático y se conecta automáticamente al servicio Amazon GameLift Servers por usted. 

### Valor devuelto
<a name="integration-server-sdk-go-initsdk-return"></a>

Si funciona correctamente, devuelve el error `nil` para indicar que el proceso del servidor está listo para llamar a [ProcessReady()](#integration-server-sdk-go-processready). 

**nota**  
Si las llamadas a `InitSDK()` no funcionan en las compilaciones de juegos implementadas en las flotas de Anywhere, compruebe el parámetro `ServerSdkVersion` que se utiliza al crear el recurso de compilación. Debe establecer este valor de forma explícita en la versión del SDK del servidor en uso. El valor predeterminado de este parámetro es 4.x, que no es compatible. Para resolver este problema, cree una compilación nueva e impleméntela en una flota nueva.

### Ejemplo
<a name="integration-server-sdk-go-initsdk-example"></a>

Ejemplo de Amazon GameLift Servers Anywhere

```
//Define the server parameters
serverParameters := ServerParameters {
  WebSocketURL: "wss://us-west-1.api.amazongamelift.com",
  ProcessID: "PID1234",
  HostID: "HardwareAnywhere",
  FleetID: "aarn:aws:gamelift:us-west-1:111122223333:fleet/fleet-9999ffff-88ee-77dd-66cc-5555bbbb44aa",
  AuthToken: "1111aaaa-22bb-33cc-44dd-5555eeee66ff"
}

//Call InitSDK to establish a local connection with the Amazon GameLift Servers Agent to enable further communication.
err := server.InitSDK(serverParameters)
```

Ejemplo de EC2 administrado por Amazon GameLift Servers

```
//Define the server parameters
serverParameters := ServerParameters {}

//Call InitSDK to establish a local connection with the Amazon GameLift Servers Agent to enable further communication.
err := server.InitSDK(serverParameters)
```

## ProcessReady()
<a name="integration-server-sdk-go-processready"></a>

Notifica a Amazon GameLift Servers que el proceso del servidor de juegos está listo para alojar sesiones de juego. Llame a este método después de invocar [InitSDK()](#integration-server-sdk-go-initsdk). Se debe llamar a este método solo una vez por proceso.

### Sintaxis
<a name="integration-server-sdk-go-processready-syntax"></a>

```
func ProcessReady(param ProcessParameters) error
```

### Parameters
<a name="integration-server-sdk-go-processready-parameter"></a>

**ProcessParameters**  
Es un objeto [ProcessParameters](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-process) que comunica la siguiente información sobre el proceso del servidor:  
+ Nombres de los métodos de devolución de llamada, implementados en el código de servidor de juegos, que el servicio Amazon GameLift Servers invoca para comunicarse con el proceso del servidor.
+ El número de puerto de escucha del servidor de proceso.
+ El tipo de datos [LogParameters](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-log) que contiene la ruta a cualquier archivo específico de la sesión de juego que desea que Amazon GameLift Servers capture y almacene.

### Valor devuelto
<a name="integration-server-sdk-go-processready-return"></a>

Devuelve un error con un mensaje de error si el método falla. Devuelve `nil` si el método se realiza correctamente.

### Ejemplo
<a name="integration-server-sdk-go-processready-example"></a>

Este ejemplo ilustra las implementaciones tanto de la función de llamada [ProcessReady()](#integration-server-sdk-go-processready) como de la función de delegación.

```
// Define the process parameters
processParams := ProcessParameters {
  OnStartGameSession: gameProcess.OnStartGameSession,
  OnUpdateGameSession: gameProcess.OnGameSessionUpdate,
  OnProcessTerminate: gameProcess.OnProcessTerminate,
  OnHealthCheck: gameProcess.OnHealthCheck,
  Port: port,
  LogParameters: LogParameters {    // logging and error example
    []string {"C:\\game\\logs", "C:\\game\\error"}
  }
}

err := server.ProcessReady(processParams)
```

## ProcessEnding()
<a name="integration-server-sdk-go-processending"></a>

Informa a Amazon GameLift Servers de que el proceso del servidor está finalizando. Llame a este método después de realizar todas las demás tareas de limpieza (lo que incluye el cierre de la sesión de juegos activa) y antes de finalizar el proceso. Según el resultado de `ProcessEnding()`, el proceso finaliza con éxito (0) o error (-1) y genera un evento de flota. Si el proceso finaliza con un error, el evento de flota generado será `SERVER_PROCESS_TERMINATED_UNHEALTHY`.

### Sintaxis
<a name="integration-server-sdk-go-processending-syntax"></a>

```
func ProcessEnding() error
```

### Valor devuelto
<a name="integration-server-sdk-go-processending-return"></a>

Devuelve un código de error 0 o un código de error definido.

### Ejemplo
<a name="integration-server-sdk-go-processending-example"></a>

```
// operations to end game sessions and the server process
defer func() {
  err := server.ProcessEnding()
  server.Destroy()
  if err != nil {
    fmt.Println("ProcessEnding() failed. Error: ", err)
    os.Exit(-1)
  } else {
    os.Exit(0)
  }
}
```

## ActivateGameSession()
<a name="integration-server-sdk-go-activategamesession"></a>

Notifica a Amazon GameLift Servers que el proceso del servidor ha iniciado una sesión de juego y que está listo para recibir las conexiones de los jugadores. Se llama a esta acción como parte de la función de devolución de llamada `onStartGameSession()`, después de la inicialización de todas las sesiones de juego.

### Sintaxis
<a name="integration-server-sdk-go-activategamesession-syntax"></a>

```
func ActivateGameSession() error
```

### Valor devuelto
<a name="integration-server-sdk-go-activategamesession-return"></a>

Devuelve un error con un mensaje de error si el método falla.

### Ejemplo
<a name="integration-server-sdk-go-activategamesession-example"></a>

Este ejemplo muestra cómo se llama a `ActivateGameSession()` como parte de la función de delegación `onStartGameSession()`. 

```
func OnStartGameSession(GameSession gameSession) {
  // game-specific tasks when starting a new game session, such as loading map   
  // Activate when ready to receive players   
  err := server.ActivateGameSession();
}
```

## UpdatePlayerSessionCreationPolicy()
<a name="integration-server-sdk-go-updateplayersessioncreationpolicy"></a>

Actualiza la capacidad de la sesión de juego actual para aceptar sesiones de jugador nuevas. Una sesión de juego se puede configurar para que acepte o deniegue todas las sesiones nuevas de los jugadores.

### Sintaxis
<a name="integration-server-sdk-go-updateplayersessioncreationpolicy-syntax"></a>

```
func UpdatePlayerSessionCreationPolicy(policy model.PlayerSessionCreationPolicy) error
```

### Parameters
<a name="integration-server-sdk-go-updateplayersessioncreationpolicy-parameter"></a>

**playerSessionCreationPolítica**  
Valor de cadena que indica si la sesión de juego acepta jugadores nuevos.   
Los valores válidos son:  
+ **`model.AcceptAll`**: se aceptan todas las sesiones de jugador nuevas.
+ **`model.DenyAll`**: se rechazan todas las sesiones de jugador nuevas.

### Valor devuelto
<a name="integration-server-sdk-go-updateplayersessioncreationpolicy-return"></a>

Devuelve un error con un mensaje de error si se produce un error.

### Ejemplo
<a name="integration-server-sdk-go-updateplayersessioncreationpolicy-example"></a>

Este ejemplo establece la política de participación en la sesión de juego actual para aceptar todos los jugadores.

```
err := server.UpdatePlayerSessionCreationPolicy(model.AcceptAll)
```

## GetGameSessionId()
<a name="integration-server-sdk-go-getgamesessionid"></a>

Recupera el ID de la sesión de juego alojada por el proceso del servidor.

### Sintaxis
<a name="integration-server-sdk-go-getgamesessionid-syntax"></a>

```
func GetGameSessionID() (string, error)
```

### Parameters
<a name="integration-server-sdk-go-getgamesessionid-parameter"></a>

Esta acción no tiene parámetros.

### Valor devuelto
<a name="integration-server-sdk-go-getgamesessionid-return"></a>

Si funciona correctamente, devuelve el ID de sesión del juego y el error nil. En el caso de los procesos inactivos que no se han activado aún con una sesión de juego, la llamada devuelve una cadena vacía y el error `nil`.

### Ejemplo
<a name="integration-server-sdk-go-getgamesessionid-example"></a>

```
gameSessionID, err := server.GetGameSessionID()
```

## GetTerminationTime()
<a name="integration-server-sdk-go-getterm"></a>

Devuelve la hora a la que está programada el cierre de un proceso de servidor, si hay una hora de terminación disponible. Un proceso del servidor realiza esta acción después de recibir una devolución de llamada `onProcessTerminate()` desde Amazon GameLift Servers. Amazon GameLift Servers llama a `onProcessTerminate()` por los motivos siguientes: 
+ Cuando el proceso del servidor ha informado de un mal estado o no ha respondido a Amazon GameLift Servers.
+ Al finalizar la instancia durante un evento de reducción vertical.
+ [Cuando se finaliza una instancia debido a la interrupción de una instancia de spot](spot-tasks.md).

### Sintaxis
<a name="integration-server-sdk-go-getterm-syntax"></a>

```
func GetTerminationTime() (int64, error)
```

### Valor devuelto
<a name="integration-server-sdk-go-getterm-return"></a>

Si se ejecuta correctamente, devuelve la marca temporal en segundos en la que está previsto que el proceso del servidor se cierre y finalice el error `nil`. El valor es la hora de terminación expresado en ciclos transcurridos desde `0001 00:00:00`. Por ejemplo, el valor de la fecha y hora `2020-09-13 12:26:40 -000Z` es igual a `637355968000000000` ciclos. Si no hay una hora de terminación disponible, devuelve un mensaje de error.

### Ejemplo
<a name="integration-server-sdk-go-getterm-example"></a>

```
terminationTime, err := server.GetTerminationTime()
```

## AcceptPlayerSession()
<a name="integration-server-sdk-go-acceptplayersession"></a>

Notifica a Amazon GameLift Servers que un jugador con el ID de sesión de jugador especificado se ha conectado al proceso del servidor y requiere validación. Amazon GameLift Servers verifica que el ID de sesión de jugador es válido. Una vez validada la sesión del jugador, Amazon GameLift Servers cambia el estado del espacio de jugador de `RESERVED` a `ACTIVE`. 

### Sintaxis
<a name="integration-server-sdk-go-acceptplayersession-syntax"></a>

```
func AcceptPlayerSession(playerSessionID string) error
```

### Parameters
<a name="integration-server-sdk-go-acceptplayersession-parameter"></a>

`playerSessionId`  
ID único emitido por Amazon GameLift Servers cuando se crea una nueva sesión de jugador.

### Valor devuelto
<a name="integration-server-sdk-go-acceptplayersession-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error. 

### Ejemplo
<a name="integration-server-sdk-go-acceptplayersession-example"></a>

Este ejemplo gestiona una solicitud de conexión que incluye la validación y el rechazo de una sesión de jugador no válida. IDs 

```
func ReceiveConnectingPlayerSessionID(conn Connection, playerSessionID string) {
    err := server.AcceptPlayerSession(playerSessionID)
    if err != nil {
        connection.Accept()
    } else {
        connection.Reject(err.Error())
    }
}
```

## RemovePlayerSession()
<a name="integration-server-sdk-go-removeplayersession"></a>

Informa a Amazon GameLift Servers de que un jugador se ha desconectado del proceso del servidor. Como respuesta, Amazon GameLift Servers cambia el espacio del jugador para que esté disponible. 

### Sintaxis
<a name="integration-server-sdk-go-removeplayersession-syntax"></a>

```
func RemovePlayerSession(playerSessionID string) error
```

### Parameters
<a name="integration-server-sdk-go-removeplayersession-parameter"></a>

**`playerSessionId`**  
ID único emitido por Amazon GameLift Servers cuando se crea una nueva sesión de jugador.

### Valor devuelto
<a name="integration-server-sdk-go-removeplayersession-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk-go-removeplayersession-example"></a>

```
err := server.RemovePlayerSession(playerSessionID)
```

## DescribePlayerSessions()
<a name="integration-server-sdk-go-describeplayersessions"></a>

Recupera datos de sesión de jugador, incluida la configuración, los metadatos de la sesión y los datos de jugador. Utilice este método para obtener información sobre los siguientes elementos:
+ Una sesión para un jugador
+ Todas las sesiones del jugador en una sesión de juego
+ Todas las sesiones de jugador están asociadas a un único ID de jugador

### Sintaxis
<a name="integration-server-sdk-go-describeplayersessions-syntax"></a>

```
func DescribePlayerSessions(req request.DescribePlayerSessionsRequest) (result.DescribePlayerSessionsResult, error) {
	return srv.describePlayerSessions(&req)
}
```

### Parameters
<a name="integration-server-sdk-go-describeplayersessions-parameter"></a>

**[DescribePlayerSessionsRequest](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-playersessions)**  
Es un objeto `DescribePlayerSessionsRequest` que describe las sesiones de jugador a recuperar.

### Valor devuelto
<a name="integration-server-sdk-go-describeplayersessions-return"></a>

Si funciona correctamente, devuelve un objeto `DescribePlayerSessionsResult` que contiene un conjunto de objetos de sesión de jugador que se ajusta a los parámetros de la solicitud.

### Ejemplo
<a name="integration-server-sdk-go-describeplayersessions-example"></a>

En este ejemplo se solicitan todas las sesiones de jugador conectadas activamente a una sesión de juego específica. Al omitir *NextToken*y establecer el valor *límite* en 10, Amazon GameLift Servers devuelve los registros de las sesiones de los primeros 10 jugadores que coincidan con la solicitud.

```
// create request
describePlayerSessionsRequest := request.NewDescribePlayerSessions() 
describePlayerSessionsRequest.GameSessionID, _ = server.GetGameSessionID() // get ID for the current game session
describePlayerSessionsRequest.Limit = 10                                 // return the first 10 player sessions
describePlayerSessionsRequest.PlayerSessionStatusFilter = "ACTIVE"         // Get all player sessions actively connected to the game session

describePlayerSessionsResult, err := server.DescribePlayerSessions(describePlayerSessionsRequest)
```

## StartMatchBackfill()
<a name="integration-server-sdk-go-startmatchbackfill"></a>

Envía una solicitud para encontrar nuevos jugadores para ranuras abiertas en una sesión de juego creada con FlexMatch. Para obtener más información, consulte [Característica de reposición de FlexMatch](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html).

Esta acción es asíncrona. Si se emparejan nuevos jugadores, Amazon GameLift Servers ofrece datos actualizados del emparejador mediante la función de devolución de llamada `OnUpdateGameSession()`.

Un proceso del servidor solo puede tener una solicitud de reposición de emparejamiento activa a la vez. Para enviar una nueva solicitud, en primer lugar llame a [StopMatchBackfill()](#integration-server-sdk-go-stopmatchbackfill) para cancelar la solicitud original.

### Sintaxis
<a name="integration-server-sdk-go-startmatchbackfill-syntax"></a>

```
func StartMatchBackfill(req request.StartMatchBackfillRequest) (result.StartMatchBackfillResult, error)
```

### Parameters
<a name="integration-server-sdk-go-startmatchbackfill-parameter"></a>

**[StartMatchBackfillRequest](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-startmatchbackfillrequest)**  
Un StartMatchBackfillRequest objeto comunica la siguiente información:  
+ Un ID de ticket que se asignará a la solicitud de reposición. Esta información es opcional; si no se proporciona ningún ID, Amazon GameLift Servers genera uno.
+ El creador de emparejamientos al que se enviará la solicitud. El ARN de configuración completo es obligatorio. Este valor se encuentra en los datos del emparejador de la sesión de juego.
+ El ID de la sesión de juego que se va a reponer.
+ Datos del emparejador disponibles para los jugadores actuales de la sesión de juego.

### Valor devuelto
<a name="integration-server-sdk-go-startmatchbackfill-return"></a>

Devuelve un objeto `StartMatchBackfillResult` con el ID del ticket de reposición de emparejamiento o un error con un mensaje de error. 

### Ejemplo
<a name="integration-server-sdk-go-startmatchbackfill-example"></a>

```
// form the request
startBackfillRequest := request.NewStartMatchBackfill()
startBackfillRequest.RequestID = "1111aaaa-22bb-33cc-44dd-5555eeee66ff"          // optional
startBackfillRequest.MatchmakingConfigurationArn = "arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MyMatchmakerConfig"
var matchMaker model.MatchmakerData
if err := matchMaker.UnmarshalJSON([]byte(gameSession.MatchmakerData)); err != nil {    
    return
}
startBackfillRequest.Players = matchMaker.Players
res, err := server.StartMatchBackfill(startBackfillRequest)

// Implement callback function for backfill
func OnUpdateGameSession(myGameSession model.GameSession) {
    // game-specific tasks to prepare for the newly matched players and update matchmaker data as needed
}
```

## StopMatchBackfill()
<a name="integration-server-sdk-go-stopmatchbackfill"></a>

Cancela una solicitud de reposición de emparejamiento activa. Para obtener más información, consulte [Característica de reposición de FlexMatch](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html).

### Sintaxis
<a name="integration-server-sdk-go-stopmatchbackfill-syntax"></a>

```
func StopMatchBackfill(req request.StopMatchBackfillRequest) error
```

### Parameters
<a name="integration-server-sdk-go-stopmatchbackfill-parameter"></a>

**[StopMatchBackfillRequest](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-stopmatchbackfillrequest)**  
Un StopMatchBackfillRequest objeto que identifica el billete de emparejamiento que se va a cancelar:   
+ ID del ticket que se asignará a la solicitud de reposición
+ El emparejador al que se envió la solicitud de reposición
+ La sesión de juego asociada a la solicitud de reposición.

### Valor devuelto
<a name="integration-server-sdk-go-stopmatchbackfill-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk-go-stopmatchbackfill-example"></a>

```
stopBackfillRequest := request.NewStopMatchBackfill()  // Use this function to create request
stopBackfillRequest.TicketID = "1111aaaa-22bb-33cc-44dd-5555eeee66ff"
stopBackfillRequest.MatchmakingConfigurationArn = "arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MyMatchmakerConfig"
                
//error
err := server.StopMatchBackfill(stopBackfillRequest)
```

## GetComputeCertificate()
<a name="integration-server-sdk-go-getcomputecertificate"></a>

Recupera la ruta al certificado TLS utilizado para cifrar la conexión de red entre el servidor de juegos y el cliente de juego. Puede utilizar la ruta del certificado al registrar el dispositivo informático en una flota de Amazon GameLift Servers Anywhere. Para obtener más información, consulte [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html).

### Sintaxis
<a name="integration-server-sdk-go-getcomputecertificate-syntax"></a>

```
func GetComputeCertificate() (result.GetComputeCertificateResult, error)
```

### Valor devuelto
<a name="integration-server-sdk-go-getcomputecertificate-return"></a>

Devuelve un objeto `GetComputeCertificateResult` que contiene los siguientes elementos: 
+  CertificatePath: la ruta al certificado TLS de su recurso informático. Cuando se utiliza una flota administrada por Amazon GameLift Servers, la ruta contiene los siguientes elementos: 
  + `certificate.pem`: el certificado del usuario final. La cadena de certificados completa es la combinación del `certificateChain.pem` adjunto a este certificado.
  + `certificateChain.pem`: la cadena de certificados que contiene el certificado raíz y los certificados intermedios.
  + `rootCertificate.pem`: el certificado raíz.
  + `privateKey.pem`: la clave privada del certificado del usuario final.
+ ComputeName: el nombre del recurso informático.

### Ejemplo
<a name="integration-server-sdk-go-getcomputecertificate-example"></a>

```
tlsCertificate, err := server.GetFleetRoleCredentials(getFleetRoleCredentialsRequest)
```

## GetFleetRoleCredentials()
<a name="integration-server-sdk-go-getfleetrolecredentials"></a>

Recupera las credenciales de la función de servicio que has creado para extender los permisos a la otra Servicios de AWS . Amazon GameLift Servers Estas credenciales permiten que su servidor de juegos utilice sus recursos de AWS . Para obtener más información, consulte [Configuración de un rol de servicio de IAM para Amazon GameLift Servers](setting-up-role.md).

### Sintaxis
<a name="integration-server-sdk-go-getfleetrolecredentials-syntax"></a>

```
func GetFleetRoleCredentials(
  req request.GetFleetRoleCredentialsRequest,
) (result.GetFleetRoleCredentialsResult, error) {
  return srv.getFleetRoleCredentials(&req)
}
```

### Parameters
<a name="integration-server-sdk-go-getfleetrolecredentials-parameters"></a>

[GetFleetRoleCredentialsRequest](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-getfleetrolecredentialsrequest)  
Credenciales de rol que amplían el acceso limitado a tus AWS recursos al servidor del juego.

### Valor devuelto
<a name="integration-server-sdk-go-getfleetrolecredentials-return"></a>

Devuelve un objeto `GetFleetRoleCredentialsResult` que contiene los siguientes elementos: 
+ AssumedRoleUserArn - El nombre de recurso de Amazon (ARN) del usuario al que pertenece la función de servicio. 
+ AssumedRoleId - El ID del usuario al que pertenece el rol de servicio. 
+ AccessKeyId - El ID de la clave de acceso para autenticar y proporcionar acceso a sus AWS recursos. 
+ SecretAccessKey - El identificador de la clave de acceso secreta para la autenticación. 
+ SessionToken - Un token para identificar la sesión activa actual que interactúa con tus AWS recursos. 
+ Vencimiento: el tiempo que queda hasta que caduquen las credenciales de la sesión.

### Ejemplo
<a name="integration-server-sdk-go-getfleetrolecredentials-example"></a>

```
// form the customer credentials request
getFleetRoleCredentialsRequest := request.NewGetFleetRoleCredentials()
getFleetRoleCredentialsRequest.RoleArn = "arn:aws:iam::123456789012:role/service-role/exampleGameLiftAction"

credentials, err := server.GetFleetRoleCredentials(getFleetRoleCredentialsRequest)
```

## Destroy()
<a name="integration-server-sdk-go-destroy"></a>

Libera de la memoria el SDK del servidor de juegos de Amazon GameLift Servers. Como práctica recomendada, llame a este método después de `ProcessEnding()` y antes de finalizar el proceso. Si utiliza una flota de Anywhere y no va a finalizar los procesos del servidor después de cada sesión de juego, llame a `Destroy()` y, a continuación, a `InitSDK()` para reinicializar antes de informar a Amazon GameLift Servers de que el proceso está listo para organizar una sesión de juego con `ProcessReady()`.

### Sintaxis
<a name="integration-server-sdk-go-destroy-syntax"></a>

```
func Destroy() error {
	return srv.destroy()
}
```

### Valor devuelto
<a name="integration-server-sdk-go-destroy-return"></a>

Devuelve un error con un mensaje de error si el método falla.

### Ejemplo
<a name="integration-server-sdk-go-destroy-example"></a>

```
// operations to end game sessions and the server process
defer func() {
  err := server.ProcessEnding()
  server.Destroy()
  if err != nil {
    fmt.Println("ProcessEnding() failed. Error: ", err)
    os.Exit(-1)
  } else {
    os.Exit(0)
  }
}
```

# SDK 5.x del servidor de C\$1\$1 (Unreal) para Amazon GameLift Servers: acciones
<a name="integration-server-sdk5-unreal-actions"></a>

Utilice esta referencia del SDK 5.x del servidor de Unreal de Amazon GameLift Servers como ayuda para preparar un juego multijugador para el uso con Amazon GameLift Servers. Para obtener más información sobre el proceso de integración, consulte [Adición de Amazon GameLift Servers al servidor de juegos con el SDK del servidor](gamelift-sdk-server-api.md). Si utiliza el complemento de Amazon GameLift Servers para Unreal, consulte también [Complemento de Amazon GameLift Servers para Unreal Engine](unreal-plugin.md).

**nota**  
En este tema se describe la API de C\$1\$1 de Amazon GameLift Servers que puede utilizar al realizar la compilación para Unreal Engine. En concreto, esta documentación se aplica al código que se compila con la opción `-DBUILD_FOR_UNREAL=1`. 

# SDK del servidor de C\$1\$1 (Unreal) 5.x para Amazon GameLift Servers: tipos de datos
<a name="integration-server-sdk5-unreal-datatypes"></a>

Utilice esta referencia del SDK 5.x del servidor de Unreal de Amazon GameLift Servers como ayuda para preparar un juego multijugador para el uso con Amazon GameLift Servers. Para obtener más información sobre el proceso de integración, consulte [Adición de Amazon GameLift Servers al servidor de juegos con el SDK del servidor](gamelift-sdk-server-api.md). Si utiliza el complemento de Amazon GameLift Servers para Unreal, consulte también [Complemento de Amazon GameLift Servers para Unreal Engine](unreal-plugin.md).

**nota**  
En este tema se describe la API de C\$1\$1 de Amazon GameLift Servers que puede utilizar al realizar la compilación para Unreal Engine. En concreto, esta documentación se aplica al código que se compila con la opción `-DBUILD_FOR_UNREAL=1`. 

[SDK 5.x del servidor de C\$1\$1 (Unreal) para Amazon GameLift Servers: acciones](integration-server-sdk5-unreal-actions.md)

**Topics**
+ [FProcessParámetros](#integration-server-sdk5-unreal-dataypes-process)
+ [UpdateGameSession](#integration-server-sdk5-unreal-dataypes-updategamesession)
+ [GameSession](#integration-server-sdk5-unreal-dataypes-gamesession)
+ [FServerParámetros](#integration-server-sdk5-unreal-dataypes-serverparameters)
+ [FStartMatchBackfillRequest](#integration-server-sdk5-unreal-dataypes-startmatchbackfillrequest)
+ [FPlayer](#integration-server-sdk5-unreal-dataypes-player)
+ [FGameLiftDescribePlayerSessionsRequest](#integration-server-sdk5-unreal-dataypes-playersessions)
+ [FStopMatchBackfillRequest](#integration-server-sdk5-unreal-dataypes-stopmatchbackfillrequest)
+ [FAttributeValor](#integration-server-sdk5-unreal-dataypes-attributevalue)
+ [FGameLiftGetFleetRoleCredentialsRequest](#integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsrequest)
+ [FGameLiftLongOutcome](#integration-server-sdk5-unreal-dataypes-awslongoutcome)
+ [FGameLiftStringOutcome](#integration-server-sdk5-unreal-dataypes-awsstringoutcome)
+ [FGameLiftDescribePlayerSessionsOutcome](#integration-server-sdk5-unreal-dataypes-describeplayersessionsoutcome)
+ [FGameLiftDescribePlayerSessionsResult](#integration-server-sdk5-unreal-dataypes-describeplayersessionresult)
+ [FGenericResultado](#integration-server-sdk5-unreal-dataypes-genericoutcome)
+ [FGameLiftPlayerSession](#integration-server-sdk5-unreal-dataypes-playersession)
+ [FGameLiftGetComputeCertificateOutcome](#integration-server-sdk5-unreal-dataypes-getcomputecertificateoutcome)
+ [FGameLiftGetComputeCertificateResult](#integration-server-sdk5-unreal-dataypes-getcomputecertificateresult)
+ [FGameLiftGetFleetRoleCredentialsOutcome](#integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsoutcome)
+ [FGetFleetRoleCredentialsResult](#integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsresult)
+ [FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror)
+ [Enums](#integration-server-sdk5-unreal-dataypes-enums)

## FProcessParámetros
<a name="integration-server-sdk5-unreal-dataypes-process"></a>

Este tipo de datos contiene el conjunto de parámetros enviado a Amazon GameLift Servers en una [ProcessReady()](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-processready).


|  |  | 
| --- |--- |
|  **Propiedades**  | Descripción | 
| LogParameters | Un objeto con rutas de directorio a los archivos que se generan durante una sesión de juego. Amazon GameLift Servers copia y almacena los archivos para accesos futuros.**Tipo:** `TArray<FString>`**Obligatorio**: no | 
| OnHealthCheck | Nombre de la función de devolución de llamada que invoca Amazon GameLift Servers para solicitar un informe de estado del proceso del servidor. Amazon GameLift Servers llama a esta función cada 60 segundos y espera otros 60 segundos para obtener una respuesta. El proceso del servidor devuelve TRUE si está en buen estado y FALSE si no. Si no se devuelve ninguna respuesta, Amazon GameLift Servers registra el proceso del servidor como defectuoso. Esta propiedad es una función de delegación definida como `DECLARE_DELEGATE_RetVal(bool, FOnHealthCheck)`;   **Tipo:** `FOnHealthCheck`**Obligatorio**: no | 
| OnProcessTerminate | La función de devolución de llamada que invoca Amazon GameLift Servers para forzar el cierre del proceso de servidor. Después de llamar a esta función, Amazon GameLift Servers espera 5 minutos hasta que el proceso del servidor se cierre y responde con una llamada a [ProcessEnding()](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-processending) antes de cerrar el proceso del servidor.**Tipo:** `FSimpleDelegate`**Obligatorio**: sí | 
| OnStartGameSession | La función de devolución de llamada que se Amazon GameLift Servers invoca para activar una nueva sesión de juego. Amazon GameLift Serversllama a esta función en respuesta a una solicitud de un cliente. [CreateGameSession](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateGameSession.html) La función de devolución de llamada pasa un objeto [GameSession](#integration-server-sdk5-unreal-dataypes-gamesession). Esta propiedad es una función de delegación definida como `DECLARE_DELEGATE_OneParam(FOnStartGameSession, Aws::GameLift::Server::Model::GameSession);`;  **Tipo:** `FOnStartGameSession`**Obligatorio**: sí | 
| OnUpdateGameSession | Nombre de la función de devolución de llamada que invoca Amazon GameLift Servers para proporcionar un objeto de sesión de juego actualizado. Amazon GameLift Servers llama a esta función una vez que se ha procesado una solicitud de reposición de emparejamiento para proporcionar datos actualizados del emparejador. Pasa un objeto [GameSession](#integration-server-sdk5-unreal-dataypes-gamesession), una actualización de estado (updateReason) y el ID del ticket de reposición de emparejamiento. Esta propiedad es una función de delegación definida como `DECLARE_DELEGATE_OneParam(FOnUpdateGameSession, Aws::GameLift::Server::Model::UpdateGameSession);`; **Tipo:** `FOnUpdateGameSession`**Obligatorio**: no | 
| Puerto | El número de puerto en el que escucha el proceso del servidor para recibir conexiones de jugador nuevas. El valor debe estar en el rango de puertos configurado para cualquier flota que implemente esa compilación de servidor de juegos. Este número de puerto se incluye en los objetos de sesión de juego y de jugador, que las sesiones de juego utilizan a la hora de conectarse a un proceso del servidor.**Tipo:** `int`**Obligatorio**: sí | 

## UpdateGameSession
<a name="integration-server-sdk5-unreal-dataypes-updategamesession"></a>

Este tipo de datos se actualiza a un objeto de sesión de juego, que incluye el motivo por el que se actualizó la sesión de juego y el ID del ticket de reposición correspondiente si la reposición se utiliza para reponer las sesiones de los jugadores en la sesión de juego.


| Propiedades | **Descripción** | 
| --- | --- | 
| GameSession | Un objeto [GameSession](#integration-server-sdk5-unreal-dataypes-gamesession). El objeto GameSession contiene propiedades que describen una sesión de juego. **Tipo:** `Aws::GameLift::Server::GameSession`**Obligatorio**: no | 
| UpdateReason | El motivo por el que se actualiza la sesión de juego. **Tipo:** `enum class UpdateReason`  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/gameliftservers/latest/developerguide/integration-server-sdk5-unreal-datatypes.html) **Obligatorio**: no   | 
| BackfillTicketId | El ID de ticket de reposición que intenta actualizar la sesión de juego.**Tipo:** `char[]`**Obligatorio**: no | 

## GameSession
<a name="integration-server-sdk5-unreal-dataypes-gamesession"></a>

Este tipo de datos proporciona detalles de una sesión de juego. 


| Propiedades | **Descripción** | 
| --- | --- | 
| GameSessionId |  Un identificador único de la sesión de juego. El ARN de una sesión de juego tiene el siguiente formato: `arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>`. **Tipo:** `char[]` **Obligatorio**: no  | 
| Name |  Una etiqueta descriptiva de la sesión de juego.  **Tipo:** `char[]` **Obligatorio**: no  | 
| FleetId |  Un identificador único para la flota en la que se ejecuta la sesión de juego. **Tipo:** `char[]` **Obligatorio**: no  | 
| MaximumPlayerSessionCount |  El número máximo de conexiones de jugadores a la sesión de juego. **Tipo:** `int` **Obligatorio**: no  | 
| Puerto |  El número de puerto de la sesión de juego. Para conectarse a un servidor de Amazon GameLift Servers juegos, la aplicación necesita tanto la dirección IP como el número de puerto. **Tipo:** `int` **Obligatorio**: no  | 
| IpAddress |  La dirección IP del servidor de la sesión de juego. Para conectarse a un servidor de Amazon GameLift Servers juegos, la aplicación necesita tanto la dirección IP como el número de puerto. **Tipo:** `char[]` **Obligatorio**: no  | 
| GameSessionData |  Un conjunto de propiedades de sesión de juego personalizadas, formateadas como un valor de una sola cadena.  **Tipo:** `char[]` **Obligatorio**: no  | 
| MatchmakerData |  Información sobre el proceso de emparejamiento que se utilizó para crear la sesión de juego, en sintaxis JSON, con formato como cadena. Además de la configuración de emparejamiento utilizada, contiene datos sobre todos los jugadores asignados al emparejamiento, incluidos los atributos de los jugadores y las asignaciones de los equipos. **Tipo:** `char[]` **Obligatorio**: no  | 
| GameProperties |  Un conjunto de propiedades personalizadas de una sesión de juego, con formato como pares clave-valor. Estas propiedades se pasan a una solicitud de iniciar una nueva sesión de juego. **Tipo:** `GameProperty[]` **Obligatorio**: no  | 
| DnsName |  El identificador de DNS asignado a la instancia que ejecuta la sesión de juego. Los valores tienen formato siguiente: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/gameliftservers/latest/developerguide/integration-server-sdk5-unreal-datatypes.html) Cuando se conecte a una sesión de juego que se ejecute en una flota habilitada de TLS, debe utilizar el nombre de DNS, no la dirección IP. **Tipo:** `char[]` **Obligatorio**: no  | 

## FServerParámetros
<a name="integration-server-sdk5-unreal-dataypes-serverparameters"></a>

La información utilizada para mantener la conexión entre un servidor de Amazon GameLift Servers Anywhere y el servicio Amazon GameLift Servers. Esta información se utiliza al inicializar nuevos procesos de servidor con [InitSDK()](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-initsdk). Para los servidores alojados en instancias de EC2 administradas por Amazon GameLift Servers, utilice un objeto vacío.


| Propiedades | **Descripción** | 
| --- | --- | 
| webSocketUrl |  El `GameLiftServerSdkEndpoint` que devuelve Amazon GameLift Servers cuando se invoca [https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html) para un recurso de computación de Amazon GameLift Servers Anywhere. **Tipo:** `char[]` **Obligatorio**: sí   | 
| processId |  Un identificador único registrado en el proceso de servidor que aloja el juego. **Tipo:** `char[]` **Obligatorio**: sí  | 
| hostId | El HostID es el ComputeName utilizado cuando registró el recurso informático. Para obtener más información, consulte, [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html).**Tipo:** `char[]`**Obligatorio**: sí | 
| fleetId | El identificador único de la flota en la que está registrado el recurso informático. Para obtener más información, consulte, [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html).**Tipo:** `char[]`**Obligatorio**: sí | 
| authToken | El token de autenticación generado por Amazon GameLift Servers que autentica el servidor en Amazon GameLift Servers. Para obtener más información, consulte, [GetComputeAuthToken](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetComputeAuthToken.html).**Tipo:** `char[]`**Obligatorio**: sí | 

## FStartMatchBackfillRequest
<a name="integration-server-sdk5-unreal-dataypes-startmatchbackfillrequest"></a>

Información utilizada para crear una solicitud de reposición de emparejamiento. El servidor de juegos comunica esa información a Amazon GameLift Servers en una llamada a [StartMatchBackfill()](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-startmatchbackfill).


| Propiedades | **Descripción** | 
| --- | --- | 
| GameSessionArn |  Un identificador único de la sesión de juegos. El `[GetGameSessionId](https://docs.aws.amazon.com/gameliftservers/latest/developerguide/integration-server-sdk5-unreal-actions.html#integration-server-sdk5-unreal-getgamesessionid)` de la operación de la API devuelve el identificador en formato de ARN. **Tipo:** `char[]` **Obligatorio**: sí  | 
| MatchmakingConfigurationArn |  Un identificador único, con formato de ARN, que el emparejador utiliza para esta solicitud. El ARN del emparejador para la sesión de juego original se encuentra en el objeto de sesión de juego en la propiedad de datos del emparejador. Puede obtener más información sobre los datos del emparejador en [Trabajo con datos del emparejador](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-server.html#match-server-data.html). **Tipo:** `char[]` **Obligatorio**: sí  | 
| Players |  Un conjunto de datos que representa a todos los jugadores que están en la sesión de juego. El creador de emparejamientos utiliza esta información para buscar nuevos jugadores que son idóneos para los jugadores actuales. **Tipo:** `TArray<FPlayer>` **Obligatorio**: sí  | 
| TicketId |  Un identificador único para un ticket de solicitud de emparejamiento o reposición de emparejamiento. Si no proporciona un valor, Amazon GameLift Servers generará uno. Use este identificador para realizar un seguimiento del estado del ticket de reposición de emparejamiento o cancelar la solicitud si es necesario.  **Tipo:** `char[]` **Obligatorio**: no  | 

## FPlayer
<a name="integration-server-sdk5-unreal-dataypes-player"></a>

Este tipo de datos representa a un jugador en el sistema de emparejamiento. Al iniciar una solicitud de emparejamiento, un jugador tiene un ID de jugador, atributos y, posiblemente, datos de latencia. Amazon GameLift Servers añada la información de los equipos tras realizar un emparejamiento.


| Propiedades | **Descripción** | 
| --- | --- | 
| LatencyInMS |  Un conjunto de valores expresados en milisegundos que indican la cantidad de latencia que experimenta un jugador cuando se conecta a una ubicación.  Si se utiliza esta propiedad, el jugador solo se empareja con las ubicaciones que aparecen. Si un creador de emparejamientos tiene una regla que evalúa la latencia de los jugadores, estos deben informar de la latencia para ser emparejados. **Tipo:** `TMap>FString, int32<` **Obligatorio**: no  | 
| PlayerAttributes |  Una colección de pares de clave-valor que contienen información del jugador para su uso en el emparejamiento. Las claves de atributos del jugador deben coincidir con las PlayerAttributes utilizadas en un conjunto de reglas de emparejamiento. Para obtener más información sobre los atributos de los jugadores, consulte [AttributeValue](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_AttributeValue.html). **Tipo:** `TMap>FString, FAttributeValue<` **Obligatorio**: no  | 
| PlayerId |  Un identificador único de un jugador. **Tipo:** `std::string` **Obligatorio**: no  | 
| Equipo |  El nombre del equipo al que está asignado el jugador en un emparejamiento. Defina el nombre del equipo se define en el conjunto de reglas de emparejamiento. **Tipo:** `FString` **Obligatorio**: no  | 

## FGameLiftDescribePlayerSessionsRequest
<a name="integration-server-sdk5-unreal-dataypes-playersessions"></a>

Un objeto que especifica las sesiones de jugador que recuperar. El proceso del servidor proporciona esta información con una llamada [DescribePlayerSessions()](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-describeplayersessions) a Amazon GameLift Servers.


| Propiedades | **Descripción** | 
| --- | --- | 
| GameSessionId |  Un identificador único de la sesión de juegos. Use este parámetro para solicitar todas las sesiones de jugador de la sesión de juego especificada.  El formato de ID de sesión de juego es `FString`. El `GameSessionID` es una cadena de ID personalizada o una **Tipo:** `std::string` **Obligatorio**: no  | 
| PlayerSessionId |  El identificador único de una sesión de jugador. Utilice este parámetro para solicitar una sesión de jugador específica. **Tipo:** `FString` **Obligatorio**: no  | 
| PlayerId |  El identificador único de un jugador. Utilice este parámetro para solicitar todas las sesiones de jugador para un jugador específico. Consulte [Generación de ID de jugador](player-sessions-player-identifiers.md). **Tipo:** `FString` **Obligatorio**: no  | 
| PlayerSessionStatusFilter |  El estado de la sesión de jugador para filtrar los resultados. Los posibles estados de sesión de jugador son los siguientes: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/gameliftservers/latest/developerguide/integration-server-sdk5-unreal-datatypes.html) **Tipo:** `FString` **Obligatorio**: no  | 
| NextToken |  El token que indica el inicio de la siguiente página de resultados. Para especificar el inicio del conjunto de resultados, no indique ningún valor. Si se especifica un ID de sesión de jugador, este parámetro se ignora. **Tipo:** `FString` **Obligatorio**: no  | 
| Límite |  El número máximo de resultados que devolver. Si se especifica un ID de sesión de jugador, este parámetro se ignora. **Tipo:** `int` **Obligatorio**: no  | 

## FStopMatchBackfillRequest
<a name="integration-server-sdk5-unreal-dataypes-stopmatchbackfillrequest"></a>

Información utilizada para cancelar una solicitud de reposición de emparejamiento. El servidor de juegos comunica esa información al servicio Amazon GameLift Servers en una llamada a [StopMatchBackfill()](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-stopmatchbackfill).


| Propiedades | **Descripción** | 
| --- | --- | 
| GameSessionArn |  Un identificador único de sesión de juego de la solicitud que se va a cancelar. **Tipo:** `FString` **Obligatorio**: sí  | 
| MatchmakingConfigurationArn |  Un identificador único del emparejador al que se envió esta solicitud. **Tipo:** `FString` **Obligatorio**: sí  | 
| TicketId |  Un identificador único del ticket de solicitud de reposición que se va a cancelar. **Tipo:** `FString` **Obligatorio**: sí  | 

## FAttributeValor
<a name="integration-server-sdk5-unreal-dataypes-attributevalue"></a>

Utilice estos valores en pares de clave-valor de atributo [FPlayer](#integration-server-sdk5-unreal-dataypes-player). Este objeto le permite especificar un valor de atributo mediante cualquiera de los tipos de datos válidos: cadena, número, matriz de cadenas o mapa de datos. Cada objeto `AttributeValue` puede utilizar solo una de las propiedades disponibles.


| Propiedades | Description (Descripción) | 
| --- | --- | 
| attrType |  Especifica el tipo de valor del atributo. **Tipo:** un valor de [enum](#integration-server-sdk5-unreal-dataypes-enums) de `FAttributeType`.  **Obligatorio**: no  | 
| S |  Representa un valor de atributo de cadena. **Tipo:** `FString` **Obligatorio**: no  | 
| N |  Representa un valor de atributo numérico. **Tipo:** `double` **Obligatorio**: no  | 
| SL |  Representa una matriz de valores de atributos de cadena. **Tipo:** `TArray<FString>` **Obligatorio**: no  | 
| SDM |  Representa un diccionario de claves de cadena y valores dobles. **Tipo:** `TMap<FString, double>` **Obligatorio**: no  | 

## FGameLiftGetFleetRoleCredentialsRequest
<a name="integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsrequest"></a>

Este tipo de datos proporciona credenciales de rol que amplían el acceso limitado a sus recursos de AWS al servidor de juegos. Para obtener más información, consulte, [Configuración de un rol de servicio de IAM para Amazon GameLift Servers](setting-up-role.md).


| Propiedades | **Descripción** | 
| --- | --- | 
| RoleArn | El nombre de recurso de Amazon (ARN) de la función de servicio que amplía el acceso limitado a sus AWS recursos.**Tipo:** `FString`**Obligatorio**: no | 
| RoleSessionName | El nombre de la sesión que describe el uso de las credenciales del rol.**Tipo:** `FString`**Obligatorio**: no | 

## FGameLiftLongOutcome
<a name="integration-server-sdk5-unreal-dataypes-awslongoutcome"></a>

Este tipo de datos es el resultado de una acción y produce un objeto con las siguientes propiedades:


| Propiedades | Description (Descripción) | 
| --- | --- | 
| Resultado |  El resultado de la acción. **Tipo:** `long` **Obligatorio**: no  | 
| ResultWithOwnership |   El resultado de la acción, expresado como un valor r, para que el código de llamada pueda tomar posesión del objeto.  **Tipo:** `long&&` **Obligatorio**: no  | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror) **Obligatorio**: no  | 

## FGameLiftStringOutcome
<a name="integration-server-sdk5-unreal-dataypes-awsstringoutcome"></a>

Este tipo de datos es el resultado de una acción y produce un objeto con las siguientes propiedades:


| Propiedades | Description (Descripción) | 
| --- | --- | 
| Resultado |  El resultado de la acción. **Tipo:** `FString` **Obligatorio**: no  | 
| ResultWithOwnership |   El resultado de la acción, expresado como un valor r, para que el código de llamada pueda tomar posesión del objeto.  **Tipo:** `FString&&` **Obligatorio**: no  | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror) **Obligatorio**: no  | 

## FGameLiftDescribePlayerSessionsOutcome
<a name="integration-server-sdk5-unreal-dataypes-describeplayersessionsoutcome"></a>

Este tipo de datos es el resultado de una acción y produce un objeto con las siguientes propiedades:


| Propiedades | Description (Descripción) | 
| --- | --- | 
| Resultado |  El resultado de la acción. **Tipo:** [FGameLiftDescribePlayerSessionsResult](#integration-server-sdk5-unreal-dataypes-describeplayersessionresult) **Obligatorio**: no   | 
| ResultWithOwnership |   El resultado de la acción, expresado como un valor r, para que el código de llamada pueda tomar posesión del objeto.  **Tipo:** `FGameLiftDescribePlayerSessionsResult&&` **Obligatorio**: no  | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror) **Obligatorio**: no  | 

## FGameLiftDescribePlayerSessionsResult
<a name="integration-server-sdk5-unreal-dataypes-describeplayersessionresult"></a>


| Propiedades | Description (Descripción) | 
| --- | --- | 
| PlayerSessions |   **Tipo:** `TArray<FGameLiftPlayerSession>` **Obligatorio**: sí  | 
| NextToken |  El token que indica el inicio de la siguiente página de resultados. Para especificar el inicio del conjunto de resultados, no indique ningún valor. Si se especifica un ID de sesión de jugador, este parámetro se ignora. **Tipo:** `FString` **Obligatorio**: no  | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror) **Obligatorio**: no  | 

## FGenericResultado
<a name="integration-server-sdk5-unreal-dataypes-genericoutcome"></a>

Este tipo de datos es el resultado de una acción y produce un objeto con las siguientes propiedades:


| Propiedades | Description (Descripción) | 
| --- | --- | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror) **Obligatorio**: no  | 

## FGameLiftPlayerSession
<a name="integration-server-sdk5-unreal-dataypes-playersession"></a>


| Propiedades | Description (Descripción) | 
| --- | --- | 
| CreationTime |  **Tipo:** `long` **Obligatorio**: sí  | 
| FleetId |  **Tipo:** `FString` **Obligatorio**: sí  | 
| GameSessionId |  **Tipo:** `FString` **Obligatorio**: sí  | 
| IpAddress |  **Tipo:** `FString` **Obligatorio**: sí  | 
| PlayerData |  **Tipo:** `FString` **Obligatorio**: sí  | 
| PlayerId |  **Tipo:** `FString` **Obligatorio**: sí  | 
| PlayerSessionId |  **Tipo:** `FString` **Obligatorio**: sí  | 
| Puerto |  **Tipo:** `int` **Obligatorio**: sí  | 
| Status |  **Tipo:** una [enumeración](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-enums) de `PlayerSessionStatus`. **Obligatorio**: sí  | 
| TerminationTime |  **Tipo:** `long` **Obligatorio**: sí  | 
| DnsName |  **Tipo:** `FString` **Obligatorio**: sí  | 

## FGameLiftGetComputeCertificateOutcome
<a name="integration-server-sdk5-unreal-dataypes-getcomputecertificateoutcome"></a>

Este tipo de datos es el resultado de una acción y produce un objeto con las siguientes propiedades:


| Propiedades | Description (Descripción) | 
| --- | --- | 
| Resultado |  El resultado de la acción. **Tipo:** [FGameLiftGetComputeCertificateResult](#integration-server-sdk5-unreal-dataypes-getcomputecertificateresult) **Obligatorio**: no   | 
| ResultWithOwnership |   El resultado de la acción, expresado como un valor r, para que el código de llamada pueda tomar posesión del objeto.  **Tipo:** `FGameLiftGetComputeCertificateResult&&` **Obligatorio**: no  | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror) **Obligatorio**: no  | 

## FGameLiftGetComputeCertificateResult
<a name="integration-server-sdk5-unreal-dataypes-getcomputecertificateresult"></a>

La ruta al certificado TLS de su recurso informático y el nombre de host del equipo.


| Propiedades | Description (Descripción) | 
| --- | --- | 
| CertificatePath |  **Tipo:** `FString` **Obligatorio**: sí  | 
| ComputeName |  **Tipo:** `FString` **Obligatorio**: sí  | 

## FGameLiftGetFleetRoleCredentialsOutcome
<a name="integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsoutcome"></a>

Este tipo de datos es el resultado de una acción y produce un objeto con las siguientes propiedades:


| Propiedades | Description (Descripción) | 
| --- | --- | 
| Resultado |  El resultado de la acción. **Tipo:** [FGetFleetRoleCredentialsResult](#integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsresult) **Obligatorio**: no   | 
| ResultWithOwnership |   El resultado de la acción, expresado como un valor r, para que el código de llamada pueda tomar posesión del objeto.  **Tipo:** `FGameLiftGetFleetRoleCredentialsResult&&` **Obligatorio**: no  | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror) **Obligatorio**: no  | 

## FGetFleetRoleCredentialsResult
<a name="integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsresult"></a>


| Propiedades | Description (Descripción) | 
| --- | --- | 
| AccessKeyId |  El ID de la clave de acceso para autenticar y proporcionar acceso a los recursos de AWS . **Tipo:** `FString` **Obligatorio**: no  | 
| AssumedRoleId |  El ID del usuario al que pertenece el rol de servicio. **Tipo:** `FString` **Obligatorio**: no  | 
| AssumedRoleUserArn |  El nombre de recurso de Amazon (ARN) del usuario al que pertenece el rol de servicio. **Tipo:** `FString` **Obligatorio**: no  | 
| Expiration |  El tiempo que queda hasta que caduquen las credenciales de la sesión. **Tipo:** `FDateTime` **Obligatorio**: no  | 
| SecretAccessKey |  El ID de clave de acceso secreta para la autenticación. **Tipo:** `FString` **Obligatorio**: no  | 
| SessionToken |  Un token para identificar la sesión activa actual que interactúa con tus AWS recursos. **Tipo:** `FString` **Obligatorio**: no  | 
| Success |  Si la acción se realizó correctamente o no. **Tipo:** `bool` **Obligatorio**: sí  | 
| Error |  El error que se genera si la acción no se ha realizado correctamente. **Tipo:** [GameLiftError](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-gamelifterror) **Obligatorio**: no  | 

## FGameLiftError
<a name="integration-server-sdk5-unreal-dataypes-gamelifterror"></a>


| Propiedades | Description (Descripción) | 
| --- | --- | 
| ErrorType |  Tipo de error. **Tipo:** una [enumeración](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-enums) de `GameLiftErrorType`. **Obligatorio**: no   | 
| ErrorName |  El nombre del error.  **Tipo:** `std::string`  **Obligatorio**: no   | 
| ErrorMessage |  Mensaje de error.  **Tipo:** `std::string`  **Obligatorio**: no   | 

## Enums
<a name="integration-server-sdk5-unreal-dataypes-enums"></a>

Las enumeraciones definidas para el SDK del servidor de Amazon GameLift Servers (Unreal) se definen de la siguiente manera:

**FAttributeEscriba**  
+ **NONE**
+ **STRING**
+ **DOUBLE**
+ **STRING\$1LIST**
+ **STRING\$1DOUBLE\$1MAP**

**GameLiftErrorType**  
Valor de cadena que indica el tipo de error. Los valores válidos son:  
+ **SERVICE\$1CALL\$1FAILED: no se pudo** realizar una llamada a un AWS servicio. 
+ **LOCAL\$1CONNECTION\$1FAILED**: se ha producido un error en la conexión local a Amazon GameLift Servers. 
+ **NETWORK\$1NOT\$1INITIALIZED**: la red no se ha inicializado. 
+ **GAMESESSION\$1ID\$1NOT\$1SET**: no se ha establecido el ID de sesión de juego. 
+ **BAD\$1REQUEST\$1EXCEPTION** 
+ **INTERNAL\$1SERVICE\$1EXCEPTION** 
+ **ALREADY\$1INITIALIZED**: el servidor o cliente de Amazon GameLift Servers ya se inicializó con Initialize(). 
+ **FLEET\$1MISMATCH**: la flota de destino no coincide con la flota de gameSession o playerSession. 
+ **GAMELIFT\$1CLIENT\$1NOT\$1INITIALIZED**: el cliente de Amazon GameLift Servers no se ha inicializado. 
+ **GAMELIFT\$1SERVER\$1NOT\$1INITIALIZED**: el servidor de Amazon GameLift Servers no se ha inicializado. 
+ **GAME\$1SESSION\$1ENDED\$1FAILED**: el SDK del servidor de Amazon GameLift Servers no pudo ponerse en contacto con el servicio para informar de que la sesión de juego había finalizado. 
+ **GAME\$1SESSION\$1NOT\$1READY**: no se activó la sesión de juego del servidor de Amazon GameLift Servers. 
+ **GAME\$1SESSION\$1READY\$1FAILED**: el SDK del servidor de Amazon GameLift Servers no pudo ponerse en contacto con el servicio para informar de que la sesión de juego estaba lista. 
+ **INITIALIZATION\$1MISMATCH**: se llamó a un método de cliente después de Server::Initialize() o viceversa. 
+ **NOT\$1INITIALIZED**: el servidor o el cliente de Amazon GameLift Servers no se han iniciado con Initialize(). 
+ **NO\$1TARGET\$1ALIASID\$1SET**: no se ha establecido un aliasId de destino. 
+ **NO\$1TARGET\$1FLEET\$1SET**: no se ha establecido una flota de destino. 
+ **PROCESS\$1ENDING\$1FAILED**: el SDK del servidor de Amazon GameLift Servers no pudo contactar con el servicio para informar de que el proceso está finalizando. 
+ **PROCESS\$1NOT\$1ACTIVE** — El proceso del servidor aún no está activo, no está vinculado a un y no puede aceptarlo ni procesarlo. GameSession PlayerSessions 
+ **PROCESS\$1NOT\$1READY**: el proceso de servidor aún no está listo para activarse. 
+ **PROCESS\$1READY\$1FAILED**: el SDK del servidor de Amazon GameLift Servers no pudo contactar con el servicio para informar de que el proceso está listo. 
+ **SDK\$1VERSION\$1DETECTION\$1FAILED**: no se pudo detectar la versión del SDK. 
+ **STX\$1CALL\$1FAILED: no se pudo realizar una llamada** al componente de backend del servidor. XStx 
+ **STX\$1INITIALIZATION\$1FAILED: el componente de backend del servidor no se pudo inicializar**. XStx 
+ **UNEXPECTED\$1PLAYER\$1SESSION**: el servidor ha detectado una sesión de jugador no registrada. 
+ **WEBSOCKET\$1CONNECT\$1FAILURE** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1FORBIDDEN** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1INVALID\$1URL** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1TIMEOUT** 
+ **WEBSOCKET\$1RETRIABLE\$1SEND\$1MESSAGE\$1FAILURE**: error recuperable al enviar un mensaje al servicio. GameLift WebSocket 
+ **WEBSOCKET\$1SEND\$1MESSAGE\$1FAILURE**: error al enviar un mensaje al GameLift servicio. WebSocket 
+ **MATCH\$1BACKFILL\$1REQUEST\$1VALIDATION**: se ha producido un error en la validación de la solicitud. 
+ **PLAYER\$1SESSION\$1REQUEST\$1VALIDATION**: se ha producido un error en la validación de la solicitud. 

**EPlayerSessionCreationPolicy**  
Valor de cadena que indica si la sesión de juego acepta jugadores nuevos. Los valores válidos son:   
+ **ACCEPT\$1ALL**: se aceptan todas las sesiones de jugador nuevas. 
+ **DENY\$1ALL**: se rechazan todas las sesiones de jugador nuevas. 
+ **NOT\$1SET**: la sesión de juego no está configurada para aceptar o denegar sesiones de nuevos jugadores. 

**EPlayerSessionStatus**  
+ **ACTIVE**
+ **COMPLETED**
+ **NOT\$1SET**
+ **RESERVED**
+ **TIMEDOUT**

[SDK del servidor de C\$1\$1 (Unreal) 5.x para Amazon GameLift Servers: tipos de datos](integration-server-sdk5-unreal-datatypes.md)

**Topics**
+ [SDK del servidor de C\$1\$1 (Unreal) 5.x para Amazon GameLift Servers: tipos de datos](integration-server-sdk5-unreal-datatypes.md)
+ [GetSdkVersion()](#integration-server-sdk5-unreal-getsdkversion)
+ [InitSDK()](#integration-server-sdk5-unreal-initsdk)
+ [InitSDK()](#integration-server-sdk5-unreal-initsdk-anywhere)
+ [ProcessReady()](#integration-server-sdk5-unreal-processready)
+ [ProcessEnding()](#integration-server-sdk5-unreal-processending)
+ [ActivateGameSession()](#integration-server-sdk5-unreal-activategamesession)
+ [UpdatePlayerSessionCreationPolicy()](#integration-server-sdk5-unreal-updateplayersessioncreationpolicy)
+ [GetGameSessionId()](#integration-server-sdk5-unreal-getgamesessionid)
+ [GetTerminationTime()](#integration-server-sdk5-unreal-getterm)
+ [AcceptPlayerSession()](#integration-server-sdk5-unreal-acceptplayersession)
+ [RemovePlayerSession()](#integration-server-sdk5-unreal-removeplayersession)
+ [DescribePlayerSessions()](#integration-server-sdk5-unreal-describeplayersessions)
+ [StartMatchBackfill()](#integration-server-sdk5-unreal-startmatchbackfill)
+ [StopMatchBackfill()](#integration-server-sdk5-unreal-stopmatchbackfill)
+ [GetComputeCertificate()](#integration-server-sdk5-unreal-getcomputecertificate)
+ [GetFleetRoleCredentials()](#integration-server-sdk5-unreal-getfleetrolecredentials)
+ [Destroy()](#integration-server-sdk5-unreal-ref-destroy)

## GetSdkVersion()
<a name="integration-server-sdk5-unreal-getsdkversion"></a>

Devuelve el número de versión actual del SDK integrado en el proceso del servidor.

### Sintaxis
<a name="integration-server-sdk5-unreal-getsdkversion-syntax"></a>

```
FGameLiftStringOutcome GetSdkVersion();
```

### Valor devuelto
<a name="integration-server-sdk5-unreal-getsdkversion-return"></a>

Si funciona correctamente, devuelve la versión del SDK actual como objeto [FGameLiftStringOutcome](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-awsstringoutcome). El objeto devuelto incluye el número de versión (por ejemplo, `5.0.0`). Si no funciona, devuelve un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-unreal-getsdkversion-example"></a>

```
Aws::GameLift::AwsStringOutcome SdkVersionOutcome = Aws::GameLift::Server::GetSdkVersion();  
```

## InitSDK()
<a name="integration-server-sdk5-unreal-initsdk"></a>

Inicializa el SDK de Amazon GameLift Servers para una flota de EC2 administrada. Llame a este método en el lanzamiento, antes de cualquier otra inicialización relacionada con Amazon GameLift Servers. Este método lee parámetros de servidor del entorno de host para configurar la comunicación entre el servidor y el servicio Amazon GameLift Servers. Utiliza un token de idempotencia, por lo que puede volver a intentar esta llamada de forma segura cuando falle.

### Sintaxis
<a name="integration-server-sdk5-unreal-initsdk-syntax"></a>

```
FGameLiftGenericOutcome InitSDK()
```

### Valor devuelto
<a name="integration-server-sdk5-unreal-initsdk-return"></a>

Si funciona correctamente, devuelve un objeto `InitSdkOutcome` e indica que el proceso del servidor está listo para llamar a [ProcessReady()](#integration-server-sdk5-unreal-processready). 

### Ejemplo
<a name="integration-server-sdk5-unreal-initsdk-example"></a>

```
//Call InitSDK to establish a local connection with the Amazon GameLift Servers Agent to enable further communication.
FGameLiftGenericOutcome initSdkOutcome = GameLiftSdkModule->InitSDK();
```

## InitSDK()
<a name="integration-server-sdk5-unreal-initsdk-anywhere"></a>

Inicializa el SDK de Amazon GameLift Servers para una flota de Anywhere o una flota de contenedores administrada. Llame a este método en el lanzamiento, antes de cualquier otra inicialización relacionada con Amazon GameLift Servers. Este método requiere que los parámetros del servidor explícito configure la comunicación entre el servidor y el servicio Amazon GameLift Servers. Utiliza un token de idempotencia, por lo que puede volver a intentar esta llamada de forma segura cuando falle.

### Sintaxis
<a name="integration-server-sdk5-unreal-initsdk-anywhere-syntax"></a>

```
FGameLiftGenericOutcome InitSDK(serverParameters)
```

### Parameters
<a name="integration-server-sdk5-unreal-initsdk-anywhere-parameter"></a>

[FServerParámetros](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-serverparameters)  
Para inicializar un servidor de juegos en una flota de Amazon GameLift Servers Anywhere, cree un objeto `ServerParameters` con la siguiente información:  
+ La URL WebSocket utilizada para conectarse a tu servidor de juegos. 
+ El ID del proceso utilizado para alojar su servidor de juegos. 
+ El ID del proceso utilizado para alojar los procesos del servidor de juegos. 
+ El ID de la flota de Amazon GameLift Servers que contiene su recurso de computación de Amazon GameLift Servers Anywhere.
+ El token de autorización generado por la operación de Amazon GameLift Servers. 

### Valor devuelto
<a name="integration-server-sdk5-unreal-initsdk-anywhere-return"></a>

Si funciona correctamente, devuelve un objeto `InitSdkOutcome` e indica que el proceso del servidor está listo para llamar a [ProcessReady()](#integration-server-sdk5-unreal-processready). 

**nota**  
Si las llamadas a `InitSDK()` no funcionan en las compilaciones de juegos implementadas en las flotas de Anywhere, compruebe el parámetro `ServerSdkVersion` que se utiliza al crear el recurso de compilación. Debe establecer este valor de forma explícita en la versión del SDK del servidor en uso. El valor predeterminado de este parámetro es 4.x, que no es compatible. Para resolver este problema, cree una compilación nueva e impleméntela en una flota nueva.

### Ejemplo
<a name="integration-server-sdk5-unreal-initsdk-anywhere-example"></a>

```
//Define the server parameters
FServerParameters serverParameters;
parameters.m_authToken = "1111aaaa-22bb-33cc-44dd-5555eeee66ff"; 
parameters.m_fleetId = "arn:aws:gamelift:us-west-1:111122223333:fleet/fleet-9999ffff-88ee-77dd-66cc-5555bbbb44aa";
parameters.m_hostId = "HardwareAnywhere"; 
parameters.m_processId = "PID1234";
parameters.m_webSocketUrl = "wss://us-west-1.api.amazongamelift.com"; 

//Call InitSDK to establish a local connection with the Amazon GameLift Servers Agent to enable further communication.
FGameLiftGenericOutcome initSdkOutcome = GameLiftSdkModule->InitSDK(serverParameters);
```

## ProcessReady()
<a name="integration-server-sdk5-unreal-processready"></a>

Notifica a Amazon GameLift Servers que el proceso del servidor de juegos está listo para alojar sesiones de juego. Llame a este método después de invocar [InitSDK()](#integration-server-sdk5-unreal-initsdk). Se debe llamar a este método solo una vez por proceso.

### Sintaxis
<a name="integration-server-sdk5-unreal-processready-syntax"></a>

`GenericOutcome ProcessReady(const Aws::GameLift::Server::ProcessParameters &processParameters);`

### Parameters
<a name="integration-server-sdk5-unreal-processready-parameter"></a>

**processParameters**  
Un objeto [FProcessParámetros](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-process) que comunica la siguiente información sobre el proceso del servidor:  
+ Nombres de métodos de devolución de llamada, implementados en el código de servidor de juegos, que el servicio Amazon GameLift Servers invoca para comunicarse con el proceso del servidor.
+ Número de puerto de escucha del servidor de proceso.
+ Ruta a cualquier archivo específico de la sesión de juego que desea que Amazon GameLift Servers capture y almacene.

### Valor devuelto
<a name="integration-server-sdk5-unreal-processready-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-unreal-processready-example"></a>

Este ejemplo ilustra las implementaciones tanto de la función de llamada [ProcessReady()](#integration-server-sdk5-unreal-processready) como de la función de delegación.

```
//Calling ProcessReady tells Amazon GameLift Servers this game server is ready to receive incoming game sessions!
UE_LOG(GameServerLog, Log, TEXT("Calling Process Ready"));
FGameLiftGenericOutcome processReadyOutcome = GameLiftSdkModule->ProcessReady(*params);
```

## ProcessEnding()
<a name="integration-server-sdk5-unreal-processending"></a>

Informa a Amazon GameLift Servers de que el proceso del servidor está finalizando. Llame a este método después de realizar todas las demás tareas de limpieza (lo que incluye el cierre de la sesión de juegos activa) y antes de finalizar el proceso. Según el resultado de `ProcessEnding()`, el proceso finaliza con éxito (0) o error (-1) y genera un evento de flota. Si el proceso termina con un error, el evento de flota generado es `SERVER_PROCESS_TERMINATED_UNHEALTHY`.

### Sintaxis
<a name="integration-server-sdk5-unreal-processending-syntax"></a>

```
FGameLiftGenericOutcome ProcessEnding()
```

### Valor devuelto
<a name="integration-server-sdk5-unreal-processending-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-unreal-processending-example"></a>

```
//OnProcessTerminate callback. Amazon GameLift Servers will invoke this callback before shutting down an instance hosting this game server.
//It gives this game server a chance to save its state, communicate with services, etc., before being shut down.
//In this case, we simply tell Amazon GameLift Servers we are indeed going to shutdown.
params->OnTerminate.BindLambda([=]() {
  UE_LOG(GameServerLog, Log, TEXT("Game Server Process is terminating"));
  GameLiftSdkModule->ProcessEnding();
});
```

## ActivateGameSession()
<a name="integration-server-sdk5-unreal-activategamesession"></a>

Notifica a Amazon GameLift Servers que el proceso del servidor ha iniciado una sesión de juego y que está listo para recibir las conexiones de los jugadores. Esta acción debe llamarse como parte de la función de devolución de llamada `onStartGameSession()`, después de la inicialización de todas las sesiones de juego.

### Sintaxis
<a name="integration-server-sdk5-unreal-activategamesession-syntax"></a>

```
FGameLiftGenericOutcome ActivateGameSession()
```

### Valor devuelto
<a name="integration-server-sdk5-unreal-activategamesession-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-unreal-activategamesession-example"></a>

Este ejemplo muestra cómo se llama a `ActivateGameSession()` como parte de la función de delegación `onStartGameSession()`. 

```
//When a game session is created, Amazon GameLift Servers sends an activation request to the game server and passes along the game session object containing game properties and other settings.
//Here is where a game server should take action based on the game session object.
//Once the game server is ready to receive incoming player connections, it should invoke GameLiftServerAPI.ActivateGameSession()
auto onGameSession = [=](Aws::GameLift::Server::Model::GameSession gameSession)
{
  FString gameSessionId = FString(gameSession.GetGameSessionId());
  UE_LOG(GameServerLog, Log, TEXT("GameSession Initializing: %s"), *gameSessionId);
  GameLiftSdkModule->ActivateGameSession();
};
```

## UpdatePlayerSessionCreationPolicy()
<a name="integration-server-sdk5-unreal-updateplayersessioncreationpolicy"></a>

Actualiza la capacidad de la sesión de juego actual para aceptar sesiones de jugador nuevas. Una sesión de juego se puede configurar para que acepte o deniegue todas las sesiones nuevas de los jugadores.

### Sintaxis
<a name="integration-server-sdk5-unreal-updateplayersessioncreationpolicy-syntax"></a>

```
FGameLiftGenericOutcome UpdatePlayerSessionCreationPolicy(EPlayerSessionCreationPolicy policy)
```

### Parameters
<a name="integration-server-sdk5-unreal-updateplayersessioncreationpolicy-parameter"></a>

**playerCreationSessionPolítica**  
Valor de cadena que indica si la sesión de juego acepta jugadores nuevos.   
Los valores válidos son:  
+ **ACCEPT\$1ALL**: se aceptan todas las sesiones de jugador nuevas.
+ **DENY\$1ALL**: se rechazan todas las sesiones de jugador nuevas.

### Valor devuelto
<a name="integration-server-sdk5-unreal-updateplayersessioncreationpolicy-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-unreal-updateplayersessioncreationpolicy-example"></a>

Este ejemplo establece la política de participación en la sesión de juego actual para aceptar todos los jugadores.

```
FGameLiftGenericOutcome outcome = GameLiftSdkModule->UpdatePlayerSessionCreationPolicy(Aws::GameLift::Model::EPlayerSessionCreationPolicy::ACCEPT_ALL);
```

## GetGameSessionId()
<a name="integration-server-sdk5-unreal-getgamesessionid"></a>

Recupera el ID de la sesión de juego alojada por el proceso del servidor. 

En el caso de los procesos inactivos que no se activan con una sesión de juego, la llamada devuelve [FGameLiftError](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-gamelifterror).

### Sintaxis
<a name="integration-server-sdk5-unreal-getgamesessionid-syntax"></a>

```
FGameLiftStringOutcome GetGameSessionId()
```

### Parameters
<a name="integration-server-sdk5-unreal-getgamesessionid-parameter"></a>

Esta acción no tiene parámetros.

### Valor devuelto
<a name="integration-server-sdk5-unreal-getgamesessionid-return"></a>

Si funciona correctamente, devuelve el ID de sesión del juego como objeto [FGameLiftStringOutcome](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-awsstringoutcome). Si no funciona, devuelve un mensaje de error.

En el caso de los procesos inactivos que no se activan con una sesión de juego, la llamada devuelve `Success`=`True` y `GameSessionId`=`""`.

### Ejemplo
<a name="integration-server-sdk5-unreal-getgamesessionid-example"></a>

```
//When a game session is created, Amazon GameLift Servers sends an activation request to the game server and passes along the game session object containing game properties and other settings.
//Here is where a game server should take action based on the game session object.
//Once the game server is ready to receive incoming player connections, it should invoke GameLiftServerAPI.ActivateGameSession()
auto onGameSession = [=](Aws::GameLift::Server::Model::GameSession gameSession)
{
  FString gameSessionId = FString(gameSession.GetGameSessionId());
  UE_LOG(GameServerLog, Log, TEXT("GameSession Initializing: %s"), *gameSessionId);
  GameLiftSdkModule->ActivateGameSession();
};
```

## GetTerminationTime()
<a name="integration-server-sdk5-unreal-getterm"></a>

Devuelve la hora a la que está programada el cierre de un proceso de servidor, si hay una hora de terminación disponible. Un proceso del servidor realiza esta acción después de recibir una devolución de llamada `onProcessTerminate()` desde Amazon GameLift Servers. Amazon GameLift Servers llama a `onProcessTerminate()` por los motivos siguientes: 
+ Cuando el proceso del servidor informa de un mal estado o no responde a Amazon GameLift Servers.
+ Al finalizar la instancia durante un evento de reducción vertical.
+ [Cuando se finaliza una instancia debido a la interrupción de una instancia de spot](spot-tasks.md).

### Sintaxis
<a name="integration-server-sdk5-unreal-getterm-syntax"></a>

```
AwsDateTimeOutcome GetTerminationTime()
```

### Valor devuelto
<a name="integration-server-sdk5-unreal-getterm-return"></a>

Si el proceso se realiza correctamente, devuelve la hora de terminación como un objeto `AwsDateTimeOutcome`. El valor es la hora de terminación expresado en ciclos transcurridos desde `0001 00:00:00`. Por ejemplo, el valor de la fecha y hora `2020-09-13 12:26:40 -000Z` es igual a `637355968000000000` ciclos. Si no hay una hora de terminación disponible, devuelve un mensaje de error.

Si el proceso no ha recibido ninguna devolución de llamada ` ProcessParameters.OnProcessTerminate()`, se devuelve un mensaje de error. Para obtener más información sobre cómo cerrar un proceso de servidor, consulte [Respuesta a una notificación de cierre del proceso del servidor](gamelift-sdk-server-api.md#gamelift-sdk-server-terminate).

### Ejemplo
<a name="integration-server-sdk5-unreal-getterm-example"></a>

```
AwsDateTimeOutcome TermTimeOutcome = GameLiftSdkModule->GetTerminationTime();
```

## AcceptPlayerSession()
<a name="integration-server-sdk5-unreal-acceptplayersession"></a>

Notifica a Amazon GameLift Servers que un jugador con el ID de sesión de jugador especificado se ha conectado al proceso del servidor y requiere validación. Amazon GameLift Servers verifica que el ID de sesión de jugador es válido. Una vez validada la sesión del jugador, Amazon GameLift Servers cambia el estado del espacio de jugador de RESERVADO a ACTIVO. 

### Sintaxis
<a name="integration-server-sdk5-unreal-acceptplayersession-syntax"></a>

```
FGameLiftGenericOutcome AcceptPlayerSession(const FString& playerSessionId)
```

### Parameters
<a name="integration-server-sdk5-unreal-acceptplayersession-parameter"></a>

playerSessionId  
ID único emitido por Amazon GameLift Servers cuando se crea una nueva sesión de jugador.

### Valor devuelto
<a name="integration-server-sdk5-unreal-acceptplayersession-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error. 

### Ejemplo
<a name="integration-server-sdk5-unreal-acceptplayersession-example"></a>

Este ejemplo gestiona una solicitud de conexión que incluye la validación y el rechazo de una sesión de jugador no válida. IDs

```
bool GameLiftManager::AcceptPlayerSession(const FString& playerSessionId, const FString& playerId)
{
  #if WITH_GAMELIFT
  UE_LOG(GameServerLog, Log, TEXT("Accepting GameLift PlayerSession: %s . PlayerId: %s"), *playerSessionId, *playerId);
  FString gsId = GetCurrentGameSessionId();
  if (gsId.IsEmpty()) {
    UE_LOG(GameServerLog, Log, TEXT("No GameLift GameSessionId. Returning early!"));
    return false;
  }
  
  if (!GameLiftSdkModule->AcceptPlayerSession(playerSessionId).IsSuccess()) {
    UE_LOG(GameServerLog, Log, TEXT("PlayerSession not Accepted."));
    return false;
  }

  // Add PlayerSession from internal data structures keeping track of connected players
  connectedPlayerSessionIds.Add(playerSessionId);
  idToPlayerSessionMap.Add(playerSessionId, PlayerSession{ playerId, playerSessionId });
  return true;
  #else
  return false;
  #endif
}
```

## RemovePlayerSession()
<a name="integration-server-sdk5-unreal-removeplayersession"></a>

Informa a Amazon GameLift Servers de que un jugador se ha desconectado del proceso del servidor. Como respuesta, Amazon GameLift Servers cambia el espacio del jugador para que esté disponible. 

### Sintaxis
<a name="integration-server-sdk5-unreal-removeplayersession-syntax"></a>

```
FGameLiftGenericOutcome RemovePlayerSession(const FString& playerSessionId)
```

### Parameters
<a name="integration-server-sdk5-unreal-removeplayersession-parameter"></a>

**`playerSessionId`**  
ID único emitido por Amazon GameLift Servers cuando se crea una nueva sesión de jugador.

### Valor devuelto
<a name="integration-server-sdk5-unreal-removeplayersession-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-unreal-removeplayersession-example"></a>

```
bool GameLiftManager::RemovePlayerSession(const FString& playerSessionId)
{
  #if WITH_GAMELIFT
  UE_LOG(GameServerLog, Log, TEXT("Removing GameLift PlayerSession: %s"), *playerSessionId);

  if (!GameLiftSdkModule->RemovePlayerSession(playerSessionId).IsSuccess()) {
    UE_LOG(GameServerLog, Log, TEXT("PlayerSession Removal Failed"));
    return false;
  }

  // Remove PlayerSession from internal data structures that are keeping track of connected players
  connectedPlayerSessionIds.Remove(playerSessionId);
  idToPlayerSessionMap.Remove(playerSessionId);

  // end the session if there are no more players connected
  if (connectedPlayerSessionIds.Num() == 0) {
    EndSession();
  }

  return true;
  #else
  return false;
  #endif
}
```

## DescribePlayerSessions()
<a name="integration-server-sdk5-unreal-describeplayersessions"></a>

Recupera datos de sesión de jugador, incluida la configuración, los metadatos de la sesión y los datos de jugador. Utilice este método para obtener información sobre los siguientes elementos:
+ Una sesión para un jugador
+ Todas las sesiones del jugador en una sesión de juego
+ Todas las sesiones de jugador están asociadas a un único ID de jugador

### Sintaxis
<a name="integration-server-sdk5-unreal-describeplayersessions-syntax"></a>

```
FGameLiftDescribePlayerSessionsOutcome DescribePlayerSessions(const FGameLiftDescribePlayerSessionsRequest &describePlayerSessionsRequest)
```

### Parameters
<a name="integration-server-sdk5-unreal-describeplayersessions-parameter"></a>

**[FGameLiftDescribePlayerSessionsRequest](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-playersessions)**  
Un objeto [FGameLiftDescribePlayerSessionsRequest](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-playersessions) que describe las sesiones de jugador que recuperar.

### Valor devuelto
<a name="integration-server-sdk5-unreal-describeplayersessions-return"></a>

Si funciona correctamente, devuelve un objeto [FGameLiftDescribePlayerSessionsOutcome](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-describeplayersessionsoutcome) que contiene un conjunto de objetos de sesión de jugador que se ajusta a los parámetros de la solicitud.

### Ejemplo
<a name="integration-server-sdk5-unreal-describeplayersessions-example"></a>

En este ejemplo se solicitan todas las sesiones de jugador conectadas activamente a una sesión de juego específica. Al omitir *NextToken*y establecer el valor *límite* en 10, Amazon GameLift Servers devuelve los registros de las sesiones de los primeros 10 jugadores que coincidan con la solicitud.

```
void GameLiftManager::DescribePlayerSessions()
{
  #if WITH_GAMELIFT
  FString localPlayerSessions;
  for (auto& psId : connectedPlayerSessionIds)
  {
    PlayerSession ps = idToPlayerSessionMap[psId];
    localPlayerSessions += FString::Printf(TEXT("%s : %s  ; "), *(ps.playerSessionId), *(ps.playerId));
  }
  UE_LOG(GameServerLog, Log, TEXT("LocalPlayerSessions: %s"), *localPlayerSessions);

  UE_LOG(GameServerLog, Log, TEXT("Describing PlayerSessions in this GameSession"));
  FGameLiftDescribePlayerSessionsRequest request;
  request.m_gameSessionId = GetCurrentGameSessionId();

  FGameLiftDescribePlayerSessionsOutcome outcome = GameLiftSdkModule->DescribePlayerSessions(request);
  LogDescribePlayerSessionsOutcome(outcome);
  #endif
}
```

## StartMatchBackfill()
<a name="integration-server-sdk5-unreal-startmatchbackfill"></a>

Envía una solicitud para encontrar nuevos jugadores para ranuras abiertas en una sesión de juego creada con FlexMatch. Para obtener más información, consulte [Característica de reposición de FlexMatch](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html).

Esta acción es asíncrona. Si se emparejan nuevos jugadores, Amazon GameLift Servers ofrece datos actualizados del emparejador mediante la función de devolución de llamada `OnUpdateGameSession()`.

Un proceso del servidor solo puede tener una solicitud de reposición de emparejamiento activa a la vez. Para enviar una nueva solicitud, en primer lugar llame a [StopMatchBackfill()](#integration-server-sdk5-unreal-stopmatchbackfill) para cancelar la solicitud original.

### Sintaxis
<a name="integration-server-sdk5-unreal-startmatchbackfill-syntax"></a>

```
FGameLiftStringOutcome StartMatchBackfill (FStartMatchBackfillRequest &startBackfillRequest);
```

### Parameters
<a name="integration-server-sdk5-unreal-startmatchbackfill-parameter"></a>

**[FStartMatchBackfillRequest](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-startmatchbackfillrequest)**  
 StartMatchBackfillRequest Objeto que comunica la siguiente información:  
+ Un ID de ticket que se asignará a la solicitud de reposición. Esta información es opcional; si no se proporciona ningún ID, Amazon GameLift Servers generará uno.
+ El creador de emparejamientos al que se enviará la solicitud. El ARN de configuración completo es obligatorio. Este valor se encuentra en los datos del emparejador de la sesión de juego.
+ El ID de la sesión de juego que se va a reponer.
+ Datos del emparejador disponibles para los jugadores actuales de la sesión de juego.

### Valor devuelto
<a name="integration-server-sdk5-unreal-startmatchbackfill-return"></a>

Devuelve un objeto `StartMatchBackfillOutcome` con el ID del ticket de reposición de emparejamiento o un error con un mensaje de error. 

### Ejemplo
<a name="integration-server-sdk5-unreal-startmatchbackfill-example"></a>

```
FGameLiftStringOutcome FGameLiftServerSDKModule::StartMatchBackfill(const FStartMatchBackfillRequest& request) 
{
  #if WITH_GAMELIFT
  Aws::GameLift::Server::Model::StartMatchBackfillRequest sdkRequest;
  sdkRequest.SetTicketId(TCHAR_TO_UTF8(*request.m_ticketId));
  sdkRequest.SetGameSessionArn(TCHAR_TO_UTF8(*request.m_gameSessionArn));
  sdkRequest.SetMatchmakingConfigurationArn(TCHAR_TO_UTF8(*request.m_matchmakingConfigurationArn));
  for (auto player : request.m_players) {
    Aws::GameLift::Server::Model::Player sdkPlayer;
    sdkPlayer.SetPlayerId(TCHAR_TO_UTF8(*player.m_playerId));
    sdkPlayer.SetTeam(TCHAR_TO_UTF8(*player.m_team));
    for (auto entry : player.m_latencyInMs) {
      sdkPlayer.WithLatencyMs(TCHAR_TO_UTF8(*entry.Key), entry.Value);
    }

    std::map<std::string, Aws::GameLift::Server::Model::AttributeValue> sdkAttributeMap;
    for (auto attributeEntry : player.m_playerAttributes) {
      FAttributeValue value = attributeEntry.Value;
      Aws::GameLift::Server::Model::AttributeValue attribute;
      switch (value.m_type) {
        case FAttributeType::STRING:
          attribute = Aws::GameLift::Server::Model::AttributeValue(TCHAR_TO_UTF8(*value.m_S));
        break;
        case FAttributeType::DOUBLE:
          attribute = Aws::GameLift::Server::Model::AttributeValue(value.m_N);
        break;
        case FAttributeType::STRING_LIST:
          attribute = Aws::GameLift::Server::Model::AttributeValue::ConstructStringList();
          for (auto sl : value.m_SL) {
            attribute.AddString(TCHAR_TO_UTF8(*sl));
          };
        break;
        case FAttributeType::STRING_DOUBLE_MAP:
          attribute = Aws::GameLift::Server::Model::AttributeValue::ConstructStringDoubleMap();
          for (auto sdm : value.m_SDM) {
            attribute.AddStringAndDouble(TCHAR_TO_UTF8(*sdm.Key), sdm.Value);
          };
        break;
      }
      sdkPlayer.WithPlayerAttribute((TCHAR_TO_UTF8(*attributeEntry.Key)), attribute);
    }
    sdkRequest.AddPlayer(sdkPlayer);
  }
  auto outcome = Aws::GameLift::Server::StartMatchBackfill(sdkRequest);
  if (outcome.IsSuccess()) {
    return FGameLiftStringOutcome(outcome.GetResult().GetTicketId());
  }
  else {
    return FGameLiftStringOutcome(FGameLiftError(outcome.GetError()));
  }
  #else
  return FGameLiftStringOutcome("");
  #endif
}
```

## StopMatchBackfill()
<a name="integration-server-sdk5-unreal-stopmatchbackfill"></a>

Cancela una solicitud de reposición de emparejamiento activa. Para obtener más información, consulte [Característica de reposición de FlexMatch](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html).

### Sintaxis
<a name="integration-server-sdk5-unreal-stopmatchbackfill-syntax"></a>

```
FGameLiftGenericOutcome StopMatchBackfill (FStopMatchBackfillRequest &stopBackfillRequest);
```

### Parameters
<a name="integration-server-sdk5-unreal-stopmatchbackfill-parameter"></a>

**[FStopMatchBackfillRequest](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-stopmatchbackfillrequest)**  
Un StopMatchBackfillRequest objeto que identifique el billete de emparejamiento que se va a cancelar:   
+ ID del ticket que se asignará a la solicitud de reposición
+ El emparejador al que se envió la solicitud de reposición
+ La sesión de juego asociada a la solicitud de reposición.

### Valor devuelto
<a name="integration-server-sdk5-unreal-stopmatchbackfill-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-unreal-stopmatchbackfill-example"></a>

```
FGameLiftGenericOutcome FGameLiftServerSDKModule::StopMatchBackfill(const FStopMatchBackfillRequest& request)
{
  #if WITH_GAMELIFT
  Aws::GameLift::Server::Model::StopMatchBackfillRequest sdkRequest;
  sdkRequest.SetTicketId(TCHAR_TO_UTF8(*request.m_ticketId));
  sdkRequest.SetGameSessionArn(TCHAR_TO_UTF8(*request.m_gameSessionArn));
  sdkRequest.SetMatchmakingConfigurationArn(TCHAR_TO_UTF8(*request.m_matchmakingConfigurationArn));
  auto outcome = Aws::GameLift::Server::StopMatchBackfill(sdkRequest);
  if (outcome.IsSuccess()) {
    return FGameLiftGenericOutcome(nullptr);
  }
  else {
    return FGameLiftGenericOutcome(FGameLiftError(outcome.GetError()));
  }
  #else
  return FGameLiftGenericOutcome(nullptr);
  #endif
}
```

## GetComputeCertificate()
<a name="integration-server-sdk5-unreal-getcomputecertificate"></a>

Recupera la ruta al certificado TLS utilizado para cifrar la conexión de red entre el recurso de computación de Amazon GameLift Servers Anywhere y Amazon GameLift Servers. Puede utilizar la ruta del certificado al registrar el dispositivo informático en una flota de Amazon GameLift Servers Anywhere. Para obtener más información, consulte, [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html).

### Sintaxis
<a name="integration-server-sdk5-unreal-getcomputecertificate-syntax"></a>

```
FGameLiftGetComputeCertificateOutcome FGameLiftServerSDKModule::GetComputeCertificate()
```

### Valor devuelto
<a name="integration-server-sdk5-unreal-getcomputecertificate-return"></a>

Devuelve un objeto `GetComputeCertificateResponse` que contiene los siguientes elementos: 
+ CertificatePath: La ruta al certificado TLS de su recurso informático. 
+ HostName: el nombre de host de su recurso informático.

### Ejemplo
<a name="integration-server-sdk5-unreal-getcomputecertificate-example"></a>

```
FGameLiftGetComputeCertificateOutcome FGameLiftServerSDKModule::GetComputeCertificate()
{
  #if WITH_GAMELIFT
  auto outcome = Aws::GameLift::Server::GetComputeCertificate();
  if (outcome.IsSuccess()) {
    auto& outres = outcome.GetResult();
    FGameLiftGetComputeCertificateResult result;
    result.m_certificate_path = UTF8_TO_TCHAR(outres.GetCertificatePath());
    result.m_computeName = UTF8_TO_TCHAR(outres.GetComputeName());
    return FGameLiftGetComputeCertificateOutcome(result);
  }
  else {
    return FGameLiftGetComputeCertificateOutcome(FGameLiftError(outcome.GetError()));
  }
  #else
  return FGameLiftGetComputeCertificateOutcome(FGameLiftGetComputeCertificateResult());
  #endif
}
```

## GetFleetRoleCredentials()
<a name="integration-server-sdk5-unreal-getfleetrolecredentials"></a>

Recupera las credenciales del rol de IAM que autorizan a Amazon GameLift Servers a interactuar con otros Servicios de AWS. Para obtener más información, consulte [Conecta tu servidor de juegos Amazon GameLift Servers alojado a otros AWS recursos](gamelift-sdk-server-resources.md).

### Sintaxis
<a name="integration-server-sdk5-unreal-getfleetrolecredentials-syntax"></a>

```
FGameLiftGetFleetRoleCredentialsOutcome FGameLiftServerSDKModule::GetFleetRoleCredentials(const FGameLiftGetFleetRoleCredentialsRequest &request)
```

### Parameters
<a name="integration-server-sdk5-unreal-getfleetrolecredentials-parameters"></a>

[FGameLiftGetFleetRoleCredentialsRequest](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsrequest)

### Valor devuelto
<a name="integration-server-sdk5-unreal-getfleetrolecredentials-return"></a>

Devuelve un objeto [FGameLiftGetFleetRoleCredentialsOutcome](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsoutcome).

### Ejemplo
<a name="integration-server-sdk5-unreal-getfleetrolecredentials-example"></a>

```
FGameLiftGetFleetRoleCredentialsOutcome FGameLiftServerSDKModule::GetFleetRoleCredentials(const FGameLiftGetFleetRoleCredentialsRequest &request)
{
  #if WITH_GAMELIFT
  Aws::GameLift::Server::Model::GetFleetRoleCredentialsRequest sdkRequest;
  sdkRequest.SetRoleArn(TCHAR_TO_UTF8(*request.m_roleArn));
  sdkRequest.SetRoleSessionName(TCHAR_TO_UTF8(*request.m_roleSessionName));

  auto outcome = Aws::GameLift::Server::GetFleetRoleCredentials(sdkRequest);

  if (outcome.IsSuccess()) {
    auto& outres = outcome.GetResult();
    FGameLiftGetFleetRoleCredentialsResult result;
    result.m_assumedUserRoleArn = UTF8_TO_TCHAR(outres.GetAssumedUserRoleArn());
    result.m_assumedRoleId = UTF8_TO_TCHAR(outres.GetAssumedRoleId());
    result.m_accessKeyId = UTF8_TO_TCHAR(outres.GetAccessKeyId());
    result.m_secretAccessKey = UTF8_TO_TCHAR(outres.GetSecretAccessKey());
    result.m_sessionToken = UTF8_TO_TCHAR(outres.GetSessionToken());
    result.m_expiration = FDateTime::FromUnixTimestamp(outres.GetExpiration());
    return FGameLiftGetFleetRoleCredentialsOutcome(result);
  }
  else {
    return FGameLiftGetFleetRoleCredentialsOutcome(FGameLiftError(outcome.GetError()));
  }
  #else
  return FGameLiftGetFleetRoleCredentialsOutcome(FGameLiftGetFleetRoleCredentialsResult());
  #endif
}
```

## Destroy()
<a name="integration-server-sdk5-unreal-ref-destroy"></a>

Libera de la memoria el SDK del servidor de juegos de Amazon GameLift Servers. Como práctica recomendada, llame a este método después de `ProcessEnding()` y antes de finalizar el proceso. Si utiliza una flota de Anywhere y no va a finalizar los procesos del servidor después de cada sesión de juego, llame a `Destroy()` y, a continuación, a `InitSDK()` para reinicializar antes de informar a Amazon GameLift Servers de que el proceso está listo para organizar una sesión de juego con `ProcessReady()`.

### Sintaxis
<a name="integration-server-sdk5-unreal-ref-destroy-syntax"></a>

```
FGameLiftGenericOutcome Destroy();
```

### Parameters
<a name="integration-server-sdk5-unreal-ref-destroy-parameter"></a>

No hay parámetros.

### Valor devuelto
<a name="integration-server-sdk5-unreal-ref-destroy-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk5-unreal-ref-destroy-example"></a>

```
// First call ProcessEnding()
FGameLiftGenericOutcome processEndingOutcome = GameLiftSdkModule->ProcessEnding();
  
// Then call Destroy() to free the SDK from memory
FGameLiftGenericOutcome destroyOutcome = GameLiftSdkModule->Destroy();
  
// Exit the process with success or failure
if (processEndingOutcome.IsSuccess() && destroyOutcome.IsSuccess()) 
    {
    UE_LOG(GameServerLog, Log, TEXT("Server process ending successfully"));
}
else {
    if (!processEndingOutcome.IsSuccess()) {
        const FGameLiftError& error = processEndingOutcome.GetError();
        UE_LOG(GameServerLog, Error, TEXT("ProcessEnding() failed. Error: %s"),
        error.m_errorMessage.IsEmpty() ? TEXT("Unknown error") : *error.m_errorMessage);
    }
    if (!destroyOutcome.IsSuccess()) {
        const FGameLiftError& error = destroyOutcome.GetError();
        UE_LOG(GameServerLog, Error, TEXT("Destroy() failed. Error: %s"),
        error.m_errorMessage.IsEmpty() ? TEXT("Unknown error") : *error.m_errorMessage);
    }
}
```