

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

Esta seção fornece documentação de referência sobre o SDK 5.x do servidor para o Amazon GameLift Servers. O SDK do servidor fornece as principais funcionalidades que o servidor de jogos usa para interagir com o serviço do Amazon GameLift Servers. Por exemplo, o servidor de jogos recebe solicitações do serviço para iniciar e interromper sessões de jogo e fornece atualizações regulares sobre o status das sessões de jogo ao serviço. Integre os servidores de jogos ao SDK do servidor antes de implantá-los para hospedagem.

Use essa referência do SDK do servidor para integrar os servidores de jogos multijogador personalizados à hospedagem com o Amazon GameLift Servers. Para obter orientação sobre o processo de integração, consulte [Integre o Amazon GameLift Servers ao seu servidor de jogos com o SDK do servidor.](gamelift-sdk-server-api.md).

A versão principal mais recente do SDK de servidor para o Amazon GameLift Servers é 5.x. Os seguintes recursos de hospedagem exigem o uso da versão 5.x: 
+ Amazon GameLift Servers Anywhere
+ Plug-in do Amazon GameLift Servers para Unreal Engine e Unity

**nota**  
Se você precisar usar o SDK do servidor versão 4.x ou anterior, consulte [SDK do servidor para a versão 4 ou anterior do Amazon GameLift Servers](reference-serversdk4.md) para a documentação e informações do download.

**Topics**
+ [Atualizações no SDK 5 do servidor para Amazon GameLift Servers](#reference-serversdk5-about)
+ [Migrar para o SDK 5.x do servidor para o Amazon GameLift Servers](reference-serversdk5-migration.md)
+ [SDK do servidor C\$1\$1 para Amazon GameLift Servers 5.x – Ações](integration-server-sdk5-cpp-actions.md)
+ [SDK do servidor C\$1 para Amazon GameLift Servers 5.x – Ações](integration-server-sdk5-csharp-actions.md)
+ [SDK do servidor do Go para Amazon GameLift Servers – ações](integration-server-sdk-go-actions.md)
+ [SDK do servidor C\$1\$1 (Unreal) para Amazon GameLift Servers 5.x – Ações](integration-server-sdk5-unreal-actions.md)

## Atualizações no SDK 5 do servidor para Amazon GameLift Servers
<a name="reference-serversdk5-about"></a>

Os servidores de jogos hospedados usam o SDK do servidor para o Amazon GameLift Servers se comunicar com o serviço do Amazon GameLift Servers para iniciar e gerenciar sessões de jogo para jogadores. A versão mais recente, o SDK 5 do servidor Amazon GameLift Servers, oferece várias melhorias e suporte para novos recursos do Amazon GameLift Servers. Se a versão do servidor de jogos atualmente usa o SDK 4 ou anterior do servidor Amazon GameLift Servers, siga as orientações neste tópico para atualizar os jogos. 

O SDK versão 5.0.0 e superiores do servidor Amazon GameLift Servers inclui estas atualizações:
+ Linguagens expandidas: as bibliotecas estão disponíveis nas seguintes linguagens: C\$1\$1, C\$1 e Go. Você pode compilar as bibliotecas C\$1\$1 para uso com o Unreal Engine.
+ Suporte a plug-ins de mecanismos de jogo: os plug-ins autônomos do Amazon GameLift Servers para Unreal Engine e Unity exigem bibliotecas do SDK 5 do servidor Amazon GameLift Servers. Esses plug-ins oferecem fluxos de trabalho guiados para integrar, testar e implantar os jogos no Amazon GameLift Servers para hospedagem. Consulte a documentação [Amazon GameLift Serversplugin para Unity (servidor SDK 5.x)](unity-plug-in.md) e [Amazon GameLift Serversplugin para Unreal Engine](unreal-plugin.md).
+ Suporte ao do Amazon GameLift Servers Anywhere: com frotas do Anywhere, você pode configurar seus próprios recursos de hospedagem para usar os recursos do Amazon GameLift Servers (incluindo criação de parcerias). Adicione o Amazon GameLift Servers Agent para automatizar o gerenciamento do ciclo de vida das sessões de jogos. Use as frotas do Anywhere para hospedagem de produção com hardware on-premises ou configure ambientes de teste para desenvolvimento rápido e iterativo de jogos. Consulte [Hospedagem Anywhere](gamelift-intro-flavors.md#gamelift-intro-flavors-hosting-anywhere) e o [Amazon GameLift Servers Agent](https://github.com/aws/amazon-gamelift-agent).
+ Ferramentas de teste atualizadas: o recurso do Amazon GameLift Servers Anywhere permite que você configure ambientes de teste locais ou baseados na nuvem para os jogos. Configure o teste com ou sem o Amazon GameLift Servers Agent. Essas ferramentas substituem o Amazon GameLift Servers local. Consulte [Configurar testes locais com o Amazon GameLift Servers Anywhere](integration-testing.md).
+ Solução .NET consolidada para C\$1: o SDK 5.1\$1 do servidor C\$1 oferece suporte ao .NET Framework 4.6.2 (atualizado da versão 4.6.1) e ao .NET 6.0 em uma única solução. O.NET Standard 2.1 está disponível com as bibliotecas criadas pelo Unity.
+ Novo recurso `Compute`: esse novo recurso combina diferentes tipos de recurso de hospedagem. Inclui recursos de hospedagem baseados na nuvem (frotas do EC2 gerenciadas ou frotas de contêineres) e recursos de hospedagem controlados pelo cliente (frotas do Anywhere). Inclui as seguintes atualizações: 
  + As novas chamadas de API para o recurso `Compute` incluem: [ListCompute()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_ListCompute.html), [DescribeCompute()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_DescribeCompute.html) e [GetComputeAccess()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetComputeAccess.html). Essas ações retornam informações de recursos de hospedagem para qualquer tipo de frota do Amazon GameLift Servers. Em geral, para frotas com servidores de jogos que usam o SDK 5.x do servidor, use as ações específicas da computação para substituir as ações específicas da instância. Além disso, essas ações são para uso em frotas do Anywhere sem o Amazon GameLift Servers Agent: [RegisterCompute()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html), [DeregisterCompute()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_DeregisterCompute.html) e [GetComputeAuthToken()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetComputeAuthToken.html).
  + Nova métrica `ActiveCompute` com dimensões `FleetId`, `Location` e `ComputeType` do CloudWatch. Essa métrica substitui a métrica anterior `ActiveInstances`.
+ Amazon EC2 Systems Manager (SSM) para acesso remoto: para maior segurança, use o SSM em vez de SSH ao se conectar a instâncias em frotas gerenciadas pelo Amazon GameLift Servers. Consulte [Conecte-se às instâncias da frota](fleets-remote-access.md).

# Migrar para o SDK 5.x do servidor para o Amazon GameLift Servers
<a name="reference-serversdk5-migration"></a>

Para atualizar um projeto de jogo para usar o SDK versão 5.x do servidor, faça as seguintes alterações:

**nota**  
Se você precisar continuar usando o SDK do servidor versão 4.x ou anterior, consulte [SDK do servidor para a versão 4 ou anterior do Amazon GameLift Servers](reference-serversdk4.md) para a documentação e informações do download. Especificamente para a versão 4.0.2 do SDK, você pode baixá-lo nas versões [oficiais GitHub ](https://github.com/amazon-gamelift/amazon-gamelift-servers-csharp-server-sdk/releases).

1. Obtenha o SDK de servidor mais recente para o pacote do Amazon GameLift Servers para seu ambiente de desenvolvimento **[[Site de download](https://aws.amazon.com/gamelift/servers/getting-started-sdks/)]**. Siga as instruções de instalação no `Readme` arquivo do pacote e da versão baixados. Veja essas instruções para usar o servidor SDKs com seu projeto de jogo.
   + [Para ambientes de desenvolvimento que usam C\$1\$1, C\$1 ou Go](gamelift-sdk-server-api.md)
   + [Para projetos do Unreal Engine (somente bibliotecas do SDK do servidor C\$1\$1 para Unreal)](integration-engines-setup-unreal.md)
   + [Para projetos do Unity (somente bibliotecas do SDK do servidor C\$1 para Unity)](integration-engines-unity-using.md)
   + [Para uso com o plug-in do Amazon GameLift Servers para Unreal Engine](unreal-plugin.md)
   + [Para uso com o plug-in do Amazon GameLift Servers para Unity](unity-plug-in.md)

1. Atualize o código do servidor da seguinte forma:
   + Altere a função de retorno de chamada do código do servidor de `onCreateGameSession()` para `onStartGameSession()`.
   + Atualize as entradas `InitSDK()` conforme apropriado: 
     + Se você planeja implantar a compilação do servidor de jogos em uma frota do EC2 gerenciada pelo Amazon GameLift Servers ou em uma frota Anywhere com o Amazon GameLift Servers Agent: 

       Chame `InitSDK()` sem 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)). Essa chamada configura o ambiente computacional e uma WebSocket conexão com o Amazon GameLift Servers serviço. 
     + Se você planeja implantar a compilação do servidor de jogo em uma frota Anywhere sem o Amazon GameLift Servers Agent:

       Chame `InitSDK()` com parâmetros do 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)). Um processo de servidor de jogos usa esses parâmetros para estabelecer uma conexão com o serviço do Amazon GameLift Servers.

1. Se a compilação do servidor de jogos ou outras aplicações hospedadas se comunicarem com outros recursos da AWS durante a execução, será necessário alterar a forma como a aplicação obtém acesso a esses recursos. Substitua o uso de `AssumeRoleCredentials` pela nova ação `GetFleetRoleCredentials()` do SDK do servidor (para servidores de jogos) ou use credenciais compartilhadas (para outras aplicações). Para obter mais informações sobre como implementar essa alteração, consulte [Conecte seu servidor de jogos Amazon GameLift Servers hospedado a outros AWS recursos](gamelift-sdk-server-resources.md).

1. Se o projeto chamou a ação `GetInstanceCertificate()` do SDK do servidor para recuperar um certificado TLS, modifique o código para usar o novo `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)).

1. Ao fazer o upload da compilação do jogo para Amazon GameLift Servers (como com [upload-build](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/gamelift/upload-build.html) ou [CreateBuild())](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateBuild.html), defina o `ServerSdkVersion` parâmetro para a versão 5.x que você está usando (esse parâmetro atualmente é 4.0.2). Esse parâmetro deve corresponder às bibliotecas reais do SDK do servidor na compilação do servidor de jogos. Se você especificar a versão errada para uma compilação de servidor de jogos carregada, todas as frotas criadas com essa compilação falharão. Consulte [Criar uma compilação personalizada do servidor de jogos para o Amazon GameLift Servers](gamelift-build-cli-uploading.md).

   O exemplo a seguir ilustra como especificar a versão do SDK do 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. Se você usa scripts para se conectar remotamente a frotas gerenciadas, atualize os scripts para usar o novo processo, conforme descrito em [Conecte-se às instâncias da frota](fleets-remote-access.md).

# SDK do servidor C\$1\$1 para Amazon GameLift Servers 5.x – Ações
<a name="integration-server-sdk5-cpp-actions"></a>

Use a referência do SDK 5.x do servidor para integrar o jogo multijogador à hospedagem com o Amazon GameLift Servers. Para obter orientação sobre o processo de integração, consulte [Integre o Amazon GameLift Servers ao seu servidor de jogos com o SDK do servidor.](gamelift-sdk-server-api.md).

**nota**  
Este tópico descreve a API C\$1\$1 do Amazon GameLift Servers que você pode usar ao criar com a Biblioteca padrão C\$1\$1 (`std`). Especificamente, essa documentação se aplica ao código que você compila com a opção `-DDGAMELIFT_USE_STD=1`. 

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

Use a referência de Amazon GameLift Servers C\$1\$1 do SDK 5.x do servidor para integrar o jogo multijogador à hospedagem com o Amazon GameLift Servers. Para obter orientação sobre o processo de integração, consulte [Integre o Amazon GameLift Servers ao seu servidor de jogos com o SDK do servidor.](gamelift-sdk-server-api.md).

**nota**  
Este tópico descreve a API C\$1\$1 do Amazon GameLift Servers que você pode usar ao criar com a Biblioteca padrão C\$1\$1 (`std`). Especificamente, essa documentação se aplica ao código que você compila com a opção `-DDGAMELIFT_USE_STD=1`. 

[SDK do servidor C\$1\$1 para Amazon GameLift Servers 5.x – Ações](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)
+ [Jogador](#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)
+ [Inicializar SDKOutcome](#integration-server-sdk5-cpp-datatypes-initsdkoutcome)
+ [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror)
+ [Enumerações](#integration-server-sdk5-cpp-dataypes-enums)

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

Um objeto que identifica arquivos gerados durante uma sessão de jogo que você deseja que o Amazon GameLift Servers carregue e armazene após o término da sessão de jogo. O servidor do jogo fornece `LogParameters` ao Amazon GameLift Servers como parte de um objeto `ProcessParameters` em uma chamada [ProcessReady()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-processready).


|  |  | 
| --- |--- |
|  **Properties**  | Descrição | 
| LogPaths |  A lista de caminhos de diretório para arquivos de log do servidor de jogo que você deseja que o Amazon GameLift Servers armazene para acesso futuro. O processo do servidor gera esses arquivos durante cada sessão de jogo. Você define caminhos e nomes de arquivos em seu servidor de jogo e os armazena no diretório raiz de construção do jogo.  Os caminhos de log devem ser absolutos. Por exemplo, se a compilação do jogo armazenasse logs de sessão de jogo em um caminho como `MyGame\sessionLogs\`, o caminho estará `c:\game\MyGame\sessionLogs` em uma instância do Windows. **Digite**: `std:vector<std::string>` **Obrigatório**: não  | 

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

Use esse tipo de dados para configurar a coleta de métricas e relatórios de falhas para o servidor do jogo. O servidor do jogo comunica `MetricsParameters` ao Amazon GameLift Servers em uma chamada [InitMetrics()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-initmetrics).


|  |  | 
| --- |--- |
|  **Properties**  | Descrição | 
| StatsdHost |  O nome do host ou endereço IP do servidor do StatsD para a coleta de métricas. **Digite**: `std::string` **Obrigatório**: não  | 
| StatsdPort |  O número da porta do servidor StatsD para coleta de métricas. **Digite**: `int` **Obrigatório**: não  | 
| CrashReporterHost |  O endereço IP ou o nome do host do servidor de relatório de falhas. **Digite**: `std::string` **Obrigatório**: não  | 
| CrashReporterPort |  O número da porta do servidor de relatório de falhas. **Digite**: `int` **Obrigatório**: não  | 
| FlushIntervalMs |  O intervalo em milissegundos para limpar os dados das métricas para o servidor. **Digite**: `int` **Obrigatório**: não  | 
| MaxPacketSize |  O tamanho máximo em bytes dos pacotes para métricas enviados ao servidor. **Digite**: `int` **Obrigatório**: não  | 

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

Este tipo de dados contém o conjunto de parâmetros enviado para o Amazon GameLift Servers em uma [ProcessReady()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-processready).


|  |  | 
| --- |--- |
|  **Properties**  | Descrição | 
| LogParameters | Um objeto com caminhos de diretório para arquivos que são gerados durante uma sessão de jogo. O Amazon GameLift Servers copia e armazena para acessos futuros.**Digite**: `Aws::GameLift::Server::LogParameters`**Obrigatório**: não | 
| OnHealthCheck | A função de retorno de chamada que o Amazon GameLift Servers invoca para solicitar um relatório de status de integridade do processo de servidor. O Amazon GameLift Servers chama essa função a cada 60 segundos e espera 60 segundos por uma resposta. O processo do servidor retorna TRUE se estiver íntegro, FALSE se não estiver íntegro. Se nenhuma resposta for retornada, o Amazon GameLift Servers registra o processo do servidor como não íntegro.**Digite**: `std::function<bool()> onHealthCheck`**Obrigatório**: não | 
| OnProcessTerminate | A função de retorno de chamada que o Amazon GameLift Servers invoca para forçar o encerramento do processo do servidor. Depois de chamar essa função, o Amazon GameLift Servers aguardará 5 minutos para o processo de servidor desligar e responder com uma chamada [ProcessEnding()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-processending) antes do desligamento do processo de servidor.**Digite**: `std::function<void()> onProcessTerminate`**Obrigatório**: Sim | 
| OnStartGameSession | A função de retorno de chamada que Amazon GameLift Servers invoca para ativar uma nova sessão de jogo. Amazon GameLift Serverschama essa função em resposta a uma solicitação do cliente [CreateGameSession](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateGameSession.html). A função de retorno de chamada transmite um objeto [GameSession](#integration-server-sdk5-cpp-dataypes-gamesession).**Digite**: `const std::function<void(Aws::GameLift::Model::GameSession)> onStartGameSession`**Obrigatório**: Sim | 
| OnUpdateGameSession | O nome da função de retorno de chamada que o Amazon GameLift Servers invoca para passar um objeto de sessão de jogo atualizado ao processo do jogo. O Amazon GameLift Servers chama essa função quando uma solicitação de alocação de correspondência foi processada para fornecer dados de combinador atualizados. Ele transmite um objeto [GameSession](#integration-server-sdk5-cpp-dataypes-gamesession), uma atualização de status (updateReason) e o ID do tíquete de alocação de correspondência.**Digite**: `std::function<void(Aws::GameLift::Server::Model::UpdateGameSession)> onUpdateGameSession`**Obrigatório**: não | 
| Porta | O número da porta em que o processo de servidor escuta para novas conexões de jogador. O valor deve estar dentro do intervalo de portas configurado para qualquer frota que implanta essa compilação do servidor de jogo. Esse número de porta está incluído nos objetos das sessões de jogo e jogador, que as sessões de jogo usam ao se conectar a um processo de servidor.**Digite**: `Integer`**Obrigatório**: Sim | 

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

Esse tipo de dados é atualizado para um objeto de sessão de jogo, o que inclui o motivo pelo qual a sessão de jogo foi atualizada e o ID do tíquete de alocação relacionada, se a alocação for usada para preencher as sessões dos jogadores na sessão do jogo.


| Propriedades | **Descrição** | 
| --- | --- | 
| GameSession | Um objeto [GameSession](#integration-server-sdk5-cpp-dataypes-gamesession). O objeto GameSession contém propriedades que descrevem uma sessão de jogo. **Digite**: `Aws::GameLift::Server::GameSession`**Obrigatório**: Sim | 
| UpdateReason | O motivo pelo qual a sessão do jogo está sendo atualizada.**Digite**: `Aws::GameLift::Server::UpdateReason`**Obrigatório**: Sim | 
| BackfillTicketId | O ID do tíquete de alocação que está tentando atualizar a sessão do jogo.**Digite**: `std::string`**Obrigatório**: não | 

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

Esse tipo de dados fornece detalhes de uma sessão de jogo. 


| Propriedades | **Descrição** | 
| --- | --- | 
| GameSessionId |  Um identificador exclusivo da sessão de jogo. Um ARN de sessão de jogo tem o seguinte formato: `arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>`. **Digite**: `std::string` **Obrigatório**: não  | 
| Nome |  Um rótulo descritivo da sessão do jogo.  **Digite**: `std::string` **Obrigatório**: não  | 
| FleetId |  Um identificador exclusivo da frota em que a sessão de jogo está sendo executada. **Digite**: `std::string` **Obrigatório**: não  | 
| MaximumPlayerSessionCount |  O número máximo de conexões do jogador com a sessão do jogo. **Digite**: `int` **Obrigatório**: não  | 
| Porta |  O número da porta da sessão de jogo. Para se conectar a um servidor de Amazon GameLift Servers jogos, um aplicativo precisa do endereço IP e do número da porta. **Digite**: `in` **Obrigatório**: não  | 
| IpAddress |  O endereço IP da sessão de jogo. Para se conectar a um servidor de Amazon GameLift Servers jogos, um aplicativo precisa do endereço IP e do número da porta. **Digite**: `std::string` **Obrigatório**: não  | 
| GameSessionData |  Um conjunto de propriedades de sessão de jogo personalizadas, formatadas como um único valor de string.  **Digite**: `std::string` **Obrigatório**: não  | 
| MatchmakerData |  Informações sobre o processo de criação de partidas usado para criar a sessão do jogo, na sintaxe JSON, formatado como uma string. Além da configuração de criação de partidas usada, ele contém dados sobre todos os jogadores atribuídos à partida, incluindo atributos do jogador e atribuições da equipe. **Digite**: `std::string` **Obrigatório**: não  | 
| GameProperties |  Um conjunto de propriedades personalizadas para uma sessão de jogo, formatado como pares de chave:valor. Essas propriedades são passadas com uma solicitação de início de uma nova sessão de jogo. **Digite**: `std :: vector < GameProperty >` **Obrigatório**: não  | 
| DnsName |  O identificador DNS atribuído à instância que está executando a sessão do jogo. Os valores têm o formato a seguir: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/gameliftservers/latest/developerguide/integration-server-sdk5-cpp-datatypes.html) Ao se conectar a uma sessão de jogo que está sendo executada em uma frota compatível com TLS, você deve usar o nome DNS, não o endereço IP. **Digite**: `std::string` **Obrigatório**: não  | 

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

Informações que um processo de servidor de jogos usa para estabelecer uma conexão com o serviço do Amazon GameLift Servers. Inclua esses parâmetros ao chamar [InitSDK()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-initsdk-anywhere) somente se a compilação do servidor de jogos for implantada em uma frota Anywhere ou uma frota de contêineres sem o Amazon GameLift Servers Agent. Para todos os outros cenários de implantação, chame [InitSDK()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-initsdk) sem parâmetros.


| Propriedades | **Descrição** | 
| --- | --- | 
| webSocketUrl |  Os retornos `GameLiftServerSdkEndpoint` Amazon GameLift Servers quando você [https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html) para um recurso de computação Amazon GameLift Servers Anywhere. **Digite**: `std::string` **Obrigatório**: Sim   | 
| processId |  Um identificador exclusivo registrado no processo do servidor que hospeda seu jogo. **Digite**: `std::string` **Obrigatório**: Sim  | 
| hostId | O HostID é o ComputeName usado quando você registrou seu computador. Para obter mais informações, consulte, [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html).**Digite**: `std::string`**Obrigatório**: Sim | 
| fleetId | O identificador exclusivo da frota na qual o computador está registrado. Para obter mais informações, consulte, [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html).**Digite**: `std::string`**Obrigatório**: Sim | 
| authToken | O token de autenticação gerado pelo Amazon GameLift Servers que autentica seu servidor no Amazon GameLift Servers. Para obter mais informações, consulte, [GetComputeAuthToken](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetComputeAuthToken.html).**Digite**: `std::string`**Obrigatório**: Sim | 

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

Informações usadas para criar uma solicitação de alocação de criação de partidas. O servidor do jogo comunica essas informações ao Amazon GameLift Servers em uma chamada [StartMatchBackfill()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-startmatchbackfill).


| Propriedades | **Descrição** | 
| --- | --- | 
| GameSessionArn |  Um identificador da sessão de jogo exclusivo. A operação de API retorna `[GetGameSessionId](https://docs.aws.amazon.com/gameliftservers/latest/developerguide/integration-server-sdk5-cpp-actions.html#integration-server-sdk5-cpp-getgamesessionid)` o identificador no formato de ARN. **Digite**: `std::string` **Obrigatório**: Sim  | 
| MatchmakingConfigurationArn |  um identificador exclusivo, no formato de ARN, para o marcador de jogos a ser usado para essa solicitação. O marcador de jogos ARN da sessão de jogo original está no objeto de sessão de jogo na propriedade de dados do marcador de jogos. Saiba mais sobre os dados do marcador de jogos em [Trabalhar com dados do marcador de jogos](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-server.html#match-server-data.html). **Digite**: `std::string` **Obrigatório**: Sim  | 
| Jogadores |  Um conjunto de dados que representa todos os jogadores que estão na sessão do jogo. O marcador de jogos usa essas informações para pesquisar novos jogadores que sejam correspondências ideais para os jogadores atuais. **Digite**: `std::vector<Player>` **Obrigatório**: Sim  | 
| TicketId |  Um identificador exclusivo de um tíquete de solicitação de marcação de jogo ou de alocação de correspondência. Se você não fornecer um valor, o Amazon GameLift Servers gerará um. Use esse identificador para acompanhar o status do tíquete de alocação de correspondência ou cancelar a solicitação, se necessário.  **Digite**: `std::string` **Obrigatório**: não  | 

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

Esse tipo de dados representa um jogador em criação de partidas. Quando iniciar uma solicitação de criação de partidas começa, um jogador tem um ID de jogador, atributos, e possivelmente dados de latência. O Amazon GameLift Servers adiciona as informações de equipe após uma combinação ter sido feita.


| Propriedades | **Descrição** | 
| --- | --- | 
| LatencyInMS |  Um conjunto de valores expressos em milissegundos que indicam a quantidade de latência que um jogador experimenta quando conectado a um local.  Se essa propriedade for usada, o player só será correspondido aos locais listados. Se um marcador de jogos tiver uma regra que avalie a latência do jogador, os jogadores deverão reportar a latência a ser correspondida. **Digite**: `Dictionary<string,int>` **Obrigatório**: não  | 
| PlayerAttributes |  Uma coleção de pares de chave:valor contendo informações de jogadores para uso em criação de partidas. As chaves de atributos do jogador devem corresponder às PlayerAttributes usadas em um conjunto de regras de matchmaking. Para obter mais informações sobre os atributos do jogador, consulte [AttributeValue](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_AttributeValue.html). **Digite**: `std::map<std::string,AttributeValue>` **Obrigatório**: não  | 
| PlayerId |  Um identificador exclusivo para um jogador. **Digite**: `std::string` **Obrigatório**: não  | 
| Equipe |  O nome da equipe à qual o jogador está designado em uma partida. Você define o nome da equipe no conjunto de regras de criação de partidas. **Digite**: `std::string` **Obrigatório**: não  | 

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

Um objeto que especifica quais sessões de jogador devem ser recuperadas. O processo do servidor fornece essas informações com uma chamada [DescribePlayerSessions()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-describeplayersessions) para o Amazon GameLift Servers.


| Propriedades | **Descrição** | 
| --- | --- | 
| GameSessionId |  Um identificador da sessão de jogo exclusivo. Use esse parâmetro para solicitar todas as sessões de jogador da sessão de jogo especificada.  O formato do ID da sessão do jogo é `arn:aws:gamelift:<region>::gamesession/fleet-<fleet ID>/<ID string>`. O `GameSessionID` é uma string de ID personalizada ou uma **Digite**: `std::string` **Obrigatório**: não  | 
| PlayerSessionId |  Um identificador exclusivo para uma sessão de jogador. Use esse parâmetro para solicitar uma única sessão de jogador específica. **Digite**: `std::string` **Obrigatório**: não  | 
| PlayerId |  Um identificador exclusivo para um jogador. Use este parâmetro para solicitar todas as sessões de jogador para um jogador específico. Consulte [Gerar IDs de jogador](player-sessions-player-identifiers.md). **Digite**: `std::string` **Obrigatório**: não  | 
| PlayerSessionStatusFilter |  O status da sessão de jogador para filtrar resultados. Entre os status da sessão de jogador possíveis incluem: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/gameliftservers/latest/developerguide/integration-server-sdk5-cpp-datatypes.html) **Digite**: `std::string` **Obrigatório**: não  | 
| NextToken |  O token que indica o início da próxima página de resultados. Para especificar o início do conjunto de resultados, não forneça um valor. Se fornecer um ID de sessão do jogador, esse parâmetro será ignorado. **Digite**: `std::string` **Obrigatório**: não  | 
| Limite |  O número máximo de resultados a serem retornados. Se fornecer um ID de sessão do jogador, esse parâmetro será ignorado. **Digite**: `int` **Obrigatório**: não  | 

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

Informações usadas para cancelar uma solicitação de alocação de criação de partidas. O servidor do jogo comunica essas informações ao serviço Amazon GameLift Servers em uma chamada [StopMatchBackfill()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-stopmatchbackfill).


| Propriedades | **Descrição** | 
| --- | --- | 
| GameSessionArn |  Um identificador exclusivo da sessão de jogo da solicitação que está sendo cancelada. **Digite**: `char[]` **Obrigatório**: não  | 
| MatchmakingConfigurationArn |  Um identificador exclusivo do marcador de jogos para o qual essa solicitação foi enviada. **Digite**: `char[]` **Obrigatório**: não  | 
| TicketId |  Um identificador exclusivo do tíquete de solicitação de alocação a ser cancelado. **Digite**: `char[]` **Obrigatório**: não  | 

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

Use esses valores em pares de chave-valor de atributo [Jogador](#integration-server-sdk5-cpp-dataypes-player). Esse objeto permite especificar um valor de atributo usando qualquer um dos tipos de dados válidos: string, número, matriz de string ou mapa de dados. Cada objeto `AttributeValue` deve usar exatamente uma das propriedades disponíveis: `S`, `N`, `SL` ou `SDM`.


| Propriedades | Description | 
| --- | --- | 
| AttrType |  Especifica o tipo de valor do atributo. Os possíveis tipos de valor de atributo incluem:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/gameliftservers/latest/developerguide/integration-server-sdk5-cpp-datatypes.html) **Obrigatório**: não  | 
| S |  Representa um valor de atributo de string. **Digite**: `std::string` **Obrigatório**: não  | 
| N |  Representa um valor de atributo numérico. **Digite**: `double` **Obrigatório**: não  | 
| SL |  Representa uma matriz de valores de atributos de string. **Digite**: `std::vector<std::string>` **Obrigatório**: não  | 
| SDM |  Representa um dicionário de chaves de string e valores duplos. **Digite**: `std::map<std::string, double>` **Obrigatório**: não  | 

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

Esse tipo de dados dá ao servidor do jogo acesso limitado aos seus outros AWS recursos. Para obter mais informações, consulte, [Configurar um perfil de serviço do IAM para o Amazon GameLift Servers](setting-up-role.md).


| Propriedades | **Descrição** | 
| --- | --- | 
| RoleArn | O Amazon Resource Name (ARN) da função de serviço que estende o acesso limitado aos seus AWS recursos.**Digite**: `std::string`**Obrigatório**: não | 
| RoleSessionName | O nome da sessão da função que você pode usar para identificar uma AWS Security Token Service [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)sessão de forma exclusiva. Esse nome é exposto em registros de auditoria, como os de CloudTrail. **Digite**: `std::string`  **Obrigatório**: não  | 

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

Esse tipo de dados resulta de uma ação e produz um objeto com as seguintes propriedades:


| Propriedades | Description | 
| --- | --- | 
| Resultado |  O resultado da ação. **Digite**: `long` **Obrigatório**: não  | 
| ResultWithOwnership |   O resultado da ação, convertido como um rvalue, para que o código de chamada possa se apropriar do objeto.  **Digite**: `long&&` **Obrigatório**: não  | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **Obrigatório**: não  | 

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

Esse tipo de dados resulta de uma ação e produz um objeto com as seguintes propriedades:


| Propriedades | Description | 
| --- | --- | 
| Resultado |  O resultado da ação. **Digite**: `std::string` **Obrigatório**: não  | 
| ResultWithOwnership |   O resultado da ação, convertido como um rvalue, para que o código de chamada possa se apropriar do objeto.  **Digite**: `long&&` **Obrigatório**: não  | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **Obrigatório**: não  | 

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

Esse tipo de dados resulta de uma ação e produz um objeto com as seguintes propriedades:


| Propriedades | Description | 
| --- | --- | 
| Resultado |  O resultado da ação. **Digite**: [DescribePlayerSessionsResult](#integration-server-sdk5-cpp-datatypes-describeplayersessionsresult) **Obrigatório**: não   | 
| ResultWithOwnership |   O resultado da ação, convertido como um rvalue, para que o código de chamada possa se apropriar do objeto.  **Digite**: `Aws::GameLift::Server::Model::DescribePlayerSessionsResult&&` **Obrigatório**: não  | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **Obrigatório**: não  | 

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

Uma coleção de objetos contendo propriedades para cada sessão de jogador que corresponde à solicitação. 


| Propriedades | Description | 
| --- | --- | 
| NextToken |  Um token que indica o início da próxima página sequencial de resultados. Use o token retornado com uma chamada anterior para essa operação. Para começar no início do conjunto de resultados, não especifique um valor. Se um ID de sessão de jogador for especificado, esse parâmetro será ignorado.  **Digite**: `std::string` **Obrigatório**: Sim  | 
| PlayerSessions |  **Digite**: `IList<PlayerSession>` **Obrigatório:**   | 
| ResultWithOwnership |   O resultado da ação, convertido como um rvalue, para que o código de chamada possa se apropriar do objeto.  **Digite**: `std::string&&` **Obrigatório**: não  | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **Obrigatório**: não  | 

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

Esse tipo de dados resulta de uma ação e produz um objeto com as seguintes propriedades:


| Propriedades | Description | 
| --- | --- | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **Obrigatório**: não  | 

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

Esse tipo de dados é um resultado genérico assíncrono. Ele tem as seguintes propriedades: 


| Propriedades | Description | 
| --- | --- | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **Obrigatório**: não  | 

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

Esse tipo de dados representa uma sessão de jogador que o Amazon GameLift Servers passa para o servidor do jogo. Para obter mais informações, consulte [PlayerSession](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_PlayerSession.html). 


| Propriedades | Description | 
| --- | --- | 
| CreationTime |  **Digite**: `long` **Obrigatório**: não  | 
| FleetId |  **Digite**: `std::string` **Obrigatório**: não  | 
| GameSessionId |  **Digite**: `std::string` **Obrigatório**: não  | 
| IpAddress |  **Digite**: `std::string` **Obrigatório**: não  | 
| PlayerData |  **Digite**: `std::string` **Obrigatório**: não  | 
| PlayerId |  **Digite**: `std::string` **Obrigatório**: não  | 
| PlayerSessionId |  **Digite**: `std::string` **Obrigatório**: não  | 
| Porta |  **Digite**: `int` **Obrigatório**: não  | 
| Status |  Status da sessão de jogador para filtrar resultados. Quando um PlayerSessionId ou PlayerId é fornecido, o não PlayerSessionStatusFilter tem efeito na resposta.  **Tipo:** Um `PlayerSessionStatus` enum. Os valores possíveis incluem o seguinte:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/gameliftservers/latest/developerguide/integration-server-sdk5-cpp-datatypes.html) **Obrigatório**: não  | 
| TerminationTime |  **Digite**: `long` **Obrigatório**: não  | 
| DnsName |  **Digite**: `std::string` **Obrigatório**: não  | 

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

Esse tipo de dados resulta de uma ação e produz um objeto com as seguintes propriedades:


| Propriedades | Description | 
| --- | --- | 
| Resultado |  O resultado da ação. **Digite**: [StartMatchBackfillResult](#integration-server-sdk5-cpp-datatypes-startmatchbackfillresult) **Obrigatório**: não  | 
| ResultWithOwnership |   O resultado da ação, convertido como um rvalue, para que o código de chamada possa se apropriar do objeto.  **Digite**: `StartMatchBackfillResult&&` **Obrigatório**: não  | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **Obrigatório**: não  | 

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

Esse tipo de dados resulta de uma ação e produz um objeto com as seguintes propriedades:


| Propriedades | Description | 
| --- | --- | 
| TicketId |  Um identificador exclusivo para um tíquete de marcação de jogo. Se nenhum ID de ticket for especificado aqui, o Amazon GameLift Servers gerará um no formato de UUID. Use esse identificador para rastrear o status do ticket de alocação da partida e recuperar os resultados da partida.  **Digite**: `std::string` **Obrigatório**: não  | 

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

Esse tipo de dados resulta de uma ação e produz um objeto com as seguintes propriedades:


| Propriedades | Description | 
| --- | --- | 
| Resultado |  O resultado da ação. **Digite**: [GetComputeCertificateResult](#integration-server-sdk5-cpp-datatypes-getcomputecertificateresult) **Obrigatório**: não   | 
| ResultWithOwnership |   O resultado da ação, convertido como um rvalue, para que o código de chamada possa se apropriar do objeto.  **Digite**: `Aws::GameLift::Server::Model::GetComputeCertificateResult&&` **Obrigatório**: não  | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **Obrigatório**: não  | 

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

O caminho para o certificado TLS em seu computador e o nome do host do computador.


| Propriedades | Description | 
| --- | --- | 
| CertificatePath |  O caminho para o certificado TLS em seu recurso computacional. Ao usar uma frota gerenciada do Amazon GameLift Servers, esse caminho contém:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/gameliftservers/latest/developerguide/integration-server-sdk5-cpp-datatypes.html) **Digite**: `std::string` **Obrigatório**: não  | 
| ComputeName |  O nome do seu recurso computacional. **Digite**: `std::string` **Obrigatório**: não  | 

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

Esse tipo de dados resulta de uma ação e produz um objeto com as seguintes propriedades:


| Propriedades | Description | 
| --- | --- | 
| Resultado |  O resultado da ação. **Digite**: [GetFleetRoleCredentialsResult](#integration-server-sdk5-cpp-datatypes-getfleetrolecredentialsresult) **Obrigatório**: não   | 
| ResultWithOwnership |   O resultado da ação, convertido como um rvalue, para que o código de chamada possa se apropriar do objeto.  **Digite**: `Aws::GameLift::Server::Model::GetFleetRoleCredentialsResult` **Obrigatório**: não  | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **Obrigatório**: não  | 

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


| Propriedades | Description | 
| --- | --- | 
| AccessKeyId |  O ID da chave de acesso para autenticar e fornecer acesso aos seus recursos AWS . **Digite**: `string` **Obrigatório**: não  | 
| AssumedRoleId |  O ID do usuário ao qual o perfil de serviço pertence. **Digite**: `string` **Obrigatório**: não  | 
| AssumedRoleUserArn |  O nome do recurso da Amazon (ARN) do usuário ao qual pertence o perfil de serviço. **Digite**: `string` **Obrigatório**: não  | 
| Expiração |  A quantidade de tempo até que suas credenciais de sessão expirem. **Digite**: `DateTime` **Obrigatório**: não  | 
| SecretAccessKey |  O ID da chave de acesso secreta para autenticação. **Digite**: `string` **Obrigatório**: não  | 
| SessionToken |  Um token para identificar a sessão ativa atual interagindo com seus AWS recursos. **Digite**: `string` **Obrigatório**: não  | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [GameLiftError](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-gamelifterror) **Obrigatório**: não  | 

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

**nota**  
`InitSDKOutcome` é retornado somente quando você cria o SDK com a bandeira `std`. Se você construir com a `nostd` bandeira, ela será [GenericOutcome](#integration-server-sdk5-cpp-datatypes-genericoutcome) retornada em vez disso.


| Propriedades | Description | 
| --- | --- | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **Obrigatório**: não  | 

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


| Propriedades | Description | 
| --- | --- | 
| ErrorType |  O tipo de erro. **Tipo:** Um `GameLiftErrorType` [enum.](#integration-server-sdk5-cpp-dataypes-enums). **Obrigatório**: não   | 
| ErrorName |  O nome do erro.  **Digite**: `std::string`  **Obrigatório**: não   | 
| ErrorMessage |  A mensagem de erro.  **Digite**: `std::string`  **Obrigatório**: não   | 

## Enumerações
<a name="integration-server-sdk5-cpp-dataypes-enums"></a>

As enumerações definidas para o SDK do servidor para Amazon GameLift Servers (C\$1\$1) são definidas da seguinte forma: 

**GameLiftErrorType**  
Valor da string indicando o tipo de erro. Os valores válidos são:  
+ **BAD\$1REQUEST\$1EXCEPTION** 
+ **GAMESESSION\$1ID\$1NOT\$1SET** – O ID da sessão do jogo não foi definido. 
+ **INTERNAL\$1SERVICE\$1EXCEPTION** 
+ **LOCAL\$1CONNECTION\$1FAILED** – A conexão local com o Amazon GameLift Servers falhou. 
+ **NETWORK\$1NOT\$1INITIALIZED** – A rede não foi inicializada. 
+ **SERVICE\$1CALL\$1FAILED — Uma chamada para um serviço falhou**. AWS 
+ **WEBSOCKET\$1CONNECT\$1FAILURE** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1FORBIDDEN** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1INVALID\$1URL** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1TIMEOUT** 
+ **ALREADY\$1INITIALIZED** – O servidor ou cliente Amazon GameLift Servers já foi inicializado com Initialize(). 
+ **FLEET\$1MISMATCH** – A frota de destino não corresponde à frota de uma GameSession ou PlayerSession. 
+ **GAMELIFT\$1CLIENT\$1NOT\$1INITIALIZED** – O cliente Amazon GameLift Servers não foi inicializado. 
+ **GAMELIFT\$1SERVER\$1NOT\$1INITIALIZED** – O servidor Amazon GameLift Servers não foi inicializado. 
+ **GAME\$1SESSION\$1ENDED\$1FAILED** – O servidor de SDK para o Amazon GameLift Servers não foi capaz de contatar o serviço para reportar que a sessão de jogo terminou. 
+ **GAME\$1SESSION\$1ENDED\$1FAILED** – A sessão de jogo do Amazon GameLift Servers Server não foi ativada. 
+ **GAME\$1SESSION\$1READY\$1FAILED** – O Server SDK do Amazon GameLift Servers não conseguiu entrar em contato com o serviço para informar que a sessão do jogo está pronta. 
+ **INITIALIZATION\$1MISMATCH** – Um método de cliente foi chamado depois de Server::Initialize(), ou vice-versa. 
+ **NOT\$1INITIALIZED** – O Amazon GameLift Servers Server ou Client não foi inicializado com Initialize(). 
+ **NO\$1TARGET\$1ALIASID\$1SET** – Um aliasID de destino não foi definido. 
+ **NO\$1TARGET\$1FLEET\$1SET** – Uma frota alvo não foi definida. 
+ **PROCESS\$1ENDING\$1FAILED** – O Server SDK do Amazon GameLift Servers não conseguiu entrar em contato com o serviço para informar que o processo está sendo encerrado. 
+ **PROCESS\$1NOT\$1ACTIVE** — O processo do servidor ainda não está ativo, não está vinculado a um e não pode GameSession aceitar ou processar. PlayerSessions 
+ **PROCESS\$1NOT\$1READY** – O processo do servidor ainda não está pronto para ser ativado. 
+ **PROCESS\$1READY\$1FAILED** – O Server SDK do Amazon GameLift Servers não conseguiu entrar em contato com o serviço para informar que o processo está pronto. 
+ **SDK\$1VERSION\$1DETECTION\$1FAILED** – Falha na detecção da versão do SDK. 
+ **STX\$1CALL\$1FAILED — Uma chamada para o componente de back-end do XStx servidor falhou**. 
+ **STX\$1INITIALIZATION\$1FAILED — O componente de back-end do XStx servidor falhou** ao inicializar. 
+ **UNEXPECTED\$1PLAYER\$1SESSION** – Uma sessão de jogador não registrada foi encontrada pelo servidor. 
+ **WEBSOCKET\$1CONNECT\$1FAILURE** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1FORBIDDEN** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1INVALID\$1URL** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1TIMEOUT** 
+ **WEBSOCKET\$1RETRIABLE\$1SEND\$1MESSAGE\$1FAILURE — Falha recuperável ao enviar uma mensagem** ao Serviço. GameLift WebSocket 
+ **WEBSOCKET\$1SEND\$1MESSAGE\$1FAILURE — Falha ao enviar uma mensagem para o serviço**. GameLift WebSocket 
+ **MATCH\$1BACKFILL\$1REQUEST\$1VALIDATION** – A validação da solicitação falhou. 
+ **PLAYER\$1SESSION\$1REQUEST\$1VALIDATION** – A validação da solicitação falhou. 

**PlayerSessionCreationPolicy**  
Valor de string que indica se a sessão do jogo aceita novos jogadores. Os valores válidos são:   
+ **ACCEPT\$1ALL** – Aceite todas as novas sessões de jogador. 
+ **DENY\$1ALL** – Recuse todas as novas sessões de jogador. 
+ **NOT\$1SET** – A sessão do jogo não está configurada para aceitar ou negar sessões de novos jogadores. 

[SDK do servidor C\$1\$1 5.x para Amazon GameLift Servers -- Tipos de dados](integration-server-sdk5-cpp-datatypes.md)

**Topics**
+ [SDK do servidor C\$1\$1 5.x para Amazon GameLift Servers -- Tipos de dados](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>

Retorna o número da versão atual do SDK compilado no processo de servidor.

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

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

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

Se bem-sucedido, retornará a versão do SDK atual como um objeto [AwsStringOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-awsstringoutcome). O objeto retornada inclui apenas o número da versão (exemplo, `5.0.0`). Se não for bem-sucedido, retornará uma mensagem de erro.

### Exemplo
<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 o sistema de métricas para coletar e reportar dados de desempenho do servidor. Para obter melhores resultados, chame esse método antes de [InitSDK()](#integration-server-sdk5-cpp-initsdk) para ativar a coleta de métricas durante a inicialização do SDK.

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

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

### Parâmetros
<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 configuração para coleta de métricas. Se não for fornecido, usa valores padrão que podem ser substituídos por variáveis de ambiente.

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

Se for bem-sucedido, retornará um objeto [GenericOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-genericoutcome) indicando sucesso. Se não for bem-sucedido, retornará uma mensagem de erro.

### Exemplo
<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 o Amazon GameLift Servers SDK. Chame esse método na inicialização, antes de quaisquer outros passos de inicialização relacionados ao Amazon GameLift Servers. Esta ação lê os parâmetros do servidor do ambiente host para definir a comunicação entre o processo do servidor de jogos e o serviço do Amazon GameLift Servers. Ele usa um token de idempotência, então você repete essa chamada com segurança quando ela falhar.

Se a compilação do servidor de jogos for implantada sem o Amazon GameLift Servers Agent em uma frota do Amazon GameLift Servers Anywhere ou uma frota de contêineres, chame [InitSDK()](#integration-server-sdk5-cpp-initsdk-anywhere) e especifique um conjunto de parâmetros do servidor.

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

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

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

Retorna um objeto [Inicializar SDKOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-initsdkoutcome) que indica se o processo do servidor está pronto para ser chamado [ProcessReady()](#integration-server-sdk5-cpp-processready). 

### Exemplo
<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 o Amazon GameLift Servers SDK. Chame esse método na inicialização, antes de quaisquer outros passos de inicialização relacionados ao Amazon GameLift Servers. Essa ação exige um conjunto de parâmetros do servidor para configurar a comunicação entre o processo do servidor de jogo e o serviço do Amazon GameLift Servers. Ele usa um token de idempotência, então você repete essa chamada com segurança quando ela falhar.

Se a compilação do servidor de jogo for implantada em uma frota do EC2 gerenciada pelo Amazon GameLift Servers, em uma frota do Amazon GameLift Servers Anywhere ou em uma frota de contêineres com o Amazon GameLift Servers Agent, chame [InitSDK()](#integration-server-sdk5-cpp-initsdk) sem os parâmetros do servidor.

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

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

### Parâmetros
<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 um servidor de jogos em uma frota do Amazon GameLift Servers Anywhere, construa um objeto `ServerParameters` com as seguintes informações:  
+ O URL do WebSocket usado para se conectar ao seu servidor de jogo. 
+ O ID do processo usado para hospedar o servidor de jogos. 
+ O ID do computador que hospeda os processos do seu servidor de jogos. 
+ O ID da frota do Amazon GameLift Servers que contém sua computação Amazon GameLift Servers Anywhere.
+ O token de autorização gerado pela operação do Amazon GameLift Servers. 

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

Retorna um objeto [Inicializar SDKOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-initsdkoutcome) que indica se o processo do servidor está pronto para ser chamado [ProcessReady()](#integration-server-sdk5-cpp-processready). 

**nota**  
Se as chamadas para `InitSDK()` estiverem falhando para compilações de jogos implantadas em frotas do Anywhere, verifique o parâmetro `ServerSdkVersion` usado ao criar o recurso de compilação. Você deve definir explicitamente esse valor para a versão do SDK do servidor em uso. O valor padrão desse parâmetro é 4.x, o que não é compatível. Para resolver esse problema, crie uma nova versão e implante-a em uma nova frota.

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

Exemplo 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 o Amazon GameLift Servers de que o processo do servidor está pronto para hospedar sessões do jogo. Chame esse método após invocar [InitSDK()](#integration-server-sdk5-cpp-initsdk). Esse método deve ser chamado somente uma vez por processo.

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

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

### Parâmetros
<a name="integration-server-sdk5-cpp-processready-parameter"></a>

**processParameters**  
Um objeto [ProcessParameters](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-process) que fornece as seguintes informações sobre o processo do servidor:  
+ Nomes de métodos de retorno de chamada, implementados no código do servidor de jogos, que o serviço Amazon GameLift Servers invoca para se comunicar com o processo de servidor.
+ Número da porta em que o processo de servidor está escutando.
+ Caminho de qualquer arquivo específico da sessão do jogo que você deseja que o Amazon GameLift Servers capture e armazene.

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

Retorna um resultado genérico que consiste em sucesso ou falha com uma mensagem de erro.

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

Este exemplo ilustra as implementações das funções de chamada e delegação [ProcessReady()](#integration-server-sdk5-cpp-processready).

```
// 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 o serviço Amazon GameLift Servers de que o processo do servidor está pronto para hospedar sessões do jogo. Este método deve ser chamado depois que o processo do servidor estiver pronto para hospedar uma sessão de jogo. Os parâmetros especificam os nomes das funções de retorno do Amazon GameLift Servers para chamar determinadas circunstâncias. O código do servidor de jogos deve implementar essas funções.

Essa chamada é assíncrona. Para fazer uma chamada síncrona, use [ProcessReady()](#integration-server-sdk5-cpp-processready). Consulte [Inicializar o processo do servidor](gamelift-sdk-server-api.md#gamelift-sdk-server-initialize) para obter mais detalhes.

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

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

### Parâmetros
<a name="integration-server-sdk5-cpp-processreadyasync-parameter"></a>

**processParameters**  
Um objeto [ProcessParameters](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-process) que fornece as seguintes informações sobre o processo do servidor:  
+ Nomes de métodos de retorno de chamada, implementados no código do servidor de jogos, que o serviço Amazon GameLift Servers invoca para se comunicar com o processo de servidor.
+ Número da porta em que o processo de servidor está escutando.
+ Caminho de qualquer arquivo específico da sessão do jogo que você deseja que o Amazon GameLift Servers capture e armazene.
Obrigatório: Sim

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

Retorna um resultado genérico que consiste em sucesso ou falha com uma mensagem de erro.

### Exemplo
<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>

Notifica o Amazon GameLift Servers de que o processo do servidor está sendo encerrado. Chame esse método depois de todas as outras tarefas de limpeza (incluindo o encerramento da sessão ativa do jogo) e antes de encerrar o processo. Dependendo do resultado `ProcessEnding()`, o processo sai com sucesso (0) ou erro (-1) e gera um evento de frota. Se o processo for encerrado com um erro, o evento de frota gerado será `SERVER_PROCESS_TERMINATED_UNHEALTHY`.

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

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

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

Retorna um resultado genérico que consiste em sucesso ou falha com uma mensagem de erro.

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

Este exemplo chama `ProcessEnding()` e `Destroy()` antes de encerrar o processo do servidor com um código de saída bem-sucedido ou de erro.

```
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 o Amazon GameLift Servers de que o processo do servidor ativou uma sessão do jogo e já está pronto para receber as conexões do jogador. Essa ação deve ser chamada como parte da função de retorno de chamada `onStartGameSession()`, após toda inicialização da sessão do jogo.​

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

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

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

Retorna um resultado genérico que consiste em sucesso ou falha com uma mensagem de erro.

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

Este exemplo mostra chamado `ActivateGameSession()` como parte da função de delegação `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>

Atualiza a capacidade da sessão do jogo atual para aceitar novas sessões de jogador. Atualiza a capacidade da sessão do jogo atual para aceitar novas sessões de jogador.

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

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

### Parâmetros
<a name="integration-server-sdk5-cpp-updateplayersessioncreationpolicy-parameter"></a>

**playerCreationSessionPolítica**  
Tipo: `PlayerSessionCreationPolicy` valor [enum](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-enums).  
Obrigatório: Sim

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

Retorna um resultado genérico que consiste em sucesso ou falha com uma mensagem de erro.

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

Este exemplo define a política de ingresso da sessão do jogo atual para aceitar todos os jogadores.

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

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

Recupera o ID da sessão de jogo hospedada pelo processo do servidor ativo. 

Para processos inativos que não são ativados com uma sessão de jogo, a chamada retorna um [GameLiftError](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-gamelifterror).

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

```
AwsStringOutcome GetGameSessionId()
```

### Parâmetros
<a name="integration-server-sdk5-cpp-getgamesessionid-parameter"></a>

Essa ação não tem um parâmetro.

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

Se bem-sucedido, retornará o ID da sessão de jogo como um objeto [AwsStringOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-awsstringoutcome). Se não for bem-sucedido, retornará uma mensagem de erro.

Para processos inativos que não são ativados com uma sessão de jogo, a chamada retorna `Success`=`True` e `GameSessionId`=`""`.

### Exemplo
<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>

Retorna a hora em que um processo do servidor está programado para ser desligado, se essa informação estiver disponível. Um processo do servidor realiza a ação depois de receber um retorno de chamada `onProcessTerminate()` do serviço Amazon GameLift Servers. O Amazon GameLift Servers chama o `onProcessTerminate()` pelos seguintes motivos: 
+ Quando o processo do servidor relatou problemas de saúde ou não respondeu ao Amazon GameLift Servers.
+ Ao encerrar a instância durante um evento de redução.
+ Quando uma instância é encerrada devido a uma [interrupção na instância spot](spot-tasks.md).

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

```
AwsDateTimeOutcome GetTerminationTime()
```

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

Se for bem-sucedido, retornará o horário de término como um objeto `AwsDateTimeOutcome`. O valor é o tempo de rescisão, expresso em tiques decorridos desde então `0001 00:00:00`. Por exemplo, o valor da data e hora `2020-09-13 12:26:40 -000Z` é igual aos tiques `637355968000000000`. Se nenhum horário de encerramento estiver disponível, o retornará uma mensagem de erro.

Se o processo não tiver recebido um ProcessParameters. OnProcessTerminate() callback, uma mensagem de erro é retornada. Para obter mais informações sobre como desligar um processo do servidor, consulte [Responder a uma notificação de desligamento do processo do servidor](gamelift-sdk-server-api.md#gamelift-sdk-server-terminate).

### Exemplo
<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 o serviço Amazon GameLift Servers de que um jogador com o ID da sessão do jogador especificado se conectou ao processo do servidor e precisa de validação. O Amazon GameLift Servers confirma que o ID da sessão do jogador é válido. Depois que a sessão do jogador é validada, o Amazon GameLift Servers altera o status do slot do jogador de RESERVED para ACTIVE. 

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

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

### Parâmetros
<a name="integration-server-sdk5-cpp-acceptplayersession-parameter"></a>

playerSessionId  
ID exclusivo emitido pela Amazon GameLift Servers quando uma nova sessão de jogador é criada.

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

Retorna um resultado genérico que consiste em sucesso ou falha com uma mensagem de erro. 

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

Este exemplo trata de uma solicitação de conexão que inclui a validação e a rejeição de uma sessão de jogador invá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>

Notifica o Amazon GameLift Servers de que um jogador se desconectou do processo do servidor. Em resposta, o Amazon GameLift Servers altera o espaço do jogador para disponível. 

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

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

### Parâmetros
<a name="integration-server-sdk5-cpp-removeplayersession-parameter"></a>

**`playerSessionId`**  
ID exclusivo emitido pela Amazon GameLift Servers quando uma nova sessão de jogador é criada.

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

Retorna um resultado genérico que consiste em sucesso ou falha com uma mensagem de erro.

### Exemplo
<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 dados da sessão do jogador, que incluem configurações, metadados da sessão e dados do jogador. Use esse método para obter informações sobre o seguinte:
+ Uma sessão para um jogador
+ Todas as sessões de jogador em uma sessão de jogo
+ Todas as sessões de jogadores associadas a um único ID de jogador

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

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

### Parâmetros
<a name="integration-server-sdk5-cpp-describeplayersessions-parameter"></a>

**[DescribePlayerSessionsRequest](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-playersessions)**  
Um objeto [DescribePlayerSessionsRequest](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-playersessions) que descreve quais sessões de jogador recuperar.

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

Se bem-sucedido, retorna um objeto [DescribePlayerSessionsOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-describeplayersessionsoutcome) que contém um conjunto de objetos de sessão do jogador que atendem aos parâmetros de solicitação.

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

Este exemplo solicita todas as sessões de jogador conectadas ativamente a uma sessão de jogo especificada. Ao omitir *NextToken*e definir o valor *limite* como 10, Amazon GameLift Servers retorna os primeiros registros de sessão de 10 jogadores que correspondam à solicitação.

```
// 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>

Envia uma solicitação para encontrar novos jogadores para os slots abertos em uma sessão de jogo criada com o FlexMatch. Para obter mais informações, consulte o [recurso de alocação do FlexMatch](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html).

Esta ação é assíncrona. Se novos jogadores forem combinados, o Amazon GameLift Servers entregará os dados atualizados do marcador de jogos usando a função de retorno de chamada `OnUpdateGameSession()`.

Um processo de servidor pode ter apenas uma solicitação de alocação de correspondência ativa por vez. Para enviar uma nova solicitação, primeiro chame [StopMatchBackfill()](#integration-server-sdk5-cpp-stopmatchbackfill) para cancelar a solicitação original.

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

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

### Parâmetros
<a name="integration-server-sdk5-cpp-startmatchbackfill-parameter"></a>

**[StartMatchBackfillRequest](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-startmatchbackfillrequest)**  
Um StartMatchBackfillRequest objeto que comunica as seguintes informações:  
+ ID do tíquete a ser atribuído à solicitação de alocação. Essas informações são opcionais; se nenhum ID for fornecido, o Amazon GameLift Servers gerará um.
+ O marcador de jogos para o qual a solicitação é enviada. O ARN completo da configuração é necessário. Esse valor está nos dados do marcador de jogos da sessão de jogo.
+ O ID da sessão de jogo a ser preenchida.
+ Os dados disponíveis de marcação para os jogadores atuais da sessão do jogo.

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

Retorna um objeto [StartMatchBackfillOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-startmatchbackfilloutcome) com o ID do tíquete de alocação de correspondência ou um falha com uma mensagem de erro. 

### Exemplo
<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 uma solicitação de alocação de correspondência ativa. Para obter mais informações, consulte o [recurso de alocação do FlexMatch](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html).

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

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

### Parâmetros
<a name="integration-server-sdk5-cpp-stopmatchbackfill-parameter"></a>

**[StopMatchBackfillRequest](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-stopmatchbackfillrequest)**  
Um StopMatchBackfillRequest objeto identificando o tíquete de matchmaking a ser cancelado:   
+ O ID do ticket atribuído à solicitação de alocação.
+ O marcador de jogo que recebeu a solicitação de alocação.
+ A sessão do jogo associada à solicitação de alocação.

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

Retorna um resultado genérico que consiste em sucesso ou falha com uma mensagem de erro.

### Exemplo
<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 o caminho para o certificado TLS usado para criptografar a conexão de rede entre seu recurso de computação do Amazon GameLift Servers Anywhere e o Amazon GameLift Servers. Você poderá usar o caminho do certificado ao registrar seu dispositivo computacional em uma frota do Amazon GameLift Servers Anywhere. Para obter mais informações, consulte, [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html).

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

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

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

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

### Exemplo
<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 as credenciais do perfil do IAM que autorizam o Amazon GameLift Servers a interagir com outros Serviços da AWS. Para obter mais informações, consulte [Conecte seu servidor de jogos Amazon GameLift Servers hospedado a outros AWS recursos](gamelift-sdk-server-resources.md).

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

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

### Parâmetros
<a name="integration-server-sdk5-cpp-getfleetrolecredentials-parameters"></a>

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

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

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

### Exemplo
<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);
```

Este exemplo mostra o uso do valor `RoleSessionName` opcional para atribuir um nome à sessão de credenciais para fins de auditoria. Se você não fornecer um nome de sessão de função, o valor padrão "*[fleet-id]*-*[host-id]*" será usado.

```
// 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 o SDK do servidor de jogos do Amazon GameLift Servers da memória. Como melhor prática, chame esse método antes `ProcessEnding()` e depois de encerrar o processo. Se você estiver usando uma frota Anywhere e não estiver encerrando os processos do servidor após cada sessão de jogo, chame `Destroy()` e reinicialize `InitSDK()` antes de notificar o Amazon GameLift Servers de que o processo está pronto para hospedar uma sessão de jogo com `ProcessReady()`.

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

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

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

Não há parâmetros.

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

Retorna um resultado genérico que consiste em sucesso ou falha com uma mensagem de erro.

### Exemplo
<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 do servidor C\$1 para Amazon GameLift Servers 5.x – Ações
<a name="integration-server-sdk5-csharp-actions"></a>

Use a referência do SDK 5.x do servidor para integrar o jogo multijogador à hospedagem com o Amazon GameLift Servers. Para obter orientação sobre o processo de integração, consulte [Integre o Amazon GameLift Servers ao seu servidor de jogos com o SDK do servidor.](gamelift-sdk-server-api.md). Se você estiver usando o plug-in do Amazon GameLift Servers para Unity, consulte também [Amazon GameLift Serversplugin para Unity (servidor SDK 5.x)](unity-plug-in.md).

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

Use a referência de Amazon GameLift Servers C\$1 do SDK 5.x do servidor para integrar o jogo multijogador à hospedagem com o Amazon GameLift Servers. Para obter orientação sobre o processo de integração, consulte [Integre o Amazon GameLift Servers ao seu servidor de jogos com o SDK do servidor.](gamelift-sdk-server-api.md). Se você estiver usando o plug-in do Amazon GameLift Servers para Unity, consulte também [Amazon GameLift Serversplugin para Unity (servidor SDK 5.x)](unity-plug-in.md).

[SDK do servidor C\$1 para Amazon GameLift Servers 5.x – Ações](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)
+ [Jogador](#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)
+ [Enumerações](#integration-server-sdk5-csharp-datatypes-enums)

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

Use esse tipo de dados para identificar quais arquivos gerados durante uma sessão de jogo você deseja que o servidor do jogo o faça upload no Amazon GameLift Servers após o término da sessão do jogo. O servidor do jogo comunica `LogParameters to` Amazon GameLift Servers em uma chamada [ProcessReady()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-processready).


|  |  | 
| --- |--- |
|  **Properties**  | Descrição | 
| LogPaths |  A lista de caminhos de diretório para arquivos de log do servidor de jogo que você deseja que o Amazon GameLift Servers armazene para acesso futuro. O processo do servidor gera esses arquivos durante cada sessão de jogo. Você define caminhos e nomes de arquivos em seu servidor de jogo e os armazena no diretório raiz de construção do jogo.  Os caminhos de log devem ser absolutos. Por exemplo, se a compilação do jogo armazenasse logs de sessão de jogo em um caminho como `MyGame\sessionLogs\`, o caminho estará `c:\game\MyGame\sessionLogs` em uma instância do Windows. **Digite**: `List<String>` **Obrigatório**: não  | 

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

Use esse tipo de dados para configurar a coleta de métricas e relatórios de falhas para o servidor do jogo. O servidor do jogo comunica `MetricsParameters` ao Amazon GameLift Servers em uma chamada [InitMetrics()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-initmetrics).


|  |  | 
| --- |--- |
|  **Properties**  | Descrição | 
| StatsdHost |  O nome do host ou endereço IP do servidor do StatsD para a coleta de métricas. **Digite**: `String` **Obrigatório**: não  | 
| StatsdPort |  O número da porta do servidor StatsD para coleta de métricas. **Digite**: `Integer` **Obrigatório**: não  | 
| CrashReporterHost |  O endereço IP ou o nome do host do servidor de relatório de falhas. **Digite**: `String` **Obrigatório**: não  | 
| CrashReporterPort |  O número da porta do servidor de relatório de falhas. **Digite**: `Integer` **Obrigatório**: não  | 
| FlushIntervalMs |  O intervalo em milissegundos para limpar os dados das métricas para o servidor. **Digite**: `Integer` **Obrigatório**: não  | 
| MaxPacketSize |  O tamanho máximo em bytes dos pacotes para métricas enviados ao servidor. **Digite**: `Integer` **Obrigatório**: não  | 

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

Este tipo de dados contém o conjunto de parâmetros enviado para o Amazon GameLift Servers em uma chamada [ProcessReady()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-processready).


|  |  | 
| --- |--- |
|  **Properties**  | Descrição | 
| LogParameters | O objeto com uma lista de caminhos de diretório para arquivos de log da sessão de jogo.**Digite**: `Aws::GameLift::Server::LogParameters`**Obrigatório**: Sim | 
| OnHealthCheck | O nome da função de retorno que o Amazon GameLift Servers invoca para solicitar um relatório de status de integridade do processo de servidor. O Amazon GameLift Servers chama essa função a cada 60 segundos. Depois de chamar essa função, o Amazon GameLift Servers aguardará 60 segundos por uma resposta e, se nenhuma for recebida, o Amazon GameLift Servers registra o processo do servidor como não íntegro.**Digite**: `void OnHealthCheckDelegate()`**Obrigatório**: Sim | 
| OnProcessTerminate | O nome da função de retorno de chamada que o Amazon GameLift Servers invoca para forçar o encerramento do processo do servidor. Depois de chamar essa função, o Amazon GameLift Servers aguardará cinco minutos para o processo de servidor desligar e responder com uma chamada [ProcessEnding()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-processending) antes do desligamento do processo de servidor.**Digite**: `void OnProcessTerminateDelegate()`**Obrigatório**: Sim | 
| OnStartGameSession | O nome da função de retorno de chamada que é Amazon GameLift Servers invocada para ativar uma nova sessão de jogo. Amazon GameLift Serverschama essa função em resposta à solicitação do cliente [CreateGameSession](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateGameSession.html). A função de retorno de chamada recebe um objeto [GameSession](#integration-server-sdk5-csharp-dataypes-gamesession).**Digite**: `void OnStartGameSessionDelegate(GameSession)`**Obrigatório**: Sim | 
| OnUpdateGameSession | O nome da função de retorno de chamada que o Amazon GameLift Servers invoca para passar um objeto de sessão de jogo atualizado ao processo do jogo. O Amazon GameLift Servers chama essa função quando uma solicitação de alocação de correspondência foi processada para fornecer dados de combinador atualizados. Ele transmite um objeto [GameSession](#integration-server-sdk5-csharp-dataypes-gamesession), uma atualização de status (updateReason) e o ID do tíquete de alocação de correspondência.**Tipo:** vazio OnUpdateGameSessionDelegate () [UpdateGameSession](#integration-server-sdk5-csharp-dataypes-updategamesession)**Obrigatório**: não | 
| Porta | O número da porta em que o processo de servidor escuta para novas conexões de jogador. O valor deve estar dentro do intervalo de portas configurado para qualquer frota que implanta essa compilação do servidor de jogo. Esse número de porta está incluído nos objetos das sessões de jogo e jogador, que as sessões de jogo usam ao se conectar a um processo de servidor.**Digite**: `Integer`**Obrigatório**: Sim | 

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

As informações atualizadas de um objeto de sessão de jogo incluem o motivo pelo qual a sessão de jogo foi atualizada. Se a atualização estiver relacionada a uma ação de alocação de correspondência, esse tipo de dados inclui o ID do tíquete de alocação.


| Propriedades | **Descrição** | 
| --- | --- | 
| GameSession | Um objeto [GameSession](#integration-server-sdk5-csharp-dataypes-gamesession). O objeto GameSession contém propriedades que descrevem uma sessão de jogo. **Digite**: `GameSession GameSession()`**Obrigatório**: Sim | 
| UpdateReason | O motivo pelo qual a sessão do jogo está sendo atualizada.**Digite**: `UpdateReason UpdateReason()`**Obrigatório**: Sim | 
| BackfillTicketId | O ID do tíquete de alocação que está tentando atualizar a sessão do jogo.**Digite**: `String`**Obrigatório**: Sim | 

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

Detalhes de uma sessão de jogo. 


| Propriedades | **Descrição** | 
| --- | --- | 
| GameSessionId |  Um identificador exclusivo da sessão de jogo. Um ARN de sessão de jogo tem o seguinte formato: `arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>`. **Digite**: `String` **Obrigatório**: não  | 
| Nome |  Um rótulo descritivo da sessão do jogo.  **Digite**: `String` **Obrigatório**: não  | 
| FleetId |  Um identificador exclusivo da frota em que a sessão de jogo está sendo executada. **Digite**: `String` **Obrigatório**: não  | 
| MaximumPlayerSessionCount |  O número máximo de conexões do jogador com a sessão do jogo. **Digite**: `Integer` **Obrigatório**: não  | 
| Porta |  O número da porta da sessão de jogo. Para se conectar a um servidor de Amazon GameLift Servers jogos, um aplicativo precisa do endereço IP e do número da porta. **Digite**: `Integer` **Obrigatório**: não  | 
| IpAddress |  O endereço IP da sessão de jogo. Para se conectar a um servidor de Amazon GameLift Servers jogos, um aplicativo precisa do endereço IP e do número da porta. **Digite**: `String` **Obrigatório**: não  | 
| GameSessionData |  Um conjunto de propriedades de sessão de jogo personalizadas, formatadas como um único valor de string.  **Digite**: `String` **Obrigatório**: não  | 
| MatchmakerData |  As informações sobre o processo de criação de partidas usado para criar a sessão do jogo, na sintaxe JSON, formatado como uma string. Além da configuração de criação de partidas usada, ela contém dados sobre todos os jogadores designados para a partida, incluindo atributos do jogador e atribuições da equipe. **Digite**: `String` **Obrigatório**: não  | 
| GameProperties |  Um conjunto de propriedades personalizadas para uma sessão de jogo, formatado como pares de chave:valor. Essas propriedades são passadas com uma solicitação de início de uma nova sessão de jogo. **Digite**: `Dictionary<string, string>` **Obrigatório**: não  | 
| DnsName |  O identificador DNS atribuído à instância que está executando a sessão do jogo. Os valores têm o formato a seguir: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/gameliftservers/latest/developerguide/integration-server-sdk5-csharp-datatypes.html) Ao se conectar a uma sessão de jogo que está sendo executada em uma frota compatível com TLS, você deve usar o nome DNS, não o endereço IP. **Digite**: `String` **Obrigatório**: não  | 

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

Informações usadas para manter a conexão entre um servidor Amazon GameLift Servers Anywhere o serviço do Amazon GameLift Servers. Essas informações são usadas ao iniciar novos processos de servidor com [InitSDK()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-initsdk). Para servidores hospedados em instâncias EC2 gerenciadas pelo Amazon GameLift Servers, use um objeto vazio.


| Propriedades | **Descrição** | 
| --- | --- | 
| WebSocketUrl |  O `GameLiftServerSdkEndpoint` devolvido quando você `RegisterCompute` como parte do Amazon GameLift Servers Anywhere. **Digite**: `String` **Obrigatório**: Sim  | 
| ProcessId |  Um identificador exclusivo registrado no processo do servidor que hospeda seu jogo. **Digite**: `String` **Obrigatório**: Sim  | 
| HostId |  Um identificador exclusivo para o host com os processos do servidor que hospedam seu jogo. O HostID é o ComputeName usado quando você registrou seu computador. Para obter mais informações, consulte [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html) **Digite**: `String` **Obrigatório**: Sim  | 
| FleetId | O ID da frota na qual o computador está registrado. Para obter mais informações, consulte, [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html).**Digite**: `String`**Obrigatório**: Sim | 
| AuthToken | O token de autenticação gerado pelo Amazon GameLift Servers que autentica seu servidor no Amazon GameLift Servers. Para obter mais informações, consulte, [GetComputeAuthToken](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetComputeAuthToken.html).**Digite**: `String`**Obrigatório**: Sim | 

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

Informações usadas para criar uma solicitação de alocação de criação de partidas. O servidor do jogo comunica essas informações ao Amazon GameLift Servers em uma chamada [StartMatchBackfill()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-startmatchbackfill).


| Propriedades | **Descrição** | 
| --- | --- | 
| GameSessionArn |  O identificador da sessão de jogo exclusivo. A operação de API retorna `[GetGameSessionId](https://docs.aws.amazon.com/gameliftservers/latest/developerguide/integration-server-sdk5-csharp-actions.html#integration-server-sdk5-csharp-getgamesessionid)` o identificador no formato de ARN. **Digite**: `String` **Obrigatório**: Sim  | 
| MatchmakingConfigurationArn |  O identificador exclusivo, no formato de ARN, para o marcador de jogos a ser usado para essa solicitação. O marcador de jogos ARN da sessão de jogo original está no objeto de sessão de jogo na propriedade de dados do marcador de jogos. Saiba mais sobre os dados do marcador de jogos em [Trabalhar com dados do marcador de jogos](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-server.html#match-server-data.html). **Digite**: `String` **Obrigatório**: Sim  | 
| Jogadores |  Um conjunto de dados que representa todos os jogadores que estão na sessão do jogo no momento. O marcador de jogos usa essas informações para pesquisar novos jogadores que sejam correspondências ideais para os jogadores atuais. **Digite**: `List<Player>` **Obrigatório**: Sim  | 
| TicketId |  O identificador exclusivo de um tíquete de solicitação de marcação de jogo ou de alocação de correspondência. Se você não fornecer um valor, o Amazon GameLift Servers gerará um. Use esse identificador para acompanhar o status do tíquete de alocação de correspondência ou cancelar a solicitação, se necessário.  **Digite**: `String` **Obrigatório**: não  | 

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

Representa um jogador em criação de partidas. Quando uma solicitação de criação de partidas começa, um jogador tem um ID de jogador, atributos, e possivelmente dados de latência. O Amazon GameLift Servers adiciona as informações de equipe após uma combinação ter sido feita.


| Propriedades | **Descrição** | 
| --- | --- | 
| LatencyInMS |  Um conjunto de valores expressos em milissegundos, que indicam a quantidade de latência que um jogador experimenta quando conectado a um local.  Se essa propriedade for usada, o player só será correspondido aos locais listados. Se um marcador de jogos tiver uma regra que avalie a latência do jogador, os jogadores deverão reportar a latência a ser correspondida. **Digite**: `Dictionary<string, int>` **Obrigatório**: não  | 
| PlayerAttributes |  Uma coleção de pares de chave:valor que contêm informações de jogadores para uso em criação de partidas. As chaves de atributos do jogador devem corresponder às PlayerAttributes usadas em um conjunto de regras de matchmaking. Para obter mais informações sobre os atributos do jogador, consulte [AttributeValue](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_AttributeValue.html). **Digite**: `Dictionary<string, AttributeValue` **Obrigatório**: não  | 
| PlayerId |  Um identificador exclusivo para um jogador. **Digite**: `String` **Obrigatório**: não  | 
| Equipe |  O nome da equipe à qual o jogador está designado em uma partida. Você define o nome da equipe no conjunto de regras de criação de partidas. **Digite**: `String` **Obrigatório**: não  | 

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

Esse tipo de dados é usado para especificar quais sessões de jogador recuperar. Ele pode ser usado de várias maneiras: (1) forneça PlayerSessionId a para solicitar uma sessão específica do jogador; (2) forneça GameSessionId a para solicitar todas as sessões do jogador na sessão de jogo especificada; ou (3) forneça PlayerId a para solicitar todas as sessões do jogador especificado. Para coleções maiores de sessões de jogador, use os parâmetros de paginação para recuperar resultados como páginas sequenciais.


| Propriedades | **Descrição** | 
| --- | --- | 
| GameSessionId |  O identificador da sessão de jogo exclusivo. Use esse parâmetro para solicitar todas as sessões de jogador da sessão de jogo especificada. O formato do ID da sessão de jogo é o seguinte: `arn:aws:gamelift:<region>::gamesession/fleet-<fleet ID>/<ID string>`. O valor de <ID string> é uma string de ID personalizada (se uma tiver sido especificada quando a sessão do jogo foi criada) ou uma string gerada.  **Digite**: `String` **Obrigatório**: não  | 
| PlayerSessionId |  O Identificador exclusivo para uma sessão de jogador. **Digite**: `String` **Obrigatório**: não  | 
| PlayerId |  Um identificador exclusivo para um jogador. Consulte [Gerar IDs de jogador](player-sessions-player-identifiers.md). **Digite**: `String` **Obrigatório**: não  | 
| PlayerSessionStatusFilter |  O status da sessão de jogador para filtrar resultados. Entre os status da sessão de jogador possíveis estão os seguintes: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/gameliftservers/latest/developerguide/integration-server-sdk5-csharp-datatypes.html) **Digite**: `String` **Obrigatório**: não  | 
| NextToken |  O token que indica o início da próxima página de resultados. Para especificar o início do conjunto de resultados, não forneça um valor. Se fornecer um ID de sessão do jogador, esse parâmetro será ignorado. **Digite**: `String` **Obrigatório**: não  | 
| Limite |  O número máximo de resultados a serem retornados. Se fornecer um ID de sessão do jogador, esse parâmetro será ignorado. **Digite**: `int` **Obrigatório**: não  | 

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

Informações usadas para cancelar uma solicitação de alocação de criação de partidas. O servidor do jogo comunica essas informações ao serviço Amazon GameLift Servers em uma chamada [StopMatchBackfill()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-stopmatchbackfill).


| Propriedades | **Descrição** | 
| --- | --- | 
| GameSessionArn |  O identificador de sessão de jogo exclusivo da solicitação que está sendo cancelada. **Digite**: `string` **Obrigatório**: Sim  | 
| MatchmakingConfigurationArn |  O identificador exclusivo do marcador de jogos para o qual essa solicitação foi enviada. **Digite**: `string` **Obrigatório**: Sim  | 
| TicketId |  O identificador exclusivo do tíquete de solicitação de alocação a ser cancelado. **Digite**: `string` **Obrigatório**: Sim  | 

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

Esse tipo de dados dá ao servidor do jogo acesso limitado aos seus outros AWS recursos. Para obter mais informações, consulte, [Configurar um perfil de serviço do IAM para o Amazon GameLift Servers](setting-up-role.md).


| Propriedades | **Descrição** | 
| --- | --- | 
| RoleArn | O Amazon Resource Name (ARN) da função de serviço que estende o acesso limitado aos seus AWS recursos. **Digite**: `string` **Obrigatório**: Sim  | 
| RoleSessionName | O nome da sessão que descreve o uso das credenciais da função. **Digite**: `string` **Obrigatório**: não  | 

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

Use esses valores em pares de chave-valor de atributo [Jogador](#integration-server-sdk5-csharp-dataypes-player). Esse objeto permite especificar um valor de atributo usando qualquer um dos tipos de dados válidos: string, número, matriz de string ou mapa de dados. Cada objeto `AttributeValue` pode usar somente uma das propriedades disponíveis.


| Propriedades | Description | 
| --- | --- | 
| attrType |  Especifica o tipo de valor do atributo. **Tipo:** Um `AttrType` valor [enum.](#integration-server-sdk5-csharp-datatypes-enums).  **Obrigatório**: não  | 
| S |  Representa um valor de atributo de string. **Digite**: `string` **Obrigatório**: Sim  | 
| N |  Representa um valor de atributo numérico. **Digite**: `double` **Obrigatório**: Sim  | 
| SL |  Representa uma matriz de valores de atributos de string. **Digite**: `string[]` **Obrigatório**: Sim  | 
| SDM |  Representa um dicionário de chaves de string e valores duplos. **Digite**: `Dictionary<string, double>` **Obrigatório**: Sim  | 

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

Esse tipo de dados resulta de uma ação e produz um objeto com as seguintes propriedades:


| Propriedades | Description | 
| --- | --- | 
| Resultado |  O resultado da ação. **Digite**: `string` **Obrigatório**: não  | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **Obrigatório**: não  | 

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

Esse tipo de dados resulta de uma ação e produz um objeto com as seguintes propriedades:


| Propriedades | Description | 
| --- | --- | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **Obrigatório**: não  | 

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

Representa o resultado de uma chamada [InitMetrics()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-initmetrics). Contém uma MetricsManager instância sobre sucesso ou informações de erro sobre falha.


|  |  | 
| --- |--- |
| Resultado |  A MetricsManager instância para coletar e relatar métricas. **Digite**: `MetricsManager` **Obrigatório**: não  | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **Obrigatório**: não  | 

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

Esse tipo de dados resulta de uma ação e produz um objeto com as seguintes propriedades:


| Propriedades | Description | 
| --- | --- | 
| Resultado |  O resultado da ação. **Digite**: [DescribePlayerSessionsResult](#integration-server-sdk5-csharp-datatypes-describeplayersessionsresult) **Obrigatório**: não   | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **Obrigatório**: não  | 

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


| Propriedades | Description | 
| --- | --- | 
| NextToken |  O token indicando o início da próxima página de resultados. Para especificar o início do conjunto de resultados, não forneça um valor. Se fornecer um ID de sessão do jogador, esse parâmetro será ignorado. **Digite**: `string` **Obrigatório**: Sim  | 
| PlayerSessions |  Uma coleção de objetos contendo propriedades para cada sessão de jogador que corresponde à solicitação.  **Digite**: `IList<PlayerSession>` **Obrigatório:**   | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **Obrigatório**: não  | 

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


| Propriedades | Description | 
| --- | --- | 
| CreationTime |  **Digite**: `long` **Obrigatório**: Sim  | 
| FleetId |  **Digite**: `string` **Obrigatório**: Sim  | 
| GameSessionId |  **Digite**: `string` **Obrigatório**: Sim  | 
| IpAddress |  **Digite**: `string` **Obrigatório**: Sim  | 
| PlayerData |  **Digite**: `string` **Obrigatório**: Sim  | 
| PlayerId |  **Digite**: `string` **Obrigatório**: Sim  | 
| PlayerSessionId |  **Digite**: `string` **Obrigatório**: Sim  | 
| Porta |  **Digite**: `int` **Obrigatório**: Sim  | 
| Status |  **Tipo:** Um `PlayerSessionStatus` [enum.](#integration-server-sdk5-csharp-datatypes-enums). **Obrigatório**: sim  | 
| TerminationTime |  **Digite**: `long` **Obrigatório**: Sim  | 
| DnsName |  **Digite**: `string` **Obrigatório**: Sim  | 

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

Esse tipo de dados resulta de uma ação e produz um objeto com as seguintes propriedades:


| Propriedades | Description | 
| --- | --- | 
| Resultado |  O resultado da ação. **Digite**: [StartMatchBackfillResult](#integration-server-sdk5-csharp-datatypes-startmatchbackfillresult) **Obrigatório**: não  | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **Obrigatório**: não  | 

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


| Propriedades | Description | 
| --- | --- | 
| TicketId |  **Digite**: `string` **Obrigatório**: Sim  | 

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

Esse tipo de dados resulta de uma ação e produz um objeto com as seguintes propriedades:


| Propriedades | Description | 
| --- | --- | 
| Resultado |  O resultado da ação. **Digite**: [GetComputeCertificateResult](#integration-server-sdk5-csharp-datatypes-getcomputecertificateresult) **Obrigatório**: não   | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **Obrigatório**: não  | 

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

O caminho para o certificado TLS em seu computador e o nome do host do computador.


| Propriedades | Description | 
| --- | --- | 
| CertificatePath |  **Digite**: `string` **Obrigatório**: Sim  | 
| ComputeName |  **Digite**: `string` **Obrigatório**: Sim  | 

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

Esse tipo de dados resulta de uma ação e produz um objeto com as seguintes propriedades:


| Propriedades | Description | 
| --- | --- | 
| Resultado |  O resultado da ação. **Digite**: [GetFleetRoleCredentialsResult](#integration-server-sdk5-csharp-datatypes-getfleetrolecredentialsresult) **Obrigatório**: não  | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **Obrigatório**: não  | 

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


| Propriedades | Description | 
| --- | --- | 
| AccessKeyId |  O ID da chave de acesso para autenticar e fornecer acesso aos seus recursos AWS . **Digite**: `string` **Obrigatório**: não  | 
| AssumedRoleId |  O ID do usuário ao qual o perfil de serviço pertence. **Digite**: `string` **Obrigatório**: não  | 
| AssumedRoleUserArn |  O nome do recurso da Amazon (ARN) do usuário ao qual pertence o perfil de serviço. **Digite**: `string` **Obrigatório**: não  | 
| Expiração |  A quantidade de tempo até que suas credenciais de sessão expirem. **Digite**: `DateTime` **Obrigatório**: não  | 
| SecretAccessKey |  O ID da chave de acesso secreta para autenticação. **Digite**: `string` **Obrigatório**: não  | 
| SessionToken |  Um token para identificar a sessão ativa atual interagindo com seus AWS recursos. **Digite**: `string` **Obrigatório**: não  | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **Obrigatório**: não  | 

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

Esse tipo de dados resulta de uma ação e produz um objeto com as seguintes propriedades:


| Propriedades | Description | 
| --- | --- | 
| Resultado |  O resultado da ação. **Digite**: `DateTime` **Obrigatório**: não   | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **Obrigatório**: não  | 

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


| Propriedades | Description | 
| --- | --- | 
| ErrorType |  O tipo de erro. **Tipo:** Um `GameLiftErrorType` [enum.](#integration-server-sdk5-csharp-datatypes-enums). **Obrigatório**: não   | 
| ErrorName |  O nome do erro.  **Digite**: `string`  **Obrigatório**: não   | 
| ErrorMessage |  A mensagem de erro.  **Digite**: `string`  **Obrigatório**: não   | 

## Enumerações
<a name="integration-server-sdk5-csharp-datatypes-enums"></a>

As enumerações definidas para o SDK do servidor para Amazon GameLift Servers (C\$1) são definidas da seguinte forma:

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

**GameLiftErrorType**  
Valor da string indicando o tipo de erro. Os valores válidos são:  
+ **SERVICE\$1CALL\$1FAILED — Uma chamada para um serviço falhou**. AWS 
+ **LOCAL\$1CONNECTION\$1FAILED** – A conexão local com o Amazon GameLift Servers falhou. 
+ **NETWORK\$1NOT\$1INITIALIZED** – A rede não foi inicializada. 
+ **GAMESESSION\$1ID\$1NOT\$1SET** – O ID da sessão do jogo não foi definido. 
+ **BAD\$1REQUEST\$1EXCEPTION** 
+ **INTERNAL\$1SERVICE\$1EXCEPTION** 
+ **ALREADY\$1INITIALIZED** – O servidor ou cliente Amazon GameLift Servers já foi inicializado com Initialize(). 
+ **FLEET\$1MISMATCH** – A frota de destino não corresponde à frota de uma GameSession ou PlayerSession. 
+ **GAMELIFT\$1CLIENT\$1NOT\$1INITIALIZED** – O cliente Amazon GameLift Servers não foi inicializado. 
+ **GAMELIFT\$1SERVER\$1NOT\$1INITIALIZED** – O servidor Amazon GameLift Servers não foi inicializado. 
+ **GAME\$1SESSION\$1ENDED\$1FAILED** – O servidor de SDK para o Amazon GameLift Servers não foi capaz de contatar o serviço para reportar que a sessão de jogo terminou. 
+ **GAME\$1SESSION\$1ENDED\$1FAILED** – A sessão de jogo do Amazon GameLift Servers Server não foi ativada. 
+ **GAME\$1SESSION\$1READY\$1FAILED** – O Server SDK do Amazon GameLift Servers não conseguiu entrar em contato com o serviço para informar que a sessão do jogo está pronta. 
+ **INITIALIZATION\$1MISMATCH** – Um método de cliente foi chamado depois de Server::Initialize(), ou vice-versa. 
+ **NOT\$1INITIALIZED** – O Amazon GameLift Servers Server ou Client não foi inicializado com Initialize(). 
+ **NO\$1TARGET\$1ALIASID\$1SET** – Um aliasID de destino não foi definido. 
+ **NO\$1TARGET\$1FLEET\$1SET** – Uma frota alvo não foi definida. 
+ **PROCESS\$1ENDING\$1FAILED** – O Server SDK do Amazon GameLift Servers não conseguiu entrar em contato com o serviço para informar que o processo está sendo encerrado. 
+ **PROCESS\$1NOT\$1ACTIVE** — O processo do servidor ainda não está ativo, não está vinculado a um e não pode GameSession aceitar ou processar. PlayerSessions 
+ **PROCESS\$1NOT\$1READY** – O processo do servidor ainda não está pronto para ser ativado. 
+ **PROCESS\$1READY\$1FAILED** – O Server SDK do Amazon GameLift Servers não conseguiu entrar em contato com o serviço para informar que o processo está pronto. 
+ **SDK\$1VERSION\$1DETECTION\$1FAILED** – Falha na detecção da versão do SDK. 
+ **STX\$1CALL\$1FAILED — Uma chamada para o componente de back-end do XStx servidor falhou**. 
+ **STX\$1INITIALIZATION\$1FAILED — O componente de back-end do XStx servidor falhou** ao inicializar. 
+ **UNEXPECTED\$1PLAYER\$1SESSION** – Uma sessão de jogador não registrada foi encontrada pelo servidor. 
+ **WEBSOCKET\$1CONNECT\$1FAILURE** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1FORBIDDEN** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1INVALID\$1URL** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1TIMEOUT** 
+ **WEBSOCKET\$1RETRIABLE\$1SEND\$1MESSAGE\$1FAILURE — Falha recuperável ao enviar uma mensagem** ao Serviço. GameLift WebSocket 
+ **WEBSOCKET\$1SEND\$1MESSAGE\$1FAILURE — Falha ao enviar uma mensagem para o serviço**. GameLift WebSocket 
+ **MATCH\$1BACKFILL\$1REQUEST\$1VALIDATION** – A validação da solicitação falhou. 
+ **PLAYER\$1SESSION\$1REQUEST\$1VALIDATION** – A validação da solicitação falhou. 

**PlayerSessionCreationPolicy**  
Valor de string que indica se a sessão do jogo aceita novos jogadores. Os valores válidos são:   
+ **ACCEPT\$1ALL** – Aceite todas as novas sessões de jogador. 
+ **DENY\$1ALL** – Recuse todas as novas sessões de jogador. 
+ **NOT\$1SET** – A sessão do jogo não está configurada para aceitar ou negar sessões de novos jogadores. 

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

[SDK do servidor C\$1 5.x para Amazon GameLift Servers -- Tipos de dados](integration-server-sdk5-csharp-datatypes.md)

**Topics**
+ [SDK do servidor C\$1 5.x para Amazon GameLift Servers -- Tipos de dados](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>

Retorna o número da versão atual do SDK compilado no processo de servidor.

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

```
AwsStringOutcome GetSdkVersion();
```

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

Se bem-sucedido, retornará a versão do SDK atual como um objeto [AwsStringOutcome](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-awsstringoutcome). A string retornada inclui o número da versão (exemplo, `5.0.0`). Se não for bem-sucedido, retornará uma mensagem de erro.

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

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

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

Inicializa o sistema de métricas para coletar e reportar dados de desempenho do servidor. Para obter melhores resultados, chame esse método antes de [InitSDK()](#integration-server-sdk5-csharp-initsdk) para ativar a coleta de métricas durante a inicialização do SDK.

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

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

### Parâmetros
<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 configuração para coleta de métricas. Se não for fornecido, usa valores padrão que podem ser substituídos por variáveis de ambiente.

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

Se for bem-sucedido, retornará um [MetricsManagerOutcome](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-metricsmanageroutcome) objeto contendo a MetricsManager instância. Se não for bem-sucedido, retornará uma mensagem de erro.

### Exemplo
<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 o SDK do Amazon GameLift Servers para uma frota EC2 gerenciada. Chame esse método na inicialização, antes que qualquer outra inicialização relacionada ao Amazon GameLift Servers ocorra. Esse método lê os parâmetros do servidor do ambiente host para configurar a comunicação entre o servidor e o serviço do Amazon GameLift Servers. Ele usa um token de idempotência, então você repete essa chamada com segurança quando ela falhar.

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

```
GenericOutcome InitSDK();
```

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

Se for bem-sucedido, retornará um InitSdkOutcome objeto para indicar que o processo do servidor está pronto para ser chamado[ProcessReady()](#integration-server-sdk5-csharp-processready). 

### Exemplo
<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 o Amazon GameLift Servers SDK para uma frota Anywhere. Chame esse método na inicialização, antes que qualquer outra inicialização relacionada ao Amazon GameLift Servers ocorra. Esse método requer parâmetros explícitos do servidor para configurar a comunicação entre o servidor e o serviço do Amazon GameLift Servers. Ele usa um token de idempotência, então você repete essa chamada com segurança quando ela falhar.

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

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

### Parâmetros
<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 um servidor de jogos em uma frota do Amazon GameLift Servers Anywhere, construa um objeto `ServerParameters` com as seguintes informações:  
+ O URL do WebSocket usado para se conectar ao seu servidor de jogo. 
+ O ID do processo usado para hospedar o servidor de jogos. 
+ O ID do computador que hospeda os processos do seu servidor de jogos. 
+ O ID da frota do Amazon GameLift Servers que contém sua computação Amazon GameLift Servers Anywhere.
+ O token de autorização gerado pela operação do Amazon GameLift Servers. 

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

Se for bem-sucedido, retornará um InitSdkOutcome objeto para indicar que o processo do servidor está pronto para ser chamado[ProcessReady()](#integration-server-sdk5-csharp-processready). 

**nota**  
Se as chamadas para `InitSDK()` estiverem falhando para compilações de jogos implantadas em frotas do Anywhere, verifique o parâmetro `ServerSdkVersion` usado ao criar o recurso de compilação. Você deve definir explicitamente esse valor para a versão do SDK do servidor em uso. O valor padrão desse parâmetro é 4.x, o que não é compatível. Para resolver esse problema, crie uma nova versão e implante-a em uma nova frota.

### Exemplo
<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 o Amazon GameLift Servers de que o processo do servidor está pronto para hospedar sessões do jogo. Chame esse método após invocar [InitSDK()](#integration-server-sdk5-csharp-initsdk). Esse método deve ser chamado somente uma vez por processo.

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

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

### Parâmetros
<a name="integration-server-sdk5-csharp-processready-parameter"></a>

**[ProcessParameters](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-dataypes-process)**  
Um objeto `ProcessParameters` contém informações sobre o processo do servidor.

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

Retorna um resultado genérico que consiste em sucesso ou falha com uma mensagem de erro.

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

Este exemplo ilustra as implementações do método e da função delegada.

```
// 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>

Notifica o Amazon GameLift Servers de que o processo do servidor está sendo encerrado. Chame esse método depois de todas as outras tarefas de limpeza (incluindo o encerramento da sessão ativa do jogo) e antes de encerrar o processo. Dependendo do resultado `ProcessEnding()`, o processo sai com sucesso (0) ou erro (-1) e gera um evento de frota. Se o processo for encerrado com um erro, o evento de frota gerado será `SERVER_PROCESS_TERMINATED_UNHEALTHY`.

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

```
GenericOutcome ProcessEnding()
```

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

Retorna um resultado genérico que consiste em sucesso ou falha com uma mensagem de erro.

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

Este exemplo chama `ProcessEnding()` e `Destroy()` antes de encerrar o processo do servidor com um código de saída bem-sucedido ou de erro.

```
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 o Amazon GameLift Servers de que o processo do servidor ativou uma sessão do jogo e já está pronto para receber as conexões do jogador. Essa ação deve ser chamada como parte da função de retorno de chamada `onStartGameSession()`, após toda inicialização da sessão do jogo.​

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

```
GenericOutcome ActivateGameSession()
```

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

Retorna um resultado genérico que consiste em sucesso ou falha com uma mensagem de erro.

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

Este exemplo mostra `ActivateGameSession()` sendo chamado como parte da função de delegação `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>

Atualiza a capacidade da sessão do jogo atual para aceitar novas sessões de jogador. Atualiza a capacidade da sessão do jogo atual para aceitar novas sessões de jogador.

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

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

### Parâmetros
<a name="integration-server-sdk5-csharp-updateplayersessioncreationpolicy-parameter"></a>

**playerSessionPolicy**  
Valor de string que indica se a sessão do jogo aceita novos jogadores.   
Os valores válidos são:  
+ **ACCEPT\$1ALL** – Aceite todas as novas sessões de jogador.
+ **DENY\$1ALL** – Recuse todas as novas sessões de jogador.

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

Retorna um resultado genérico que consiste em sucesso ou falha com uma mensagem de erro.

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

Este exemplo define a política de ingresso da sessão do jogo atual para aceitar todos os jogadores.

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

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

Recupera o ID da sessão de jogo hospedada pelo processo do servidor ativo.

Para processos inativos que não são ativados com uma sessão de jogo, a chamada retorna um [GameLiftError](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-gamelifterror).

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

```
AwsStringOutcome GetGameSessionId()
```

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

Se bem-sucedido, retornará o ID da sessão de jogo como um objeto [AwsStringOutcome](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-awsstringoutcome). Se não for bem-sucedido, retornará uma mensagem de erro."

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

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

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

Retorna a hora em que um processo do servidor está programado para ser desligado, se essa informação estiver disponível. Um processo do servidor realiza essa ação depois de receber um retorno de chamada `onProcessTerminate()` do serviço Amazon GameLift Servers. O Amazon GameLift Servers chama o `onProcessTerminate()` pelos seguintes motivos: 
+ Quando o processo do servidor relatou problemas de saúde ou não respondeu ao Amazon GameLift Servers.
+ Ao encerrar a instância durante um evento de redução.
+ Quando uma instância é encerrada devido a uma [interrupção na instância spot](spot-tasks.md).

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

```
AwsDateTimeOutcome GetTerminationTime()
```

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

Se for bem-sucedido, retornará o horário de término como um objeto [AwsDateTimeOutcome](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-awsdatetimeoutcome). O valor é o tempo de rescisão, expresso em tiques decorridos desde então `0001 00:00:00`. Por exemplo, o valor da data e hora `2020-09-13 12:26:40 -000Z` é igual aos tiques `637355968000000000`. Se nenhum horário de rescisão estiver disponível, o retornará uma mensagem de erro.

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

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

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

Notifica o serviço Amazon GameLift Servers de que um jogador com o ID da sessão do jogador especificado se conectou ao processo do servidor e precisa de validação. O Amazon GameLift Servers confirma que o ID da sessão do jogador é válido. Depois que a sessão do jogador é validada, o Amazon GameLift Servers altera o status do slot do jogador de RESERVED para ACTIVE. 

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

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

### Parâmetros
<a name="integration-server-sdk5-csharp-acceptplayersession-parameter"></a>

playerSessionId  
ID exclusivo emitido GameLift quando uma nova sessão de jogador é criada.

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

Retorna um resultado genérico que consiste em sucesso ou falha com uma mensagem de erro. 

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

Este exemplo ilustra uma função para lidar com uma solicitação de conexão, incluindo a validação e a rejeição de uma sessão de jogador invá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>

Notifica o Amazon GameLift Servers de que um jogador se desconectou do processo do servidor. Em resposta, o Amazon GameLift Servers altera o espaço do jogador para disponível. 

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

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

### Parâmetros
<a name="integration-server-sdk5-csharp-removeplayersession-parameter"></a>

**playerSessionId**  
ID exclusivo emitido pela Amazon GameLift Servers quando uma nova sessão de jogador é criada.

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

Retorna um resultado genérico que consiste em sucesso ou falha com uma mensagem de erro.

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

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

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

Recupera dados da sessão do jogador, que incluem configurações, metadados da sessão e dados do jogador. Use essa ação para obter informações de uma única sessão de jogador, para todas as sessões de jogador em uma sessão de jogo, ou para todas as sessões de jogador associadas a um único ID de jogador.

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

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

### Parâmetros
<a name="integration-server-sdk5-csharp-describeplayersessions-parameter"></a>

**[DescribePlayerSessionsRequest](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-dataypes-playersessions)**  
Um objeto [DescribePlayerSessionsRequest](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-dataypes-playersessions) que descreve quais sessões de jogador recuperar.

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

Se bem-sucedido, retorna um objeto [DescribePlayerSessionsOutcome](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-describeplayersessionsoutcome) que contém um conjunto de objetos de sessão do jogador que atendem aos parâmetros de solicitação.

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

Este exemplo ilustra uma solicitação para todas as sessões de jogador conectadas ativamente a uma sessão de jogo especificada. Ao omitir *NextToken*e definir o valor *limite* como 10, Amazon GameLift Servers retornará os primeiros registros da sessão de 10 jogadores que correspondam à solicitação.

```
// 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>

Envia uma solicitação para encontrar novos jogadores para os slots abertos em uma sessão de jogo criada com o FlexMatch. Para obter mais informações, consulte o [recurso de alocação do FlexMatch](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html).

Esta ação é assíncrona. Se novos jogadores forem combinados, o Amazon GameLift Servers entregará os dados atualizados do marcador de jogos usando a função de retorno de chamada `OnUpdateGameSession()`.

Um processo de servidor pode ter apenas uma solicitação de alocação de correspondência ativa por vez. Para enviar uma nova solicitação, primeiro chame [StopMatchBackfill()](#integration-server-sdk5-csharp-stopmatchbackfill) para cancelar a solicitação original.

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

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

### Parâmetros
<a name="integration-server-sdk5-csharp-startmatchbackfill-parameter"></a>

**[StartMatchBackfillRequest](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-dataypes-startmatchbackfillrequest)**  
Um objeto `StartMatchBackfillRequest` contém informações sobre a solicitação de alocação.

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

Retorna um objeto [StartMatchBackfillOutcome](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-startmatchbackfilloutcome) com o ID do tíquete de alocação de correspondência ou um falha com uma mensagem de erro. 

### Exemplo
<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 uma solicitação de alocação de correspondência ativa. Para obter mais informações, consulte o [recurso de alocação do FlexMatch](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html).

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

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

### Parâmetros
<a name="integration-server-sdk5-csharp-stopmatchbackfill-parameter"></a>

**[StopMatchBackfillRequest](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-dataypes-stopmatchbackfillrequest)**  
Um objeto `StopMatchBackfillRequest` que fornece detalhes sobre o tíquete de criação de partidas que você está interrompendo.

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

Retorna um resultado genérico que consiste em sucesso ou falha com uma mensagem de erro.

### Exemplo
<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 o caminho para o certificado TLS usado para criptografar a conexão de rede entre o servidor do jogo e o cliente do jogo. Você poderá usar o caminho do certificado ao registrar seu dispositivo computacional em uma frota do Amazon GameLift Servers Anywhere. Para obter mais informações, consulte, [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html).

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

```
GetComputeCertificateOutcome GetComputeCertificate();
```

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

Retorna um GetComputeCertificateResponse objeto que contém o seguinte: 
+  CertificatePath: o caminho para o certificado TLS em seu recurso computacional. Ao usar uma frota gerenciada do Amazon GameLift Servers, esse caminho contém:
  + `certificate.pem`: o certificado do usuário final. A cadeia completa de certificados é a combinação de `certificateChain.pem` anexados a esse certificado.
  + `certificateChain.pem`: a cadeia de certificados que contém o certificado raiz e os certificados intermediários.
  + `rootCertificate.pem`: o certificado raiz.
  + `privateKey.pem`: a chave privada para o certificado do usuário final.
+ ComputeName: o nome do seu recurso computacional.

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

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

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

Recupera as credenciais do perfil do IAM que autorizam o Amazon GameLift Servers a interagir com outros Serviços da AWS. Para obter mais informações, consulte [Conecte seu servidor de jogos Amazon GameLift Servers hospedado a outros AWS recursos](gamelift-sdk-server-resources.md).

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

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

### Parâmetros
<a name="integration-server-sdk5-csharp-getfleetrolecredentials-parameters"></a>

[GetFleetRoleCredentialsRequest](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-dataypes-getfleetrolecredentialsrequest)  
Credenciais de função que ampliam o acesso limitado aos seus AWS recursos no servidor do jogo.

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

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

### Exemplo
<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 o SDK do servidor de jogos do Amazon GameLift Servers da memória. Como melhor prática, chame esse método antes `ProcessEnding()` e depois de encerrar o processo. Se você estiver usando uma frota Anywhere e não estiver encerrando os processos do servidor após cada sessão de jogo, chame `Destroy()` e reinicialize `InitSDK()` antes de notificar o Amazon GameLift Servers de que o processo está pronto para hospedar uma sessão de jogo com `ProcessReady()`.

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

```
GenericOutcome Destroy()
```

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

Retorna um resultado genérico que consiste em sucesso ou falha com uma mensagem de erro.

### Exemplo
<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 do servidor do Go para Amazon GameLift Servers – ações
<a name="integration-server-sdk-go-actions"></a>

Use a referência do SDK 5.x do servidor para integrar o jogo multijogador à hospedagem com o Amazon GameLift Servers. Para obter orientação sobre o processo de integração, consulte [Integre o Amazon GameLift Servers ao seu servidor de jogos com o SDK do servidor.](gamelift-sdk-server-api.md).

`GameLiftServerAPI.go` define as ações do SDK do servidor Go.

# SDK do servidor Go para Amazon GameLift Servers -- Tipos de dados
<a name="integration-server-sdk-go-datatypes"></a>

Use a referência do SDK do servidor para integrar o jogo multijogador à hospedagem com o Amazon GameLift Servers. Para obter orientação sobre o processo de integração, consulte [Integre o Amazon GameLift Servers ao seu servidor de jogos com o SDK do servidor.](gamelift-sdk-server-api.md).

`GameLiftServerAPI.go` define as ações do SDK do servidor Go.

[SDK do servidor do Go para Amazon GameLift Servers – ações](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)
+ [Jogador](#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>

Um objeto que identifica arquivos gerados durante uma sessão de jogo que você deseja que o Amazon GameLift Servers carregue e armazene após o término da sessão de jogo. O servidor do jogo fornece `LogParameters` ao Amazon GameLift Servers como parte de um objeto `ProcessParameters` em uma chamada [ProcessReady()](integration-server-sdk-go-actions.md#integration-server-sdk-go-processready).


|  |  | 
| --- |--- |
|  **Properties**  | Descrição | 
| LogPaths |  A lista de caminhos de diretório para arquivos de log do servidor de jogos que você deseja que o Amazon GameLift Servers armazene para acesso futuro. O processo do servidor gera esses arquivos durante cada sessão de jogo. Você define caminhos e nomes de arquivos em seu servidor de jogo e os armazena no diretório raiz de construção do jogo.  Os caminhos de log devem ser absolutos. Por exemplo, se a compilação do jogo armazenasse logs de sessão de jogo em um caminho como `MyGame\sessionLogs\`, o caminho estará em `c:\game\MyGame\sessionLogs` uma instância do Windows. **Digite**: `[]string` **Obrigatório**: não  | 

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

Um objeto comunicando parâmetros de configuração para inicializar o sistema de métricas. Essa configuração é usada para configurar relatórios do StatsD, relatórios de falhas e comportamento de processamento de métricas. O servidor do jogo fornece `MetricsParameters` ao Amazon GameLift Servers como parte de uma chamada [InitMetrics()](integration-server-sdk-go-actions.md#integration-server-sdk-go-initmetrics).


|  |  | 
| --- |--- |
|  **Properties**  | Descrição | 
| StatsdHost |  O host do servidor StatsD para relatórios de métricas (por exemplo, “localhost”). **Digite**: `string` **Obrigatório**: Sim  | 
| StatsdPort |  A porta do servidor StatsD para relatórios de métricas (por exemplo, 8125). **Digite**: `int` **Obrigatório**: Sim  | 
| CrashReporterHost |  O host do relatório de acidentes para rastreamento de falhas e monitoramento de processos. **Digite**: `string` **Obrigatório**: Sim  | 
| CrashReporterPort |  A porta do relatório de acidentes para rastreamento de falhas e monitoramento de processos. **Digite**: `int` **Obrigatório**: Sim  | 
| FlushIntervalMs |  O intervalo para limpar os dados das métricas em milissegundos. Controla a frequência com que as métricas são enviadas ao StatsD. **Digite**: `int` **Obrigatório**: Sim  | 
| MaxPacketSize |  O tamanho máximo dos pacotes para métricas em bytes. Limita o tamanho dos pacotes UDP enviados para o StatsD. **Digite**: `int` **Obrigatório**: Sim  | 

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

Um objeto que descreve a comunicação entre um processo de servidor e o Amazon GameLift Servers. O processo do servidor fornece essas informações ao Amazon GameLift Servers com uma chamada para [ProcessReady()](integration-server-sdk-go-actions.md#integration-server-sdk-go-processready).


|  |  | 
| --- |--- |
|  **Properties**  | Descrição | 
| LogParameters | Um objeto com caminhos de diretório para arquivos que são gerados durante uma sessão de jogo. O Amazon GameLift Servers copia e armazena para acessos futuros.**Digite**: `LogParameters`**Obrigatório**: não | 
| OnHealthCheck | A função de retorno de chamada que o Amazon GameLift Servers invoca para solicitar um relatório de status de integridade do processo de servidor. O Amazon GameLift Servers chama essa função a cada 60 segundos e espera 60 segundos por uma resposta. O processo do servidor retorna TRUE se estiver íntegro, FALSE se não estiver íntegro. Se nenhuma resposta for retornada, o Amazon GameLift Servers registra o processo do servidor como não íntegro.**Digite**: `OnHealthCheck func() bool`**Obrigatório**: não | 
| OnProcessTerminate | A função de retorno de chamada que o Amazon GameLift Servers invoca para forçar o encerramento do processo do servidor. Depois de chamar essa função, o Amazon GameLift Servers aguardará 5 minutos para o processo de servidor desligar e responder com uma chamada [ProcessEnding()](integration-server-sdk-go-actions.md#integration-server-sdk-go-processending) antes do desligamento do processo de servidor.**Digite**: `OnProcessTerminate func()`**Obrigatório**: Sim | 
| OnStartGameSession | O nome da função de retorno de chamada que o Amazon GameLift Servers invoca para passar um objeto de sessão de jogo atualizado ao processo do jogo. O Amazon GameLift Servers chama essa função quando uma solicitação de alocação de correspondência foi processada para fornecer dados de combinador atualizados. Ele transmite um objeto [GameSession](#integration-server-sdk-go-dataypes-gamesession), uma atualização de status (updateReason) e o ID do tíquete de alocação de correspondência.**Digite**: `OnStartGameSession func (model.GameSession )`**Obrigatório**: Sim | 
| OnUpdateGameSession | O nome da função de retorno de chamada que o Amazon GameLift Servers invoca para passar informações de sessão de jogo atualizadas ao processo do jogo. O Amazon GameLift Servers chama essa função após processar uma solicitação de alocação de correspondência para fornecer dados de combinador atualizados. **Digite**: `OnUpdateGameSession func (model.UpdateGameSession)`**Obrigatório**: não | 
| Port | O número da porta em que o processo de servidor escuta para novas conexões de jogador. O valor deve estar dentro do intervalo de portas configurado para qualquer frota que implanta essa compilação do servidor de jogo. Esse número de porta está incluído nos objetos das sessões de jogo e jogador, que as sessões de jogo usam ao se conectar a um processo de servidor.**Digite**: `int`**Obrigatório**: Sim | 

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

As atualizações em um objeto de sessão de jogo, que incluem o motivo pelo qual a sessão de jogo foi atualizada e o ID do tíquete de alocação relacionado, caso o preenchimento esteja sendo usado para preencher sessões de jogadores na sessão de jogo.


| Propriedades | **Descrição** | 
| --- | --- | 
| GameSession | Um objeto [GameSession](#integration-server-sdk-go-dataypes-gamesession). O objeto GameSession contém propriedades que descrevem uma sessão de jogo. **Digite**: `GameSession GameSession()`**Obrigatório**: Sim | 
| UpdateReason | O motivo pelo qual a sessão do jogo está sendo atualizada.**Digite**: `UpdateReason UpdateReason()`**Obrigatório**: Sim | 
| BackfillTicketId | O ID do tíquete de alocação que está tentando atualizar a sessão do jogo.**Digite**: `String`**Obrigatório**: não | 

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

Os detalhes de uma sessão de jogo. 


| Propriedades | **Descrição** | 
| --- | --- | 
| GameSessionId |  Um identificador exclusivo da sessão de jogo. Um nome do recurso da Amazon (ARN) de sessão de jogo tem o seguinte formato: `arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>`. **Digite**: `String` **Obrigatório**: não  | 
| Nome |  Um rótulo descritivo da sessão do jogo.  **Digite**: `String` **Obrigatório**: não  | 
| FleetId |  Um identificador exclusivo da frota em que a sessão de jogo está sendo executada. **Digite**: `String` **Obrigatório**: não  | 
| MaximumPlayerSessionCount |  O número máximo de conexões do jogador com a sessão do jogo. **Digite**: `Integer` **Obrigatório**: não  | 
| Porta |  O número da porta da sessão de jogo. Para se conectar a um servidor de Amazon GameLift Servers jogos, um aplicativo precisa do endereço IP e do número da porta. **Digite**: `Integer` **Obrigatório**: não  | 
| IpAddress |  O endereço IP da sessão de jogo. Para se conectar a um servidor de Amazon GameLift Servers jogos, um aplicativo precisa do endereço IP e do número da porta. **Digite**: `String` **Obrigatório**: não  | 
| GameSessionData |  Um conjunto de propriedades de sessão de jogo personalizadas, formatadas como um único valor de string.  **Digite**: `String` **Obrigatório**: não  | 
| MatchmakerData |  As informações sobre o processo de criação de partidas usado para criar a sessão do jogo, na sintaxe JSON, formatado como uma string. Além da configuração de criação de partidas usada, ele contém dados sobre todos os jogadores atribuídos à partida, incluindo atributos do jogador e atribuições da equipe. **Digite**: `String` **Obrigatório**: não  | 
| GameProperties |  Um conjunto de propriedades personalizadas para uma sessão de jogo, formatado como pares de chave:valor. Essas propriedades são passadas com uma solicitação de início de uma nova sessão de jogo. **Digite**: `map[string] string` **Obrigatório**: não  | 
| DnsName |  O identificador DNS atribuído à instância que está executando a sessão do jogo. Os valores têm o formato a seguir: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/gameliftservers/latest/developerguide/integration-server-sdk-go-datatypes.html) Ao se conectar a uma sessão de jogo que está sendo executada em uma frota compatível com TLS, você deve usar o nome DNS, não o endereço IP. **Digite**: `String` **Obrigatório**: não  | 

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

Informações usadas para manter a conexão entre um servidor Amazon GameLift Servers Anywhere o serviço do Amazon GameLift Servers. Essas informações são usadas ao iniciar novos processos de servidor com [InitSDK()](integration-server-sdk-go-actions.md#integration-server-sdk-go-initsdk). Para servidores hospedados em instâncias EC2 gerenciadas pelo Amazon GameLift Servers, use um objeto vazio.


| Propriedades | **Descrição** | 
| --- | --- | 
| WebSocketURL |  Os retornos `GameLiftServerSdkEndpoint` Amazon GameLift Servers quando você [https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html) para um recurso de computação Amazon GameLift Servers Anywhere. **Digite**: `string` **Obrigatório**: Sim  | 
| ProcessID |  Um identificador exclusivo registrado no processo do servidor que hospeda seu jogo. **Digite**: `string` **Obrigatório**: Sim  | 
| HostID |  O identificador exclusivo do recurso de computação que está hospedando o novo processo de servidor.  O `HostID` é o `ComputeName` usado quando você registrou seu computador. Para obter mais informações, consulte [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html). **Digite**: `string` **Obrigatório**: Sim  | 
| FleetID | O identificador exclusivo da frota na qual o computador está registrado. Para obter mais informações, consulte [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html).**Digite**: `string`**Obrigatório**: Sim | 
| AuthToken | O token de autenticação gerado pelo Amazon GameLift Servers que autentica seu servidor no Amazon GameLift Servers. Para obter mais informações, consulte [GetComputeAuthToken](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetComputeAuthToken.html).**Digite**: `string`**Obrigatório**: Sim | 

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

Informações usadas para criar uma solicitação de alocação de criação de partidas. O servidor do jogo comunica essas informações ao Amazon GameLift Servers em uma chamada [StartMatchBackfill()](integration-server-sdk-go-actions.md#integration-server-sdk-go-startmatchbackfill).


| Propriedades | **Descrição** | 
| --- | --- | 
| GameSessionArn |  O identificador da sessão de jogo exclusivo. A operação de API retorna `[GetGameSessionId](https://docs.aws.amazon.com/gameliftservers/latest/developerguide/integration-server-sdk-go-actions.html#integration-server-sdk-go-getgamesessionid)` o identificador no formato de ARN. **Digite**: `String` **Obrigatório**: Sim  | 
| MatchmakingConfigurationArn |  O identificador exclusivo (na forma de um ARN), para o marcador de jogos a ser usado para essa solicitação. O marcador de jogos da ARN da sessão de jogo original está no objeto de sessão de jogo, na propriedade de dados do marcador de jogos. Para obter mais informações sobre dados de matchmaker, consulte [Trabalhar com dados de marcador de jogos](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-server.html#match-server-data.html). **Digite**: `String` **Obrigatório**: Sim  | 
| Jogadores |  Um conjunto de dados que representa todos os jogadores que estão na sessão do jogo no momento. O marcador de jogos usa essas informações para pesquisar novos jogadores que sejam correspondências ideais para os jogadores atuais. **Digite**: `[]model.Player` **Obrigatório**: Sim  | 
| TicketId |  O identificador exclusivo de um tíquete de solicitação de marcação de jogo ou de alocação de correspondência. Se você não fornecer um valor, o Amazon GameLift Servers gerará um. Use esse identificador para acompanhar o status do tíquete de alocação de correspondência ou cancelar a solicitação, se necessário.  **Digite**: `String` **Obrigatório**: não  | 

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

O objeto que representa um jogador em criação de partidas. Quando uma solicitação de criação de partidas começa, um jogador tem um ID de jogador, atributos, e possivelmente dados de latência. O Amazon GameLift Servers adiciona as informações de equipe após uma combinação ter sido feita.


| Propriedades | **Descrição** | 
| --- | --- | 
| LatencyInMS |  Um conjunto de valores expressos em milissegundos que indicam a quantidade de latência que um jogador experimenta quando conectado a um local.  Se essa propriedade for usada, o player só será correspondido aos locais listados. Se um marcador de jogos tiver uma regra que avalie a latência do jogador, os jogadores deverão reportar a latência a ser correspondida. **Digite**: `map[string] int` **Obrigatório**: não  | 
| PlayerAttributes |  Uma coleção de pares de chave:valor que contêm informações de jogadores para uso em criação de partidas. As chaves de atributos do jogador devem corresponder às PlayerAttributes usadas em um conjunto de regras de matchmaking. Para obter mais informações sobre os atributos do jogador, consulte [AttributeValue](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_AttributeValue.html). **Digite**: `map[string] AttributeValue` **Obrigatório**: não  | 
| PlayerId |  Um identificador exclusivo para um jogador. **Digite**: `String` **Obrigatório**: não  | 
| Equipe |  O nome da equipe à qual o jogador está designado em uma partida. Você define o nome da equipe no conjunto de regras de criação de partidas. **Digite**: `String` **Obrigatório**: não  | 

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

Um objeto que especifica quais sessões de jogador devem ser recuperadas. O processo do servidor fornece essas informações com uma chamada [DescribePlayerSessions()](integration-server-sdk-go-actions.md#integration-server-sdk-go-describeplayersessions) para o Amazon GameLift Servers.


| Propriedades | **Descrição** | 
| --- | --- | 
| GameSessionID |  Um identificador da sessão de jogo exclusivo. Use esse parâmetro para solicitar todas as sessões de jogador da sessão de jogo especificada.  O formato do ID da sessão do jogo é `arn:aws:gamelift:<region>::gamesession/fleet-<fleet ID>/<ID string>`. O `GameSessionID` é uma string de ID personalizada ou uma string gerada.  **Digite**: `String` **Obrigatório**: não  | 
| PlayerSessionID |  Um identificador exclusivo para uma sessão de jogador. Use esse parâmetro para solicitar uma única sessão de jogador específica. **Digite**: `String` **Obrigatório**: não  | 
| PlayerID |  Um identificador exclusivo para um jogador. Use este parâmetro para solicitar todas as sessões de jogador para um jogador específico. Consulte [Gerar IDs de jogador](player-sessions-player-identifiers.md). **Digite**: `String` **Obrigatório**: não  | 
| PlayerSessionStatusFilter |  O status da sessão de jogador para filtrar resultados. Entre os status da sessão de jogador possíveis incluem: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/gameliftservers/latest/developerguide/integration-server-sdk-go-datatypes.html) **Digite**: `String` **Obrigatório**: não  | 
| NextToken |  O token que indica o início da próxima página de resultados. Para especificar o início do conjunto de resultados, não forneça um valor. Se fornecer um ID de sessão do jogador, esse parâmetro será ignorado. **Digite**: `String` **Obrigatório**: não  | 
| Limit |  O número máximo de resultados a serem retornados. Se fornecer um ID de sessão do jogador, esse parâmetro será ignorado. **Digite**: `int` **Obrigatório**: não  | 

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

Informações usadas para cancelar uma solicitação de alocação de criação de partidas. O servidor do jogo comunica essas informações ao serviço Amazon GameLift Servers em uma chamada [StopMatchBackfill()](integration-server-sdk-go-actions.md#integration-server-sdk-go-stopmatchbackfill).


| Propriedades | **Descrição** | 
| --- | --- | 
| GameSessionArn |  O identificador de sessão de jogo exclusivo da solicitação que está sendo cancelada. **Digite**: `string` **Obrigatório**: não  | 
| MatchmakingConfigurationArn |  O identificador exclusivo do marcador de jogos para o qual essa solicitação foi enviada. **Digite**: `string` **Obrigatório**: não  | 
| TicketId |  O identificador exclusivo do tíquete de solicitação de alocação a ser cancelado. **Digite**: `string` **Obrigatório**: não  | 

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

As credenciais da função que estendem o acesso limitado aos seus AWS recursos no servidor do jogo. Para obter mais informações, consulte, [Configurar um perfil de serviço do IAM para o Amazon GameLift Servers](setting-up-role.md).


| Propriedades | **Descrição** | 
| --- | --- | 
| RoleArn | O ARN do perfil de serviço que estende o acesso limitado aos seus recursos AWS .**Digite**: `string`**Obrigatório**: Sim | 
| RoleSessionName | O nome da sessão que descreve o uso das credenciais da função.**Digite**: `string`**Obrigatório**: Sim | 

[SDK do servidor Go para Amazon GameLift Servers -- Tipos de dados](integration-server-sdk-go-datatypes.md)

**Topics**
+ [SDK do servidor Go para Amazon GameLift Servers -- Tipos de dados](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>

Retorna o número da versão atual do SDK compilado no processo de servidor.

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

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

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

Se bem-sucedido, retornará a versão do SDK como uma sequência. A string retornada inclui o número da versão (exemplo, `5.0.0`). Se não for bem-sucedido, retornará uma mensagem de erro como `common.SdkVersionDetectionFailed`.

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

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

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

Inicializa a coleta de métricas para o Amazon GameLift Servers SDK. Esse método configura relatórios de métricas para ajudar a monitorar o desempenho e a integridade do servidor. Chame esse método depois do [InitSDK()](#integration-server-sdk-go-initsdk), mas antes do [ProcessReady()](#integration-server-sdk-go-processready).

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

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

### Parâmetros
<a name="integration-server-sdk-go-initmetrics-parameter"></a>

MetricsParameters (opcional)  
Um objeto `MetricsParameters` que configura a coleta de métricas. Se não for fornecida, a configuração padrão de métricas será usada. A MetricsParameters estrutura contém os seguintes campos:  
+ `StatsdHost` - O nome do host ou endereço IP do servidor do StatsD.
+ `StatsdPort` - O número da porta do servidor StatsD.
+ `CrashReporterHost` - O endereço IP ou o nome do host do serviço de relatório de falhas.
+ `CrashReporterPort` - O número da porta do serviço de relatório de falhas.
+ `FlushIntervalMs` - O intervalo em milissegundos para limpar os dados das métricas.
+ `MaxPacketSize` - O tamanho máximo dos pacotes de métricas em bytes.
Para obter mais informações sobre a MetricsParameters estrutura, consulte [Server SDK 5.x para tipos de dados C\$1](https://docs.aws.amazon.com/gameliftservers/latest/developerguide/integration-server-sdk5-csharp-datatypes.html).

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

Se for bem-sucedido, retornará um erro `nil` para indicar que a coleta de métricas foi inicializada com sucesso.

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

Inicialize as métricas com a configuração padrão:

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

Inicialize as métricas com a configuração 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 a coleta de métricas para o Amazon GameLift Servers SDK usando a configuração de variáveis de ambiente. Esse método configura relatórios de métricas usando configurações padrão derivadas do ambiente de runtime.

Chame esse método depois do [InitSDK()](#integration-server-sdk-go-initsdk), mas antes do [ProcessReady()](#integration-server-sdk-go-processready).

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

```
func InitMetricsFromEnvironment() error
```

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

Se for bem-sucedido, retornará um erro `nil` para indicar que a coleta de métricas foi inicializada com sucesso utilizando a configuração do ambiente.

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

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

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

Inicializa o Amazon GameLift Servers SDK. Chame esse método na inicialização, antes que qualquer outra inicialização relacionada ao Amazon GameLift Servers ocorra. Esse método configura a comunicação entre o servidor e o serviço do Amazon GameLift Servers.

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

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

### Parâmetros
<a name="integration-server-sdk-go-initsdk-parameter"></a>

[ServerParameters](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-serverparameters)  
Para inicializar um servidor de jogos em uma frota do Amazon GameLift Servers Anywhere, construa um objeto `ServerParameters` com as seguintes informações:  
+ O URL do WebSocket usado para se conectar ao seu servidor de jogo. 
+ O ID do processo usado para hospedar o servidor de jogos. 
+ O ID do computador que hospeda os processos do seu servidor de jogos. 
+ O ID da frota do Amazon GameLift Servers que contém sua computação Amazon GameLift Servers Anywhere.
+ O token de autorização gerado pela operação do Amazon GameLift Servers. 
Para inicializar um servidor de jogo em uma frota EC2 gerenciada pelo Amazon GameLift Servers, construa um objeto `ServerParameters` sem parâmetros. Com essa chamada, o atendente do Amazon GameLift Servers configura o ambiente computacional e se conecta automaticamente ao serviço do Amazon GameLift Servers para você. 

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

Se for bem-sucedido, retornará um erro `nil` para indicar que o processo do servidor está pronto para ser chamado [ProcessReady()](#integration-server-sdk-go-processready). 

**nota**  
Se as chamadas para `InitSDK()` estiverem falhando para compilações de jogos implantadas em frotas do Anywhere, verifique o parâmetro `ServerSdkVersion` usado ao criar o recurso de compilação. Você deve definir explicitamente esse valor para a versão do SDK do servidor em uso. O valor padrão desse parâmetro é 4.x, o que não é compatível. Para resolver esse problema, crie uma nova versão e implante-a em uma nova frota.

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

Exemplo 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)
```

Exemplo de EC2 gerenciado pelo 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 o Amazon GameLift Servers de que o processo do servidor está pronto para hospedar sessões do jogo. Chame esse método após invocar [InitSDK()](#integration-server-sdk-go-initsdk). Esse método deve ser chamado apenas uma vez por processo.

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

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

### Parâmetros
<a name="integration-server-sdk-go-processready-parameter"></a>

**ProcessParameters**  
Um objeto [ProcessParameters](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-process) transmite as seguintes informações sobre o processo do servidor:  
+ Os nomes de métodos de retorno de chamada, implementados no código do servidor de jogos, que o serviço Amazon GameLift Servers invoca para se comunicar com o processo de servidor.
+ O número da porta em que o processo de servidor está escutando.
+ O tipo de dados de [LogParameters](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-log), contém o caminho para qualquer arquivo específico da sessão de jogo que você deseja que o Amazon GameLift Servers capture e armazene.

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

Retorna um erro com uma mensagem de erro se o método falhar. Se o método for bem-sucedido, ele retornará `nil`.

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

Este exemplo ilustra as implementações das funções de chamada e delegação [ProcessReady()](#integration-server-sdk-go-processready).

```
// 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>

Notifica o Amazon GameLift Servers de que o processo do servidor está sendo encerrado. Chame esse método depois de todas as outras tarefas de limpeza (incluindo o encerramento da sessão ativa do jogo) e antes de encerrar o processo. Dependendo do resultado `ProcessEnding()`, o processo sai com sucesso (0) ou erro (-1) e gera um evento de frota. Se o processo for encerrado com um erro, o evento de frota gerado será `SERVER_PROCESS_TERMINATED_UNHEALTHY`.

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

```
func ProcessEnding() error
```

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

Retorna um código de erro 0 ou um código de erro definido.

### Exemplo
<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 o Amazon GameLift Servers de que o processo do servidor ativou uma sessão do jogo e já está pronto para receber as conexões do jogador. Essa ação é chamada como parte da função de retorno de chamada `onStartGameSession()`, após toda a inicialização da sessão do jogo.

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

```
func ActivateGameSession() error
```

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

Retorna um erro com uma mensagem de erro se o método falhar.

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

Este exemplo mostra chamado `ActivateGameSession()` como parte da função de delegação `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>

Atualiza a capacidade da sessão do jogo atual para aceitar novas sessões de jogador. Atualiza a capacidade da sessão do jogo atual para aceitar novas sessões de jogador.

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

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

### Parâmetros
<a name="integration-server-sdk-go-updateplayersessioncreationpolicy-parameter"></a>

**playerSessionCreationPolítica**  
Valor de string que indica se a sessão do jogo aceita novos jogadores.   
Os valores válidos são:  
+ **`model.AcceptAll`** – Aceite todas as novas sessões de jogador.
+ **`model.DenyAll`** – Recuse todas as novas sessões de jogador.

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

Retorna um erro com uma mensagem de erro se ocorrer uma falha.

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

Este exemplo define a política de ingresso da sessão do jogo atual para aceitar todos os jogadores.

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

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

Recupera o ID da sessão de jogo hospedada pelo processo do servidor ativo.

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

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

### Parâmetros
<a name="integration-server-sdk-go-getgamesessionid-parameter"></a>

Essa ação não tem um parâmetro.

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

Se bem-sucedido, retornará o ID da sessão de jogo e nenhum erro. Para processos inativos que ainda não foram ativados com uma sessão de jogo, a chamada retorna uma string vazia e um erro `nil`.

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

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

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

Retorna a hora em que um processo do servidor está programado para ser desligado se essa informação estiver disponível. Um processo do servidor realiza essa ação depois de receber um retorno de chamada `onProcessTerminate()` do serviço Amazon GameLift Servers. O Amazon GameLift Servers chama o `onProcessTerminate()` pelos seguintes motivos: 
+ Quando o processo do servidor relatou problemas de saúde ou não respondeu ao Amazon GameLift Servers.
+ Ao encerrar a instância durante um evento de redução.
+ Quando uma instância é encerrada devido a uma [interrupção na instância spot](spot-tasks.md).

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

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

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

Se for bem-sucedido, retornará o registro de data e hora em segundos em que o processo do servidor está programado para ser encerrado e um erro `nil` de encerramento. O valor é o tempo de rescisão, expresso em tiques decorridos de `0001 00:00:00`. Por exemplo, o valor da data e hora `2020-09-13 12:26:40 -000Z` é igual aos tiques `637355968000000000`. Se nenhum horário de rescisão estiver disponível, o retornará uma mensagem de erro.

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

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

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

Notifica o serviço Amazon GameLift Servers de que um jogador com o ID da sessão do jogador especificado se conectou ao processo do servidor e precisa de validação. O Amazon GameLift Servers confirma que o ID da sessão do jogador é válido. Depois que a sessão do jogador é validada, o Amazon GameLift Servers altera o status do slot do jogador de `RESERVED` para `ACTIVE`. 

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

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

### Parâmetros
<a name="integration-server-sdk-go-acceptplayersession-parameter"></a>

`playerSessionId`  
ID exclusivo emitido pela Amazon GameLift Servers quando uma nova sessão de jogador é criada.

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

Retorna um resultado genérico que consiste em sucesso ou falha com uma mensagem de erro. 

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

Este exemplo trata de uma solicitação de conexão que inclui a validação e a rejeição de uma sessão de jogador invá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>

Notifica o Amazon GameLift Servers de que um jogador se desconectou do processo do servidor. Em resposta, o Amazon GameLift Servers altera o espaço do jogador para disponível. 

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

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

### Parâmetros
<a name="integration-server-sdk-go-removeplayersession-parameter"></a>

**`playerSessionId`**  
ID exclusivo emitido pela Amazon GameLift Servers quando uma nova sessão de jogador é criada.

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

Retorna um resultado genérico que consiste em sucesso ou falha com uma mensagem de erro.

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

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

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

Recupera dados da sessão do jogador, que incluem configurações, metadados da sessão e dados do jogador. Use esse método para obter informações sobre o seguinte:
+ Uma sessão para um jogador
+ Todas as sessões de jogador em uma sessão de jogo
+ Todas as sessões de jogadores associadas a um único ID de jogador

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

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

### Parâmetros
<a name="integration-server-sdk-go-describeplayersessions-parameter"></a>

**[DescribePlayerSessionsRequest](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-playersessions)**  
Um objeto `DescribePlayerSessionsRequest` descreve quais sessões de jogador recuperar.

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

Se bem-sucedido, retorna um objeto `DescribePlayerSessionsResult` que contém um conjunto de objetos de sessão do jogador que atendem aos parâmetros de solicitação.

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

Este exemplo solicita todas as sessões de jogador conectadas ativamente a uma sessão de jogo especificada. Ao omitir *NextToken*e definir o valor *limite* como 10, Amazon GameLift Servers retorna os primeiros registros de sessão de 10 jogadores que correspondam à solicitação.

```
// 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>

Envia uma solicitação para encontrar novos jogadores para os slots abertos em uma sessão de jogo criada com o FlexMatch. Para obter mais informações, consulte o [recurso de alocação do FlexMatch](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html).

Esta ação é assíncrona. Se novos jogadores forem combinados, o Amazon GameLift Servers entregará os dados atualizados do marcador de jogos usando a função de retorno de chamada `OnUpdateGameSession()`.

Um processo de servidor pode ter apenas uma solicitação de alocação de correspondência ativa por vez. Para enviar uma nova solicitação, primeiro chame [StopMatchBackfill()](#integration-server-sdk-go-stopmatchbackfill) para cancelar a solicitação original.

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

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

### Parâmetros
<a name="integration-server-sdk-go-startmatchbackfill-parameter"></a>

**[StartMatchBackfillRequest](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-startmatchbackfillrequest)**  
Um StartMatchBackfillRequest objeto comunica as seguintes informações:  
+ ID do tíquete a ser atribuído à solicitação de alocação. Essas informações são opcionais; se nenhum ID for fornecido, o Amazon GameLift Servers gerará um.
+ O marcador de jogos para o qual a solicitação é enviada. O ARN completo da configuração é necessário. Esse valor está nos dados do marcador de jogos da sessão de jogo.
+ O ID da sessão de jogo a ser preenchida.
+ Os dados disponíveis de marcação para os jogadores atuais da sessão do jogo.

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

Retorna um objeto `StartMatchBackfillResult` com o ID do tíquete de alocação de correspondência ou um falha com uma mensagem de erro. 

### Exemplo
<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 uma solicitação de alocação de correspondência ativa. Para obter mais informações, consulte o [recurso de alocação do FlexMatch](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html).

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

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

### Parâmetros
<a name="integration-server-sdk-go-stopmatchbackfill-parameter"></a>

**[StopMatchBackfillRequest](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-stopmatchbackfillrequest)**  
Um StopMatchBackfillRequest objeto que identifica o tíquete de matchmaking a ser cancelado:   
+ O ID do ticket atribuído à solicitação de alocação.
+ O marcador de jogo que recebeu a solicitação de alocação.
+ A sessão do jogo associada à solicitação de alocação.

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

Retorna um resultado genérico que consiste em sucesso ou falha com uma mensagem de erro.

### Exemplo
<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 o caminho para o certificado TLS usado para criptografar a conexão de rede entre o servidor do jogo e o cliente do jogo. Você poderá usar o caminho do certificado ao registrar seu dispositivo computacional em uma frota do Amazon GameLift Servers Anywhere. Para obter mais informações, consulte [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html).

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

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

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

Retorna um objeto `GetComputeCertificateResult` que contém o seguinte: 
+  CertificatePath: o caminho para o certificado TLS em seu recurso computacional. Ao usar uma frota gerenciada do Amazon GameLift Servers, esse caminho contém: 
  + `certificate.pem`: o certificado do usuário final. A cadeia completa de certificados é a combinação de `certificateChain.pem` anexados a esse certificado.
  + `certificateChain.pem`: a cadeia de certificados que contém o certificado raiz e os certificados intermediários.
  + `rootCertificate.pem`: o certificado raiz.
  + `privateKey.pem`: a chave privada para o certificado do usuário final.
+ ComputeName: o nome do seu recurso computacional.

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

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

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

Recupera as credenciais da função de serviço que você cria para estender as permissões à sua outra Serviços da AWS pessoa. Amazon GameLift Servers Essas credenciais permitem que seu servidor de jogo use seus recursos AWS . Para obter mais informações, consulte [Configurar um perfil de serviço do IAM para o Amazon GameLift Servers](setting-up-role.md).

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

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

### Parâmetros
<a name="integration-server-sdk-go-getfleetrolecredentials-parameters"></a>

[GetFleetRoleCredentialsRequest](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-getfleetrolecredentialsrequest)  
Credenciais de função que ampliam o acesso limitado aos seus AWS recursos no servidor do jogo.

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

Retorna um objeto `GetFleetRoleCredentialsResult` que contém o seguinte: 
+ AssumedRoleUserArn - O Amazon Resource Name (ARN) do usuário ao qual a função de serviço pertence. 
+ AssumedRoleId - O ID do usuário ao qual a função de serviço pertence. 
+ AccessKeyId - O ID da chave de acesso para autenticar e fornecer acesso aos seus AWS recursos. 
+ SecretAccessKey - O ID da chave de acesso secreta para autenticação. 
+ SessionToken - Um token para identificar a sessão ativa atual interagindo com seus AWS recursos. 
+ Expiração – A quantidade de tempo até que suas credenciais de sessão expirem.

### Exemplo
<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 o SDK do servidor de jogos do Amazon GameLift Servers da memória. Como melhor prática, chame esse método antes `ProcessEnding()` e depois de encerrar o processo. Se você estiver usando uma frota Anywhere e não estiver encerrando os processos do servidor após cada sessão de jogo, chame `Destroy()` e reinicialize `InitSDK()` antes de notificar o Amazon GameLift Servers de que o processo está pronto para hospedar uma sessão de jogo com `ProcessReady()`.

### Sintaxe
<a name="integration-server-sdk-go-destroy-syntax"></a>

```
func Destroy() error {
	return srv.destroy()
}
```

### Valor de retorno
<a name="integration-server-sdk-go-destroy-return"></a>

Retorna um erro com uma mensagem de erro se o método falhar.

### Exemplo
<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 do servidor C\$1\$1 (Unreal) para Amazon GameLift Servers 5.x – Ações
<a name="integration-server-sdk5-unreal-actions"></a>

Use a referência do SDK 5.x do servidor Amazon GameLift Servers para Unreal para ajudar você a preparar o jogo multijogador para uso com o Amazon GameLift Servers. Para obter detalhes sobre o processo de integração, consulte [Integre o Amazon GameLift Servers ao seu servidor de jogos com o SDK do servidor.](gamelift-sdk-server-api.md). Se você estiver usando o plug-in do Amazon GameLift Servers para Unreal, consulte também [Amazon GameLift Serversplugin para Unreal Engine](unreal-plugin.md).

**nota**  
Este tópico descreve a API C\$1\$1 do Amazon GameLift Servers que você pode usar ao criar para o Unreal Engine. Especificamente, essa documentação se aplica ao código que você compila com a opção `-DBUILD_FOR_UNREAL=1`. 

# SDK do servidor C\$1\$1 (Unreal) 5.x para Amazon GameLift Servers -- Tipos de dados
<a name="integration-server-sdk5-unreal-datatypes"></a>

Use a referência do SDK 5.x do servidor Amazon GameLift Servers para Unreal para ajudar você a preparar o jogo multijogador para uso com o Amazon GameLift Servers. Para obter detalhes sobre o processo de integração, consulte [Integre o Amazon GameLift Servers ao seu servidor de jogos com o SDK do servidor.](gamelift-sdk-server-api.md). Se você estiver usando o plug-in do Amazon GameLift Servers para Unreal, consulte também [Amazon GameLift Serversplugin para Unreal Engine](unreal-plugin.md).

**nota**  
Este tópico descreve a API C\$1\$1 do Amazon GameLift Servers que você pode usar ao criar para o Unreal Engine. Especificamente, essa documentação se aplica ao código que você compila com a opção `-DBUILD_FOR_UNREAL=1`. 

[SDK do servidor C\$1\$1 (Unreal) para Amazon GameLift Servers 5.x – Ações](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)
+ [Enumerações](#integration-server-sdk5-unreal-dataypes-enums)

## FProcessParâmetros
<a name="integration-server-sdk5-unreal-dataypes-process"></a>

Este tipo de dados contém o conjunto de parâmetros enviado para o Amazon GameLift Servers em uma [ProcessReady()](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-processready).


|  |  | 
| --- |--- |
|  **Properties**  | Descrição | 
| LogParameters | Um objeto com caminhos de diretório para arquivos que são gerados durante uma sessão de jogo. O Amazon GameLift Servers copia e armazena para acessos futuros.**Digite**: `TArray<FString>`**Obrigatório**: não | 
| OnHealthCheck | A função de retorno de chamada que o Amazon GameLift Servers invoca para solicitar um relatório de status de integridade do processo de servidor. O Amazon GameLift Servers chama essa função a cada 60 segundos e espera 60 segundos por uma resposta. O processo do servidor retorna TRUE se estiver íntegro, FALSE se não estiver íntegro. Se nenhuma resposta for retornada, o Amazon GameLift Servers registra o processo do servidor como não íntegro. Essa propriedade é uma função delegada definida como `DECLARE_DELEGATE_RetVal(bool, FOnHealthCheck)`;   **Digite**: `FOnHealthCheck`**Obrigatório**: não | 
| OnProcessTerminate | A função de retorno de chamada que o Amazon GameLift Servers invoca para forçar o encerramento do processo do servidor. Depois de chamar essa função, o Amazon GameLift Servers aguardará 5 minutos para o processo de servidor desligar e responder com uma chamada [ProcessEnding()](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-processending) antes do desligamento do processo de servidor.**Digite**: `FSimpleDelegate`**Obrigatório**: Sim | 
| OnStartGameSession | A função de retorno de chamada que Amazon GameLift Servers invoca para ativar uma nova sessão de jogo. Amazon GameLift Serverschama essa função em resposta a uma solicitação do cliente [CreateGameSession](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateGameSession.html). A função de retorno de chamada transmite um objeto [GameSession](#integration-server-sdk5-unreal-dataypes-gamesession). Essa propriedade é uma função delegada definida como `DECLARE_DELEGATE_OneParam(FOnStartGameSession, Aws::GameLift::Server::Model::GameSession);`  **Digite**: `FOnStartGameSession`**Obrigatório**: Sim | 
| OnUpdateGameSession | O nome da função de retorno de chamada que o Amazon GameLift Servers invoca para passar um objeto de sessão de jogo atualizado ao processo do jogo. O Amazon GameLift Servers chama essa função quando uma solicitação de alocação de correspondência foi processada para fornecer dados de combinador atualizados. Ele transmite um objeto [GameSession](#integration-server-sdk5-unreal-dataypes-gamesession), uma atualização de status (updateReason) e o ID do tíquete de alocação de correspondência. Essa propriedade é uma função delegada definida como `DECLARE_DELEGATE_OneParam(FOnUpdateGameSession, Aws::GameLift::Server::Model::UpdateGameSession);` **Digite**: `FOnUpdateGameSession`**Obrigatório**: não | 
| Porta | O número da porta em que o processo de servidor escuta para novas conexões de jogador. O valor deve estar dentro do intervalo de portas configurado para qualquer frota que implanta essa compilação do servidor de jogo. Esse número de porta está incluído nos objetos das sessões de jogo e jogador, que as sessões de jogo usam ao se conectar a um processo de servidor.**Digite**: `int`**Obrigatório**: Sim | 

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

Esse tipo de dados é atualizado para um objeto de sessão de jogo, o que inclui o motivo pelo qual a sessão de jogo foi atualizada e o ID do tíquete de alocação relacionada, se a alocação for usada para preencher as sessões dos jogadores na sessão do jogo.


| Propriedades | **Descrição** | 
| --- | --- | 
| GameSession | Um objeto [GameSession](#integration-server-sdk5-unreal-dataypes-gamesession). O objeto GameSession contém propriedades que descrevem uma sessão de jogo. **Digite**: `Aws::GameLift::Server::GameSession`**Obrigatório**: não | 
| UpdateReason | O motivo pelo qual a sessão do jogo está sendo atualizada. **Digite**: `enum class UpdateReason`  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/gameliftservers/latest/developerguide/integration-server-sdk5-unreal-datatypes.html) **Obrigatório**: não   | 
| BackfillTicketId | O ID do tíquete de alocação que está tentando atualizar a sessão do jogo.**Digite**: `char[]`**Obrigatório**: não | 

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

Esse tipo de dados fornece detalhes de uma sessão de jogo. 


| Propriedades | **Descrição** | 
| --- | --- | 
| GameSessionId |  Um identificador exclusivo da sessão de jogo. Um ARN de sessão de jogo tem o seguinte formato: `arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>`. **Digite**: `char[]` **Obrigatório**: não  | 
| Nome |  Um rótulo descritivo da sessão do jogo.  **Digite**: `char[]` **Obrigatório**: não  | 
| FleetId |  Um identificador exclusivo da frota em que a sessão de jogo está sendo executada. **Digite**: `char[]` **Obrigatório**: não  | 
| MaximumPlayerSessionCount |  O número máximo de conexões do jogador com a sessão do jogo. **Digite**: `int` **Obrigatório**: não  | 
| Porta |  O número da porta da sessão de jogo. Para se conectar a um servidor de Amazon GameLift Servers jogos, um aplicativo precisa do endereço IP e do número da porta. **Digite**: `int` **Obrigatório**: não  | 
| IpAddress |  O endereço IP da sessão de jogo. Para se conectar a um servidor de Amazon GameLift Servers jogos, um aplicativo precisa do endereço IP e do número da porta. **Digite**: `char[]` **Obrigatório**: não  | 
| GameSessionData |  Um conjunto de propriedades de sessão de jogo personalizadas, formatadas como um único valor de string.  **Digite**: `char[]` **Obrigatório**: não  | 
| MatchmakerData |  Informações sobre o processo de criação de partidas usado para criar a sessão do jogo, na sintaxe JSON, formatado como uma string. Além da configuração de criação de partidas usada, ele contém dados sobre todos os jogadores atribuídos à partida, incluindo atributos do jogador e atribuições da equipe. **Digite**: `char[]` **Obrigatório**: não  | 
| GameProperties |  Um conjunto de propriedades personalizadas para uma sessão de jogo, formatado como pares de chave:valor. Essas propriedades são passadas com uma solicitação de início de uma nova sessão de jogo. **Digite**: `GameProperty[]` **Obrigatório**: não  | 
| DnsName |  O identificador DNS atribuído à instância que está executando a sessão do jogo. Os valores têm o formato a seguir: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/gameliftservers/latest/developerguide/integration-server-sdk5-unreal-datatypes.html) Ao se conectar a uma sessão de jogo que está sendo executada em uma frota compatível com TLS, você deve usar o nome DNS, não o endereço IP. **Digite**: `char[]` **Obrigatório**: não  | 

## FServerParâmetros
<a name="integration-server-sdk5-unreal-dataypes-serverparameters"></a>

Informações usadas para manter a conexão entre um servidor Amazon GameLift Servers Anywhere o serviço do Amazon GameLift Servers. Essas informações são usadas ao iniciar novos processos de servidor com [InitSDK()](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-initsdk). Para servidores hospedados em instâncias EC2 gerenciadas pelo Amazon GameLift Servers, use um objeto vazio.


| Propriedades | **Descrição** | 
| --- | --- | 
| webSocketUrl |  Os retornos `GameLiftServerSdkEndpoint` Amazon GameLift Servers quando você [https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html) para um recurso de computação Amazon GameLift Servers Anywhere. **Digite**: `char[]` **Obrigatório**: Sim   | 
| processId |  Um identificador exclusivo registrado no processo do servidor que hospeda seu jogo. **Digite**: `char[]` **Obrigatório**: Sim  | 
| hostId | O HostID é o ComputeName usado quando você registrou seu computador. Para obter mais informações, consulte, [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html).**Digite**: `char[]`**Obrigatório**: Sim | 
| fleetId | O identificador exclusivo da frota na qual o computador está registrado. Para obter mais informações, consulte, [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html).**Digite**: `char[]`**Obrigatório**: Sim | 
| authToken | O token de autenticação gerado pelo Amazon GameLift Servers que autentica seu servidor no Amazon GameLift Servers. Para obter mais informações, consulte, [GetComputeAuthToken](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetComputeAuthToken.html).**Digite**: `char[]`**Obrigatório**: Sim | 

## FStartMatchBackfillRequest
<a name="integration-server-sdk5-unreal-dataypes-startmatchbackfillrequest"></a>

Informações usadas para criar uma solicitação de alocação de criação de partidas. O servidor do jogo comunica essas informações ao Amazon GameLift Servers em uma chamada [StartMatchBackfill()](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-startmatchbackfill).


| Propriedades | **Descrição** | 
| --- | --- | 
| GameSessionArn |  Um identificador da sessão de jogo exclusivo. A operação de API retorna `[GetGameSessionId](https://docs.aws.amazon.com/gameliftservers/latest/developerguide/integration-server-sdk5-unreal-actions.html#integration-server-sdk5-unreal-getgamesessionid)` o identificador no formato de ARN. **Digite**: `char[]` **Obrigatório**: Sim  | 
| MatchmakingConfigurationArn |  um identificador exclusivo, no formato de ARN, para o marcador de jogos a ser usado para essa solicitação. O marcador de jogos ARN da sessão de jogo original está no objeto de sessão de jogo na propriedade de dados do marcador de jogos. Saiba mais sobre os dados do marcador de jogos em [Trabalhar com dados do marcador de jogos](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-server.html#match-server-data.html). **Digite**: `char[]` **Obrigatório**: Sim  | 
| Jogadores |  Um conjunto de dados que representa todos os jogadores que estão na sessão do jogo. O marcador de jogos usa essas informações para pesquisar novos jogadores que sejam correspondências ideais para os jogadores atuais. **Digite**: `TArray<FPlayer>` **Obrigatório**: Sim  | 
| TicketId |  Um identificador exclusivo de um tíquete de solicitação de marcação de jogo ou de alocação de correspondência. Se você não fornecer um valor, o Amazon GameLift Servers gerará um. Use esse identificador para acompanhar o status do tíquete de alocação de correspondência ou cancelar a solicitação, se necessário.  **Digite**: `char[]` **Obrigatório**: não  | 

## FPlayer
<a name="integration-server-sdk5-unreal-dataypes-player"></a>

Esse tipo de dados representa um jogador em criação de partidas. Quando iniciar uma solicitação de criação de partidas começa, um jogador tem um ID de jogador, atributos, e possivelmente dados de latência. O Amazon GameLift Servers adiciona as informações de equipe após uma combinação ter sido feita.


| Propriedades | **Descrição** | 
| --- | --- | 
| LatencyInMS |  Um conjunto de valores expressos em milissegundos que indicam a quantidade de latência que um jogador experimenta quando conectado a um local.  Se essa propriedade for usada, o player só será correspondido aos locais listados. Se um marcador de jogos tiver uma regra que avalie a latência do jogador, os jogadores deverão reportar a latência a ser correspondida. **Digite**: `TMap>FString, int32<` **Obrigatório**: não  | 
| PlayerAttributes |  Uma coleção de pares de chave:valor contendo informações de jogadores para uso em criação de partidas. As chaves de atributos do jogador devem corresponder às PlayerAttributes usadas em um conjunto de regras de matchmaking. Para obter mais informações sobre os atributos do jogador, consulte [AttributeValue](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_AttributeValue.html). **Digite**: `TMap>FString, FAttributeValue<` **Obrigatório**: não  | 
| PlayerId |  Um identificador exclusivo para um jogador. **Digite**: `std::string` **Obrigatório**: não  | 
| Equipe |  O nome da equipe à qual o jogador está designado em uma partida. Você define o nome da equipe no conjunto de regras de criação de partidas. **Digite**: `FString` **Obrigatório**: não  | 

## FGameLiftDescribePlayerSessionsRequest
<a name="integration-server-sdk5-unreal-dataypes-playersessions"></a>

Um objeto que especifica quais sessões de jogador devem ser recuperadas. O processo do servidor fornece essas informações com uma chamada [DescribePlayerSessions()](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-describeplayersessions) para o Amazon GameLift Servers.


| Propriedades | **Descrição** | 
| --- | --- | 
| GameSessionId |  Um identificador da sessão de jogo exclusivo. Use esse parâmetro para solicitar todas as sessões de jogador da sessão de jogo especificada.  O formato do ID da sessão do jogo é `FString`. O `GameSessionID` é uma string de ID personalizada ou uma **Digite**: `std::string` **Obrigatório**: não  | 
| PlayerSessionId |  Um identificador exclusivo para uma sessão de jogador. Use esse parâmetro para solicitar uma única sessão de jogador específica. **Digite**: `FString` **Obrigatório**: não  | 
| PlayerId |  Um identificador exclusivo para um jogador. Use este parâmetro para solicitar todas as sessões de jogador para um jogador específico. Consulte [Gerar IDs de jogador](player-sessions-player-identifiers.md). **Digite**: `FString` **Obrigatório**: não  | 
| PlayerSessionStatusFilter |  O status da sessão de jogador para filtrar resultados. Entre os status da sessão de jogador possíveis incluem: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/gameliftservers/latest/developerguide/integration-server-sdk5-unreal-datatypes.html) **Digite**: `FString` **Obrigatório**: não  | 
| NextToken |  O token que indica o início da próxima página de resultados. Para especificar o início do conjunto de resultados, não forneça um valor. Se fornecer um ID de sessão do jogador, esse parâmetro será ignorado. **Digite**: `FString` **Obrigatório**: não  | 
| Limite |  O número máximo de resultados a serem retornados. Se fornecer um ID de sessão do jogador, esse parâmetro será ignorado. **Digite**: `int` **Obrigatório**: não  | 

## FStopMatchBackfillRequest
<a name="integration-server-sdk5-unreal-dataypes-stopmatchbackfillrequest"></a>

Informações usadas para cancelar uma solicitação de alocação de criação de partidas. O servidor do jogo comunica essas informações ao serviço Amazon GameLift Servers em uma chamada [StopMatchBackfill()](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-stopmatchbackfill).


| Propriedades | **Descrição** | 
| --- | --- | 
| GameSessionArn |  Um identificador exclusivo da sessão de jogo da solicitação que está sendo cancelada. **Digite**: `FString` **Obrigatório**: Sim  | 
| MatchmakingConfigurationArn |  Um identificador exclusivo do marcador de jogos para o qual essa solicitação foi enviada. **Digite**: `FString` **Obrigatório**: Sim  | 
| TicketId |  Um identificador exclusivo do tíquete de solicitação de alocação a ser cancelado. **Digite**: `FString` **Obrigatório**: Sim  | 

## FAttributeValor
<a name="integration-server-sdk5-unreal-dataypes-attributevalue"></a>

Use esses valores em pares de chave-valor de atributo [FPlayer](#integration-server-sdk5-unreal-dataypes-player). Esse objeto permite especificar um valor de atributo usando qualquer um dos tipos de dados válidos: string, número, matriz de string ou mapa de dados. Cada objeto `AttributeValue` pode usar somente uma das propriedades disponíveis.


| Propriedades | Description | 
| --- | --- | 
| attrType |  Especifica o tipo de valor do atributo. **Tipo:** Um `FAttributeType` valor [enum.](#integration-server-sdk5-unreal-dataypes-enums).  **Obrigatório**: não  | 
| S |  Representa um valor de atributo de string. **Digite**: `FString` **Obrigatório**: não  | 
| N |  Representa um valor de atributo numérico. **Digite**: `double` **Obrigatório**: não  | 
| SL |  Representa uma matriz de valores de atributos de string. **Digite**: `TArray<FString>` **Obrigatório**: não  | 
| SDM |  Representa um dicionário de chaves de string e valores duplos. **Digite**: `TMap<FString, double>` **Obrigatório**: não  | 

## FGameLiftGetFleetRoleCredentialsRequest
<a name="integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsrequest"></a>

Esse tipo de dados fornece credenciais de função que ampliam o acesso limitado aos seus recursos AWS no servidor do jogo. Para mais informações, consulte [Configurar um perfil de serviço do IAM para o Amazon GameLift Servers](setting-up-role.md).


| Propriedades | **Descrição** | 
| --- | --- | 
| RoleArn | O Amazon Resource Name (ARN) da função de serviço que estende o acesso limitado aos seus AWS recursos.**Digite**: `FString`**Obrigatório**: não | 
| RoleSessionName | O nome da sessão que descreve o uso das credenciais da função.**Digite**: `FString`**Obrigatório**: não | 

## FGameLiftLongOutcome
<a name="integration-server-sdk5-unreal-dataypes-awslongoutcome"></a>

Esse tipo de dados resulta de uma ação e produz um objeto com as seguintes propriedades:


| Propriedades | Description | 
| --- | --- | 
| Resultado |  O resultado da ação. **Digite**: `long` **Obrigatório**: não  | 
| ResultWithOwnership |   O resultado da ação, convertido como um rvalue, para que o código de chamada possa se apropriar do objeto.  **Digite**: `long&&` **Obrigatório**: não  | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror) **Obrigatório**: não  | 

## FGameLiftStringOutcome
<a name="integration-server-sdk5-unreal-dataypes-awsstringoutcome"></a>

Esse tipo de dados resulta de uma ação e produz um objeto com as seguintes propriedades:


| Propriedades | Description | 
| --- | --- | 
| Resultado |  O resultado da ação. **Digite**: `FString` **Obrigatório**: não  | 
| ResultWithOwnership |   O resultado da ação, convertido como um rvalue, para que o código de chamada possa se apropriar do objeto.  **Digite**: `FString&&` **Obrigatório**: não  | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror) **Obrigatório**: não  | 

## FGameLiftDescribePlayerSessionsOutcome
<a name="integration-server-sdk5-unreal-dataypes-describeplayersessionsoutcome"></a>

Esse tipo de dados resulta de uma ação e produz um objeto com as seguintes propriedades:


| Propriedades | Description | 
| --- | --- | 
| Resultado |  O resultado da ação. **Digite**: [FGameLiftDescribePlayerSessionsResult](#integration-server-sdk5-unreal-dataypes-describeplayersessionresult) **Obrigatório**: não   | 
| ResultWithOwnership |   O resultado da ação, convertido como um rvalue, para que o código de chamada possa se apropriar do objeto.  **Digite**: `FGameLiftDescribePlayerSessionsResult&&` **Obrigatório**: não  | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror) **Obrigatório**: não  | 

## FGameLiftDescribePlayerSessionsResult
<a name="integration-server-sdk5-unreal-dataypes-describeplayersessionresult"></a>


| Propriedades | Description | 
| --- | --- | 
| PlayerSessions |   **Digite**: `TArray<FGameLiftPlayerSession>` **Obrigatório**: Sim  | 
| NextToken |  O token indicando o início da próxima página de resultados. Para especificar o início do conjunto de resultados, não forneça um valor. Se fornecer um ID de sessão do jogador, esse parâmetro será ignorado. **Digite**: `FString` **Obrigatório**: não  | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror) **Obrigatório**: não  | 

## FGenericResultado
<a name="integration-server-sdk5-unreal-dataypes-genericoutcome"></a>

Esse tipo de dados resulta de uma ação e produz um objeto com as seguintes propriedades:


| Propriedades | Description | 
| --- | --- | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror) **Obrigatório**: não  | 

## FGameLiftPlayerSession
<a name="integration-server-sdk5-unreal-dataypes-playersession"></a>


| Propriedades | Description | 
| --- | --- | 
| CreationTime |  **Digite**: `long` **Obrigatório**: Sim  | 
| FleetId |  **Digite**: `FString` **Obrigatório**: Sim  | 
| GameSessionId |  **Digite**: `FString` **Obrigatório**: Sim  | 
| IpAddress |  **Digite**: `FString` **Obrigatório**: Sim  | 
| PlayerData |  **Digite**: `FString` **Obrigatório**: Sim  | 
| PlayerId |  **Digite**: `FString` **Obrigatório**: Sim  | 
| PlayerSessionId |  **Digite**: `FString` **Obrigatório**: Sim  | 
| Porta |  **Digite**: `int` **Obrigatório**: Sim  | 
| Status |  **Tipo:** Um `PlayerSessionStatus` [enum.](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-enums). **Obrigatório**: sim  | 
| TerminationTime |  **Digite**: `long` **Obrigatório**: Sim  | 
| DnsName |  **Digite**: `FString` **Obrigatório**: Sim  | 

## FGameLiftGetComputeCertificateOutcome
<a name="integration-server-sdk5-unreal-dataypes-getcomputecertificateoutcome"></a>

Esse tipo de dados resulta de uma ação e produz um objeto com as seguintes propriedades:


| Propriedades | Description | 
| --- | --- | 
| Resultado |  O resultado da ação. **Digite**: [FGameLiftGetComputeCertificateResult](#integration-server-sdk5-unreal-dataypes-getcomputecertificateresult) **Obrigatório**: não   | 
| ResultWithOwnership |   O resultado da ação, convertido como um rvalue, para que o código de chamada possa se apropriar do objeto.  **Digite**: `FGameLiftGetComputeCertificateResult&&` **Obrigatório**: não  | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror) **Obrigatório**: não  | 

## FGameLiftGetComputeCertificateResult
<a name="integration-server-sdk5-unreal-dataypes-getcomputecertificateresult"></a>

O caminho para o certificado TLS em seu computador e o nome do host do computador.


| Propriedades | Description | 
| --- | --- | 
| CertificatePath |  **Digite**: `FString` **Obrigatório**: Sim  | 
| ComputeName |  **Digite**: `FString` **Obrigatório**: Sim  | 

## FGameLiftGetFleetRoleCredentialsOutcome
<a name="integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsoutcome"></a>

Esse tipo de dados resulta de uma ação e produz um objeto com as seguintes propriedades:


| Propriedades | Description | 
| --- | --- | 
| Resultado |  O resultado da ação. **Digite**: [FGetFleetRoleCredentialsResult](#integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsresult) **Obrigatório**: não   | 
| ResultWithOwnership |   O resultado da ação, convertido como um rvalue, para que o código de chamada possa se apropriar do objeto.  **Digite**: `FGameLiftGetFleetRoleCredentialsResult&&` **Obrigatório**: não  | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror) **Obrigatório**: não  | 

## FGetFleetRoleCredentialsResult
<a name="integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsresult"></a>


| Propriedades | Description | 
| --- | --- | 
| AccessKeyId |  O ID da chave de acesso para autenticar e fornecer acesso aos seus recursos AWS . **Digite**: `FString` **Obrigatório**: não  | 
| AssumedRoleId |  O ID do usuário ao qual o perfil de serviço pertence. **Digite**: `FString` **Obrigatório**: não  | 
| AssumedRoleUserArn |  O nome do recurso da Amazon (ARN) do usuário ao qual pertence o perfil de serviço. **Digite**: `FString` **Obrigatório**: não  | 
| Expiração |  A quantidade de tempo até que suas credenciais de sessão expirem. **Digite**: `FDateTime` **Obrigatório**: não  | 
| SecretAccessKey |  O ID da chave de acesso secreta para autenticação. **Digite**: `FString` **Obrigatório**: não  | 
| SessionToken |  Um token para identificar a sessão ativa atual interagindo com seus AWS recursos. **Digite**: `FString` **Obrigatório**: não  | 
| Bem-sucedida |  Se a ação foi bem-sucedida ou não. **Digite**: `bool` **Obrigatório**: Sim  | 
| Erro |  O erro que ocorreu se a ação não foi bem-sucedida. **Digite**: [GameLiftError](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-gamelifterror) **Obrigatório**: não  | 

## FGameLiftError
<a name="integration-server-sdk5-unreal-dataypes-gamelifterror"></a>


| Propriedades | Description | 
| --- | --- | 
| ErrorType |  O tipo de erro. **Tipo:** Um `GameLiftErrorType` [enum.](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-enums). **Obrigatório**: não   | 
| ErrorName |  O nome do erro.  **Digite**: `std::string`  **Obrigatório**: não   | 
| ErrorMessage |  A mensagem de erro.  **Digite**: `std::string`  **Obrigatório**: não   | 

## Enumerações
<a name="integration-server-sdk5-unreal-dataypes-enums"></a>

As enumerações definidas para o SDK do servidor para Amazon GameLift Servers (Unreal) são definidas da seguinte forma:

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

**GameLiftErrorType**  
Valor da string indicando o tipo de erro. Os valores válidos são:  
+ **SERVICE\$1CALL\$1FAILED — Uma chamada para um serviço falhou**. AWS 
+ **LOCAL\$1CONNECTION\$1FAILED** – A conexão local com o Amazon GameLift Servers falhou. 
+ **NETWORK\$1NOT\$1INITIALIZED** – A rede não foi inicializada. 
+ **GAMESESSION\$1ID\$1NOT\$1SET** – O ID da sessão do jogo não foi definido. 
+ **BAD\$1REQUEST\$1EXCEPTION** 
+ **INTERNAL\$1SERVICE\$1EXCEPTION** 
+ **ALREADY\$1INITIALIZED** – O servidor ou cliente Amazon GameLift Servers já foi inicializado com Initialize(). 
+ **FLEET\$1MISMATCH** – A frota de destino não corresponde à frota de uma GameSession ou PlayerSession. 
+ **GAMELIFT\$1CLIENT\$1NOT\$1INITIALIZED** – O cliente Amazon GameLift Servers não foi inicializado. 
+ **GAMELIFT\$1SERVER\$1NOT\$1INITIALIZED** – O servidor Amazon GameLift Servers não foi inicializado. 
+ **GAME\$1SESSION\$1ENDED\$1FAILED** – O servidor de SDK para o Amazon GameLift Servers não foi capaz de contatar o serviço para reportar que a sessão de jogo terminou. 
+ **GAME\$1SESSION\$1ENDED\$1FAILED** – A sessão de jogo do Amazon GameLift Servers Server não foi ativada. 
+ **GAME\$1SESSION\$1READY\$1FAILED** – O Server SDK do Amazon GameLift Servers não conseguiu entrar em contato com o serviço para informar que a sessão do jogo está pronta. 
+ **INITIALIZATION\$1MISMATCH** – Um método de cliente foi chamado depois de Server::Initialize(), ou vice-versa. 
+ **NOT\$1INITIALIZED** – O Amazon GameLift Servers Server ou Client não foi inicializado com Initialize(). 
+ **NO\$1TARGET\$1ALIASID\$1SET** – Um aliasID de destino não foi definido. 
+ **NO\$1TARGET\$1FLEET\$1SET** – Uma frota alvo não foi definida. 
+ **PROCESS\$1ENDING\$1FAILED** – O Server SDK do Amazon GameLift Servers não conseguiu entrar em contato com o serviço para informar que o processo está sendo encerrado. 
+ **PROCESS\$1NOT\$1ACTIVE** — O processo do servidor ainda não está ativo, não está vinculado a um e não pode GameSession aceitar ou processar. PlayerSessions 
+ **PROCESS\$1NOT\$1READY** – O processo do servidor ainda não está pronto para ser ativado. 
+ **PROCESS\$1READY\$1FAILED** – O Server SDK do Amazon GameLift Servers não conseguiu entrar em contato com o serviço para informar que o processo está pronto. 
+ **SDK\$1VERSION\$1DETECTION\$1FAILED** – Falha na detecção da versão do SDK. 
+ **STX\$1CALL\$1FAILED — Uma chamada para o componente de back-end do XStx servidor falhou**. 
+ **STX\$1INITIALIZATION\$1FAILED — O componente de back-end do XStx servidor falhou** ao inicializar. 
+ **UNEXPECTED\$1PLAYER\$1SESSION** – Uma sessão de jogador não registrada foi encontrada pelo servidor. 
+ **WEBSOCKET\$1CONNECT\$1FAILURE** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1FORBIDDEN** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1INVALID\$1URL** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1TIMEOUT** 
+ **WEBSOCKET\$1RETRIABLE\$1SEND\$1MESSAGE\$1FAILURE — Falha recuperável ao enviar uma mensagem** ao Serviço. GameLift WebSocket 
+ **WEBSOCKET\$1SEND\$1MESSAGE\$1FAILURE — Falha ao enviar uma mensagem para o serviço**. GameLift WebSocket 
+ **MATCH\$1BACKFILL\$1REQUEST\$1VALIDATION** – A validação da solicitação falhou. 
+ **PLAYER\$1SESSION\$1REQUEST\$1VALIDATION** – A validação da solicitação falhou. 

**EPlayerSessionCreationPolicy**  
Valor de string que indica se a sessão do jogo aceita novos jogadores. Os valores válidos são:   
+ **ACCEPT\$1ALL** – Aceite todas as novas sessões de jogador. 
+ **DENY\$1ALL** – Recuse todas as novas sessões de jogador. 
+ **NOT\$1SET** – A sessão do jogo não está configurada para aceitar ou negar sessões de novos jogadores. 

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

[SDK do servidor C\$1\$1 (Unreal) 5.x para Amazon GameLift Servers -- Tipos de dados](integration-server-sdk5-unreal-datatypes.md)

**Topics**
+ [SDK do servidor C\$1\$1 (Unreal) 5.x para Amazon GameLift Servers -- Tipos de dados](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>

Retorna o número da versão atual do SDK compilado no processo de servidor.

### Sintaxe
<a name="integration-server-sdk5-unreal-getsdkversion-syntax"></a>

```
FGameLiftStringOutcome GetSdkVersion();
```

### Valor de retorno
<a name="integration-server-sdk5-unreal-getsdkversion-return"></a>

Se bem-sucedido, retornará a versão do SDK atual como um objeto [FGameLiftStringOutcome](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-awsstringoutcome). O objeto retornada inclui apenas o número da versão (exemplo, `5.0.0`). Se não for bem-sucedido, retornará uma mensagem de erro.

### Exemplo
<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 o SDK do Amazon GameLift Servers para uma frota EC2 gerenciada. Chame esse método na inicialização, antes que qualquer outra inicialização relacionada ao Amazon GameLift Servers ocorra. Esse método lê os parâmetros do servidor do ambiente host para configurar a comunicação entre o servidor e o serviço do Amazon GameLift Servers. Ele usa um token de idempotência, então você repete essa chamada com segurança quando ela falhar.

### Sintaxe
<a name="integration-server-sdk5-unreal-initsdk-syntax"></a>

```
FGameLiftGenericOutcome InitSDK()
```

### Valor de retorno
<a name="integration-server-sdk5-unreal-initsdk-return"></a>

Se bem-sucedido, retornará um objeto `InitSdkOutcome` indicando que o processo de servidor está pronto para chamar [ProcessReady()](#integration-server-sdk5-unreal-processready). 

### Exemplo
<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 o Amazon GameLift Servers SDK para uma frota Anywhere ou uma frota de contêineres gerenciada. Chame esse método na inicialização, antes que qualquer outra inicialização relacionada ao Amazon GameLift Servers ocorra. Esse método requer parâmetros explícitos do servidor para configurar a comunicação entre o servidor e o serviço do Amazon GameLift Servers. Ele usa um token de idempotência, então você repete essa chamada com segurança quando ela falhar.

### Sintaxe
<a name="integration-server-sdk5-unreal-initsdk-anywhere-syntax"></a>

```
FGameLiftGenericOutcome InitSDK(serverParameters)
```

### Parâmetros
<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 um servidor de jogos em uma frota do Amazon GameLift Servers Anywhere, construa um objeto `ServerParameters` com as seguintes informações:  
+ O URL do WebSocket usado para se conectar ao seu servidor de jogo. 
+ O ID do processo usado para hospedar o servidor de jogos. 
+ O ID do computador que hospeda os processos do seu servidor de jogos. 
+ O ID da frota do Amazon GameLift Servers que contém sua computação Amazon GameLift Servers Anywhere.
+ O token de autorização gerado pela operação do Amazon GameLift Servers. 

### Valor de retorno
<a name="integration-server-sdk5-unreal-initsdk-anywhere-return"></a>

Se bem-sucedido, retornará um objeto `InitSdkOutcome` indicando que o processo de servidor está pronto para chamar [ProcessReady()](#integration-server-sdk5-unreal-processready). 

**nota**  
Se as chamadas para `InitSDK()` estiverem falhando para compilações de jogos implantadas em frotas do Anywhere, verifique o parâmetro `ServerSdkVersion` usado ao criar o recurso de compilação. Você deve definir explicitamente esse valor para a versão do SDK do servidor em uso. O valor padrão desse parâmetro é 4.x, o que não é compatível. Para resolver esse problema, crie uma nova versão e implante-a em uma nova frota.

### Exemplo
<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 o Amazon GameLift Servers de que o processo do servidor está pronto para hospedar sessões do jogo. Chame esse método após invocar [InitSDK()](#integration-server-sdk5-unreal-initsdk). Esse método deve ser chamado somente uma vez por processo.

### Sintaxe
<a name="integration-server-sdk5-unreal-processready-syntax"></a>

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

### Parâmetros
<a name="integration-server-sdk5-unreal-processready-parameter"></a>

**processParameters**  
Um objeto [FProcessParâmetros](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-process) que fornece as seguintes informações sobre o processo do servidor:  
+ Nomes de métodos de retorno de chamada, implementados no código do servidor de jogos, que o serviço Amazon GameLift Servers invoca para se comunicar com o processo de servidor.
+ Número da porta em que o processo de servidor está escutando.
+ Caminho de qualquer arquivo específico da sessão do jogo que você deseja que o Amazon GameLift Servers capture e armazene.

### Valor de retorno
<a name="integration-server-sdk5-unreal-processready-return"></a>

Retorna um resultado genérico que consiste em sucesso ou falha com uma mensagem de erro.

### Exemplo
<a name="integration-server-sdk5-unreal-processready-example"></a>

Este exemplo ilustra as implementações das funções de chamada e delegação [ProcessReady()](#integration-server-sdk5-unreal-processready).

```
//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>

Notifica o Amazon GameLift Servers de que o processo do servidor está sendo encerrado. Chame esse método depois de todas as outras tarefas de limpeza (incluindo o encerramento da sessão ativa do jogo) e antes de encerrar o processo. Dependendo do resultado `ProcessEnding()`, o processo sai com sucesso (0) ou erro (-1) e gera um evento de frota. Se o processo for encerrado com um erro, o evento de frota gerado será `SERVER_PROCESS_TERMINATED_UNHEALTHY`).

### Sintaxe
<a name="integration-server-sdk5-unreal-processending-syntax"></a>

```
FGameLiftGenericOutcome ProcessEnding()
```

### Valor de retorno
<a name="integration-server-sdk5-unreal-processending-return"></a>

Retorna um resultado genérico que consiste em sucesso ou falha com uma mensagem de erro.

### Exemplo
<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 o Amazon GameLift Servers de que o processo do servidor ativou uma sessão do jogo e já está pronto para receber as conexões do jogador. Essa ação deve ser chamada como parte da função de retorno de chamada `onStartGameSession()`, após toda inicialização da sessão do jogo.​

### Sintaxe
<a name="integration-server-sdk5-unreal-activategamesession-syntax"></a>

```
FGameLiftGenericOutcome ActivateGameSession()
```

### Valor de retorno
<a name="integration-server-sdk5-unreal-activategamesession-return"></a>

Retorna um resultado genérico que consiste em sucesso ou falha com uma mensagem de erro.

### Exemplo
<a name="integration-server-sdk5-unreal-activategamesession-example"></a>

Este exemplo mostra chamado `ActivateGameSession()` como parte da função de delegação `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>

Atualiza a capacidade da sessão do jogo atual para aceitar novas sessões de jogador. Atualiza a capacidade da sessão do jogo atual para aceitar novas sessões de jogador.

### Sintaxe
<a name="integration-server-sdk5-unreal-updateplayersessioncreationpolicy-syntax"></a>

```
FGameLiftGenericOutcome UpdatePlayerSessionCreationPolicy(EPlayerSessionCreationPolicy policy)
```

### Parâmetros
<a name="integration-server-sdk5-unreal-updateplayersessioncreationpolicy-parameter"></a>

**playerCreationSessionPolítica**  
Valor de string que indica se a sessão do jogo aceita novos jogadores.   
Os valores válidos são:  
+ **ACCEPT\$1ALL** – Aceite todas as novas sessões de jogador.
+ **DENY\$1ALL** – Recuse todas as novas sessões de jogador.

### Valor de retorno
<a name="integration-server-sdk5-unreal-updateplayersessioncreationpolicy-return"></a>

Retorna um resultado genérico que consiste em sucesso ou falha com uma mensagem de erro.

### Exemplo
<a name="integration-server-sdk5-unreal-updateplayersessioncreationpolicy-example"></a>

Este exemplo define a política de ingresso da sessão do jogo atual para aceitar todos os jogadores.

```
FGameLiftGenericOutcome outcome = GameLiftSdkModule->UpdatePlayerSessionCreationPolicy(Aws::GameLift::Model::EPlayerSessionCreationPolicy::ACCEPT_ALL);
```

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

Recupera o ID da sessão de jogo hospedada pelo processo do servidor ativo. 

Para processos inativos que não são ativados com uma sessão de jogo, a chamada retorna um [FGameLiftError](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-gamelifterror).

### Sintaxe
<a name="integration-server-sdk5-unreal-getgamesessionid-syntax"></a>

```
FGameLiftStringOutcome GetGameSessionId()
```

### Parâmetros
<a name="integration-server-sdk5-unreal-getgamesessionid-parameter"></a>

Essa ação não tem um parâmetro.

### Valor de retorno
<a name="integration-server-sdk5-unreal-getgamesessionid-return"></a>

Se bem-sucedido, retornará o ID da sessão de jogo como um objeto [FGameLiftStringOutcome](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-awsstringoutcome). Se não for bem-sucedido, retornará uma mensagem de erro."

Para processos inativos que não são ativados com uma sessão de jogo, a chamada retorna `Success`=`True` e `GameSessionId`=`""`.

### Exemplo
<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>

Retorna a hora em que um processo do servidor está programado para ser desligado, se essa informação estiver disponível. Um processo do servidor realiza a ação depois de receber um retorno de chamada `onProcessTerminate()` do serviço Amazon GameLift Servers. O Amazon GameLift Servers chama o `onProcessTerminate()` pelos seguintes motivos: 
+ Quando o processo do servidor relatou problemas de saúde ou não respondeu ao Amazon GameLift Servers.
+ Ao encerrar a instância durante um evento de redução.
+ Quando uma instância é encerrada devido a uma [interrupção na instância spot](spot-tasks.md).

### Sintaxe
<a name="integration-server-sdk5-unreal-getterm-syntax"></a>

```
AwsDateTimeOutcome GetTerminationTime()
```

### Valor de retorno
<a name="integration-server-sdk5-unreal-getterm-return"></a>

Se for bem-sucedido, retornará o horário de término como um objeto `AwsDateTimeOutcome`. O valor é o tempo de rescisão, expresso em tiques decorridos desde então `0001 00:00:00`. Por exemplo, o valor da data e hora `2020-09-13 12:26:40 -000Z` é igual aos tiques `637355968000000000`. Se nenhum horário de encerramento estiver disponível, o retornará uma mensagem de erro.

Se o processo não tiver recebido um retorno de chamada ` ProcessParameters.OnProcessTerminate()`, uma mensagem de erro será retornada. Para obter mais informações sobre como desligar um processo do servidor, consulte [Responder a uma notificação de desligamento do processo do servidor](gamelift-sdk-server-api.md#gamelift-sdk-server-terminate).

### Exemplo
<a name="integration-server-sdk5-unreal-getterm-example"></a>

```
AwsDateTimeOutcome TermTimeOutcome = GameLiftSdkModule->GetTerminationTime();
```

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

Notifica o serviço Amazon GameLift Servers de que um jogador com o ID da sessão do jogador especificado se conectou ao processo do servidor e precisa de validação. O Amazon GameLift Servers confirma que o ID da sessão do jogador é válido. Depois que a sessão do jogador é validada, o Amazon GameLift Servers altera o status do slot do jogador de RESERVED para ACTIVE. 

### Sintaxe
<a name="integration-server-sdk5-unreal-acceptplayersession-syntax"></a>

```
FGameLiftGenericOutcome AcceptPlayerSession(const FString& playerSessionId)
```

### Parâmetros
<a name="integration-server-sdk5-unreal-acceptplayersession-parameter"></a>

playerSessionId  
ID exclusivo emitido pela Amazon GameLift Servers quando uma nova sessão de jogador é criada.

### Valor de retorno
<a name="integration-server-sdk5-unreal-acceptplayersession-return"></a>

Retorna um resultado genérico que consiste em sucesso ou falha com uma mensagem de erro. 

### Exemplo
<a name="integration-server-sdk5-unreal-acceptplayersession-example"></a>

Este exemplo trata de uma solicitação de conexão que inclui a validação e a rejeição de uma sessão de jogador invá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>

Notifica o Amazon GameLift Servers de que um jogador se desconectou do processo do servidor. Em resposta, o Amazon GameLift Servers altera o espaço do jogador para disponível. 

### Sintaxe
<a name="integration-server-sdk5-unreal-removeplayersession-syntax"></a>

```
FGameLiftGenericOutcome RemovePlayerSession(const FString& playerSessionId)
```

### Parâmetros
<a name="integration-server-sdk5-unreal-removeplayersession-parameter"></a>

**`playerSessionId`**  
ID exclusivo emitido pela Amazon GameLift Servers quando uma nova sessão de jogador é criada.

### Valor de retorno
<a name="integration-server-sdk5-unreal-removeplayersession-return"></a>

Retorna um resultado genérico que consiste em sucesso ou falha com uma mensagem de erro.

### Exemplo
<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 dados da sessão do jogador, que incluem configurações, metadados da sessão e dados do jogador. Use esse método para obter informações sobre o seguinte:
+ Uma sessão para um jogador
+ Todas as sessões de jogador em uma sessão de jogo
+ Todas as sessões de jogadores associadas a um único ID de jogador

### Sintaxe
<a name="integration-server-sdk5-unreal-describeplayersessions-syntax"></a>

```
FGameLiftDescribePlayerSessionsOutcome DescribePlayerSessions(const FGameLiftDescribePlayerSessionsRequest &describePlayerSessionsRequest)
```

### Parâmetros
<a name="integration-server-sdk5-unreal-describeplayersessions-parameter"></a>

**[FGameLiftDescribePlayerSessionsRequest](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-playersessions)**  
Um objeto [FGameLiftDescribePlayerSessionsRequest](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-playersessions) que descreve quais sessões de jogador recuperar.

### Valor de retorno
<a name="integration-server-sdk5-unreal-describeplayersessions-return"></a>

Se bem-sucedido, retorna um objeto [FGameLiftDescribePlayerSessionsOutcome](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-describeplayersessionsoutcome) que contém um conjunto de objetos de sessão do jogador que atendem aos parâmetros de solicitação.

### Exemplo
<a name="integration-server-sdk5-unreal-describeplayersessions-example"></a>

Este exemplo solicita todas as sessões de jogador conectadas ativamente a uma sessão de jogo especificada. Ao omitir *NextToken*e definir o valor *limite* como 10, Amazon GameLift Servers retorna os primeiros registros de sessão de 10 jogadores que correspondam à solicitação.

```
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>

Envia uma solicitação para encontrar novos jogadores para os slots abertos em uma sessão de jogo criada com o FlexMatch. Para obter mais informações, consulte o [recurso de alocação do FlexMatch](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html).

Esta ação é assíncrona. Se novos jogadores forem combinados, o Amazon GameLift Servers entregará os dados atualizados do marcador de jogos usando a função de retorno de chamada `OnUpdateGameSession()`.

Um processo de servidor pode ter apenas uma solicitação de alocação de correspondência ativa por vez. Para enviar uma nova solicitação, primeiro chame [StopMatchBackfill()](#integration-server-sdk5-unreal-stopmatchbackfill) para cancelar a solicitação original.

### Sintaxe
<a name="integration-server-sdk5-unreal-startmatchbackfill-syntax"></a>

```
FGameLiftStringOutcome StartMatchBackfill (FStartMatchBackfillRequest &startBackfillRequest);
```

### Parâmetros
<a name="integration-server-sdk5-unreal-startmatchbackfill-parameter"></a>

**[FStartMatchBackfillRequest](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-startmatchbackfillrequest)**  
Um StartMatchBackfillRequest objeto que comunica as seguintes informações:  
+ ID do tíquete a ser atribuído à solicitação de alocação. Essas informações são opcionais; se nenhum ID for fornecido, o Amazon GameLift Servers gerará um.
+ O marcador de jogos para o qual a solicitação é enviada. O ARN completo da configuração é necessário. Esse valor está nos dados do marcador de jogos da sessão de jogo.
+ O ID da sessão de jogo a ser preenchida.
+ Os dados disponíveis de marcação para os jogadores atuais da sessão do jogo.

### Valor de retorno
<a name="integration-server-sdk5-unreal-startmatchbackfill-return"></a>

Retorna um objeto `StartMatchBackfillOutcome` com o ID do tíquete de alocação de correspondência ou um falha com uma mensagem de erro. 

### Exemplo
<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 uma solicitação de alocação de correspondência ativa. Para obter mais informações, consulte o [recurso de alocação do FlexMatch](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html).

### Sintaxe
<a name="integration-server-sdk5-unreal-stopmatchbackfill-syntax"></a>

```
FGameLiftGenericOutcome StopMatchBackfill (FStopMatchBackfillRequest &stopBackfillRequest);
```

### Parâmetros
<a name="integration-server-sdk5-unreal-stopmatchbackfill-parameter"></a>

**[FStopMatchBackfillRequest](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-stopmatchbackfillrequest)**  
Um StopMatchBackfillRequest objeto identificando o tíquete de matchmaking a ser cancelado:   
+ O ID do ticket atribuído à solicitação de alocação.
+ O marcador de jogo que recebeu a solicitação de alocação.
+ A sessão do jogo associada à solicitação de alocação.

### Valor de retorno
<a name="integration-server-sdk5-unreal-stopmatchbackfill-return"></a>

Retorna um resultado genérico que consiste em sucesso ou falha com uma mensagem de erro.

### Exemplo
<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 o caminho para o certificado TLS usado para criptografar a conexão de rede entre seu recurso de computação do Amazon GameLift Servers Anywhere e o Amazon GameLift Servers. Você poderá usar o caminho do certificado ao registrar seu dispositivo computacional em uma frota do Amazon GameLift Servers Anywhere. Para obter mais informações, consulte, [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html).

### Sintaxe
<a name="integration-server-sdk5-unreal-getcomputecertificate-syntax"></a>

```
FGameLiftGetComputeCertificateOutcome FGameLiftServerSDKModule::GetComputeCertificate()
```

### Valor de retorno
<a name="integration-server-sdk5-unreal-getcomputecertificate-return"></a>

Retorna um objeto `GetComputeCertificateResponse` contendo o seguinte: 
+ CertificatePath: o caminho para o certificado TLS em seu recurso computacional. 
+ HostName: o nome do host do seu recurso computacional.

### Exemplo
<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 as credenciais do perfil do IAM que autorizam o Amazon GameLift Servers a interagir com outros Serviços da AWS. Para obter mais informações, consulte [Conecte seu servidor de jogos Amazon GameLift Servers hospedado a outros AWS recursos](gamelift-sdk-server-resources.md).

### Sintaxe
<a name="integration-server-sdk5-unreal-getfleetrolecredentials-syntax"></a>

```
FGameLiftGetFleetRoleCredentialsOutcome FGameLiftServerSDKModule::GetFleetRoleCredentials(const FGameLiftGetFleetRoleCredentialsRequest &request)
```

### Parâmetros
<a name="integration-server-sdk5-unreal-getfleetrolecredentials-parameters"></a>

[FGameLiftGetFleetRoleCredentialsRequest](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsrequest)

### Valor de retorno
<a name="integration-server-sdk5-unreal-getfleetrolecredentials-return"></a>

Informa um objeto [FGameLiftGetFleetRoleCredentialsOutcome](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsoutcome).

### Exemplo
<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 o SDK do servidor de jogos do Amazon GameLift Servers da memória. Como melhor prática, chame esse método antes `ProcessEnding()` e depois de encerrar o processo. Se você estiver usando uma frota Anywhere e não estiver encerrando os processos do servidor após cada sessão de jogo, chame `Destroy()` e reinicialize `InitSDK()` antes de notificar o Amazon GameLift Servers de que o processo está pronto para hospedar uma sessão de jogo com `ProcessReady()`.

### Sintaxe
<a name="integration-server-sdk5-unreal-ref-destroy-syntax"></a>

```
FGameLiftGenericOutcome Destroy();
```

### Parâmetros
<a name="integration-server-sdk5-unreal-ref-destroy-parameter"></a>

Não há parâmetros.

### Valor de retorno
<a name="integration-server-sdk5-unreal-ref-destroy-return"></a>

Retorna um resultado genérico que consiste em sucesso ou falha com uma mensagem de erro.

### Exemplo
<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);
    }
}
```