

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 C\# 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\# para Amazon GameLift Servers: tipos de datos](integration-server-sdk5-csharp-datatypes.md)

**Topics**
+ [SDK 5.x del servidor de C\# 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\_ALL**: se aceptan todas las sesiones de jugador nuevas.
+ **DENY\_ALL**: 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); 
  }
```