

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# サーバー SDK 5.x for Amazon GameLift Servers
<a name="reference-serversdk"></a>

このセクションには、SDK 5.x for Amazon GameLift Servers のリファレンスドキュメントが含まれます。サーバー SDK には、ゲームサーバーが Amazon GameLift Servers サービスとやり取りするために使用するコア機能があります。例えば、ゲームサーバーはサービスからプロンプトを受け取り、ゲームセッションを開始および停止し、定期的にゲームセッションステータスをサービスに更新します。ホスティング用にゲームサーバーをデプロイする前に、サーバー SDK と統合します。

このサーバー SDK リファレンスを使用して、ホスティング向けのカスタムマルチプレイヤーゲームサーバーと Amazon GameLift Servers を統合します。統合プロセスのガイダンスについては、「[サーバー SDK を使用して、Amazon GameLift Servers をゲームサーバーに追加します。](gamelift-sdk-server-api.md)」を参照してください。

サーバー SDK for Amazon GameLift Servers の最新メジャーバージョンは 5.x です。以下のホスティング機能では、バージョン 5.x を使用する必要があります。
+ Amazon GameLift Servers Anywhere
+ Unreal Engine と Unity 用の Amazon GameLift Servers プラグイン

**注記**  
サーバー SDK バージョン 4.x 以前を使用する必要がある場合は、[バージョン 4 以前のサーバー SDK for Amazon GameLift Servers の使用](reference-serversdk4.md) のドキュメントとダウンロード情報を参照してください。

**Topics**
+ [サーバー SDK 5 for Amazon GameLift Servers の更新](#reference-serversdk5-about)
+ [サーバー SDK 5.x への移行 Amazon GameLift Servers](reference-serversdk5-migration.md)
+ [C\$1\$1 サーバー SDK 5.x for Amazon GameLift Servers -- アクション](integration-server-sdk5-cpp-actions.md)
+ [C\$1 サーバー SDK 5.x for Amazon GameLift Servers -- アクション](integration-server-sdk5-csharp-actions.md)
+ [Go サーバー SDK for Amazon GameLift Servers – アクション](integration-server-sdk-go-actions.md)
+ [C\$1\$1 (Unreal) サーバー SDK 5.x for Amazon GameLift Servers -- アクション](integration-server-sdk5-unreal-actions.md)

## サーバー SDK 5 for Amazon GameLift Servers の更新
<a name="reference-serversdk5-about"></a>

ホストされたゲームサーバーは、サーバー SDK for Amazon GameLift Servers を使用して Amazon GameLift Servers サービスと通信し、プレイヤーのゲームセッションを開始および管理します。最新バージョンの Amazon GameLift Servers サーバー SDK 5 では、Amazon GameLift Servers の新しい機能が改善されサポートされています。ゲームサーバービルドで現在 Amazon GameLift Servers サーバー SDK 4 以前を使用している場合は、このトピックのガイダンスに従ってゲームを更新します。

Amazon GameLift Servers サーバー SDK バージョン 5.0.0 以降には、以下の更新が含まれています。
+ 拡張言語 – ライブラリは、C\$1\$1、C\$1、Go の言語で使用できます。Unreal Engine で使用する C\$1\$1 ライブラリを構築できます。
+ ゲームエンジンプラグインサポート – Unreal Engine および Unity 用の Amazon GameLift Servers スタンドアロンプラグインには、Amazon GameLift Servers サーバー SDK 5 ライブラリが必要です。これらのプラグインは、ゲームをホスティング用に Amazon GameLift Servers に統合、テスト、デプロイするためのガイド付きワークフローを提供します。「[Unity 用 Amazon GameLift Servers プラグイン (サーバー SDK 5.x)](unity-plug-in.md)」および「[Unreal Engine 用 Amazon GameLift Servers プラグイン](unreal-plugin.md)」のドキュメントを参照してください。
+ Amazon GameLift Servers Anywhere サポート – Anywhere フリートでは、Amazon GameLift Servers 機能 (マッチメーキングを含む) を使用するように独自のホスティングリソースを設定できます。Amazon GameLift Servers エージェントを追加して、ゲームセッションのライフサイクル管理を自動化します。オンプレミスハードウェアでの本番ホスティングには Anywhere フリートを使用するか、高速反復ゲーム開発用のテスト環境を設定します。「[Anywhere ホスティング](gamelift-intro-flavors.md#gamelift-intro-flavors-hosting-anywhere)」および「[Amazon GameLift Servers エージェント](https://github.com/aws/amazon-gamelift-agent)」を参照してください。
+ テストツールの更新 – Amazon GameLift Servers Anywhere 機能を使用すると、ゲームに対してローカル環境またはクラウドベースのテスト環境を設定できます。Amazon GameLift Servers エージェントの有無にかかわらず、テストをセットアップします。これらのツールは Amazon GameLift Servers Local を置き換えます。「[Amazon GameLift Servers Anywhereでローカルテストを設定する](integration-testing.md)」を参照してください。
+ C\$1 用の統合.NET ソリューション – C\$1 サーバー SDK 5.1\$1 は、.NET Framework 4.6.2 (4.6.1 からアップグレード) と.NET 6.0 を単一のソリューションをサポートします。.NET 標準 2.1 は Unity で構築したライブラリで利用可能です。
+ 新しい `Compute` リソース – この新しいリソースは、さまざまなタイプのホスティングリソースを組み合わせています。これには、クラウドベースのホスティングリソース (マネージド EC2 またはコンテナフリート) と、顧客が管理するホスティングリソース (Anywhere フリート) が含まれます。更新は以下のとおりです。
  + `Compute` リソースの新しい API コールには、[ListCompute()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_ListCompute.html), [DescribeCompute()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_DescribeCompute.html) および [GetComputeAccess()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetComputeAccess.html) が含まれます。これらのアクションは、あらゆる種類の Amazon GameLift Servers フリートのホスティングリソース情報を返します。一般的に、サーバー SDK 5.x を使用するゲームサーバーを持つフリートの場合、コンピューティング固有のアクションを使用してインスタンス固有のアクションを置き換えます。さらに、これらのアクションは、Amazon GameLift Servers エージェント: [RegisterCompute ()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)、[DeregisterCompute ()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_DeregisterCompute.html)、および [GetComputeAuthToken ()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetComputeAuthToken.html) を使用しない Anywhere フリートで使用されます。
  + CloudWatch ディメンション `FleetId`、`Location`、`ComputeType` を持つ新しいメトリック `ActiveCompute`。このメトリックスは以前のメトリクス `ActiveInstances` に取って代わります。
+ リモートアクセス用の Amazon EC2 Systems Manager (SSM) – セキュリティを強化するには、Amazon GameLift Servers マネージドフリートのインスタンスに接続するときに SSH の代わりに SSM を使用します。「[フリートインスタンスに接続する](fleets-remote-access.md)」を参照してください。

# サーバー SDK 5.x への移行 Amazon GameLift Servers
<a name="reference-serversdk5-migration"></a>

サーバー SDK バージョン 5.x を使用するようにゲームプロジェクトを更新するには、以下の変更を行います。

**注記**  
サーバー SDK バージョン 4.x 以前を引き続き使用する必要がある場合は、[バージョン 4 以前のサーバー SDK for Amazon GameLift Servers の使用](reference-serversdk4.md) のドキュメントとダウンロード情報を参照してください。SDK バージョン 4.0.2 の場合は、[公式の GitHub リリース](https://github.com/amazon-gamelift/amazon-gamelift-servers-csharp-server-sdk/releases)からダウンロードできます。

1. 開発環境の最新のサーバー SDK for Amazon GameLift Servers パッケージを取得します** [[サイトをダウンロード](https://aws.amazon.com/gamelift/servers/getting-started-sdks/)]**。ダウンロードしたパッケージとバージョンの `Readme` ファイルのインストール手順に従います。ゲームプロジェクトでサーバー SDK を使用する方法については、以下の手順を参照してください。
   + [C\$1\$1、C\$1、または Go を使用する開発環境の場合](gamelift-sdk-server-api.md)
   + [Unreal Engine プロジェクトの場合 (C\$1\$1 サーバー SDK for Unreal ライブラリのみ)](integration-engines-setup-unreal.md)
   + [Unity プロジェクトの場合 (C\$1 サーバー SDK for Unity ライブラリのみ)](integration-engines-unity-using.md)
   + [Unreal Engine 用 Amazon GameLift Servers プラグインで使用する場合](unreal-plugin.md)
   + [Unity 用 Amazon GameLift Servers プラグインで使用する場合](unity-plug-in.md)

1. 次のようにサーバーコードを更新します。
   + サーバーコードコールバック関数を `onCreateGameSession()` から `onStartGameSession()` に変更します。
   + 必要に応じて `InitSDK()` 入力を更新します。
     + ゲームサーバービルドを Amazon GameLift Servers マネージド EC2 フリートまたは Amazon GameLift Servers エージェントを搭載した Anywhere フリートにデプロイする場合: 

       パラメータがない `InitSDK()` の呼び出し ([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))。この呼び出しは、コンピューティング環境と Amazon GameLift Servers サービスへの WebSocket 接続を設定します。
     + ゲームサーバービルドを Amazon GameLift Servers エージェントなしで Anywhere フリートにデプロイする予定がある場合:

       サーバーパラメータ ([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)) を使用して `InitSDK()` を呼び出します。ゲームサーバープロセスは、これらのパラメータを使用して Amazon GameLift Servers サービスとの接続を確立します。

1. ゲームサーバービルドやその他のホストされたアプリケーションが、実行中に他の AWS リソースと通信する場合は、アプリケーションがそれらのリソースにアクセスする方法を変更する必要があります。`AssumeRoleCredentials` の使用を、新しいサーバー SDK アクション`GetFleetRoleCredentials()` (ゲームサーバー用) に置き換えるか、または共有認証情報 (その他のアプリケーション用)を使用してください。この変更の実装方法の詳細については、「[Amazon GameLift Servers ホストされたゲームサーバーを他の AWS リソースに接続する](gamelift-sdk-server-resources.md)」を参照してください。

1. プロジェクトがサーバー SDK アクション `GetInstanceCertificate()` を呼び出して TLS 証明書を取得した場合は、代わりに新しい `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. ゲームビルドを Amazon GameLift Servers にアップロードする場合 ([upload-build](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/gamelift/upload-build.html) や [CreateBuild()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateBuild.html) など)、`ServerSdkVersion` パラメータを使用中の 5.x バージョンに設定します (このパラメータは現在デフォルトは 4.0.2 です)。このパラメータは、ゲームサーバービルドの実際のサーバー SDK ライブラリと一致する必要があります。アップロードされたゲームサーバービルドに間違ったバージョンを指定すると、そのビルドで作成するフリートは失敗します。「[Amazon GameLift Servers のゲームサーバービルドを作成する](gamelift-build-cli-uploading.md)」を参照してください。

   次の例は、サーバー SDK バージョンを指定する方法を示しています。

   ```
   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. 「[フリートインスタンスに接続する](fleets-remote-access.md)」で説明されているとおり、スクリプトを使用してマネージドフリートにリモート接続する場合は、新しいプロセスを使用するようにスクリプトを更新します。

# C\$1\$1 サーバー SDK 5.x for Amazon GameLift Servers -- アクション
<a name="integration-server-sdk5-cpp-actions"></a>

サーバー SDK 5.x リファレンスを使用して、Amazon GameLift Servers でホスティングするマルチプレイヤーゲームを統合します。統合プロセスのガイダンスについては、「[サーバー SDK を使用して、Amazon GameLift Servers をゲームサーバーに追加します。](gamelift-sdk-server-api.md)」を参照してください。

**注記**  
このトピックでは、C\$1\$1 標準ライブラリ (`std`) を使用して構築するときに利用できる Amazon GameLift Servers C\$1\$1 API について説明します。特に、このドキュメントは `-DDGAMELIFT_USE_STD=1` オプションを使用してコンパイルするコードが対象です。

# C\$1\$1 サーバー SDK 5.x for Amazon GameLift Servers -- データ型
<a name="integration-server-sdk5-cpp-datatypes"></a>

Amazon GameLift Servers C\$1\$1 サーバー SDK 5.x リファレンスを使用して、Amazon GameLift Servers でホスティングするマルチプレイヤーゲームを統合します。統合プロセスのガイダンスについては、「[サーバー SDK を使用して、Amazon GameLift Servers をゲームサーバーに追加します。](gamelift-sdk-server-api.md)」を参照してください。

**注記**  
このトピックでは、C\$1\$1 標準ライブラリ (`std`) を使用して構築するときに利用できる Amazon GameLift Servers C\$1\$1 API について説明します。特に、このドキュメントは `-DDGAMELIFT_USE_STD=1` オプションを使用してコンパイルするコードが対象です。

[C\$1\$1 サーバー SDK 5.x for Amazon GameLift Servers -- アクション](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)
+ [プレイヤー](#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)
+ [InitSDKOutcome](#integration-server-sdk5-cpp-datatypes-initsdkoutcome)
+ [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror)
+ [列挙型](#integration-server-sdk5-cpp-dataypes-enums)

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

ゲームセッション中に生成されたファイルを識別するオブジェクトで、ゲームセッション終了時に Amazon GameLift Servers でアップロードして保存します。ゲームサーバーは、[ProcessReady()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-processready) 呼び出しで `ProcessParameters` オブジェクトの一部として `LogParameters` を Amazon GameLift Servers に提供します。


|  |  | 
| --- |--- |
|  **プロパティ**  | 説明 | 
| LogPaths |  Amazon GameLift Servers で将来のアクセスに備えて保存するゲームサーバーログファイルへのディレクトリパスのリスト。サーバープロセスは各ゲームセッション中にこれらのファイルを生成します。ファイルのパスと名前はゲームサーバーで定義し､ルートゲームビルドディレクトリに保存します。 ログパスは絶対パスである必要があります。例えば、ゲームビルドによって `MyGame\sessionLogs\` などのパスに保存されるゲームセッションログの場合、パスは `c:\game\MyGame\sessionLogs` (Windows インスタンスの場合) となります。 **タイプ**: `std:vector<std::string>` **必須:** いいえ  | 

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

このデータ型を使用して、ゲームサーバーのメトリクス収集とクラッシュレポートを設定します。ゲームサーバーは、[InitMetrics()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-initmetrics) 呼び出しで `MetricsParameters` を Amazon GameLift Servers に送信します。


|  |  | 
| --- |--- |
|  **プロパティ**  | 説明 | 
| StatsdHost |  メトリクス収集用の StatsD サーバーのホスト名または IP アドレス。 **タイプ**: `std::string` **必須:** いいえ  | 
| StatsdPort |  メトリクス収集用の StatsD サーバーのポート番号です。 **タイプ**: `int` **必須:** いいえ  | 
| CrashReporterHost |  クラッシュレポーターサーバーのホスト名または IP アドレスです。 **タイプ**: `std::string` **必須:** いいえ  | 
| CrashReporterPort |  クラッシュレポーターサーバーのポート番号です。 **タイプ**: `int` **必須:** いいえ  | 
| FlushIntervalMs |  メトリクスデータをサーバーにフラッシュする際のミリ秒単位の間隔です。 **タイプ**: `int` **必須:** いいえ  | 
| MaxPacketSize |  サーバーに送信されるメトリクスパケットの最大サイズ (バイト) です。 **タイプ**: `int` **必須:** いいえ  | 

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

このデータ型には、[ProcessReady()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-processready) の中で Amazon GameLift Servers に送信されるパラメータのセットが含まれます。


|  |  | 
| --- |--- |
|  **プロパティ**  | 説明 | 
| LogParameters | ゲームセッション中に生成されるファイルへのディレクトリパスを持つオブジェクトです。Amazon GameLift Servers はこれらのファイルをコピーして保存し、後で参照できるようにします。**タイプ**: `Aws::GameLift::Server::LogParameters`**必須:** いいえ | 
| OnHealthCheck | Amazon GameLift Servers がサーバープロセスにヘルスステータスレポートを要求するために呼び出すコールバック関数です。Amazon GameLift Servers はこの関数を 60 秒ごとに呼び出し、応答を最大 60 秒間待機します。サーバープロセスは正常であれば TRUE を返し、正常でない場合は FALSE を返します。応答が返されない場合、Amazon GameLift Servers はサーバープロセスを正常ではないと記録します。**タイプ**: `std::function<bool()> onHealthCheck`**必須:** いいえ | 
| OnProcessTerminate | Amazon GameLift Servers がサーバープロセスを強制的にシャットダウンするために呼び出すコールバック関数です。この関数を呼び出すと、Amazon GameLift Servers はサーバープロセスがシャットダウンするまで最大 5 分間待機し、サーバープロセスがシャットダウンする前に [ProcessEnding()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-processending) 呼び出しで応答するのを待ちます。**タイプ**: `std::function<void()> onProcessTerminate`**必須:** はい | 
| OnStartGameSession | Amazon GameLift Servers が新しいゲームセッションをアクティブ化するために呼び出すコールバック関数。Amazon GameLift Servers は、クライアントリクエスト [CreateGameSession](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateGameSession.html) に応じてこの関数を呼び出します。コールバック関数は [GameSession](#integration-server-sdk5-cpp-dataypes-gamesession) オブジェクトを渡します。**タイプ**: `const std::function<void(Aws::GameLift::Model::GameSession)> onStartGameSession`**必須:** はい | 
| OnUpdateGameSession | 更新されたゲームセッションオブジェクトをサーバープロセスに渡すために、Amazon GameLift Servers が呼び出すコールバック関数。Amazon GameLift Servers は、更新されたマッチメーカーデータを提供するために、マッチバックフィルリクエストが処理された際にこの関数を呼び出します。これは、[GameSession](#integration-server-sdk5-cpp-dataypes-gamesession) オブジェクト、ステータス更新 (updateReason) そして、マッチバックフィルチケット ID を渡します。**タイプ**: `std::function<void(Aws::GameLift::Server::Model::UpdateGameSession)> onUpdateGameSession`**必須:** いいえ | 
| ポート | サーバープロセスが新しいプレイヤーの接続をリスンするポート番号。値は、このゲームサーバービルドをデプロイするすべてのフリートで設定されているポート番号の範囲に含まれる必要があります。このポート番号は、ゲームセッションオブジェクトとプレイヤーセッションオブジェクトに含まれ、ゲームセッションがサーバープロセスに接続するときに使用します。**タイプ**: `Integer`**必須:** はい | 

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

このデータ型はゲームセッションオブジェクトに更新されます。これには、ゲームセッションが更新された理由と、バックフィルを使用してゲームセッション内のプレイヤーセッションを埋めるための関連するバックフィルチケット ID が含まれます。


| プロパティ | **説明** | 
| --- | --- | 
| GameSession | [GameSession](#integration-server-sdk5-cpp-dataypes-gamesession) オブジェクト。GameSession オブジェクトにはゲームセッションを説明するプロパティが含まれています。**タイプ**: `Aws::GameLift::Server::GameSession`**必須:** はい | 
| UpdateReason | ゲームセッションが更新されている理由。**タイプ**: `Aws::GameLift::Server::UpdateReason`**必須:** はい | 
| BackfillTicketId | ゲームセッションの更新を試みるバックフィルチケットの ID。**タイプ**: `std::string`**必須:** いいえ | 

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

このデータ型はゲームセッションの詳細を提供します。


| プロパティ | **説明** | 
| --- | --- | 
| GameSessionId |  ゲームセッションの一意の識別子。ゲームセッション ARN の形式 は `arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>` です。 **タイプ**: `std::string` **必須:** いいえ  | 
| 名前 |  ゲームセッションについて説明するラベル。 **タイプ**: `std::string` **必須:** いいえ  | 
| FleetId |  ゲームセッションが実行されているフリートの一意の識別子。 **タイプ**: `std::string` **必須:** いいえ  | 
| MaximumPlayerSessionCount |  ゲームセッションへのプレーヤー接続の最大数。 **タイプ**: `int` **必須:** いいえ  | 
| ポート |  ゲームセッションのポート番号。Amazon GameLift Servers ゲームサーバーに接続するには、アプリに IP アドレスとポート番号の両方が必要です。 **タイプ**: `in` **必須:** いいえ  | 
| IpAddress |  ゲームセッションの IP アドレス。Amazon GameLift Servers ゲームサーバーに接続するには、アプリに IP アドレスとポート番号の両方が必要です。 **タイプ**: `std::string` **必須:** いいえ  | 
| GameSessionData |  単一の文字列値としてフォーマットされたカスタムゲームセッションプロパティのセット。 **タイプ**: `std::string` **必須:** いいえ  | 
| MatchmakerData |  ゲームセッションの作成に使用されたマッチメーキングプロセスに関する情報。JSON 構文で、文字列としてフォーマットされています。使用されたマッチメーキング設定に加えて、プレイヤー属性やチーム割り当てなど、マッチに割り当てられた全プレイヤーに関するデータが含まれます。 **タイプ**: `std::string` **必須:** いいえ  | 
| GameProperties |  ゲームセッションのカスタムプロパティのセットで、キーと値のペアとしてフォーマットされます。これらのプロパティは、新しいゲームセッションを開始するリクエストとともに渡されます。 **タイプ**: `std :: vector < GameProperty >` **必須:** いいえ  | 
| DnsName |  ゲームセッションを実行しているインスタンスに割り当てられた DNS 識別子。値の形式は次のとおりです。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/gameliftservers/latest/developerguide/integration-server-sdk5-cpp-datatypes.html) TLS 対応フリートで実行しているゲームセッションに接続する場合、IP アドレスではなく DNS 名を使用する必要があります。 **タイプ**: `std::string` **必須:** いいえ  | 

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

ゲームサーバープロセスが、Amazon GameLift Servers サービスへの接続を確立するために使用する情報。ゲームサーバービルドが、Amazon GameLift Servers エージェントを使用しない Anywhere フリートまたはコンテナフリートにデプロイされる場合にのみ、[InitSDK()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-initsdk-anywhere) を呼び出す際にこれらのパラメータを含めます。他のすべてのデプロイシナリオでは、パラメータなしで [InitSDK()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-initsdk) が呼び出されます。


| プロパティ | **説明** | 
| --- | --- | 
| webSocketUrl |  Amazon GameLift Servers Anywhere コンピューティングリソース用に [https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html) を実行すると、`GameLiftServerSdkEndpoint` Amazon GameLift Servers が返されます。 **タイプ**: `std::string` **必須:** はい   | 
| processId |  ゲームをホストするサーバープロセスに登録された固有の識別子。 **タイプ**: `std::string` **必須:** はい  | 
| hostId | HostID はコンピューティングを登録したときに使用される ComputeName です。詳細については、「[RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)」を参照してください。**タイプ**: `std::string`**必須:** はい | 
| fleetId | コンピューティングが登録されているフリートの固有識別子。詳細については、「[RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)」を参照してください。**タイプ**: `std::string`**必須:** はい | 
| authToken | Amazon GameLift Servers によって生成され、サーバーを Amazon GameLift Servers に対して認証するための認証トークン。詳細については、「[GetComputeAuthToken](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetComputeAuthToken.html)」を参照してください。**タイプ**: `std::string`**必須:** はい | 

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

マッチメーキングバックフィルリクエストの作成に使用される情報。ゲームサーバーは、この情報を [StartMatchBackfill()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-startmatchbackfill) 呼び出しで Amazon GameLift Servers に送信します。


| プロパティ | **説明** | 
| --- | --- | 
| GameSessionArn |  一意のゲームセッション識別子。API オペレーション `[GetGameSessionId](https://docs.aws.amazon.com/gameliftservers/latest/developerguide/integration-server-sdk5-cpp-actions.html#integration-server-sdk5-cpp-getgamesessionid)` は ARN 形式の識別子を返します。 **タイプ**: `std::string` **必須:** はい  | 
| MatchmakingConfigurationArn |  このリクエストに使用されるマッチメーカーの ARN 形式の一意な識別子。元のゲームセッションののマッチメーカー ARN は、マッチメーカーデータプロパティのゲームセッションオブジェクトにあります。マッチメーカーデータの詳細については「[マッチメーカーデータの処理](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-server.html#match-server-data.html)」を参照してください。 **タイプ**: `std::string` **必須:** はい  | 
| プレイヤー |  ゲームセッションに参加しているすべてのプレイヤーを表すデータのセット。マッチメーカーはこの情報を使用して、現在のプレイヤーとマッチする新しいプレイヤーを検索します。 **タイプ**: `std::vector<Player>` **必須:** はい  | 
| TicketId |  マッチメーキングまたはバックフィルリクエストチケットの一意の識別子。値を指定しない場合、Amazon GameLift Servers ソリューションが値を生成します。この識別子を使用してマッチバックフィルチケットのステータスを追跡したり、必要に応じてリクエストをキャンセルしたりします。 **タイプ**: `std::string` **必須:** いいえ  | 

## プレイヤー
<a name="integration-server-sdk5-cpp-dataypes-player"></a>

このデータ型はマッチメーキングのプレイヤーを表します。マッチメーキングリクエストを開始すると、プレイヤーにはプレイヤー ID、属性、必要に応じてレイテンシーデータが含まれます。マッチが成立すると、Amazon GameLift Servers がチーム情報を追加します。


| プロパティ | **説明** | 
| --- | --- | 
| LatencyInMS |  プレイヤーがロケーションに接続したときに発生するレイテンシーの量を示すミリ秒単位の値のセット。 このプロパティを使用すると、プレーヤーはリストに表示されている場所でのみマッチングされます。マッチメーカーにプレイヤーレイテンシーを評価するルールがある場合、プレイヤーはレイテンシーを報告しないとマッチングされません。 **タイプ**: `Dictionary<string,int>` **必須:** いいえ  | 
| PlayerAttributes |  マッチメーキングに使用するプレイヤー情報を含むキーと値のペアの集合。プレイヤー属性キーは、マッチメーキングルールセットで使用されている PlayerAttributes と一致する必要があります。 プレイヤー属性の詳細については、「[AttributeValue](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_AttributeValue.html)」を参照してください。 **タイプ**: `std::map<std::string,AttributeValue>` **必須:** いいえ  | 
| PlayerId |  プレイヤーを表す一意の識別子。 **タイプ**: `std::string` **必須:** いいえ  | 
| チーム |  マッチでプレーヤーが割り当てられるチームの名前。チーム名はマッチメーキングルールセットで定義します。 **タイプ**: `std::string` **必須:** いいえ  | 

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

取得するプレイヤーセッションを指定するオブジェクト。サーバープロセスは、この情報を [DescribePlayerSessions()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-describeplayersessions) 呼び出しで Amazon GameLift Servers に提供します。


| プロパティ | **説明** | 
| --- | --- | 
| GameSessionId |  一意のゲームセッション識別子。このパラメータを使用して、指定したゲームセッションのすべてのプレイヤーセッションをリクエストします。 ゲームセッション ID の形式は `arn:aws:gamelift:<region>::gamesession/fleet-<fleet ID>/<ID string>` です。`GameSessionID` はカスタム ID 文字列または **タイプ**: `std::string` **必須:** いいえ  | 
| PlayerSessionId |  プレイヤーセッションを表す一意の識別子。このパラメータを使用して、特定の 1 つのプレイヤーセッションをリクエストします。 **タイプ**: `std::string` **必須:** いいえ  | 
| PlayerId |  プレイヤーの一意識別子。このパラメータを使用して、特定の 1 人のプレイヤーに対するすべてのプレイヤーセッションをリクエストします。「[プレイヤー ID を生成する](player-sessions-player-identifiers.md)」を参照してください。 **タイプ**: `std::string` **必須:** いいえ  | 
| PlayerSessionStatusFilter |  結果をフィルタリングするプレイヤーセッションステータス。可能なプレイヤーセッションステータスには以下が含まれます。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/gameliftservers/latest/developerguide/integration-server-sdk5-cpp-datatypes.html) **タイプ**: `std::string` **必須:** いいえ  | 
| NextToken |  結果の次のページの先頭を示すトークン。結果セットの先頭を指定するには、値を指定しないでください。プレイヤーセッション ID を提供する場合、このパラメータは無視されます。 **タイプ**: `std::string` **必須:** いいえ  | 
| 制限 |  返される結果の最大数。プレイヤーセッション ID を提供する場合、このパラメータは無視されます。 **タイプ**: `int` **必須:** いいえ  | 

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

マッチメーキングバックフィルリクエストのキャンセルに使用される情報。ゲームサーバーは、この情報を [StopMatchBackfill()](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-stopmatchbackfill) 呼び出しで Amazon GameLift Servers サービスに送信します。


| プロパティ | **説明** | 
| --- | --- | 
| GameSessionArn |  キャンセルされるリクエストの一意のゲームセッション識別子。 **タイプ**: `char[]` **必須:** いいえ  | 
| MatchmakingConfigurationArn |  このリクエストが送信されたマッチメーカーの一意の識別子。 **タイプ**: `char[]` **必須:** いいえ  | 
| TicketId |  キャンセルされるバックフィルリクエストチケットの一意の識別子。 **タイプ**: `char[]` **必須:** いいえ  | 

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

これらの値を [プレイヤー](#integration-server-sdk5-cpp-dataypes-player) 属性のキーと値のペアで使用します。このオブジェクトでは、文字列、数値、文字列配列、データマップのいずれかの有効なデータ型を使用して属性値を指定できます。各 `AttributeValue` オブジェクトは `S`、`N`、`SL`、または `SDM` の使用可能なプロパティのうちの 1 つだけを使用する必要があります。


| プロパティ | 説明 | 
| --- | --- | 
| AttrType |  属性値のタイプを指定します。可能な属性値のタイプは次のとおりです。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/gameliftservers/latest/developerguide/integration-server-sdk5-cpp-datatypes.html) **必須:** いいえ  | 
| S |  文字列の属性値を表します。 **タイプ**: `std::string` **必須:** いいえ  | 
| いいえ |  数値の属性値を表します。 **タイプ**: `double` **必須:** いいえ  | 
| SL |  文字列の属性値の配列を表します。 **タイプ**: `std::vector<std::string>` **必須:** いいえ  | 
| SDM |  文字列キーと二重値のディクショナリを表します。 **タイプ**: `std::map<std::string, double>` **必須:** いいえ  | 

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

このデータ型により、ゲームサーバーは他の AWS リソースへのアクセスが制限されます。詳細については、[Amazon GameLift Servers 用に IAM サービスロールをセットアップする](setting-up-role.md) を参照してください。


| プロパティ | **説明** | 
| --- | --- | 
| RoleArn | リソースへの制限付きアクセスを拡張するサービスロールの Amazon AWS リソースネーム (ARN)。**タイプ**: `std::string`**必須:** いいえ | 
| RoleSessionName |  AWS Security Token Service [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) セッションを一意に識別するために使用できるロールセッション名。この名前は、CloudTrail などの監査ログに公開されます。**タイプ**: `std::string`  **必須:** いいえ  | 

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

このデータ型はアクションの結果で、以下のプロパティを持つオブジェクトを生成します。


| プロパティ | 説明 | 
| --- | --- | 
| 結果 |  アクションの結果。 **タイプ**: `long` **必須:** いいえ  | 
| ResultWithOwnership |   アクションの結果を rvalue としてキャストし、呼び出し元のコードがオブジェクトの所有権を取得できるようにします。 **タイプ**: `long&&` **必須:** いいえ  | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **必須:** いいえ  | 

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

このデータ型はアクションの結果で、以下のプロパティを持つオブジェクトを生成します。


| プロパティ | 説明 | 
| --- | --- | 
| 結果 |  アクションの結果。 **タイプ**: `std::string` **必須:** いいえ  | 
| ResultWithOwnership |   アクションの結果を rvalue としてキャストし、呼び出し元のコードがオブジェクトの所有権を取得できるようにします。 **タイプ**: `long&&` **必須:** いいえ  | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **必須:** いいえ  | 

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

このデータ型はアクションの結果で、以下のプロパティを持つオブジェクトを生成します。


| プロパティ | 説明 | 
| --- | --- | 
| 結果 |  アクションの結果。 **タイプ**: [DescribePlayerSessionsResult](#integration-server-sdk5-cpp-datatypes-describeplayersessionsresult) **必須:** いいえ   | 
| ResultWithOwnership |   アクションの結果を rvalue としてキャストし、呼び出し元のコードがオブジェクトの所有権を取得できるようにします。 **タイプ**: `Aws::GameLift::Server::Model::DescribePlayerSessionsResult&&` **必須:** いいえ  | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **必須:** いいえ  | 

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

リクエストに一致する各プレイヤーセッションのプロパティを含むオブジェクトの集合。


| プロパティ | 説明 | 
| --- | --- | 
| NextToken |  結果の次の順次ページの先頭を示すトークン。このオペレーションの以前の呼び出しで返されたトークンを使用します。結果セットの先頭で開始するには、値を指定しないでください。プレイヤーセッション ID を指定した場合、このパラメータは無視されます。 **タイプ**: `std::string` **必須:** はい  | 
| PlayerSessions |  **タイプ**: `IList<PlayerSession>` **必須:**   | 
| ResultWithOwnership |   アクションの結果を rvalue としてキャストし、呼び出し元のコードがオブジェクトの所有権を取得できるようにします。 **タイプ**: `std::string&&` **必須:** いいえ  | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **必須:** いいえ  | 

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

このデータ型はアクションの結果で、以下のプロパティを持つオブジェクトを生成します。


| プロパティ | 説明 | 
| --- | --- | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **必須:** いいえ  | 

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

このデータ型は非同期の一般的な結果です。以下のプロパティがあります。


| プロパティ | 説明 | 
| --- | --- | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **必須:** いいえ  | 

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

このデータ型は、Amazon GameLift Servers がゲームサーバーに渡すプレイヤーセッションを表します。詳細については、「[PlayerSession](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_PlayerSession.html)」を参照してください。


| プロパティ | 説明 | 
| --- | --- | 
| CreationTime |  **タイプ**: `long` **必須:** いいえ  | 
| FleetId |  **タイプ**: `std::string` **必須:** いいえ  | 
| GameSessionId |  **タイプ**: `std::string` **必須:** いいえ  | 
| IpAddress |  **タイプ**: `std::string` **必須:** いいえ  | 
| PlayerData |  **タイプ**: `std::string` **必須:** いいえ  | 
| PlayerId |  **タイプ**: `std::string` **必須:** いいえ  | 
| PlayerSessionId |  **タイプ**: `std::string` **必須:** いいえ  | 
| ポート |  **タイプ**: `int` **必須:** いいえ  | 
| ステータス |  結果をフィルタリングするプレイヤーセッションステータス。PlayerSessionId または PlayerId が提供された場合、PlayerSessionStatusFilter はレスポンスに影響を与えません。 **型:** `PlayerSessionStatus` enum。以下に示しているのは、可能な値です。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/gameliftservers/latest/developerguide/integration-server-sdk5-cpp-datatypes.html) **必須:** いいえ  | 
| TerminationTime |  **タイプ**: `long` **必須:** いいえ  | 
| DnsName |  **タイプ**: `std::string` **必須:** いいえ  | 

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

このデータ型はアクションの結果で、以下のプロパティを持つオブジェクトを生成します。


| プロパティ | 説明 | 
| --- | --- | 
| 結果 |  アクションの結果。 **タイプ**: [StartMatchBackfillResult](#integration-server-sdk5-cpp-datatypes-startmatchbackfillresult) **必須:** いいえ  | 
| ResultWithOwnership |   アクションの結果を rvalue としてキャストし、呼び出し元のコードがオブジェクトの所有権を取得できるようにします。 **タイプ**: `StartMatchBackfillResult&&` **必須:** いいえ  | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **必須:** いいえ  | 

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

このデータ型はアクションの結果で、以下のプロパティを持つオブジェクトを生成します。


| プロパティ | 説明 | 
| --- | --- | 
| TicketId |  マッチメーキングチケットの一意の識別子。ここでチケット ID を指定しない場合、Amazon GameLift Servers が UUID 形式の ID を自動生成します。この識別子を使用して、マッチバックフィルチケットのステータスを追跡し、マッチ結果を取得します。 **タイプ**: `std::string` **必須:** いいえ  | 

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

このデータ型はアクションの結果で、以下のプロパティを持つオブジェクトを生成します。


| プロパティ | 説明 | 
| --- | --- | 
| 結果 |  アクションの結果。 **タイプ**: [GetComputeCertificateResult](#integration-server-sdk5-cpp-datatypes-getcomputecertificateresult) **必須:** いいえ   | 
| ResultWithOwnership |   アクションの結果を rvalue としてキャストし、呼び出し元のコードがオブジェクトの所有権を取得できるようにします。 **タイプ**: `Aws::GameLift::Server::Model::GetComputeCertificateResult&&` **必須:** いいえ  | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **必須:** いいえ  | 

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

コンピューティングの TLS 証明書へのパスとコンピューティングのホスト名。


| プロパティ | 説明 | 
| --- | --- | 
| CertificatePath |  コンピューティングリソースの TLS 証明書へのパス。Amazon GameLift Serversマネージドフリートを使用する場合、このパスには次の内容が含まれます。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/gameliftservers/latest/developerguide/integration-server-sdk5-cpp-datatypes.html) **タイプ**: `std::string` **必須:** いいえ  | 
| ComputeName |  コンピューティングリソースの名前。 **タイプ**: `std::string` **必須:** いいえ  | 

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

このデータ型はアクションの結果で、以下のプロパティを持つオブジェクトを生成します。


| プロパティ | 説明 | 
| --- | --- | 
| 結果 |  アクションの結果。 **タイプ**: [GetFleetRoleCredentialsResult](#integration-server-sdk5-cpp-datatypes-getfleetrolecredentialsresult) **必須:** いいえ   | 
| ResultWithOwnership |   アクションの結果を rvalue としてキャストし、呼び出し元のコードがオブジェクトの所有権を取得できるようにします。 **タイプ**: `Aws::GameLift::Server::Model::GetFleetRoleCredentialsResult` **必須:** いいえ  | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **必須:** いいえ  | 

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


| プロパティ | 説明 | 
| --- | --- | 
| AccessKeyId |   AWS へのアクセスを認証して提供するためのアクセスキー ID。 **タイプ**: `string` **必須:** いいえ  | 
| AssumedRoleId |  サービスロールが属するユーザーの ID。 **タイプ**: `string` **必須:** いいえ  | 
| AssumedRoleUserArn |  サービスロールが属するユーザーの Amazon リソースネーム (ARN)。 **タイプ**: `string` **必須:** いいえ  | 
| 有効期限 |  セッション認証情報の有効期限が切れるまでの時間。 **タイプ**: `DateTime` **必須:** いいえ  | 
| SecretAccessKey |  認証のためのシークレットアクセスキー ID。 **タイプ**: `string` **必須:** いいえ  | 
| SessionToken |   AWS リソースとやり取りする現在のアクティブなセッションを識別するトークン。 **タイプ**: `string` **必須:** いいえ  | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [GameLiftError](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-gamelifterror) **必須:** いいえ  | 

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

**注記**  
`InitSDKOutcome` は `std` フラグを付けて SDK を構築した場合にのみ返されます。`nostd` フラグを付けて構築すると、代わりに [GenericOutcome](#integration-server-sdk5-cpp-datatypes-genericoutcome) が返されます。


| プロパティ | 説明 | 
| --- | --- | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [GameLiftError](#integration-server-sdk5-cpp-datatypes-gamelifterror) **必須:** いいえ  | 

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


| プロパティ | 説明 | 
| --- | --- | 
| ErrorType |  エラーのタイプ。 **型:** `GameLiftErrorType` [enum](#integration-server-sdk5-cpp-dataypes-enums)。 **必須:** いいえ   | 
| ErrorName |  エラータイプの名前。  **タイプ**: `std::string`  **必須:** いいえ   | 
| ErrorMessage |  エラーメッセージです。  **タイプ**: `std::string`  **必須:** いいえ   | 

## 列挙型
<a name="integration-server-sdk5-cpp-dataypes-enums"></a>

サーバー SDK for Amazon GameLift Servers (C\$1\$1) で定義されている列挙体は、次のとおりです。

**GameLiftErrorType**  
エラータイプを示す文字列値。有効な値を次に示します。  
+ **BAD\$1REQUEST\$1EXCEPTION** 
+ **GAMESESSION\$1ID\$1NOT\$1SET** - ゲームセッション ID が設定されていません。
+ **INTERNAL\$1SERVICE\$1EXCEPTION** 
+ **LOCAL\$1CONNECTION\$1FAILED** - Amazon GameLift Serversへのローカル接続に失敗しました。
+ **NETWORK\$1NOT\$1INITIALIZED** - ネットワークは初期化されていません。
+ **SERVICE\$1CALL\$1FAILED** – AWS サービスへの呼び出しに失敗しました。
+ **WEBSOCKET\$1CONNECT\$1FAILURE** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1FORBIDDEN** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1INVALID\$1URL** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1TIMEOUT** 
+ **ALREADY\$1INITIALIZED** - Amazon GameLift Servers サーバーまたはクライアントはすでに Initialize() で初期化されています。
+ **FLEET\$1MISMATCH** - ターゲットフリートが gameSession または playerSession のフリートと一致しません。
+ **GAMELIFT\$1CLIENT\$1NOT\$1INITIALIZED** - Amazon GameLift Servers クライアントは初期化されていません。
+ **GAMELIFT\$1SERVER\$1NOT\$1INITIALIZED** - Amazon GameLift Servers クライアントは初期化されていません。
+ **GAME\$1SESSION\$1ENDED\$1FAILED** - サーバー SDK for Amazon GameLift Servers はサービスにアクセスしてゲームセッションが終了したことを報告できませんでした。
+ **GAME\$1SESSION\$1NOT\$1READY** - Amazon GameLift Servers サーバーのゲームセッションがアクティブ化されませんでした。
+ **GAME\$1SESSION\$1READY\$1FAILED** - サーバー SDK for Amazon GameLift Servers は、サービスにアクセスしてゲームセッションの準備が完了したことを報告できませんでした。
+ **INITIALIZATION\$1MISMATCH** - Server:: Initialize() の後にクライアントメソッドが呼び出されました。その逆も同様です。
+ **NOT\$1INITIALIZED** - Amazon GameLift Servers サーバーまたはクライアントは Initialize() で初期化されていません。
+ **NO\$1TARGET\$1ALIASID\$1SET** - ターゲットの aliasId が設定されていません。
+ **NO\$1TARGET\$1FLEET\$1SET** - ターゲットフリートが設定されていません。
+ **PROCESS\$1ENDING\$1FAILED** - サーバー SDK for Amazon GameLift Servers はサービスにアクセスしてプロセスの終了を報告できませんでした。
+ **PROCESS\$1NOT\$1ACTIVE** - サーバープロセスはまだアクティブではなく、GameSession にバインドされていないため、PlayerSessions を受け入れたり処理したりすることはできません。
+ **PROCESS\$1NOT\$1READY** - サーバープロセスをまだアクティブ化する準備ができていません。
+ **PROCESS\$1READY\$1FAILED** - サーバー SDK for Amazon GameLift Servers はサービスにアクセスしてプロセスの準備が完了したことを報告できませんでした。
+ **SDK\$1VERSION\$1DETECTION\$1FAILED** - SDK バージョン検出に失敗しました。
+ **STX\$1CALL\$1FAILED** - XStx サーバーのバックエンドコンポーネントへの呼び出しが失敗しました。
+ **STX\$1INITIALIZATION\$1FAILED** - XStx サーバーのバックエンドコンポーネントが初期化に失敗しました。
+ **UNEXPECTED\$1PLAYER\$1SESSION** - 未登録のプレイヤーセッションがサーバーによって検出されました。
+ **WEBSOCKET\$1CONNECT\$1FAILURE** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1FORBIDDEN** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1INVALID\$1URL** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1TIMEOUT** 
+ **WEBSOCKET\$1RETRIABLE\$1SEND\$1MESSAGE\$1FAILURE** - GameLift Service WebSocket にメッセージを送信する際に再試行可能な障害が発生しました。
+ **WEBSOCKET\$1SEND\$1MESSAGE\$1FAILURE** - GameLift Service WebSocket へのメッセージの送信に失敗しました。
+ **MATCH\$1BACKFILL\$1REQUEST\$1VALIDATION** - リクエストの検証に失敗しました。
+ **PLAYER\$1SESSION\$1REQUEST\$1VALIDATION** - リクエストの検証に失敗しました。

**PlayerSessionCreationPolicy**  
ゲームセッションで新しいプレイヤーを承諾するかどうかを示す文字列値。有効な値を次に示します。  
+ **ACCEPT\$1ALL** - すべての新しいプレイヤーセッションを承諾します。
+ **DENY\$1ALL** - すべての新しいプレイヤーセッションを拒否します。
+ **NOT\$1SET** - ゲームセッションは、新規プレイヤーセッションを受け入れたり拒否したりするように設定されていません。

[C\$1\$1 サーバー SDK 5.x for Amazon GameLift Servers -- データ型](integration-server-sdk5-cpp-datatypes.md)

**Topics**
+ [C\$1\$1 サーバー SDK 5.x for Amazon GameLift Servers -- データ型](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>

サーバープロセスに組み込まれた SDK の現在のバージョン番号を返します。

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

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

### 戻り値
<a name="integration-server-sdk5-cpp-getsdkversion-return"></a>

成功した場合、[AwsStringOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-awsstringoutcome) オブジェクトとして現在の SDK バージョンを返します。返されるオブジェクトには、バージョン番号が含まれます (例: `5.0.0`)。成功しなかった場合、エラーメッセージを返します。

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

サーバーパフォーマンスデータを収集およびレポートするためのメトリクスシステムを初期化します。最良の結果を得るには、[InitSDK()](#integration-server-sdk5-cpp-initsdk) の前にこのメソッドを呼び出して、SDK の初期化中にメトリクス収集を有効にします。

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

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

### パラメータ
<a name="integration-server-sdk5-cpp-initmetrics-parameter"></a>

[MetricsParameters](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-metricsparameters) (オプション)  
メトリクス収集の設定パラメータ。指定しない場合は、環境変数で上書きできる既定値を使用します。

### 戻り値
<a name="integration-server-sdk5-cpp-initmetrics-return"></a>

成功すると、成功を示す [GenericOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-genericoutcome) オブジェクトが返されます。成功しなかった場合、エラーメッセージを返します。

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

Amazon GameLift Servers SDK を初期化します。他のAmazon GameLift Servers 関連の初期化が実行される前に、起動時にこのメソッドを呼び出します。このアクションは、ホスト環境からサーバーパラメータを読み取り、ゲームサーバープロセスと Amazon GameLift Servers サービス間の通信を設定します。べき等性トークンを使用するため、失敗したときにこの呼び出しを安全に再試行できます。

ゲームサーバービルドを Amazon GameLift Servers エージェントなしで Amazon GameLift Servers Anywhere フリートまたはコンテナフリートにデプロイする場合は、[InitSDK()](#integration-server-sdk5-cpp-initsdk-anywhere) を呼び出し、サーバーパラメータのセットを指定します。

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

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

### 戻り値
<a name="integration-server-sdk5-cpp-initsdk-return"></a>

サーバープロセスが [ProcessReady()](#integration-server-sdk5-cpp-processready) を呼び出す準備ができているかどうかを示す [InitSDKOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-initsdkoutcome) オブジェクトを返します。

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

Amazon GameLift Servers SDK を初期化します。他のAmazon GameLift Servers 関連の初期化が実行される前に、起動時にこのメソッドを呼び出します。このアクションには、ゲームサーバープロセスと Amazon GameLift Servers サービス間の通信を設定するサーバーパラメータのセットが必要です。べき等性トークンを使用するため、失敗したときにこの呼び出しを安全に再試行できます。

ゲームサーバービルドを Amazon GameLift Servers マネージド EC2 フリート、または Amazon GameLift Servers エージェントを使用する Amazon GameLift Servers Anywhere フリート、またはコンテナフリートにデプロイする場合は、サーバーパラメータなしで [InitSDK()](#integration-server-sdk5-cpp-initsdk) を呼び出します。

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

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

### パラメータ
<a name="integration-server-sdk5-cpp-initsdk-anywhere-parameter"></a>

[ServerParameters](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-serverparameters)  
Amazon GameLift Servers Anywhere フリートのゲームサーバーを初期化するには、次の情報を含む `ServerParameters` オブジェクトを作成します。  
+ ゲームサーバーへの接続に使用される WebSocket の URL。
+ ゲームサーバーのホストに使用されるプロセスの ID。
+ ゲームサーバープロセスをホスティングするコンピューティングの ID。
+ Amazon GameLift Servers Anywhere コンピューティングを含む Amazon GameLift Servers フリートの ID。
+ Amazon GameLift Servers オペレーションによって生成された認可トークン。

### 戻り値
<a name="integration-server-sdk5-cpp-initsdk-anywhere-return"></a>

サーバープロセスが [ProcessReady()](#integration-server-sdk5-cpp-processready) を呼び出す準備ができているかどうかを示す [InitSDKOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-initsdkoutcome) オブジェクトを返します。

**注記**  
Anywhere フリートにデプロイされたゲームビルドに対して `InitSDK()` への呼び出しが失敗する場合は、ビルドリソースの作成時に使用した `ServerSdkVersion` パラメータを確認してください。この値は、使用中のサーバー SDK バージョンに明示的に設定する必要があります。このパラメータのデフォルト値は 4.x で、互換性がありません。この問題を解決するには、新しいビルドを作成して新しいフリートにデプロイします。

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

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>

サーバープロセスがゲームセッションをホストする準備ができたことを Amazon GameLift Servers に通知します。[InitSDK()](#integration-server-sdk5-cpp-initsdk) を呼び出した後にこのメソッドを呼び出します。このメソッドは、プロセスごとに 1 回だけ呼び出す必要があります。

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

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

### パラメータ
<a name="integration-server-sdk5-cpp-processready-parameter"></a>

**processParameters**  
サーバープロセスに関する以下の情報を伝える [ProcessParameters](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-process) オブジェクト。  
+ サーバープロセスと通信するために Amazon GameLift Servers サービスが呼び出す、ゲームサーバーコードで実装されたコールバックメソッドの名前。
+ サーバープロセスがリッスンするポートの番号。
+ Amazon GameLift Servers でキャプチャして保存するゲームセッション固有のファイルへのパス。

### 戻り値
<a name="integration-server-sdk5-cpp-processready-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

この例では、[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>

サーバープロセスがゲームセッションをホストする準備ができたことを Amazon GameLift Servers サービスに通知します。サーバープロセスがゲームセッションをホストする準備ができたら、このメソッドを呼び出します。パラメータで、Amazon GameLift Servers が特定の状況で呼び出すコールバック関数の名前を指定します。ゲームサーバーコードは、これらの関数を実装する必要があります。

この呼び出しは非同期です。同期呼び出しを実行するには、[ProcessReady()](#integration-server-sdk5-cpp-processready) を使用します。詳細については、「[サーバープロセスを初期化する](gamelift-sdk-server-api.md#gamelift-sdk-server-initialize)」を参照してください。

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

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

### パラメータ
<a name="integration-server-sdk5-cpp-processreadyasync-parameter"></a>

**processParameters**  
サーバープロセスに関する以下の情報を伝える [ProcessParameters](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-process) オブジェクト。  
+ サーバープロセスと通信するために Amazon GameLift Servers サービスが呼び出す、ゲームサーバーコードで実装されたコールバックメソッドの名前。
+ サーバープロセスがリッスンするポートの番号。
+ Amazon GameLift Servers でキャプチャして保存するゲームセッション固有のファイルへのパス。
必須: はい

### 戻り値
<a name="integration-server-sdk5-cpp-processreadyasync-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

サーバープロセスが終了していることを Amazon GameLift Servers に通知します。アクティブなゲームセッションのシャットダウンを含むその他すべてのクリーンアップタスクの後そして、プロセスを終了する前にこのメソッドを呼び出します。`ProcessEnding()` の結果に応じて、プロセスは成功 (0) またはエラー (-1) で終了し、フリートイベントが生成されます。プロセスがエラーで終了した場合、生成されるフリートイベントは `SERVER_PROCESS_TERMINATED_UNHEALTHY` です。

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

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

### 戻り値
<a name="integration-server-sdk5-cpp-processending-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

この例では、サーバープロセスを終了する前に、成功またはエラーの終了コードで `ProcessEnding()` と `Destroy()` を呼び出します。

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

サーバープロセスがゲームセッションをアクティブにし、プレイヤーの接続を受ける準備ができていることを Amazon GameLift Servers に通知します。このアクションは、すべてのゲームセッションの初期化の後、`onStartGameSession()` コールバック関数の一部として呼び出されます。

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

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

### 戻り値
<a name="integration-server-sdk5-cpp-activategamesession-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

この例では、`onStartGameSession()` 委任関数の一部として呼び出された `ActivateGameSession()` を示しています。

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

現在のゲームセッションの機能を更新し、新しいプレイヤーセッションを承諾します。ゲームセッションは、新しいプレイヤーセッションをすべて受け入れるか拒否するかを設定できます。

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

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

### パラメータ
<a name="integration-server-sdk5-cpp-updateplayersessioncreationpolicy-parameter"></a>

**playerCreationSessionPolicy**  
型: `PlayerSessionCreationPolicy` [enum](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-enums) 値。  
必須: はい

### 戻り値
<a name="integration-server-sdk5-cpp-updateplayersessioncreationpolicy-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

この例は、現在のゲームセッションの参加ポリシーを、すべてのプレイヤーを受け入れるように設定します。

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

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

アクティブなサーバープロセスにホストされたゲームセッションの ID を取得します。

ゲームセッションでアクティブ化されていないアイドル状態のプロセスの場合、呼び出しは [GameLiftError](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-gamelifterror) を返します。

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

```
AwsStringOutcome GetGameSessionId()
```

### パラメータ
<a name="integration-server-sdk5-cpp-getgamesessionid-parameter"></a>

このアクションにはパラメータがありません。

### 戻り値
<a name="integration-server-sdk5-cpp-getgamesessionid-return"></a>

成功した場合、ゲームセッション ID を [AwsStringOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-awsstringoutcome) オブジェクトとして返します。成功しなかった場合、エラーメッセージを返します。

ゲームセッションでまだアクティブ化されていないアイドルプロセスの場合、呼び出しは `Success`=`True` および `GameSessionId`=`""` を返します。

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

終了時刻が判る場合に、サーバープロセスがシャットダウンを予定している時刻を返します。サーバープロセスは、Amazon GameLift Servers から`onProcessTerminate()` コールバックを受信した後、アクションを実行します。Amazon GameLift Servers は、次の理由で `onProcessTerminate()` を呼び出します。
+ サーバープロセスが健全性異常を報告したり、Amazon GameLift Servers に応答しなかった場合。
+ スケールダウンイベント中にインスタンスを終了する場合。
+ [スポットインスタンスの中断](spot-tasks.md)によりインスタンスが終了した場合。

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

```
AwsDateTimeOutcome GetTerminationTime()
```

### 戻り値
<a name="integration-server-sdk5-cpp-getterm-return"></a>

成功した場合、終了時刻を `AwsDateTimeOutcome` オブジェクトとして返します。値は終了時間で、`0001 00:00:00` 以降の経過ティックで表現されます。例えば、日付時刻の値 `2020-09-13 12:26:40 -000Z` は、`637355968000000000` ティックに等しくなります。終了時間がない場合は、エラーメッセージを返します。

プロセスが ProcessParameters.OnProcessTerminate() コールバックを受信していない場合、エラーメッセージが返されます。サーバープロセスのシャットダウンの詳細については、「[サーバープロセスのシャットダウン通知に応答する](gamelift-sdk-server-api.md#gamelift-sdk-server-terminate)」を参照してください。

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

指定されたプレイヤーセッション ID を持つプレイヤーがサーバープロセスに接続し、検証が必要であることを、Amazon GameLift Servers に通知します。Amazon GameLift Servers は、プレイヤーセッション ID が有効であることを検証します。検証できたら、Amazon GameLift Servers はプレーヤースロットの状態を RESERVED から ACTIVE に変更します。

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

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

### パラメータ
<a name="integration-server-sdk5-cpp-acceptplayersession-parameter"></a>

playerSessionId  
新しいプレイヤーセッションが作成されたときに Amazon GameLift Servers によって発行される一意の ID。

### 戻り値
<a name="integration-server-sdk5-cpp-acceptplayersession-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

この例では、無効なプレイヤーセッション ID の検証と拒否を含む接続リクエストを処理します。

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

プレイヤーがサーバープロセスから切断されたことを Amazon GameLift Servers に通知します。それに応じて、Amazon GameLift Servers はプレイヤースロットを利用可能に変更します。

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

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

### パラメータ
<a name="integration-server-sdk5-cpp-removeplayersession-parameter"></a>

**`playerSessionId`**  
新しいプレイヤーセッションが作成されたときに Amazon GameLift Servers によって発行される一意の ID。

### 戻り値
<a name="integration-server-sdk5-cpp-removeplayersession-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

設定、セッションメタデータ、プレイヤーデータを含む、プレイヤーセッションデータを取得します。このメソッドを使用して、以下に関する情報を取得します。
+ シングルプレイヤーセッション
+ ゲームセッションのすべてのプレイヤーセッション
+ 1 つのプレイヤー ID に関連付けられているすべてのプレイヤーセッション

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

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

### パラメータ
<a name="integration-server-sdk5-cpp-describeplayersessions-parameter"></a>

**[DescribePlayerSessionsRequest](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-playersessions)**  
取得するプレイヤーセッションを記述する [DescribePlayerSessionsRequest](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-playersessions) オブジェクト。

### 戻り値
<a name="integration-server-sdk5-cpp-describeplayersessions-return"></a>

成功した場合は、リクエストのパラメータに適合したプレイヤーセッションオブジェクトのセットを含む [DescribePlayerSessionsOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-describeplayersessionsoutcome) オブジェクトを返します。

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

この例は、指定したゲームセッションにアクティブに接続されているすべてのプレイヤーセッションのリクエストします。*NextToken* を省略し、*Limit* 値を 10 に設定すると、Amazon GameLift Servers は、リクエストに一致するプレイヤーセッションレコードの最初の 10 個を返します。

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

FlexMatch で作成されたゲームセッションの空きスロット用に新規プレイヤーを検索するリクエストを送信します。詳細については、「[FlexMatch バックフィル機能](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html)」を参照してください。

このアクションは非同期です。新規プレイヤーが正常にマッチングされると、Amazon GameLift Servers はコールバック関数 `OnUpdateGameSession()` を使用して更新済みマッチメーカーデータを送信します。

サーバープロセスではアクティブなマッチバックフィルリクエストは一度に 1 つだけです。新しいリクエストを送信するには、まず [StopMatchBackfill()](#integration-server-sdk5-cpp-stopmatchbackfill) を呼び出して元のリクエストをキャンセルする必要があります。

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

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

### パラメータ
<a name="integration-server-sdk5-cpp-startmatchbackfill-parameter"></a>

**[StartMatchBackfillRequest](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-startmatchbackfillrequest)**  
次の情報を通信する StartMatchBackfillRequest オブジェクト。  
+ バックフィルリクエストに割り当てるチケット ID。この情報はオプションです。ID が指定されていない場合は Amazon GameLift Servers が ID を 1 つ生成します。
+ リクエストを送信するマッチメーカー。完全な設定 ARN が必要です。この値はゲームセッションのマッチメーカーデータに含まれています。
+ バックフィルするゲームセッションの ID。
+ ゲームセッションの現在のプレイヤーに利用可能なマッチメーキングデータ。

### 戻り値
<a name="integration-server-sdk5-cpp-startmatchbackfill-return"></a>

[StartMatchBackfillOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-startmatchbackfilloutcome) オブジェクトを、マッチバックフィルチケット ID またはエラーメッセージを伴うエラーとともに返します。

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

アクティブなマッチバックフィルリクエストをキャンセルします。詳細については、「[FlexMatch バックフィル機能](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html)」を参照してください。

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

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

### パラメータ
<a name="integration-server-sdk5-cpp-stopmatchbackfill-parameter"></a>

**[StopMatchBackfillRequest](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-stopmatchbackfillrequest)**  
キャンセルするマッチメーキングチケットを識別する StopMatchBackfillRequest オブジェクト:   
+ バックフィルリクエストに割り当てるチケット ID。
+ バックフィルリクエストが送信されたマッチメーカー。
+ バックフィルリクエストに関連付けられたゲームセッション。

### 戻り値
<a name="integration-server-sdk5-cpp-stopmatchbackfill-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

Amazon GameLift Servers Anywhere コンピューティングリソースと Amazon GameLift Servers 間のネットワーク接続を暗号化するために使用される TLS 証明書へのパスを取得します。この証明書パスは、コンピューティングデバイスを Amazon GameLift Servers Anywhere フリートに登録するときに使用できます。詳細については、「[RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)」を参照してください。

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

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

### 戻り値
<a name="integration-server-sdk5-cpp-getcomputecertificate-return"></a>

戻り値は [GetComputeCertificateOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-getcomputecertificateoutcome)。

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

Amazon GameLift Servers が他のとやり取りすることを許可する IAM ロール認証情報を取得します。詳細については、「[Amazon GameLift Servers ホストされたゲームサーバーを他の AWS リソースに接続する](gamelift-sdk-server-resources.md)」を参照してください。

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

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

### パラメータ
<a name="integration-server-sdk5-cpp-getfleetrolecredentials-parameters"></a>

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

### 戻り値
<a name="integration-server-sdk5-cpp-getfleetrolecredentials-return"></a>

[GetFleetRoleCredentialsOutcome](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-datatypes-getfleetrolecredentialsoutcome) オブジェクトを返します。

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

この例は、監査目的でオプションの `RoleSessionName` 値を使用して認証情報セッションに名前を割り当てる方法を示しています。ロールセッション名を指定しない場合、デフォルト値「*[fleet-id]*-*[host-id]*」が使用されます。

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

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

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

Amazon GameLift Servers ゲームサーバー SDK をメモリから解放します。ベストプラクティスとして、`ProcessEnding()` の後、かつプロセスの終了前にこのメソッドを呼び出します。Anywhere フリートを使用していて、ゲームセッションのたびにサーバープロセスを終了しない場合は、`Destroy()`、`InitSDK()` の順に呼び出して再初期化してから、`ProcessReady()` でゲームセッションをホストする準備ができたことを Amazon GameLift Servers に通知します。

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

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

### パラメータ
<a name="integration-server-sdk5-cpp-ref-destroy-parameter"></a>

パラメータはありません。

### 戻り値
<a name="integration-server-sdk5-cpp-ref-destroy-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

# C\$1 サーバー SDK 5.x for Amazon GameLift Servers -- アクション
<a name="integration-server-sdk5-csharp-actions"></a>

サーバー SDK 5.x リファレンスを使用して、Amazon GameLift Servers でホスティングするマルチプレイヤーゲームを統合します。統合プロセスのガイダンスについては、「[サーバー SDK を使用して、Amazon GameLift Servers をゲームサーバーに追加します。](gamelift-sdk-server-api.md)」を参照してください。Unity 用 Amazon GameLift Servers プラグインを使用している場合は、「[Unity 用 Amazon GameLift Servers プラグイン (サーバー SDK 5.x)](unity-plug-in.md)」も参照してください。

# C\$1 サーバー SDK 5.x for Amazon GameLift Servers -- データ型
<a name="integration-server-sdk5-csharp-datatypes"></a>

Amazon GameLift Servers C\$1 サーバー SDK 5.x リファレンスを使用して、Amazon GameLift Servers でホスティングするマルチプレイヤーゲームを統合します。統合プロセスのガイダンスについては、「[サーバー SDK を使用して、Amazon GameLift Servers をゲームサーバーに追加します。](gamelift-sdk-server-api.md)」を参照してください。Unity 用 Amazon GameLift Servers プラグインを使用している場合は、「[Unity 用 Amazon GameLift Servers プラグイン (サーバー SDK 5.x)](unity-plug-in.md)」も参照してください。

[C\$1 サーバー SDK 5.x for Amazon GameLift Servers -- アクション](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)
+ [プレイヤー](#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)
+ [列挙型](#integration-server-sdk5-csharp-datatypes-enums)

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

このデータ型は、ゲームセッション中に生成されたファイルのうち、ゲームセッション終了時に Amazon GameLift Servers にアップロードするファイルを識別するのに使用されます。ゲームサーバーは、[ProcessReady()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-processready) 呼び出しで `LogParameters to` Amazon GameLift Servers を送信します。


|  |  | 
| --- |--- |
|  **プロパティ**  | 説明 | 
| LogPaths |  Amazon GameLift Servers で将来のアクセスに備えて保存するゲームサーバーログファイルへのディレクトリパスのリスト。サーバープロセスは各ゲームセッション中にこれらのファイルを生成します。ファイルのパスと名前はゲームサーバーで定義し､ルートゲームビルドディレクトリに保存します。 ログパスは絶対パスである必要があります。例えば、ゲームビルドによって `MyGame\sessionLogs\` などのパスに保存されるゲームセッションログの場合、パスは `c:\game\MyGame\sessionLogs` (Windows インスタンスの場合) となります。 **タイプ**: `List<String>` **必須:** いいえ  | 

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

このデータ型を使用して、ゲームサーバーのメトリクス収集とクラッシュレポートを設定します。ゲームサーバーは、[InitMetrics()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-initmetrics) 呼び出しで `MetricsParameters` を Amazon GameLift Servers に送信します。


|  |  | 
| --- |--- |
|  **プロパティ**  | 説明 | 
| StatsdHost |  メトリクス収集用の StatsD サーバーのホスト名または IP アドレス。 **タイプ**: `String` **必須:** いいえ  | 
| StatsdPort |  メトリクス収集用の StatsD サーバーのポート番号です。 **タイプ**: `Integer` **必須:** いいえ  | 
| CrashReporterHost |  クラッシュレポーターサーバーのホスト名または IP アドレスです。 **タイプ**: `String` **必須:** いいえ  | 
| CrashReporterPort |  クラッシュレポーターサーバーのポート番号です。 **タイプ**: `Integer` **必須:** いいえ  | 
| FlushIntervalMs |  メトリクスデータをサーバーにフラッシュする際のミリ秒単位の間隔です。 **タイプ**: `Integer` **必須:** いいえ  | 
| MaxPacketSize |  サーバーに送信されるメトリクスパケットの最大サイズ (バイト) です。 **タイプ**: `Integer` **必須:** いいえ  | 

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

このデータ型には、[ProcessReady()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-processready)呼び出しの中で Amazon GameLift Servers に送信されるパラメータのセットが含まれます。


|  |  | 
| --- |--- |
|  **プロパティ**  | 説明 | 
| LogParameters | ゲームセッションログファイルへのディレクトリパスのリストを含むオブジェクト。**タイプ**: `Aws::GameLift::Server::LogParameters`**必須:** はい | 
| OnHealthCheck | Amazon GameLift Servers サービスがサーバープロセスにヘルスステータスレポートをリクエストするために呼び出すコールバック関数名。Amazon GameLift Servers は、この関数を 60 秒ごとに呼び出します。この関数を呼び出した後、Amazon GameLift Servers はレスポンスを 60 秒ほど待ちます。レスポンスがなければ、Amazon GameLift Servers はサーバープロセスを異常と記録します。**タイプ**: `void OnHealthCheckDelegate()`**必須:** はい | 
| OnProcessTerminate | Amazon GameLift Serversがサーバープロセスを強制的にシャットダウンするために呼び出すコールバック関数です。この関数を呼び出すと、Amazon GameLift Servers はサーバープロセスがシャットダウンするために 5 分間待ち、サーバープロセスをシャットダウンする前に [ProcessEnding()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-processending) 呼び出しで応答します。**タイプ**: `void OnProcessTerminateDelegate()`**必須:** はい | 
| OnStartGameSession | Amazon GameLift Serversサービスが新しいゲームセッションを開始するために呼び出すコールバック関数の名前。Amazon GameLift Servers は、クライアントリクエスト [CreateGameSession](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateGameSession.html) に応じて、この関数を呼び出します。コールバック関数は [GameSession](#integration-server-sdk5-csharp-dataypes-gamesession) オブジェクトを取得します。**タイプ**: `void OnStartGameSessionDelegate(GameSession)`**必須:** はい | 
| OnUpdateGameSession | Amazon GameLift Serversサービスが更新されたゲームセッションオブジェクトを提供するために呼び出すコールバック関数の名前。Amazon GameLift Servers は、マッチバックフィルリクエストが処理されると、この関数を呼び出します。これは、[GameSession](#integration-server-sdk5-csharp-dataypes-gamesession) オブジェクト、ステータス更新 (updateReason) そして、マッチバックフィルチケット ID を渡します。**型:** void OnUpdateGameSessionDelegate([UpdateGameSession](#integration-server-sdk5-csharp-dataypes-updategamesession))**必須:** いいえ | 
| ポート | サーバープロセスが新しいプレイヤーの接続をリスンするポート番号。値は、このゲームサーバービルドをデプロイするすべてのフリートで設定されているポート番号の範囲に含まれる必要があります。このポート番号は、ゲームセッションオブジェクトとプレイヤーセッションオブジェクトに含まれ、ゲームセッションがサーバープロセスに接続するときに使用します。**タイプ**: `Integer`**必須:** はい | 

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

ゲームセッションオブジェクトの更新情報。ゲームセッションが更新された理由も含まれます。更新がマッチバックフィルアクションに関連する場合、このデータ型にはバックフィルチケット ID が含まれます。


| プロパティ | **説明** | 
| --- | --- | 
| GameSession | [GameSession](#integration-server-sdk5-csharp-dataypes-gamesession) オブジェクト。GameSession オブジェクトにはゲームセッションを説明するプロパティが含まれています。**タイプ**: `GameSession GameSession()`**必須:** はい | 
| UpdateReason | ゲームセッションが更新されている理由。**タイプ**: `UpdateReason UpdateReason()`**必須:** はい | 
| BackfillTicketId | ゲームセッションの更新を試みるバックフィルチケットの ID。**タイプ**: `String`**必須:** はい | 

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

ゲームセッションの詳細。


| プロパティ | **説明** | 
| --- | --- | 
| GameSessionId |  ゲームセッションの一意の識別子。ゲームセッション ARN の形式 は `arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>` です。 **タイプ**: `String` **必須:** いいえ  | 
| 名前 |  ゲームセッションについて説明するラベル。 **タイプ**: `String` **必須:** いいえ  | 
| FleetId |  ゲームセッションが実行されているフリートの一意の識別子。 **タイプ**: `String` **必須:** いいえ  | 
| MaximumPlayerSessionCount |  ゲームセッションへのプレーヤー接続の最大数。 **タイプ**: `Integer` **必須:** いいえ  | 
| ポート |  ゲームセッションのポート番号。Amazon GameLift Servers ゲームサーバーに接続するには、アプリに IP アドレスとポート番号の両方が必要です。 **タイプ**: `Integer` **必須:** いいえ  | 
| IpAddress |  ゲームセッションの IP アドレス。Amazon GameLift Servers ゲームサーバーに接続するには、アプリに IP アドレスとポート番号の両方が必要です。 **タイプ**: `String` **必須:** いいえ  | 
| GameSessionData |  単一の文字列値としてフォーマットされたカスタムゲームセッションプロパティのセット。 **タイプ**: `String` **必須:** いいえ  | 
| MatchmakerData |  ゲームセッションの作成に使用されたマッチメーキングプロセスに関する情報。JSON 構文で、文字列としてフォーマットされています。使用されたマッチメーキング設定に加えて、プレイヤー属性やチーム割り当てなど、マッチに割り当てられた全プレイヤーに関するデータが含まれます。 **タイプ**: `String` **必須:** いいえ  | 
| GameProperties |  ゲームセッションのカスタムプロパティのセットで、キーと値のペアとしてフォーマットされます。これらのプロパティは、新しいゲームセッションを開始するリクエストとともに渡されます。 **タイプ**: `Dictionary<string, string>` **必須:** いいえ  | 
| DnsName |  ゲームセッションを実行しているインスタンスに割り当てられた DNS 識別子。値の形式は次のとおりです。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/gameliftservers/latest/developerguide/integration-server-sdk5-csharp-datatypes.html) TLS 対応フリートで実行しているゲームセッションに接続する場合、IP アドレスではなく DNS 名を使用する必要があります。 **タイプ**: `String` **必須:** いいえ  | 

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

Amazon GameLift Servers Anywhere サーバーと Amazon GameLift Servers サービス間の接続を維持するために使用される情報。この情報は、[InitSDK()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-initsdk) で新しいサーバープロセスを起動するときに使用されます。Amazon GameLift Servers マネージド EC2 インスタンスでホストされているサーバーには、空のオブジェクトを使用してください。


| プロパティ | **説明** | 
| --- | --- | 
| WebSocketUrl |  Amazon GameLift Servers Anywhere の一部として `RegisterCompute` を実行したときに、`GameLiftServerSdkEndpoint` が返されます。 **タイプ**: `String` **必須:** はい  | 
| ProcessId |  ゲームをホストするサーバープロセスに登録された固有の識別子。 **タイプ**: `String` **必須:** はい  | 
| HostId |  ゲームをホストするサーバープロセスのホスト固有の識別子。hostId はコンピューティングを登録したときに使用される ComputeName です。詳細については、「[RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)」を参照してください。 **タイプ**: `String` **必須:** はい  | 
| FleetId | コンピューティングが登録されているフリートのフリート ID。詳細については、「[RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)」を参照してください。**タイプ**: `String`**必須:** はい | 
| AuthToken | Amazon GameLift Servers によって生成され、サーバーを Amazon GameLift Servers に対して認証するための認証トークン。詳細については、「[GetComputeAuthToken](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetComputeAuthToken.html)」を参照してください。**タイプ**: `String`**必須:** はい | 

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

マッチメーキングバックフィルリクエストの作成に使用される情報。ゲームサーバーは、この情報を [StartMatchBackfill()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-startmatchbackfill) 呼び出しで Amazon GameLift Servers に送信します。


| プロパティ | **説明** | 
| --- | --- | 
| GameSessionArn |  一意のゲームセッション識別子。API オペレーション `[GetGameSessionId](https://docs.aws.amazon.com/gameliftservers/latest/developerguide/integration-server-sdk5-csharp-actions.html#integration-server-sdk5-csharp-getgamesessionid)` は ARN 形式の識別子を返します。 **タイプ**: `String` **必須:** はい  | 
| MatchmakingConfigurationArn |  このリクエストに使用されるマッチメーカーの ARN 形式の一意な識別子。元のゲームセッションののマッチメーカー ARN は、マッチメーカーデータプロパティのゲームセッションオブジェクトにあります。マッチメーカーデータの詳細については「[マッチメーカーデータの処理](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-server.html#match-server-data.html)」を参照してください。 **タイプ**: `String` **必須:** はい  | 
| プレイヤー |  現在ゲームセッションに参加しているすべてのプレイヤーを表すデータのセット。マッチメーカーはこの情報を使用して、現在のプレイヤーとマッチする新しいプレイヤーを検索します。 **タイプ**: `List<Player>` **必須:** はい  | 
| TicketId |  マッチメーキングまたはバックフィルリクエストチケットの一意の識別子。値を指定しない場合、Amazon GameLift Servers が値を生成します。この識別子を使用してマッチバックフィルチケットのステータスを追跡したり、必要に応じてリクエストをキャンセルしたりします。 **タイプ**: `String` **必須:** いいえ  | 

## プレイヤー
<a name="integration-server-sdk5-csharp-dataypes-player"></a>

マッチメーキングのプレイヤーを表します。マッチメーキングリクエストを開始すると、プレイヤーにはプレイヤー ID、属性、必要に応じてレイテンシーデータが含まれます。マッチが成立すると、Amazon GameLift Servers がチーム情報を追加します。


| プロパティ | **説明** | 
| --- | --- | 
| LatencyInMS |  プレイヤーがロケーションに接続したときに発生するレイテンシーの量を示すミリ秒単位の値のセット。 このプロパティを使用すると、プレーヤーはリストに表示されている場所でのみマッチングされます。マッチメーカーにプレイヤーレイテンシーを評価するルールがある場合、プレイヤーはレイテンシーを報告しないとマッチングされません。 **タイプ**: `Dictionary<string, int>` **必須:** いいえ  | 
| PlayerAttributes |  マッチメーキングに使用するプレイヤー情報を含むキーと値のペアの集合。プレイヤー属性キーは、マッチメーキングルールセットで使用されている PlayerAttributes と一致する必要があります。 プレイヤー属性の詳細については、「[AttributeValue](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_AttributeValue.html)」を参照してください。 **タイプ**: `Dictionary<string, AttributeValue` **必須:** いいえ  | 
| PlayerId |  プレイヤーを表す一意の識別子。 **タイプ**: `String` **必須:** いいえ  | 
| チーム |  マッチでプレーヤーが割り当てられるチームの名前。チーム名はマッチメーキングルールセットで定義します。 **タイプ**: `String` **必須:** いいえ  | 

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

このデータ型は、取得するプレイヤーセッションを指定するのに使用されます。複数の方法で使用できます。(1) 特定のプレイヤーセッションをリクエストする PlayerSessionId; を使用します。(2) 指定したゲームセッションのすべてのプレイヤーをリクエストするには、GameSessionId を指定します。または、(3) 指定したプレイヤーのすべてのプレイヤーセッションをリクエストするには、PlayerId を指定します。プレイヤーセッション数が多い場合は、ページ分割パラメータを使用して結果を順次ページとして取得します。


| プロパティ | **説明** | 
| --- | --- | 
| GameSessionId |  一意のゲームセッション識別子。このパラメータを使用して、指定したゲームセッションのすべてのプレイヤーセッションをリクエストします。ゲームセッション ID の形式は、`arn:aws:gamelift:<region>::gamesession/fleet-<fleet ID>/<ID string>` です。<ID string> の値は、カスタム ID 文字列または (ゲームセッション作成時に指定した場合) 生成された文字列のいずれかです。 **タイプ**: `String` **必須:** いいえ  | 
| PlayerSessionId |  プレイヤーセッションを表す一意の識別子。 **タイプ**: `String` **必須:** いいえ  | 
| PlayerId |  プレイヤーの一意識別子。「[プレイヤー ID を生成する](player-sessions-player-identifiers.md)」を参照してください。 **タイプ**: `String` **必須:** いいえ  | 
| PlayerSessionStatusFilter |  結果をフィルタリングするプレイヤーセッションステータス。可能なプレイヤーセッションステータスとして以下のステータスがあります。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/gameliftservers/latest/developerguide/integration-server-sdk5-csharp-datatypes.html) **タイプ**: `String` **必須:** いいえ  | 
| NextToken |  結果の次のページの先頭を示すトークン。結果セットの先頭を指定するには、値を指定しないでください。プレイヤーセッション ID を提供する場合、このパラメータは無視されます。 **タイプ**: `String` **必須:** いいえ  | 
| 制限 |  返される結果の最大数。プレイヤーセッション ID を提供する場合、このパラメータは無視されます。 **タイプ**: `int` **必須:** いいえ  | 

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

マッチメーキングバックフィルリクエストのキャンセルに使用される情報。ゲームサーバーは、この情報を [StopMatchBackfill()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-stopmatchbackfill) 呼び出しで Amazon GameLift Servers サービスに送信します。


| プロパティ | **説明** | 
| --- | --- | 
| GameSessionArn |  キャンセルされるリクエストの一意のゲームセッション識別子。 **タイプ**: `string` **必須:** はい  | 
| MatchmakingConfigurationArn |  このリクエストが送信されたマッチメーカーの一意の識別子。 **タイプ**: `string` **必須:** はい  | 
| TicketId |  キャンセルされるバックフィルリクエストチケットの一意の識別子。 **タイプ**: `string` **必須:** はい  | 

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

このデータ型により、ゲームサーバーは他の AWS リソースへのアクセスが制限されます。詳細については、[Amazon GameLift Servers 用に IAM サービスロールをセットアップする](setting-up-role.md) を参照してください。


| プロパティ | **説明** | 
| --- | --- | 
| RoleArn | リソースへの制限付きアクセスを拡張するサービスロールの Amazon AWS リソースネーム (ARN)。**タイプ**: `string` **必須:** はい  | 
| RoleSessionName | ロール認証情報の使用を説明するセッションの名前。**タイプ**: `string` **必須:** いいえ  | 

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

これらの値を [プレイヤー](#integration-server-sdk5-csharp-dataypes-player) 属性のキーと値のペアで使用します。このオブジェクトでは、文字列、数値、文字列配列、データマップのいずれかの有効なデータ型を使用して属性値を指定できます。各 `AttributeValue` オブジェクトは、使用可能なプロパティのうちの 1 つだけを使用できます。


| プロパティ | 説明 | 
| --- | --- | 
| attrType |  属性値のタイプを指定します。 **型:** `AttrType` [enum](#integration-server-sdk5-csharp-datatypes-enums) 値。 **必須:** いいえ  | 
| S |  文字列の属性値を表します。 **タイプ**: `string` **必須:** はい  | 
| いいえ |  数値の属性値を表します。 **タイプ**: `double` **必須:** はい  | 
| SL |  文字列の属性値の配列を表します。 **タイプ**: `string[]` **必須:** はい  | 
| SDM |  文字列キーと二重値のディクショナリを表します。 **タイプ**: `Dictionary<string, double>` **必須:** はい  | 

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

このデータ型はアクションの結果で、以下のプロパティを持つオブジェクトを生成します。


| プロパティ | 説明 | 
| --- | --- | 
| 結果 |  アクションの結果。 **タイプ**: `string` **必須:** いいえ  | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **必須:** いいえ  | 

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

このデータ型はアクションの結果で、以下のプロパティを持つオブジェクトを生成します。


| プロパティ | 説明 | 
| --- | --- | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **必須:** いいえ  | 

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

[InitMetrics()](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-initmetrics) 呼び出しの結果を表します。成功時の MetricsManager インスタンスまたは失敗時のエラー情報が含まれます。


|  |  | 
| --- |--- |
| 結果 |  メトリクスを収集およびレポートするための MetricsManager インスタンス。 **タイプ**: `MetricsManager` **必須:** いいえ  | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **必須:** いいえ  | 

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

このデータ型はアクションの結果で、以下のプロパティを持つオブジェクトを生成します。


| プロパティ | 説明 | 
| --- | --- | 
| 結果 |  アクションの結果。 **タイプ**: [DescribePlayerSessionsResult](#integration-server-sdk5-csharp-datatypes-describeplayersessionsresult) **必須:** いいえ   | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **必須:** いいえ  | 

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


| プロパティ | 説明 | 
| --- | --- | 
| NextToken |  結果の次のページの先頭を示すトークン。結果セットの先頭を指定するには、値を指定しないでください。プレイヤーセッション ID を提供する場合、このパラメータは無視されます。 **タイプ**: `string` **必須:** はい  | 
| PlayerSessions |  リクエストに一致する各プレイヤーセッションのプロパティを含むオブジェクトの集合。 **タイプ**: `IList<PlayerSession>` **必須:**   | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **必須:** いいえ  | 

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


| プロパティ | 説明 | 
| --- | --- | 
| CreationTime |  **タイプ**: `long` **必須:** はい  | 
| FleetId |  **タイプ**: `string` **必須:** はい  | 
| GameSessionId |  **タイプ**: `string` **必須:** はい  | 
| IpAddress |  **タイプ**: `string` **必須:** はい  | 
| PlayerData |  **タイプ**: `string` **必須:** はい  | 
| PlayerId |  **タイプ**: `string` **必須:** はい  | 
| PlayerSessionId |  **タイプ**: `string` **必須:** はい  | 
| ポート |  **タイプ**: `int` **必須:** はい  | 
| ステータス |  **型:** `PlayerSessionStatus` [enum](#integration-server-sdk5-csharp-datatypes-enums)。 **必須:** はい  | 
| TerminationTime |  **タイプ**: `long` **必須:** はい  | 
| DnsName |  **タイプ**: `string` **必須:** はい  | 

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

このデータ型はアクションの結果で、以下のプロパティを持つオブジェクトを生成します。


| プロパティ | 説明 | 
| --- | --- | 
| 結果 |  アクションの結果。 **タイプ**: [StartMatchBackfillResult](#integration-server-sdk5-csharp-datatypes-startmatchbackfillresult) **必須:** いいえ  | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **必須:** いいえ  | 

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


| プロパティ | 説明 | 
| --- | --- | 
| TicketId |  **タイプ**: `string` **必須:** はい  | 

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

このデータ型はアクションの結果で、以下のプロパティを持つオブジェクトを生成します。


| プロパティ | 説明 | 
| --- | --- | 
| 結果 |  アクションの結果。 **タイプ**: [GetComputeCertificateResult](#integration-server-sdk5-csharp-datatypes-getcomputecertificateresult) **必須:** いいえ   | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **必須:** いいえ  | 

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

コンピューティングの TLS 証明書へのパスとコンピューティングのホスト名。


| プロパティ | 説明 | 
| --- | --- | 
| CertificatePath |  **タイプ**: `string` **必須:** はい  | 
| ComputeName |  **タイプ**: `string` **必須:** はい  | 

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

このデータ型はアクションの結果で、以下のプロパティを持つオブジェクトを生成します。


| プロパティ | 説明 | 
| --- | --- | 
| 結果 |  アクションの結果。 **タイプ**: [GetFleetRoleCredentialsResult](#integration-server-sdk5-csharp-datatypes-getfleetrolecredentialsresult) **必須:** いいえ  | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **必須:** いいえ  | 

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


| プロパティ | 説明 | 
| --- | --- | 
| AccessKeyId |   AWS へのアクセスを認証して提供するためのアクセスキー ID。 **タイプ**: `string` **必須:** いいえ  | 
| AssumedRoleId |  サービスロールが属するユーザーの ID。 **タイプ**: `string` **必須:** いいえ  | 
| AssumedRoleUserArn |  サービスロールが属するユーザーの Amazon リソースネーム (ARN)。 **タイプ**: `string` **必須:** いいえ  | 
| 有効期限 |  セッション認証情報の有効期限が切れるまでの時間。 **タイプ**: `DateTime` **必須:** いいえ  | 
| SecretAccessKey |  認証のためのシークレットアクセスキー ID。 **タイプ**: `string` **必須:** いいえ  | 
| SessionToken |   AWS リソースとやり取りする現在のアクティブなセッションを識別するトークン。 **タイプ**: `string` **必須:** いいえ  | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **必須:** いいえ  | 

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

このデータ型はアクションの結果で、以下のプロパティを持つオブジェクトを生成します。


| プロパティ | 説明 | 
| --- | --- | 
| 結果 |  アクションの結果。 **タイプ**: `DateTime` **必須:** いいえ   | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [GameLiftError](#integration-server-sdk5-csharp-datatypes-gamelifterror) **必須:** いいえ  | 

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


| プロパティ | 説明 | 
| --- | --- | 
| ErrorType |  エラーのタイプ。 **型:** `GameLiftErrorType` [enum](#integration-server-sdk5-csharp-datatypes-enums)。 **必須:** いいえ   | 
| ErrorName |  エラータイプの名前。  **タイプ**: `string`  **必須:** いいえ   | 
| ErrorMessage |  エラーメッセージです。  **タイプ**: `string`  **必須:** いいえ   | 

## 列挙型
<a name="integration-server-sdk5-csharp-datatypes-enums"></a>

サーバー SDK for Amazon GameLift Servers (C\$1) で定義されている列挙体は、次のとおりです。

**AttrType**  
+ **なし**
+ **STRING**
+ **DOUBLE**
+ **STRING\$1LIST**
+ **STRING\$1DOUBLE\$1MAP**

**GameLiftErrorType**  
エラータイプを示す文字列値。有効な値を次に示します。  
+ **SERVICE\$1CALL\$1FAILED** – AWS サービスへの呼び出しに失敗しました。
+ **LOCAL\$1CONNECTION\$1FAILED** - Amazon GameLift Serversへのローカル接続に失敗しました。
+ **NETWORK\$1NOT\$1INITIALIZED** - ネットワークは初期化されていません。
+ **GAMESESSION\$1ID\$1NOT\$1SET** - ゲームセッション ID が設定されていません。
+ **BAD\$1REQUEST\$1EXCEPTION** 
+ **INTERNAL\$1SERVICE\$1EXCEPTION** 
+ **ALREADY\$1INITIALIZED** - Amazon GameLift Servers サーバーまたはクライアントはすでに Initialize() で初期化されています。
+ **FLEET\$1MISMATCH** - ターゲットフリートが gameSession または playerSession のフリートと一致しません。
+ **GAMELIFT\$1CLIENT\$1NOT\$1INITIALIZED** - Amazon GameLift Servers クライアントは初期化されていません。
+ **GAMELIFT\$1SERVER\$1NOT\$1INITIALIZED** - Amazon GameLift Servers クライアントは初期化されていません。
+ **GAME\$1SESSION\$1ENDED\$1FAILED** - サーバー SDK for Amazon GameLift Servers はサービスにアクセスしてゲームセッションが終了したことを報告できませんでした。
+ **GAME\$1SESSION\$1NOT\$1READY** - Amazon GameLift Servers サーバーのゲームセッションがアクティブ化されませんでした。
+ **GAME\$1SESSION\$1READY\$1FAILED** - サーバー SDK for Amazon GameLift Servers は、サービスにアクセスしてゲームセッションの準備が完了したことを報告できませんでした。
+ **INITIALIZATION\$1MISMATCH** - Server:: Initialize() の後にクライアントメソッドが呼び出されました。その逆も同様です。
+ **NOT\$1INITIALIZED** - Amazon GameLift Servers サーバーまたはクライアントは Initialize() で初期化されていません。
+ **NO\$1TARGET\$1ALIASID\$1SET** - ターゲットの aliasId が設定されていません。
+ **NO\$1TARGET\$1FLEET\$1SET** - ターゲットフリートが設定されていません。
+ **PROCESS\$1ENDING\$1FAILED** - サーバー SDK for Amazon GameLift Servers はサービスにアクセスしてプロセスの終了を報告できませんでした。
+ **PROCESS\$1NOT\$1ACTIVE** - サーバープロセスはまだアクティブではなく、GameSession にバインドされていないため、PlayerSessions を受け入れたり処理したりすることはできません。
+ **PROCESS\$1NOT\$1READY** - サーバープロセスをまだアクティブ化する準備ができていません。
+ **PROCESS\$1READY\$1FAILED** - サーバー SDK for Amazon GameLift Servers はサービスにアクセスしてプロセスの準備が完了したことを報告できませんでした。
+ **SDK\$1VERSION\$1DETECTION\$1FAILED** - SDK バージョン検出に失敗しました。
+ **STX\$1CALL\$1FAILED** - XStx サーバーのバックエンドコンポーネントへの呼び出しが失敗しました。
+ **STX\$1INITIALIZATION\$1FAILED** - XStx サーバーのバックエンドコンポーネントが初期化に失敗しました。
+ **UNEXPECTED\$1PLAYER\$1SESSION** - 未登録のプレイヤーセッションがサーバーによって検出されました。
+ **WEBSOCKET\$1CONNECT\$1FAILURE** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1FORBIDDEN** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1INVALID\$1URL** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1TIMEOUT** 
+ **WEBSOCKET\$1RETRIABLE\$1SEND\$1MESSAGE\$1FAILURE** - GameLift Service WebSocket にメッセージを送信する際に再試行可能な障害が発生しました。
+ **WEBSOCKET\$1SEND\$1MESSAGE\$1FAILURE** - GameLift Service WebSocket へのメッセージの送信に失敗しました。
+ **MATCH\$1BACKFILL\$1REQUEST\$1VALIDATION** - リクエストの検証に失敗しました。
+ **PLAYER\$1SESSION\$1REQUEST\$1VALIDATION** - リクエストの検証に失敗しました。

**PlayerSessionCreationPolicy**  
ゲームセッションで新しいプレイヤーを承諾するかどうかを示す文字列値。有効な値を次に示します。  
+ **ACCEPT\$1ALL** - すべての新しいプレイヤーセッションを承諾します。
+ **DENY\$1ALL** - すべての新しいプレイヤーセッションを拒否します。
+ **NOT\$1SET** - ゲームセッションは、新規プレイヤーセッションを受け入れたり拒否したりするように設定されていません。

**PlayerSessionStatus**  
+ **アクティブ**
+ **COMPLETED**
+ **NOT\$1SET**
+ **RESERVED**
+ **TIMEDOUT**

[C\$1 サーバー SDK 5.x for Amazon GameLift Servers -- データ型](integration-server-sdk5-csharp-datatypes.md)

**Topics**
+ [C\$1 サーバー SDK 5.x for Amazon GameLift Servers -- データ型](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>

サーバープロセスに組み込まれた SDK の現在のバージョン番号を返します。

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

```
AwsStringOutcome GetSdkVersion();
```

### 戻り値
<a name="integration-server-sdk5-csharp-getsdkversion-return"></a>

成功した場合、[AwsStringOutcome](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-awsstringoutcome) オブジェクトとして現在の SDK バージョンを返します。返される文字列は、バージョン番号のみを含みます。(例: `5.0.0`) 成功しなかった場合、エラーメッセージを返します。

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

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

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

サーバーパフォーマンスデータを収集およびレポートするためのメトリクスシステムを初期化します。最良の結果を得るには、[InitSDK()](#integration-server-sdk5-csharp-initsdk) の前にこのメソッドを呼び出して、SDK の初期化中にメトリクス収集を有効にします。

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

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

### パラメータ
<a name="integration-server-sdk5-csharp-initmetrics-parameter"></a>

[MetricsParameters](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-metricsparameters) (オプション)  
メトリクス収集の設定パラメータ。指定しない場合は、環境変数で上書きできる既定値を使用します。

### 戻り値
<a name="integration-server-sdk5-csharp-initmetrics-return"></a>

成功すると、MetricsManager インスタンスを含む [MetricsManagerOutcome](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-metricsmanageroutcome) オブジェクトを返します。成功しなかった場合、エラーメッセージを返します。

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

マネージド EC2 フリート用の Amazon GameLift Servers SDK を初期化します。起動時に、他の Amazon GameLift Servers 関連の初期化が実行される前にこのメソッドを呼び出します。このメソッドは、ホスト環境からサーバーパラメータを読み取り、サーバーと Amazon GameLift Servers サービス間の通信をセットアップします。べき等性トークンを使用するため、失敗したときにこの呼び出しを安全に再試行できます。

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

```
GenericOutcome InitSDK();
```

### 戻り値
<a name="integration-server-sdk5-csharp-initsdk-return"></a>

成功した場合は、サーバープロセスが [ProcessReady()](#integration-server-sdk5-csharp-processready) を呼び出す準備ができていることを示す InitSdkOutcome オブジェクトを返します。

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

Anywhere フリートの Amazon GameLift Servers SDK を初期化します。起動時に、他の Amazon GameLift Servers 関連の初期化が実行される前にこのメソッドを呼び出します。この方法では、サーバーと Amazon GameLift Servers サービス間の通信をセットアップするための明示的なサーバーパラメータが必要です。べき等性トークンを使用するため、失敗したときにこの呼び出しを安全に再試行できます。

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

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

### パラメータ
<a name="integration-server-sdk5-csharp-initsdk-anywhere-parameter"></a>

[ServerParameters](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-dataypes-serverparameters)  
Amazon GameLift Servers Anywhere フリートのゲームサーバーを初期化するには、次の情報を含む `ServerParameters` オブジェクトを作成します。  
+ ゲームサーバーへの接続に使用される WebSocket の URL。
+ ゲームサーバーのホストに使用されるプロセスの ID。
+ ゲームサーバープロセスをホスティングするコンピューティングの ID。
+ Amazon GameLift Servers Anywhere コンピューティングを含む Amazon GameLift Servers フリートの ID。
+ Amazon GameLift Servers オペレーションによって生成された認可トークン。

### 戻り値
<a name="integration-server-sdk5-csharp-initsdk-anywhere-return"></a>

成功した場合は、サーバープロセスが [ProcessReady()](#integration-server-sdk5-csharp-processready) を呼び出す準備ができていることを示す InitSdkOutcome オブジェクトを返します。

**注記**  
Anywhere フリートにデプロイされたゲームビルドに対して `InitSDK()` への呼び出しが失敗する場合は、ビルドリソースの作成時に使用した `ServerSdkVersion` パラメータを確認してください。この値は、使用中のサーバー SDK バージョンに明示的に設定する必要があります。このパラメータのデフォルト値は 4.x で、互換性がありません。この問題を解決するには、新しいビルドを作成して新しいフリートにデプロイします。

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

サーバープロセスがゲームセッションをホストする準備ができたことを Amazon GameLift Servers に通知します。[InitSDK()](#integration-server-sdk5-csharp-initsdk) を呼び出した後にこのメソッドを呼び出します。このメソッドは、プロセスごとに 1 回だけ呼び出す必要があります。

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

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

### パラメータ
<a name="integration-server-sdk5-csharp-processready-parameter"></a>

**[ProcessParameters](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-dataypes-process)**  
`ProcessParameters` オブジェクトにはサーバープロセスに関する情報が保持されます。

### 戻り値
<a name="integration-server-sdk5-csharp-processready-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

この例では、メソッドと委任関数の実装の両方を示します。

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

サーバープロセスが終了していることを Amazon GameLift Servers に通知します。アクティブなゲームセッションのシャットダウンを含むその他すべてのクリーンアップタスクの後そして、プロセスを終了する前にこのメソッドを呼び出します。`ProcessEnding()` の結果に応じて、プロセスは成功 (0) またはエラー (-1) で終了し、フリートイベントが生成されます。プロセスがエラーで終了した場合、生成されるフリートイベントは `SERVER_PROCESS_TERMINATED_UNHEALTHY` です。

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

```
GenericOutcome ProcessEnding()
```

### 戻り値
<a name="integration-server-sdk5-csharp-processending-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

この例では、サーバープロセスを終了する前に、成功またはエラーの終了コードで `ProcessEnding()` と `Destroy()` を呼び出します。

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

サーバープロセスがゲームセッションをアクティブにし、プレイヤーの接続を受ける準備ができていることを Amazon GameLift Servers に通知します。このアクションは、すべてのゲームセッションの初期化の後、`onStartGameSession()` コールバック関数の一部として呼び出されます。

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

```
GenericOutcome ActivateGameSession()
```

### 戻り値
<a name="integration-server-sdk5-csharp-activategamesession-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

この例では、`ActivateGameSession()` が `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>

現在のゲームセッションの機能を更新し、新しいプレイヤーセッションを承諾します。ゲームセッションは、新しいプレイヤーセッションをすべて受け入れるか拒否するかを設定できます。

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

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

### パラメータ
<a name="integration-server-sdk5-csharp-updateplayersessioncreationpolicy-parameter"></a>

**playerSessionPolicy**  
ゲームセッションで新しいプレイヤーを承諾するかどうかを示す文字列値。  
有効な値を次に示します。  
+ **ACCEPT\$1ALL** - すべての新しいプレイヤーセッションを承諾します。
+ **DENY\$1ALL** - すべての新しいプレイヤーセッションを拒否します。

### 戻り値
<a name="integration-server-sdk5-csharp-updateplayersessioncreationpolicy-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

この例は、現在のゲームセッションの参加ポリシーを、すべてのプレイヤーを受け入れるように設定します。

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

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

アクティブなサーバープロセスにホストされたゲームセッションの ID を取得します。

ゲームセッションでアクティブ化されていないアイドル状態のプロセスの場合、呼び出しは [GameLiftError](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-gamelifterror) を返します。

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

```
AwsStringOutcome GetGameSessionId()
```

### 戻り値
<a name="integration-server-sdk5-csharp-getgamesessionid-return"></a>

成功した場合、ゲームセッション ID を [AwsStringOutcome](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-awsstringoutcome) オブジェクトとして返します。成功しなかった場合、エラーメッセージを返します。

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

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

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

終了時刻が判る場合に、サーバープロセスがシャットダウンを予定している時刻を返します。サーバープロセスは、Amazon GameLift Servers から `onProcessTerminate()` コールバックを受信した後にこのアクションを実行します。Amazon GameLift Servers は次の理由で `onProcessTerminate()` を呼び出します。
+ サーバープロセスが健全性異常を報告したり、Amazon GameLift Servers に応答しなかった場合。
+ スケールダウンイベント中にインスタンスを終了する場合。
+ [スポットインスタンスの中断](spot-tasks.md)によりインスタンスが終了した場合。

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

```
AwsDateTimeOutcome GetTerminationTime()
```

### 戻り値
<a name="integration-server-sdk5-csharp-getterm-return"></a>

成功した場合、終了時刻を [AwsDateTimeOutcome](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-awsdatetimeoutcome) オブジェクトとして返します。値は終了時間で、`0001 00:00:00` 以降の経過ティックで表現されます。例えば、日付時刻の値 `2020-09-13 12:26:40 -000Z` は、`637355968000000000` ティックに等しくなります。終了時間がない場合は、エラーメッセージを返します。

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

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

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

指定されたプレイヤーセッション ID を持つプレイヤーがサーバープロセスに接続し、検証が必要であることを、Amazon GameLift Servers に通知します。Amazon GameLift Servers は、プレイヤーセッション ID が有効であることを検証します。検証できたら、Amazon GameLift Servers はプレーヤースロットの状態を RESERVED から ACTIVE に変更します。

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

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

### パラメータ
<a name="integration-server-sdk5-csharp-acceptplayersession-parameter"></a>

playerSessionId  
新しいプレイヤーセッションが作成されたときに GameLift によって発行される一意の ID。

### 戻り値
<a name="integration-server-sdk5-csharp-acceptplayersession-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

この例では、無効なプレイヤーセッション ID の検証や拒否を含む、接続リクエストを処理するための関数を示します。

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

プレイヤーがサーバープロセスから切断されたことを Amazon GameLift Servers に通知します。それに応じて、Amazon GameLift Servers はプレイヤースロットを利用可能に変更します。

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

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

### パラメータ
<a name="integration-server-sdk5-csharp-removeplayersession-parameter"></a>

**playerSessionId**  
新しいプレイヤーセッションが作成されたときに Amazon GameLift Servers によって発行される一意の ID。

### 戻り値
<a name="integration-server-sdk5-csharp-removeplayersession-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

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

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

設定、セッションメタデータ、プレイヤーデータを含む、プレイヤーセッションデータを取得します。このアクションを使用して、単一のプレイヤーセッション、ゲームセッション内のすべてのプレイヤーセッション、または単一のプレイヤー ID に関連付けられたすべてのプレイヤーセッションに関する情報を取得します。

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

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

### パラメータ
<a name="integration-server-sdk5-csharp-describeplayersessions-parameter"></a>

**[DescribePlayerSessionsRequest](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-dataypes-playersessions)**  
取得するプレイヤーセッションを記述する [DescribePlayerSessionsRequest](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-dataypes-playersessions) オブジェクト。

### 戻り値
<a name="integration-server-sdk5-csharp-describeplayersessions-return"></a>

成功した場合は、リクエストのパラメータに適合したプレイヤーセッションオブジェクトのセットを含む [DescribePlayerSessionsOutcome](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-describeplayersessionsoutcome) オブジェクトを返します。

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

この例は、指定したゲームセッションにアクティブに接続されているすべてのプレイヤーセッションのリクエストを示しています。*NextToken* を省略し、*Limit* 値を 10 に設定すると、Amazon GameLift Servers は、リクエストに一致するプレイヤーセッションレコードの最初の 10 個を返します。

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

FlexMatch で作成されたゲームセッションの空きスロット用に新規プレイヤーを検索するリクエストを送信します。詳細については、「[FlexMatch バックフィル機能](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html)」を参照してください。

このアクションは非同期です。新規プレイヤーが正常にマッチングされると、Amazon GameLift Servers はコールバック関数 `OnUpdateGameSession()` を使用して更新済みマッチメーカーデータを送信します。

サーバープロセスではアクティブなマッチバックフィルリクエストは一度に 1 つだけです。新しいリクエストを送信するには、まず [StopMatchBackfill()](#integration-server-sdk5-csharp-stopmatchbackfill) を呼び出して元のリクエストをキャンセルする必要があります。

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

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

### パラメータ
<a name="integration-server-sdk5-csharp-startmatchbackfill-parameter"></a>

**[StartMatchBackfillRequest](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-dataypes-startmatchbackfillrequest)**  
`StartMatchBackfillRequest` オブジェクトにはバックフィルリクエストに関する情報が保持されます。

### 戻り値
<a name="integration-server-sdk5-csharp-startmatchbackfill-return"></a>

[StartMatchBackfillOutcome](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-startmatchbackfilloutcome) オブジェクトを、マッチバックフィルチケット ID またはエラーメッセージを伴うエラーとともに返します。

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

アクティブなマッチバックフィルリクエストをキャンセルします。詳細については、「[FlexMatch バックフィル機能](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html)」を参照してください。

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

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

### パラメータ
<a name="integration-server-sdk5-csharp-stopmatchbackfill-parameter"></a>

**[StopMatchBackfillRequest](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-dataypes-stopmatchbackfillrequest)**  
停止しているマッチメーキングチケットに関する詳細を提供する `StopMatchBackfillRequest` オブジェクト。

### 戻り値
<a name="integration-server-sdk5-csharp-stopmatchbackfill-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

 ゲームサーバーとゲームクライアント間のネットワーク接続を暗号化するために使用される TLS 証明書へのパスを取得します。この証明書パスは、コンピューティングデバイスを Amazon GameLift Servers Anywhere フリートに登録するときに使用できます。詳細については、「[RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)」を参照してください。

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

```
GetComputeCertificateOutcome GetComputeCertificate();
```

### 戻り値
<a name="integration-server-sdk5-csharp-getcomputecertificate-return"></a>

以下を含む GetComputeCertificateResponse オブジェクトを返します。
+  CertificatePath: コンピューティングリソース上の TLS 証明書へのパス。Amazon GameLift Servers マネージドフリートを使用する場合、このパスには次の内容が含まれます。
  + `certificate.pem`: エンドユーザー証明書。証明書チェーン全体は、この証明書に追加された `certificateChain.pem` を組み合わせたものです。
  + `certificateChain.pem`: ルート証明書と中間証明書を含む証明書チェーン。
  + `rootCertificate.pem`: ルート証明書。
  + `privateKey.pem`: エンドユーザー証明書のプライベートキー。
+ ComputeName: コンピューティングリソースの名前。

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

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

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

Amazon GameLift Servers が他のとやり取りすることを許可する IAM ロール認証情報を取得します。詳細については、「[Amazon GameLift Servers ホストされたゲームサーバーを他の AWS リソースに接続する](gamelift-sdk-server-resources.md)」を参照してください。

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

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

### パラメータ
<a name="integration-server-sdk5-csharp-getfleetrolecredentials-parameters"></a>

[GetFleetRoleCredentialsRequest](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-dataypes-getfleetrolecredentialsrequest)  
 AWS リソースへの制限付きアクセスをゲームサーバーに拡張するロール認証情報。

### 戻り値
<a name="integration-server-sdk5-csharp-getfleetrolecredentials-return"></a>

[GetFleetRoleCredentialsOutcome](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-getfleetrolecredentialsoutcome) オブジェクトを返します。

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

Amazon GameLift Servers ゲームサーバー SDK をメモリから解放します。ベストプラクティスとして、`ProcessEnding()` の後、かつプロセスの終了前にこのメソッドを呼び出します。Anywhere フリートを使用していて、ゲームセッションのたびにサーバープロセスを終了しない場合は、`Destroy()`、`InitSDK()` の順に呼び出して再初期化してから、`ProcessReady()` でゲームセッションをホストする準備ができたことを Amazon GameLift Servers に通知します。

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

```
GenericOutcome Destroy()
```

### 戻り値
<a name="integration-server-sdk5-csharp-destroy-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

# Go サーバー SDK for Amazon GameLift Servers – アクション
<a name="integration-server-sdk-go-actions"></a>

サーバー SDK 5.x リファレンスを使用して、Amazon GameLift Servers でホスティングするマルチプレイヤーゲームを統合します。統合プロセスのガイダンスについては、「[サーバー SDK を使用して、Amazon GameLift Servers をゲームサーバーに追加します。](gamelift-sdk-server-api.md)」を参照してください。

`GameLiftServerAPI.go` は、Go サーバー SDK アクションを定義します。

# Go サーバー SDK for Amazon GameLift Servers -- データ型
<a name="integration-server-sdk-go-datatypes"></a>

サーバー SDK リファレンスを使用して、Amazon GameLift Servers でホスティングするマルチプレイヤーゲームを統合します。統合プロセスのガイダンスについては、「[サーバー SDK を使用して、Amazon GameLift Servers をゲームサーバーに追加します。](gamelift-sdk-server-api.md)」を参照してください。

`GameLiftServerAPI.go` は、Go サーバー SDK アクションを定義します。

[Go サーバー SDK for Amazon GameLift Servers – アクション](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)
+ [プレイヤー](#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>

ゲームセッション中に生成されたファイルを識別するオブジェクトで、ゲームセッション終了時に Amazon GameLift Servers でアップロードして保存します。ゲームサーバーは、[ProcessReady()](integration-server-sdk-go-actions.md#integration-server-sdk-go-processready) 呼び出しで `ProcessParameters` オブジェクトの一部として `LogParameters` を Amazon GameLift Servers に提供します。


|  |  | 
| --- |--- |
|  **プロパティ**  | 説明 | 
| LogPaths |  Amazon GameLift Servers で将来のアクセスに備えて保存するゲームサーバーログファイルへのディレクトリパスのリスト。サーバープロセスは各ゲームセッション中にこれらのファイルを生成します。ファイルのパスと名前はゲームサーバーで定義し､ルートゲームビルドディレクトリに保存します。 ログパスは絶対パスである必要があります。例えば、ゲームビルドによって `MyGame\sessionLogs\` などのパスに保存されるゲームセッションログの場合、パスは `c:\game\MyGame\sessionLogs` (Windows インスタンスの場合) となります。 **タイプ**: `[]string` **必須:** いいえ  | 

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

メトリクスシステムを初期化するための設定パラメータを通信するオブジェクト。この設定は、StatsD レポート、クラッシュレポート、メトリクス処理の動作を設定するために使用されます。ゲームサーバーは、[InitMetrics()](integration-server-sdk-go-actions.md#integration-server-sdk-go-initmetrics) の呼び出しの一部として `MetricsParameters` を Amazon GameLift Servers に提供します。


|  |  | 
| --- |--- |
|  **プロパティ**  | 説明 | 
| StatsdHost |  メトリクスレポート用の StatsD サーバーホスト (「localhost」など)。 **タイプ**: `string` **必須:** はい  | 
| StatsdPort |  メトリクスレポートの StatsD サーバーポート (8125 など)。 **タイプ**: `int` **必須:** はい  | 
| CrashReporterHost |  クラッシュ追跡とプロセスモニタリング用のクラッシュレポーターホスト。 **タイプ**: `string` **必須:** はい  | 
| CrashReporterPort |  クラッシュ追跡とプロセスモニタリング用のクラッシュレポーターポート。 **タイプ**: `int` **必須:** はい  | 
| FlushIntervalMs |  メトリクスのフラッシュ間隔はミリ秒単位です。メトリクスが StatsD に送信される頻度を制御します。 **タイプ**: `int` **必須:** はい  | 
| MaxPacketSize |  バイト単位のメトリクスの最大パケットサイズ。StatsD に送信される UDP パケットのサイズを制限します。 **タイプ**: `int` **必須:** はい  | 

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

サーバープロセスと Amazon GameLift Servers の間の通信を記述するオブジェクト。サーバープロセスは、この情報を Amazon GameLift Servers 呼び出しで [ProcessReady()](integration-server-sdk-go-actions.md#integration-server-sdk-go-processready) に提供します。


|  |  | 
| --- |--- |
|  **プロパティ**  | 説明 | 
| LogParameters | ゲームセッション中に生成されるファイルへのディレクトリパスを持つオブジェクトです。Amazon GameLift Servers はこれらのファイルをコピーして保存し、後で参照できるようにします。**タイプ**: `LogParameters`**必須:** いいえ | 
| OnHealthCheck | Amazon GameLift Servers がサーバープロセスにヘルスステータスレポートを要求するために呼び出すコールバック関数です。Amazon GameLift Servers はこの関数を 60 秒ごとに呼び出し、応答を最大 60 秒間待機します。サーバープロセスは正常であれば TRUE を返し、正常でない場合は FALSE を返します。応答が返されない場合、Amazon GameLift Servers はサーバープロセスを正常ではないと記録します。**タイプ**: `OnHealthCheck func() bool`**必須:** いいえ | 
| OnProcessTerminate | Amazon GameLift Servers がサーバープロセスを強制的にシャットダウンするために呼び出すコールバック関数です。この関数を呼び出すと、Amazon GameLift Servers はサーバープロセスがシャットダウンするまで最大 5 分間待機し、サーバープロセスがシャットダウンする前に [ProcessEnding()](integration-server-sdk-go-actions.md#integration-server-sdk-go-processending) 呼び出しで応答するのを待ちます。**タイプ**: `OnProcessTerminate func()`**必須:** はい | 
| OnStartGameSession | 更新されたゲームセッションオブジェクトをサーバープロセスに渡すために、Amazon GameLift Servers が呼び出すコールバック関数。Amazon GameLift Servers は、更新されたマッチメーカーデータを提供するために、マッチバックフィルリクエストが処理された際にこの関数を呼び出します。これは、[GameSession](#integration-server-sdk-go-dataypes-gamesession) オブジェクト、ステータス更新 (updateReason) そして、マッチバックフィルチケット ID を渡します。**タイプ**: `OnStartGameSession func (model.GameSession )`**必須:** はい | 
| OnUpdateGameSession | Amazon GameLift Serversが呼び出して更新されたゲームセッション情報をサーバープロセスに渡すコールバック関数。Amazon GameLift Servers は、マッチバックフィルリクエストを処理した後にこの関数を呼び出して、更新されたマッチメーカーデータを提供します。**タイプ**: `OnUpdateGameSession func (model.UpdateGameSession)`**必須:** いいえ | 
| Port | サーバープロセスが新しいプレイヤーの接続をリスンするポート番号。値は、このゲームサーバービルドをデプロイするすべてのフリートで設定されているポート番号の範囲に含まれる必要があります。このポート番号は、ゲームセッションオブジェクトとプレイヤーセッションオブジェクトに含まれ、ゲームセッションがサーバープロセスに接続するときに使用します。**タイプ**: `int`**必須:** はい | 

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

ゲームセッションオブジェクトの更新。これには、ゲームセッションが更新された理由と、バックフィルを使用してゲームセッション内のプレイヤーセッションを埋めるための関連するバックフィルチケット ID が含まれます。


| プロパティ | **説明** | 
| --- | --- | 
| GameSession | [GameSession](#integration-server-sdk-go-dataypes-gamesession) オブジェクト。GameSession オブジェクトにはゲームセッションを説明するプロパティが含まれています。**タイプ**: `GameSession GameSession()`**必須:** はい | 
| UpdateReason | ゲームセッションが更新されている理由。**タイプ**: `UpdateReason UpdateReason()`**必須:** はい | 
| BackfillTicketId | ゲームセッションの更新を試みるバックフィルチケットの ID。**タイプ**: `String`**必須:** いいえ | 

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

ゲームセッションの詳細。


| プロパティ | **説明** | 
| --- | --- | 
| GameSessionId |  ゲームセッションの一意の識別子。ゲームセッション Amazon リソースネーム (ARN) には `arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>` 形式があります。 **タイプ**: `String` **必須:** いいえ  | 
| 名前 |  ゲームセッションについて説明するラベル。 **タイプ**: `String` **必須:** いいえ  | 
| FleetId |  ゲームセッションが実行されているフリートの一意の識別子。 **タイプ**: `String` **必須:** いいえ  | 
| MaximumPlayerSessionCount |  ゲームセッションへのプレーヤー接続の最大数。 **タイプ**: `Integer` **必須:** いいえ  | 
| ポート |  ゲームセッションのポート番号。Amazon GameLift Servers ゲームサーバーに接続するには、アプリに IP アドレスとポート番号の両方が必要です。 **タイプ**: `Integer` **必須:** いいえ  | 
| IpAddress |  ゲームセッションの IP アドレス。Amazon GameLift Servers ゲームサーバーに接続するには、アプリに IP アドレスとポート番号の両方が必要です。 **タイプ**: `String` **必須:** いいえ  | 
| GameSessionData |  単一の文字列値としてフォーマットされたカスタムゲームセッションプロパティのセット。 **タイプ**: `String` **必須:** いいえ  | 
| MatchmakerData |  ゲームセッションの作成に使用されたマッチメーキングプロセスに関する情報。JSON 構文で、文字列としてフォーマットされています。使用されたマッチメーキング設定に加えて、プレイヤー属性やチーム割り当てなど、マッチに割り当てられた全プレイヤーに関するデータが含まれます。 **タイプ**: `String` **必須:** いいえ  | 
| GameProperties |  ゲームセッションのカスタムプロパティのセットで、キーと値のペアとしてフォーマットされます。これらのプロパティは、新しいゲームセッションを開始するリクエストとともに渡されます。 **タイプ**: `map[string] string` **必須:** いいえ  | 
| DnsName |  ゲームセッションを実行しているインスタンスに割り当てられた DNS 識別子。値の形式は次のとおりです。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/gameliftservers/latest/developerguide/integration-server-sdk-go-datatypes.html) TLS 対応フリートで実行しているゲームセッションに接続する場合、IP アドレスではなく DNS 名を使用する必要があります。 **タイプ**: `String` **必須:** いいえ  | 

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

Amazon GameLift Servers Anywhere サーバーと Amazon GameLift Servers サービス間の接続を維持するために使用される情報。この情報は、[InitSDK()](integration-server-sdk-go-actions.md#integration-server-sdk-go-initsdk) で新しいサーバープロセスを起動するときに使用されます。Amazon GameLift Servers マネージド EC2 インスタンスでホストされているサーバーには、空のオブジェクトを使用してください。


| プロパティ | **説明** | 
| --- | --- | 
| WebSocketURL |  Amazon GameLift Servers Anywhere コンピューティングリソース用に [https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html) を実行すると、`GameLiftServerSdkEndpoint` Amazon GameLift Servers が返されます。 **タイプ**: `string` **必須:** はい  | 
| ProcessID |  ゲームをホストするサーバープロセスに登録された固有の識別子。 **タイプ**: `string` **必須:** はい  | 
| HostID |  新しいサーバープロセスをホストしているコンピュートリソースの一意の識別子。 `HostID` はコンピューティングを登録したときに使用される `ComputeName` です。詳細については、「[RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)」を参照してください。 **タイプ**: `string` **必須:** はい  | 
| FleetID | コンピューティングが登録されているフリートの固有識別子。詳細については、「[RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)」を参照してください。**タイプ**: `string`**必須:** はい | 
| AuthToken | Amazon GameLift Servers によって生成され、サーバーを Amazon GameLift Servers に対して認証するための認証トークン。詳細については、「[GetComputeAuthToken](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetComputeAuthToken.html)」を参照してください。**タイプ**: `string`**必須:** はい | 

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

マッチメーキングバックフィルリクエストの作成に使用される情報。ゲームサーバーは、この情報を [StartMatchBackfill()](integration-server-sdk-go-actions.md#integration-server-sdk-go-startmatchbackfill) 呼び出しで Amazon GameLift Servers に送信します。


| プロパティ | **説明** | 
| --- | --- | 
| GameSessionArn |  一意のゲームセッション識別子。API オペレーション `[GetGameSessionId](https://docs.aws.amazon.com/gameliftservers/latest/developerguide/integration-server-sdk-go-actions.html#integration-server-sdk-go-getgamesessionid)` は ARN 形式の識別子を返します。 **タイプ**: `String` **必須:** はい  | 
| MatchmakingConfigurationArn |  このリクエストに使用されるマッチメーカーの ARN 形式の一意な識別子。元のゲームセッションののマッチメーカー ARN は、マッチメーカーデータプロパティのゲームセッションオブジェクトにあります。マッチメーカーデータの詳細については「[マッチメーカーデータの処理](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-server.html#match-server-data.html)」を参照してください。 **タイプ**: `String` **必須:** はい  | 
| プレイヤー |  現在ゲームセッションに参加しているすべてのプレイヤーを表すデータのセット。マッチメーカーはこの情報を使用して、現在のプレイヤーとマッチする新しいプレイヤーを検索します。 **タイプ**: `[]model.Player` **必須:** はい  | 
| TicketId |  マッチメーキングまたはバックフィルリクエストチケットの一意の識別子。値を指定しない場合、Amazon GameLift Servers が値を生成します。この識別子を使用してマッチバックフィルチケットのステータスを追跡したり、必要に応じてリクエストをキャンセルしたりします。 **タイプ**: `String` **必須:** いいえ  | 

## プレイヤー
<a name="integration-server-sdk-go-dataypes-player"></a>

マッチメーキングでプレイヤーを表すオブジェクト。マッチメーキングリクエストを開始すると、プレイヤーにはプレイヤー ID、属性、必要に応じてレイテンシーデータが含まれます。マッチが成立すると、Amazon GameLift Servers がチーム情報を追加します。


| プロパティ | **説明** | 
| --- | --- | 
| LatencyInMS |  プレイヤーがロケーションに接続したときに発生するレイテンシーの量を示すミリ秒単位の値のセット。 このプロパティを使用すると、プレーヤーはリストに表示されている場所でのみマッチングされます。マッチメーカーにプレイヤーレイテンシーを評価するルールがある場合、プレイヤーはレイテンシーを報告しないとマッチングされません。 **タイプ**: `map[string] int` **必須:** いいえ  | 
| PlayerAttributes |  マッチメーキングに使用するプレイヤー情報を含むキーと値のペアの集合。プレイヤー属性キーは、マッチメーキングルールセットで使用されている PlayerAttributes と一致する必要があります。 プレイヤー属性の詳細については、「[AttributeValue](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_AttributeValue.html)」を参照してください。 **タイプ**: `map[string] AttributeValue` **必須:** いいえ  | 
| PlayerId |  プレイヤーを表す一意の識別子。 **タイプ**: `String` **必須:** いいえ  | 
| チーム |  マッチでプレーヤーが割り当てられるチームの名前。チーム名はマッチメーキングルールセットで定義します。 **タイプ**: `String` **必須:** いいえ  | 

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

取得するプレイヤーセッションを指定するオブジェクト。サーバープロセスは、この情報を [DescribePlayerSessions()](integration-server-sdk-go-actions.md#integration-server-sdk-go-describeplayersessions) 呼び出しで Amazon GameLift Servers に提供します。


| プロパティ | **説明** | 
| --- | --- | 
| GameSessionID |  一意のゲームセッション識別子。このパラメータを使用して、指定したゲームセッションのすべてのプレイヤーセッションをリクエストします。 ゲームセッション ID の形式は `arn:aws:gamelift:<region>::gamesession/fleet-<fleet ID>/<ID string>` です。`GameSessionID` はカスタム ID 文字列または生成された文字列です。 **タイプ**: `String` **必須:** いいえ  | 
| PlayerSessionID |  プレイヤーセッションを表す一意の識別子。このパラメータを使用して、特定の 1 つのプレイヤーセッションをリクエストします。 **タイプ**: `String` **必須:** いいえ  | 
| PlayerID |  プレイヤーの一意識別子。このパラメータを使用して、特定の 1 人のプレイヤーに対するすべてのプレイヤーセッションをリクエストします。「[プレイヤー ID を生成する](player-sessions-player-identifiers.md)」を参照してください。 **タイプ**: `String` **必須:** いいえ  | 
| PlayerSessionStatusFilter |  結果をフィルタリングするプレイヤーセッションステータス。可能なプレイヤーセッションステータスには以下が含まれます。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/gameliftservers/latest/developerguide/integration-server-sdk-go-datatypes.html) **タイプ**: `String` **必須:** いいえ  | 
| NextToken |  結果の次のページの先頭を示すトークン。結果セットの先頭を指定するには、値を指定しないでください。プレイヤーセッション ID を提供する場合、このパラメータは無視されます。 **タイプ**: `String` **必須:** いいえ  | 
| Limit |  返される結果の最大数。プレイヤーセッション ID を提供する場合、このパラメータは無視されます。 **タイプ**: `int` **必須:** いいえ  | 

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

マッチメーキングバックフィルリクエストのキャンセルに使用される情報。ゲームサーバーは、この情報を [StopMatchBackfill()](integration-server-sdk-go-actions.md#integration-server-sdk-go-stopmatchbackfill) 呼び出しで Amazon GameLift Servers サービスに送信します。


| プロパティ | **説明** | 
| --- | --- | 
| GameSessionArn |  キャンセルされるリクエストの一意のゲームセッション識別子。 **タイプ**: `string` **必須:** いいえ  | 
| MatchmakingConfigurationArn |  このリクエストが送信されたマッチメーカーの一意の識別子。 **タイプ**: `string` **必須:** いいえ  | 
| TicketId |  キャンセルされるバックフィルリクエストチケットの一意の識別子。 **タイプ**: `string` **必須:** いいえ  | 

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

 AWS リソースへの制限付きアクセスをゲームサーバーに拡張するロール認証情報。詳細については、[Amazon GameLift Servers 用に IAM サービスロールをセットアップする](setting-up-role.md) を参照してください。


| プロパティ | **説明** | 
| --- | --- | 
| RoleArn |  AWS リソースへの制限付きアクセスを拡張するサービスロールの ARN。**タイプ**: `string`**必須:** はい | 
| RoleSessionName | ロール認証情報の使用を説明するセッションの名前。**タイプ**: `string`**必須:** はい | 

[Go サーバー SDK for Amazon GameLift Servers -- データ型](integration-server-sdk-go-datatypes.md)

**Topics**
+ [Go サーバー SDK for Amazon GameLift Servers -- データ型](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>

サーバープロセスに組み込まれた SDK の現在のバージョン番号を返します。

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

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

### 戻り値
<a name="integration-server-sdk-go-getsdkversion-return"></a>

成功した場合、文字列として現在の SDK バージョンを返します。返される文字列は、バージョン番号のみを含みます。(例: `5.0.0`) 成功しなかった場合、`common.SdkVersionDetectionFailed` などのエラーメッセージを返します。

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

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

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

Amazon GameLift Servers SDK のメトリクス収集を初期化します。このメソッドは、サーバーのパフォーマンスとヘルスのモニタリングに役立つメトリクスレポートを設定します。このメソッドは、[InitSDK()](#integration-server-sdk-go-initsdk) の後、[ProcessReady()](#integration-server-sdk-go-processready) の前に呼び出します。

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

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

### パラメータ
<a name="integration-server-sdk-go-initmetrics-parameter"></a>

MetricsParameters (オプション)  
メトリクスコレクションを設定する `MetricsParameters` オブジェクト。指定しない場合、デフォルトのメトリクス設定が使用されます。MetricsParameters 構造には、次のフィールドが含まれます。  
+ `StatsdHost` - StatsD サーバーのホスト名または IP アドレスを指定します。
+ `StatsdPort` - StatsD サーバーのポート番号を指定します。
+ `CrashReporterHost` - クラッシュレポーターサービスのホスト名または IP アドレスを指定します。
+ `CrashReporterPort` - クラッシュレポーターサービスのポート番号を指定します。
+ `FlushIntervalMs` - メトリクスデータをフラッシュする間隔 (ミリ秒) を指定します。
+ `MaxPacketSize` - メトリクスパケットの最大サイズ (バイト単位) を指定します。
MetricsParameters 構造体の詳細については、「[サーバー SDK 5.x for C\$1 のデータ型](https://docs.aws.amazon.com/gameliftservers/latest/developerguide/integration-server-sdk5-csharp-datatypes.html)」を参照してください。

### 戻り値
<a name="integration-server-sdk-go-initmetrics-return"></a>

成功すると、`nil` はメトリクス収集が正常に初期化されたことを示すエラーを返します。

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

デフォルト設定でメトリクスを初期化します。

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

カスタム設定を使用してメトリクスを初期化します。

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

環境変数の設定を使用して Amazon GameLift Servers SDK のメトリクス収集を初期化します。このメソッドは、ランタイム環境から派生したデフォルト設定を使用してメトリクスレポートを設定します。

このメソッドは、[InitSDK()](#integration-server-sdk-go-initsdk) の後、[ProcessReady()](#integration-server-sdk-go-processready) の前に呼び出します。

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

```
func InitMetricsFromEnvironment() error
```

### 戻り値
<a name="integration-server-sdk-go-initmetricsfromenv-return"></a>

成功すると、`nil` エラーを返し、環境設定を使用してメトリクス収集が正常に初期化されたことを示します。

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

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

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

Amazon GameLift Servers SDK を初期化します。起動時に、他の Amazon GameLift Servers 関連の初期化が実行される前にこのメソッドを呼び出します。このメソッドで、サーバーと Amazon GameLift Servers サービスとの通信を確立します。

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

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

### パラメータ
<a name="integration-server-sdk-go-initsdk-parameter"></a>

[ServerParameters](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-serverparameters)  
Amazon GameLift Servers Anywhere フリートのゲームサーバーを初期化するには、次の情報を含む `ServerParameters` オブジェクトを作成します。  
+ ゲームサーバーへの接続に使用される WebSocket の URL。
+ ゲームサーバーのホストに使用されるプロセスの ID。
+ ゲームサーバープロセスをホスティングするコンピューティングの ID。
+ Amazon GameLift Servers Anywhere コンピューティングを含む Amazon GameLift Servers フリートの ID。
+ Amazon GameLift Servers オペレーションによって生成された認可トークン。
Amazon GameLift Servers マネージド EC2 フリートのゲームサーバーを初期化するには、パラメータなしで `ServerParameters` オブジェクトを作成します。この呼び出しで、Amazon GameLift Servers エージェントがコンピューティング環境をセットアップし、お客様に代わって Amazon GameLift Servers サービスに自動的に接続します。

### 戻り値
<a name="integration-server-sdk-go-initsdk-return"></a>

成功した場合は、サーバープロセスが [ProcessReady()](#integration-server-sdk-go-processready) を呼び出す準備ができていることを示す `nil` エラーを返します。

**注記**  
Anywhere フリートにデプロイされたゲームビルドに対して `InitSDK()` への呼び出しが失敗する場合は、ビルドリソースの作成時に使用した `ServerSdkVersion` パラメータを確認してください。この値は、使用中のサーバー SDK バージョンに明示的に設定する必要があります。このパラメータのデフォルト値は 4.x で、互換性がありません。この問題を解決するには、新しいビルドを作成して新しいフリートにデプロイします。

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

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

Amazon GameLift Servers マネージド EC2 の例

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

サーバープロセスがゲームセッションをホストする準備ができたことを Amazon GameLift Servers に通知します。[InitSDK()](#integration-server-sdk-go-initsdk) を呼び出した後にこのメソッドを呼び出します。このメソッドは、プロセスごとに 1 回だけ呼び出す必要があります。

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

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

### パラメータ
<a name="integration-server-sdk-go-processready-parameter"></a>

**ProcessParameters**  
サーバープロセスに関する以下の情報を伝える [ProcessParameters](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-process) オブジェクト。  
+ サーバープロセスと通信するために Amazon GameLift Servers サービスが呼び出す、ゲームサーバーコードで実装されたコールバックメソッドの名前。
+ サーバープロセスがリッスンするポートの番号。
+ Amazon GameLift Servers でキャプチャして保存するゲームセッション固有のファイルへのパスを含む [LogParameters](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-log) データ型。

### 戻り値
<a name="integration-server-sdk-go-processready-return"></a>

メソッドが失敗すると、エラーとエラーメッセージを返します。メソッドが成功した場合は、`nil` を返します。

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

この例では、[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>

サーバープロセスが終了していることを Amazon GameLift Servers に通知します。アクティブなゲームセッションのシャットダウンを含むその他すべてのクリーンアップタスクの後そして、プロセスを終了する前にこのメソッドを呼び出します。`ProcessEnding()` の結果に応じて、プロセスは成功 (0) またはエラー (-1) で終了し、フリートイベントが生成されます。プロセスがエラーで終了した場合、生成されるフリートイベントは `SERVER_PROCESS_TERMINATED_UNHEALTHY` です。

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

```
func ProcessEnding() error
```

### 戻り値
<a name="integration-server-sdk-go-processending-return"></a>

0 のエラーコードまたは定義済みのエラーコードを返します。

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

サーバープロセスがゲームセッションをアクティブにし、プレイヤーの接続を受ける準備ができていることを Amazon GameLift Servers に通知します。このアクションは、すべてのゲームセッションの初期化の後、`onStartGameSession()` コールバック関数の一部として呼び出されます。

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

```
func ActivateGameSession() error
```

### 戻り値
<a name="integration-server-sdk-go-activategamesession-return"></a>

メソッドが失敗すると、エラーとエラーメッセージを返します。

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

この例では、`onStartGameSession()` 委任関数の一部として呼び出された `ActivateGameSession()` を示しています。

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

現在のゲームセッションの機能を更新し、新しいプレイヤーセッションを承諾します。ゲームセッションは、新しいプレイヤーセッションをすべて受け入れるか拒否するかを設定できます。

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

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

### パラメータ
<a name="integration-server-sdk-go-updateplayersessioncreationpolicy-parameter"></a>

**playerSessionCreationPolicy**  
ゲームセッションで新しいプレイヤーを承諾するかどうかを示す文字列値。  
有効な値を次に示します。  
+ **`model.AcceptAll`** – すべての新しいプレイヤーセッションを受け入れます。
+ **`model.DenyAll`** – すべての新しいプレイヤーセッションを拒否します。

### 戻り値
<a name="integration-server-sdk-go-updateplayersessioncreationpolicy-return"></a>

失敗が発生すると、エラーとエラーメッセージを返します。

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

この例は、現在のゲームセッションの参加ポリシーを、すべてのプレイヤーを受け入れるように設定します。

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

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

アクティブなサーバープロセスにホストされたゲームセッションの ID を取得します。

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

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

### パラメータ
<a name="integration-server-sdk-go-getgamesessionid-parameter"></a>

このアクションにはパラメータがありません。

### 戻り値
<a name="integration-server-sdk-go-getgamesessionid-return"></a>

成功した場合、ゲームセッション ID を nil エラーを返します。ゲームセッションでアクティブ化されていないアイドルプロセスの場合、呼び出しは空の文字列と `nil` エラーを返します。

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

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

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

終了時刻が判る場合に、サーバープロセスがシャットダウンを予定している時刻を返します。サーバープロセスは、Amazon GameLift Servers から `onProcessTerminate()` コールバックを受信した後にこのアクションを実行します。Amazon GameLift Servers は次の理由で `onProcessTerminate()` を呼び出します。
+ サーバープロセスが健全性異常を報告したり、Amazon GameLift Servers に応答しなかった場合。
+ スケールダウンイベント中にインスタンスを終了する場合。
+ [スポットインスタンスの中断](spot-tasks.md)によりインスタンスが終了した場合。

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

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

### 戻り値
<a name="integration-server-sdk-go-getterm-return"></a>

成功すると、サーバープロセスのシャットダウンが予定されているタイムスタンプ (エポック秒単位) と `nil` エラー終了を返します。値は終了時間で、`0001 00:00:00` からの経過ティックで表現されます。例えば、日付時刻の値 `2020-09-13 12:26:40 -000Z` は、`637355968000000000` ティックに等しくなります。終了時間がない場合は、エラーメッセージを返します。

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

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

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

指定されたプレイヤーセッション ID を持つプレイヤーがサーバープロセスに接続し、検証が必要であることを、Amazon GameLift Servers に通知します。Amazon GameLift Servers は、プレイヤーセッション ID が有効であることを検証します。検証できたら、Amazon GameLift Servers はプレーヤースロットの状態を `RESERVED` から `ACTIVE` に変更します。

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

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

### パラメータ
<a name="integration-server-sdk-go-acceptplayersession-parameter"></a>

`playerSessionId`  
新しいプレイヤーセッションが作成されたときに Amazon GameLift Servers によって発行される一意の ID。

### 戻り値
<a name="integration-server-sdk-go-acceptplayersession-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

この例では、無効なプレイヤーセッション ID の検証と拒否を含む接続リクエストを処理します。

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

プレイヤーがサーバープロセスから切断されたことを Amazon GameLift Servers に通知します。それに応じて、Amazon GameLift Servers はプレイヤースロットを利用可能に変更します。

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

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

### パラメータ
<a name="integration-server-sdk-go-removeplayersession-parameter"></a>

**`playerSessionId`**  
新しいプレイヤーセッションが作成されたときに Amazon GameLift Servers によって発行される一意の ID。

### 戻り値
<a name="integration-server-sdk-go-removeplayersession-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

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

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

設定、セッションメタデータ、プレイヤーデータを含む、プレイヤーセッションデータを取得します。このメソッドを使用して、以下に関する情報を取得します。
+ シングルプレイヤーセッション
+ ゲームセッションのすべてのプレイヤーセッション
+ 1 つのプレイヤー ID に関連付けられているすべてのプレイヤーセッション

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

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

### パラメータ
<a name="integration-server-sdk-go-describeplayersessions-parameter"></a>

**[DescribePlayerSessionsRequest](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-playersessions)**  
取得するプレイヤーセッションを記述する `DescribePlayerSessionsRequest` オブジェクト。

### 戻り値
<a name="integration-server-sdk-go-describeplayersessions-return"></a>

成功した場合は、リクエストのパラメータに適合したプレイヤーセッションオブジェクトのセットを含む `DescribePlayerSessionsResult` オブジェクトを返します。

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

この例は、指定したゲームセッションにアクティブに接続されているすべてのプレイヤーセッションのリクエストします。*NextToken* を省略し、*Limit* 値を 10 に設定すると、Amazon GameLift Servers は、リクエストに一致するプレイヤーセッションレコードの最初の 10 個を返します。

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

FlexMatch で作成されたゲームセッションの空きスロット用に新規プレイヤーを検索するリクエストを送信します。詳細については、「[FlexMatch バックフィル機能](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html)」を参照してください。

このアクションは非同期です。新規プレイヤーが正常にマッチングされると、Amazon GameLift Servers はコールバック関数 `OnUpdateGameSession()` を使用して更新済みマッチメーカーデータを送信します。

サーバープロセスではアクティブなマッチバックフィルリクエストは一度に 1 つだけです。新しいリクエストを送信するには、まず [StopMatchBackfill()](#integration-server-sdk-go-stopmatchbackfill) を呼び出して元のリクエストをキャンセルする必要があります。

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

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

### パラメータ
<a name="integration-server-sdk-go-startmatchbackfill-parameter"></a>

**[StartMatchBackfillRequest](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-startmatchbackfillrequest)**  
StartMatchBackfillRequest オブジェクトは、次の情報を伝達します。  
+ バックフィルリクエストに割り当てるチケット ID。この情報はオプションです。ID が指定されていない場合は Amazon GameLift Servers が 1 つ生成します。
+ リクエストを送信するマッチメーカー。完全な設定 ARN が必要です。この値はゲームセッションのマッチメーカーデータに含まれています。
+ バックフィルするゲームセッションの ID。
+ ゲームセッションの現在のプレイヤーに利用可能なマッチメーキングデータ。

### 戻り値
<a name="integration-server-sdk-go-startmatchbackfill-return"></a>

`StartMatchBackfillResult` オブジェクトを、マッチバックフィルチケット ID またはエラーメッセージを伴うエラーとともに返します。

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

アクティブなマッチバックフィルリクエストをキャンセルします。詳細については、「[FlexMatch バックフィル機能](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html)」を参照してください。

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

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

### パラメータ
<a name="integration-server-sdk-go-stopmatchbackfill-parameter"></a>

**[StopMatchBackfillRequest](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-stopmatchbackfillrequest)**  
キャンセルするマッチメーキングチケットを識別する StopMatchBackfillRequest オブジェクト:   
+ バックフィルリクエストに割り当てるチケット ID。
+ バックフィルリクエストが送信されたマッチメーカー。
+ バックフィルリクエストに関連付けられたゲームセッション。

### 戻り値
<a name="integration-server-sdk-go-stopmatchbackfill-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

ゲームサーバーとゲームクライアント間のネットワーク接続を暗号化するために使用される TLS 証明書へのパスを取得します。この証明書パスは、コンピューティングデバイスを Amazon GameLift Servers Anywhere フリートに登録するときに使用できます。詳細については、「[RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)」を参照してください。

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

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

### 戻り値
<a name="integration-server-sdk-go-getcomputecertificate-return"></a>

以下が含まれる `GetComputeCertificateResult` オブジェクトを返します。
+  CertificatePath: コンピューティングリソース上の TLS 証明書へのパス。Amazon GameLift Servers マネージドフリートを使用する場合、このパスには次の内容が含まれます。
  + `certificate.pem`: エンドユーザー証明書。証明書チェーン全体は、この証明書に追加された `certificateChain.pem` を組み合わせたものです。
  + `certificateChain.pem`: ルート証明書と中間証明書を含む証明書チェーン。
  + `rootCertificate.pem`: ルート証明書。
  + `privateKey.pem`: エンドユーザー証明書のプライベートキー。
+ ComputeName: コンピューティングリソースの名前。

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

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

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

アクセス許可を他の に拡張するために作成したサービスロールの認証情報を取得します AWS のサービス Amazon GameLift Servers。これらの認証情報により、ゲームサーバーは AWS リソースを使用できます。詳細については、「[Amazon GameLift Servers 用に IAM サービスロールをセットアップする](setting-up-role.md)」を参照してください。

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

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

### パラメータ
<a name="integration-server-sdk-go-getfleetrolecredentials-parameters"></a>

[GetFleetRoleCredentialsRequest](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-getfleetrolecredentialsrequest)  
 AWS リソースへの制限付きアクセスをゲームサーバーに拡張するロール認証情報。

### 戻り値
<a name="integration-server-sdk-go-getfleetrolecredentials-return"></a>

以下が含まれる `GetFleetRoleCredentialsResult` オブジェクトを返します。
+ AssumedRoleUserArn - サービスロールが属するユーザーの Amazon リソースネーム (ARN)。
+ AssumedRoleId - サービスロールが属するユーザーの ID。
+ AccessKeyId - AWS へのアクセスを認証して提供するためのアクセスキー ID。
+ SecretAccessKey - 認証のためのシークレットアクセスキー ID。
+ SessionToken - AWS リソースとやり取りする現在のアクティブなセッションを識別するトークン。
+ Expiration - セッション認証情報の有効期限が切れるまでの時間。

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

Amazon GameLift Servers ゲームサーバー SDK をメモリから解放します。ベストプラクティスとして、`ProcessEnding()` の後、かつプロセスの終了前にこのメソッドを呼び出します。Anywhere フリートを使用していて、ゲームセッションのたびにサーバープロセスを終了しない場合は、`Destroy()`、`InitSDK()` の順に呼び出して再初期化してから、`ProcessReady()` でゲームセッションをホストする準備ができたことを Amazon GameLift Servers に通知します。

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

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

### 戻り値
<a name="integration-server-sdk-go-destroy-return"></a>

メソッドが失敗すると、エラーとエラーメッセージを返します。

### 例
<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)
  }
}
```

# C\$1\$1 (Unreal) サーバー SDK 5.x for Amazon GameLift Servers -- アクション
<a name="integration-server-sdk5-unreal-actions"></a>

Amazon GameLift Servers Unreal サーバー SDK 5.x リファレンスは、Amazon GameLift Servers で使用するマルチプレイヤーゲームの準備を整えるのに役立ちます。統合プロセスの詳細については、「[サーバー SDK を使用して、Amazon GameLift Servers をゲームサーバーに追加します。](gamelift-sdk-server-api.md)」を参照してください。Unreal 用 Amazon GameLift Servers プラグインを使用している場合は、「[Unreal Engine 用 Amazon GameLift Servers プラグイン](unreal-plugin.md)」も参照してください。

**注記**  
このトピックでは、Unreal Engine を構築するときに使用できる Amazon GameLift Servers C\$1\$1 API について説明します。特に、このドキュメントは `-DBUILD_FOR_UNREAL=1` オプションを使用してコンパイルするコードが対象です。

# C\$1\$1 (Unreal)サーバー SDK 5.x for Amazon GameLift Servers -- データ型
<a name="integration-server-sdk5-unreal-datatypes"></a>

Amazon GameLift Servers Unreal サーバー SDK 5.x リファレンスは、Amazon GameLift Servers で使用するマルチプレイヤーゲームの準備を整えるのに役立ちます。統合プロセスの詳細については、「[サーバー SDK を使用して、Amazon GameLift Servers をゲームサーバーに追加します。](gamelift-sdk-server-api.md)」を参照してください。Unreal 用 Amazon GameLift Servers プラグインを使用している場合は、「[Unreal Engine 用 Amazon GameLift Servers プラグイン](unreal-plugin.md)」も参照してください。

**注記**  
このトピックでは、Unreal Engine を構築するときに使用できる Amazon GameLift Servers C\$1\$1 API について説明します。特に、このドキュメントは `-DBUILD_FOR_UNREAL=1` オプションを使用してコンパイルするコードが対象です。

[C\$1\$1 (Unreal) サーバー SDK 5.x for Amazon GameLift Servers -- アクション](integration-server-sdk5-unreal-actions.md)

**Topics**
+ [FProcessParameters](#integration-server-sdk5-unreal-dataypes-process)
+ [UpdateGameSession](#integration-server-sdk5-unreal-dataypes-updategamesession)
+ [GameSession](#integration-server-sdk5-unreal-dataypes-gamesession)
+ [FServerParameters](#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)
+ [FAttributeValue](#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)
+ [FGenericOutcome](#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)
+ [列挙型](#integration-server-sdk5-unreal-dataypes-enums)

## FProcessParameters
<a name="integration-server-sdk5-unreal-dataypes-process"></a>

このデータ型には、[ProcessReady()](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-processready) の中で Amazon GameLift Servers に送信されるパラメータのセットが含まれます。


|  |  | 
| --- |--- |
|  **プロパティ**  | 説明 | 
| LogParameters | ゲームセッション中に生成されるファイルへのディレクトリパスを持つオブジェクトです。Amazon GameLift Servers はこれらのファイルをコピーして保存し、後で参照できるようにします。**タイプ**: `TArray<FString>`**必須:** いいえ | 
| OnHealthCheck | Amazon GameLift Servers がサーバープロセスにヘルスステータスレポートを要求するために呼び出すコールバック関数です。Amazon GameLift Servers はこの関数を 60 秒ごとに呼び出し、応答を最大 60 秒間待機します。サーバープロセスは正常であれば TRUE を返し、正常でない場合は FALSE を返します。応答が返されない場合、Amazon GameLift Servers はサーバープロセスを正常ではないと記録します。このプロパティは、`DECLARE_DELEGATE_RetVal(bool, FOnHealthCheck)` として定義されるデリゲート関数です。  **タイプ**: `FOnHealthCheck`**必須:** いいえ | 
| OnProcessTerminate | Amazon GameLift Servers がサーバープロセスを強制的にシャットダウンするために呼び出すコールバック関数です。この関数を呼び出すと、Amazon GameLift Servers はサーバープロセスがシャットダウンするまで最大 5 分間待機し、サーバープロセスがシャットダウンする前に [ProcessEnding()](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-processending) 呼び出しで応答するのを待ちます。**タイプ**: `FSimpleDelegate`**必須:** はい | 
| OnStartGameSession | Amazon GameLift Servers が新しいゲームセッションをアクティブ化するために呼び出すコールバック関数。Amazon GameLift Servers は、クライアントリクエスト [CreateGameSession](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateGameSession.html) に応じてこの関数を呼び出します。コールバック関数は [GameSession](#integration-server-sdk5-unreal-dataypes-gamesession) オブジェクトを渡します。このプロパティは、`DECLARE_DELEGATE_OneParam(FOnStartGameSession, Aws::GameLift::Server::Model::GameSession);` として定義されるデリゲート関数です  **タイプ**: `FOnStartGameSession`**必須:** はい | 
| OnUpdateGameSession | 更新されたゲームセッションオブジェクトをサーバープロセスに渡すために、Amazon GameLift Servers が呼び出すコールバック関数。Amazon GameLift Servers は、更新されたマッチメーカーデータを提供するために、マッチバックフィルリクエストが処理された際にこの関数を呼び出します。これは、[GameSession](#integration-server-sdk5-unreal-dataypes-gamesession) オブジェクト、ステータス更新 (updateReason) そして、マッチバックフィルチケット ID を渡します。このプロパティは、`DECLARE_DELEGATE_OneParam(FOnUpdateGameSession, Aws::GameLift::Server::Model::UpdateGameSession);` として定義されるデリゲート関数です **タイプ**: `FOnUpdateGameSession`**必須:** いいえ | 
| ポート | サーバープロセスが新しいプレイヤーの接続をリスンするポート番号。値は、このゲームサーバービルドをデプロイするすべてのフリートで設定されているポート番号の範囲に含まれる必要があります。このポート番号は、ゲームセッションオブジェクトとプレイヤーセッションオブジェクトに含まれ、ゲームセッションがサーバープロセスに接続するときに使用します。**タイプ**: `int`**必須:** はい | 

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

このデータ型はゲームセッションオブジェクトに更新されます。これには、ゲームセッションが更新された理由と、バックフィルを使用してゲームセッション内のプレイヤーセッションを埋めるための関連するバックフィルチケット ID が含まれます。


| プロパティ | **説明** | 
| --- | --- | 
| GameSession | [GameSession](#integration-server-sdk5-unreal-dataypes-gamesession) オブジェクト。GameSession オブジェクトにはゲームセッションを説明するプロパティが含まれています。**タイプ**: `Aws::GameLift::Server::GameSession`**必須:** いいえ | 
| UpdateReason | ゲームセッションが更新されている理由。**タイプ**: `enum class UpdateReason`  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/gameliftservers/latest/developerguide/integration-server-sdk5-unreal-datatypes.html) **必須:** いいえ   | 
| BackfillTicketId | ゲームセッションの更新を試みるバックフィルチケットの ID。**タイプ**: `char[]`**必須:** いいえ | 

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

このデータ型はゲームセッションの詳細を提供します。


| プロパティ | **説明** | 
| --- | --- | 
| GameSessionId |  ゲームセッションの一意の識別子。ゲームセッション ARN の形式 は `arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>` です。 **タイプ**: `char[]` **必須:** いいえ  | 
| 名前 |  ゲームセッションについて説明するラベル。 **タイプ**: `char[]` **必須:** いいえ  | 
| FleetId |  ゲームセッションが実行されているフリートの一意の識別子。 **タイプ**: `char[]` **必須:** いいえ  | 
| MaximumPlayerSessionCount |  ゲームセッションへのプレーヤー接続の最大数。 **タイプ**: `int` **必須:** いいえ  | 
| ポート |  ゲームセッションのポート番号。Amazon GameLift Servers ゲームサーバーに接続するには、アプリに IP アドレスとポート番号の両方が必要です。 **タイプ**: `int` **必須:** いいえ  | 
| IpAddress |  ゲームセッションの IP アドレス。Amazon GameLift Servers ゲームサーバーに接続するには、アプリに IP アドレスとポート番号の両方が必要です。 **タイプ**: `char[]` **必須:** いいえ  | 
| GameSessionData |  単一の文字列値としてフォーマットされたカスタムゲームセッションプロパティのセット。 **タイプ**: `char[]` **必須:** いいえ  | 
| MatchmakerData |  ゲームセッションの作成に使用されたマッチメーキングプロセスに関する情報。JSON 構文で、文字列としてフォーマットされています。使用されたマッチメーキング設定に加えて、プレイヤー属性やチーム割り当てなど、マッチに割り当てられた全プレイヤーに関するデータが含まれます。 **タイプ**: `char[]` **必須:** いいえ  | 
| GameProperties |  ゲームセッションのカスタムプロパティのセットで、キーと値のペアとしてフォーマットされます。これらのプロパティは、新しいゲームセッションを開始するリクエストとともに渡されます。 **タイプ**: `GameProperty[]` **必須:** いいえ  | 
| DnsName |  ゲームセッションを実行しているインスタンスに割り当てられた DNS 識別子。値の形式は次のとおりです。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/gameliftservers/latest/developerguide/integration-server-sdk5-unreal-datatypes.html) TLS 対応フリートで実行しているゲームセッションに接続する場合、IP アドレスではなく DNS 名を使用する必要があります。 **タイプ**: `char[]` **必須:** いいえ  | 

## FServerParameters
<a name="integration-server-sdk5-unreal-dataypes-serverparameters"></a>

Amazon GameLift Servers Anywhere サーバーと Amazon GameLift Servers サービス間の接続を維持するために使用される情報。この情報は、[InitSDK()](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-initsdk) で新しいサーバープロセスを起動するときに使用されます。Amazon GameLift Servers マネージド EC2 インスタンスでホストされているサーバーには、空のオブジェクトを使用してください。


| プロパティ | **説明** | 
| --- | --- | 
| webSocketUrl |  Amazon GameLift Servers Anywhere コンピューティングリソース用に [https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html) を実行すると、`GameLiftServerSdkEndpoint` Amazon GameLift Servers が返されます。 **タイプ**: `char[]` **必須:** はい   | 
| processId |  ゲームをホストするサーバープロセスに登録された固有の識別子。 **タイプ**: `char[]` **必須:** はい  | 
| hostId | HostID はコンピューティングを登録したときに使用される ComputeName です。詳細については、「[RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)」を参照してください。**タイプ**: `char[]`**必須:** はい | 
| fleetId | コンピューティングが登録されているフリートの固有識別子。詳細については、「[RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)」を参照してください。**タイプ**: `char[]`**必須:** はい | 
| authToken | Amazon GameLift Servers によって生成され、サーバーを Amazon GameLift Servers に対して認証するための認証トークン。詳細については、「[GetComputeAuthToken](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetComputeAuthToken.html)」を参照してください。**タイプ**: `char[]`**必須:** はい | 

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

マッチメーキングバックフィルリクエストの作成に使用される情報。ゲームサーバーは、この情報を [StartMatchBackfill()](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-startmatchbackfill) 呼び出しで Amazon GameLift Servers に送信します。


| プロパティ | **説明** | 
| --- | --- | 
| GameSessionArn |  一意のゲームセッション識別子。API オペレーション `[GetGameSessionId](https://docs.aws.amazon.com/gameliftservers/latest/developerguide/integration-server-sdk5-unreal-actions.html#integration-server-sdk5-unreal-getgamesessionid)` は ARN 形式の識別子を返します。 **タイプ**: `char[]` **必須:** はい  | 
| MatchmakingConfigurationArn |  このリクエストに使用されるマッチメーカーの ARN 形式の一意な識別子。元のゲームセッションののマッチメーカー ARN は、マッチメーカーデータプロパティのゲームセッションオブジェクトにあります。マッチメーカーデータの詳細については「[マッチメーカーデータの処理](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-server.html#match-server-data.html)」を参照してください。 **タイプ**: `char[]` **必須:** はい  | 
| プレイヤー |  ゲームセッションに参加しているすべてのプレイヤーを表すデータのセット。マッチメーカーはこの情報を使用して、現在のプレイヤーとマッチする新しいプレイヤーを検索します。 **タイプ**: `TArray<FPlayer>` **必須:** はい  | 
| TicketId |  マッチメーキングまたはバックフィルリクエストチケットの一意の識別子。値を指定しない場合、Amazon GameLift Servers ソリューションが値を生成します。この識別子を使用してマッチバックフィルチケットのステータスを追跡したり、必要に応じてリクエストをキャンセルしたりします。 **タイプ**: `char[]` **必須:** いいえ  | 

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

このデータ型はマッチメーキングのプレイヤーを表します。マッチメーキングリクエストを開始すると、プレイヤーにはプレイヤー ID、属性、必要に応じてレイテンシーデータが含まれます。マッチが成立すると、Amazon GameLift Servers がチーム情報を追加します。


| プロパティ | **説明** | 
| --- | --- | 
| LatencyInMS |  プレイヤーがロケーションに接続したときに発生するレイテンシーの量を示すミリ秒単位の値のセット。 このプロパティを使用すると、プレーヤーはリストに表示されている場所でのみマッチングされます。マッチメーカーにプレイヤーレイテンシーを評価するルールがある場合、プレイヤーはレイテンシーを報告しないとマッチングされません。 **タイプ**: `TMap>FString, int32<` **必須:** いいえ  | 
| PlayerAttributes |  マッチメーキングに使用するプレイヤー情報を含むキーと値のペアの集合。プレイヤー属性キーは、マッチメーキングルールセットで使用されている PlayerAttributes と一致する必要があります。 プレイヤー属性の詳細については、「[AttributeValue](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_AttributeValue.html)」を参照してください。 **タイプ**: `TMap>FString, FAttributeValue<` **必須:** いいえ  | 
| PlayerId |  プレイヤーを表す一意の識別子。 **タイプ**: `std::string` **必須:** いいえ  | 
| チーム |  マッチでプレーヤーが割り当てられるチームの名前。チーム名はマッチメーキングルールセットで定義します。 **タイプ**: `FString` **必須:** いいえ  | 

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

取得するプレイヤーセッションを指定するオブジェクト。サーバープロセスは、この情報を [DescribePlayerSessions()](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-describeplayersessions) 呼び出しで Amazon GameLift Servers に提供します。


| プロパティ | **説明** | 
| --- | --- | 
| GameSessionId |  一意のゲームセッション識別子。このパラメータを使用して、指定したゲームセッションのすべてのプレイヤーセッションをリクエストします。 ゲームセッション ID の形式は `FString` です。`GameSessionID` はカスタム ID 文字列または **タイプ**: `std::string` **必須:** いいえ  | 
| PlayerSessionId |  プレイヤーセッションを表す一意の識別子。このパラメータを使用して、特定の 1 つのプレイヤーセッションをリクエストします。 **タイプ**: `FString` **必須:** いいえ  | 
| PlayerId |  プレイヤーの一意識別子。このパラメータを使用して、特定の 1 人のプレイヤーに対するすべてのプレイヤーセッションをリクエストします。「[プレイヤー ID を生成する](player-sessions-player-identifiers.md)」を参照してください。 **タイプ**: `FString` **必須:** いいえ  | 
| PlayerSessionStatusFilter |  結果をフィルタリングするプレイヤーセッションステータス。可能なプレイヤーセッションステータスには以下が含まれます。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/gameliftservers/latest/developerguide/integration-server-sdk5-unreal-datatypes.html) **タイプ**: `FString` **必須:** いいえ  | 
| NextToken |  結果の次のページの先頭を示すトークン。結果セットの先頭を指定するには、値を指定しないでください。プレイヤーセッション ID を提供する場合、このパラメータは無視されます。 **タイプ**: `FString` **必須:** いいえ  | 
| 制限 |  返される結果の最大数。プレイヤーセッション ID を提供する場合、このパラメータは無視されます。 **タイプ**: `int` **必須:** いいえ  | 

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

マッチメーキングバックフィルリクエストのキャンセルに使用される情報。ゲームサーバーは、この情報を [StopMatchBackfill()](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-stopmatchbackfill) 呼び出しで Amazon GameLift Servers サービスに送信します。


| プロパティ | **説明** | 
| --- | --- | 
| GameSessionArn |  キャンセルされるリクエストの一意のゲームセッション識別子。 **タイプ**: `FString` **必須:** はい  | 
| MatchmakingConfigurationArn |  このリクエストが送信されたマッチメーカーの一意の識別子。 **タイプ**: `FString` **必須:** はい  | 
| TicketId |  キャンセルされるバックフィルリクエストチケットの一意の識別子。 **タイプ**: `FString` **必須:** はい  | 

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

これらの値を [FPlayer](#integration-server-sdk5-unreal-dataypes-player) 属性のキーと値のペアで使用します。このオブジェクトでは、文字列、数値、文字列配列、データマップのいずれかの有効なデータ型を使用して属性値を指定できます。各 `AttributeValue` オブジェクトは、使用可能なプロパティのうちの 1 つだけを使用できます。


| プロパティ | 説明 | 
| --- | --- | 
| attrType |  属性値のタイプを指定します。 **型:** `FAttributeType` [enum](#integration-server-sdk5-unreal-dataypes-enums) 値。 **必須:** いいえ  | 
| S |  文字列の属性値を表します。 **タイプ**: `FString` **必須:** いいえ  | 
| いいえ |  数値の属性値を表します。 **タイプ**: `double` **必須:** いいえ  | 
| SL |  文字列の属性値の配列を表します。 **タイプ**: `TArray<FString>` **必須:** いいえ  | 
| SDM |  文字列キーと二重値のディクショナリを表します。 **タイプ**: `TMap<FString, double>` **必須:** いいえ  | 

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

このデータ型は、 AWS リソースへの制限付きアクセスをゲームサーバーにまで拡張するロール認証情報を提供します。詳細については、「[Amazon GameLift Servers 用に IAM サービスロールをセットアップする](setting-up-role.md)」を参照してください。


| プロパティ | **説明** | 
| --- | --- | 
| RoleArn | リソースへの制限付きアクセスを拡張するサービスロールの Amazon AWS リソースネーム (ARN)。**タイプ**: `FString`**必須:** いいえ | 
| RoleSessionName | ロール認証情報の使用を説明するセッションの名前。**タイプ**: `FString`**必須:** いいえ | 

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

このデータ型はアクションの結果で、以下のプロパティを持つオブジェクトを生成します。


| プロパティ | 説明 | 
| --- | --- | 
| 結果 |  アクションの結果。 **タイプ**: `long` **必須:** いいえ  | 
| ResultWithOwnership |   アクションの結果を rvalue としてキャストし、呼び出し元のコードがオブジェクトの所有権を取得できるようにします。 **タイプ**: `long&&` **必須:** いいえ  | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror) **必須:** いいえ  | 

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

このデータ型はアクションの結果で、以下のプロパティを持つオブジェクトを生成します。


| プロパティ | 説明 | 
| --- | --- | 
| 結果 |  アクションの結果。 **タイプ**: `FString` **必須:** いいえ  | 
| ResultWithOwnership |   アクションの結果を rvalue としてキャストし、呼び出し元のコードがオブジェクトの所有権を取得できるようにします。 **タイプ**: `FString&&` **必須:** いいえ  | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror) **必須:** いいえ  | 

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

このデータ型はアクションの結果で、以下のプロパティを持つオブジェクトを生成します。


| プロパティ | 説明 | 
| --- | --- | 
| 結果 |  アクションの結果。 **タイプ**: [FGameLiftDescribePlayerSessionsResult](#integration-server-sdk5-unreal-dataypes-describeplayersessionresult) **必須:** いいえ   | 
| ResultWithOwnership |   アクションの結果を rvalue としてキャストし、呼び出し元のコードがオブジェクトの所有権を取得できるようにします。 **タイプ**: `FGameLiftDescribePlayerSessionsResult&&` **必須:** いいえ  | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror) **必須:** いいえ  | 

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


| プロパティ | 説明 | 
| --- | --- | 
| PlayerSessions |   **タイプ**: `TArray<FGameLiftPlayerSession>` **必須:** はい  | 
| NextToken |  結果の次のページの先頭を示すトークン。結果セットの先頭を指定するには、値を指定しないでください。プレイヤーセッション ID を提供する場合、このパラメータは無視されます。 **タイプ**: `FString` **必須:** いいえ  | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror) **必須:** いいえ  | 

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

このデータ型はアクションの結果で、以下のプロパティを持つオブジェクトを生成します。


| プロパティ | 説明 | 
| --- | --- | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror) **必須:** いいえ  | 

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


| プロパティ | 説明 | 
| --- | --- | 
| CreationTime |  **タイプ**: `long` **必須:** はい  | 
| FleetId |  **タイプ**: `FString` **必須:** はい  | 
| GameSessionId |  **タイプ**: `FString` **必須:** はい  | 
| IpAddress |  **タイプ**: `FString` **必須:** はい  | 
| PlayerData |  **タイプ**: `FString` **必須:** はい  | 
| PlayerId |  **タイプ**: `FString` **必須:** はい  | 
| PlayerSessionId |  **タイプ**: `FString` **必須:** はい  | 
| ポート |  **タイプ**: `int` **必須:** はい  | 
| ステータス |  **型:** `PlayerSessionStatus` [enum](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-enums)。 **必須:** はい  | 
| TerminationTime |  **タイプ**: `long` **必須:** はい  | 
| DnsName |  **タイプ**: `FString` **必須:** はい  | 

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

このデータ型はアクションの結果で、以下のプロパティを持つオブジェクトを生成します。


| プロパティ | 説明 | 
| --- | --- | 
| 結果 |  アクションの結果。 **タイプ**: [FGameLiftGetComputeCertificateResult](#integration-server-sdk5-unreal-dataypes-getcomputecertificateresult) **必須:** いいえ   | 
| ResultWithOwnership |   アクションの結果を rvalue としてキャストし、呼び出し元のコードがオブジェクトの所有権を取得できるようにします。 **タイプ**: `FGameLiftGetComputeCertificateResult&&` **必須:** いいえ  | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror) **必須:** いいえ  | 

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

コンピューティングの TLS 証明書へのパスとコンピューティングのホスト名。


| プロパティ | 説明 | 
| --- | --- | 
| CertificatePath |  **タイプ**: `FString` **必須:** はい  | 
| ComputeName |  **タイプ**: `FString` **必須:** はい  | 

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

このデータ型はアクションの結果で、以下のプロパティを持つオブジェクトを生成します。


| プロパティ | 説明 | 
| --- | --- | 
| 結果 |  アクションの結果。 **タイプ**: [FGetFleetRoleCredentialsResult](#integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsresult) **必須:** いいえ   | 
| ResultWithOwnership |   アクションの結果を rvalue としてキャストし、呼び出し元のコードがオブジェクトの所有権を取得できるようにします。 **タイプ**: `FGameLiftGetFleetRoleCredentialsResult&&` **必須:** いいえ  | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [FGameLiftError](#integration-server-sdk5-unreal-dataypes-gamelifterror) **必須:** いいえ  | 

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


| プロパティ | 説明 | 
| --- | --- | 
| AccessKeyId |   AWS へのアクセスを認証して提供するためのアクセスキー ID。 **タイプ**: `FString` **必須:** いいえ  | 
| AssumedRoleId |  サービスロールが属するユーザーの ID。 **タイプ**: `FString` **必須:** いいえ  | 
| AssumedRoleUserArn |  サービスロールが属するユーザーの Amazon リソースネーム (ARN)。 **タイプ**: `FString` **必須:** いいえ  | 
| 有効期限 |  セッション認証情報の有効期限が切れるまでの時間。 **タイプ**: `FDateTime` **必須:** いいえ  | 
| SecretAccessKey |  認証のためのシークレットアクセスキー ID。 **タイプ**: `FString` **必須:** いいえ  | 
| SessionToken |   AWS リソースとやり取りする現在のアクティブなセッションを識別するトークン。 **タイプ**: `FString` **必須:** いいえ  | 
| Success |  アクションが成功したかどうか。 **タイプ**: `bool` **必須:** はい  | 
| エラー |  アクションが失敗した場合に発生したエラー。 **タイプ**: [GameLiftError](integration-server-sdk5-csharp-datatypes.md#integration-server-sdk5-csharp-datatypes-gamelifterror) **必須:** いいえ  | 

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


| プロパティ | 説明 | 
| --- | --- | 
| ErrorType |  エラーのタイプ。 **型:** `GameLiftErrorType` [enum](integration-server-sdk5-cpp-datatypes.md#integration-server-sdk5-cpp-dataypes-enums)。 **必須:** いいえ   | 
| ErrorName |  エラータイプの名前。  **タイプ**: `std::string`  **必須:** いいえ   | 
| ErrorMessage |  エラーメッセージです。  **タイプ**: `std::string`  **必須:** いいえ   | 

## 列挙型
<a name="integration-server-sdk5-unreal-dataypes-enums"></a>

サーバー SDK for Amazon GameLift Servers (Unreal)で定義されている列挙体は、次のとおりです。

**FAttributeType**  
+ **なし**
+ **STRING**
+ **DOUBLE**
+ **STRING\$1LIST**
+ **STRING\$1DOUBLE\$1MAP**

**GameLiftErrorType**  
エラータイプを示す文字列値。有効な値を次に示します。  
+ **SERVICE\$1CALL\$1FAILED** – AWS サービスへの呼び出しに失敗しました。
+ **LOCAL\$1CONNECTION\$1FAILED** - Amazon GameLift Serversへのローカル接続に失敗しました。
+ **NETWORK\$1NOT\$1INITIALIZED** - ネットワークは初期化されていません。
+ **GAMESESSION\$1ID\$1NOT\$1SET** - ゲームセッション ID が設定されていません。
+ **BAD\$1REQUEST\$1EXCEPTION** 
+ **INTERNAL\$1SERVICE\$1EXCEPTION** 
+ **ALREADY\$1INITIALIZED** - Amazon GameLift Servers サーバーまたはクライアントはすでに Initialize() で初期化されています。
+ **FLEET\$1MISMATCH** - ターゲットフリートが gameSession または playerSession のフリートと一致しません。
+ **GAMELIFT\$1CLIENT\$1NOT\$1INITIALIZED** - Amazon GameLift Servers クライアントは初期化されていません。
+ **GAMELIFT\$1SERVER\$1NOT\$1INITIALIZED** - Amazon GameLift Servers クライアントは初期化されていません。
+ **GAME\$1SESSION\$1ENDED\$1FAILED** - サーバー SDK for Amazon GameLift Servers はサービスにアクセスしてゲームセッションが終了したことを報告できませんでした。
+ **GAME\$1SESSION\$1NOT\$1READY** - Amazon GameLift Servers サーバーのゲームセッションがアクティブ化されませんでした。
+ **GAME\$1SESSION\$1READY\$1FAILED** - サーバー SDK for Amazon GameLift Servers は、サービスにアクセスしてゲームセッションの準備が完了したことを報告できませんでした。
+ **INITIALIZATION\$1MISMATCH** - Server:: Initialize() の後にクライアントメソッドが呼び出されました。その逆も同様です。
+ **NOT\$1INITIALIZED** - Amazon GameLift Servers サーバーまたはクライアントは Initialize() で初期化されていません。
+ **NO\$1TARGET\$1ALIASID\$1SET** - ターゲットの aliasId が設定されていません。
+ **NO\$1TARGET\$1FLEET\$1SET** - ターゲットフリートが設定されていません。
+ **PROCESS\$1ENDING\$1FAILED** - サーバー SDK for Amazon GameLift Servers はサービスにアクセスしてプロセスの終了を報告できませんでした。
+ **PROCESS\$1NOT\$1ACTIVE** - サーバープロセスはまだアクティブではなく、GameSession にバインドされていないため、PlayerSessions を受け入れたり処理したりすることはできません。
+ **PROCESS\$1NOT\$1READY** - サーバープロセスをまだアクティブ化する準備ができていません。
+ **PROCESS\$1READY\$1FAILED** - サーバー SDK for Amazon GameLift Servers はサービスにアクセスしてプロセスの準備が完了したことを報告できませんでした。
+ **SDK\$1VERSION\$1DETECTION\$1FAILED** - SDK バージョン検出に失敗しました。
+ **STX\$1CALL\$1FAILED** - XStx サーバーのバックエンドコンポーネントへの呼び出しが失敗しました。
+ **STX\$1INITIALIZATION\$1FAILED** - XStx サーバーのバックエンドコンポーネントが初期化に失敗しました。
+ **UNEXPECTED\$1PLAYER\$1SESSION** - 未登録のプレイヤーセッションがサーバーによって検出されました。
+ **WEBSOCKET\$1CONNECT\$1FAILURE** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1FORBIDDEN** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1INVALID\$1URL** 
+ **WEBSOCKET\$1CONNECT\$1FAILURE\$1TIMEOUT** 
+ **WEBSOCKET\$1RETRIABLE\$1SEND\$1MESSAGE\$1FAILURE** - GameLift Service WebSocket にメッセージを送信する際に再試行可能な障害が発生しました。
+ **WEBSOCKET\$1SEND\$1MESSAGE\$1FAILURE** - GameLift Service WebSocket へのメッセージの送信に失敗しました。
+ **MATCH\$1BACKFILL\$1REQUEST\$1VALIDATION** - リクエストの検証に失敗しました。
+ **PLAYER\$1SESSION\$1REQUEST\$1VALIDATION** – リクエストの検証に失敗しました。

**EPlayerSessionCreationPolicy**  
ゲームセッションで新しいプレイヤーを承諾するかどうかを示す文字列値。有効な値を次に示します。  
+ **ACCEPT\$1ALL** - すべての新しいプレイヤーセッションを承諾します。
+ **DENY\$1ALL** - すべての新しいプレイヤーセッションを拒否します。
+ **NOT\$1SET** – ゲームセッションは、新規プレイヤーセッションを受け入れたり拒否したりするように設定されていません。

**EPlayerSessionStatus**  
+ **アクティブ**
+ **COMPLETED**
+ **NOT\$1SET**
+ **RESERVED**
+ **TIMEDOUT**

[C\$1\$1 (Unreal)サーバー SDK 5.x for Amazon GameLift Servers -- データ型](integration-server-sdk5-unreal-datatypes.md)

**Topics**
+ [C\$1\$1 (Unreal)サーバー SDK 5.x for Amazon GameLift Servers -- データ型](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>

サーバープロセスに組み込まれた SDK の現在のバージョン番号を返します。

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

```
FGameLiftStringOutcome GetSdkVersion();
```

### 戻り値
<a name="integration-server-sdk5-unreal-getsdkversion-return"></a>

成功した場合、[FGameLiftStringOutcome](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-awsstringoutcome) オブジェクトとして現在の SDK バージョンを返します。返されるオブジェクトには、バージョン番号が含まれます (例: `5.0.0`)。成功しなかった場合、エラーメッセージを返します。

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

マネージド EC2 フリート用の Amazon GameLift Servers SDK を初期化します。起動時に、他の Amazon GameLift Servers 関連の初期化が実行される前にこのメソッドを呼び出します。このメソッドは、ホスト環境からサーバーパラメータを読み取り、サーバーと Amazon GameLift Servers サービス間の通信をセットアップします。べき等性トークンを使用するため、失敗したときにこの呼び出しを安全に再試行できます。

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

```
FGameLiftGenericOutcome InitSDK()
```

### 戻り値
<a name="integration-server-sdk5-unreal-initsdk-return"></a>

成功した場合は、サーバープロセスが [ProcessReady()](#integration-server-sdk5-unreal-processready) を呼び出す準備ができていることを示す `InitSdkOutcome` オブジェクトを返します。

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

Anywhere フリートまたはマネージドコンテナフリートの Amazon GameLift Servers SDK を初期化します。起動時に、他の Amazon GameLift Servers 関連の初期化が実行される前にこのメソッドを呼び出します。この方法では、サーバーと Amazon GameLift Servers サービス間の通信をセットアップするための明示的なサーバーパラメータが必要です。べき等性トークンを使用するため、失敗したときにこの呼び出しを安全に再試行できます。

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

```
FGameLiftGenericOutcome InitSDK(serverParameters)
```

### パラメータ
<a name="integration-server-sdk5-unreal-initsdk-anywhere-parameter"></a>

[FServerParameters](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-serverparameters)  
Amazon GameLift Servers Anywhere フリートのゲームサーバーを初期化するには、次の情報を含む `ServerParameters` オブジェクトを作成します。  
+ ゲームサーバーへの接続に使用される WebSocket の URL。
+ ゲームサーバーのホストに使用されるプロセスの ID。
+ ゲームサーバープロセスをホスティングするコンピューティングの ID。
+ Amazon GameLift Servers Anywhere コンピューティングを含む Amazon GameLift Servers フリートの ID。
+ Amazon GameLift Servers オペレーションによって生成された認可トークン。

### 戻り値
<a name="integration-server-sdk5-unreal-initsdk-anywhere-return"></a>

成功した場合は、サーバープロセスが [ProcessReady()](#integration-server-sdk5-unreal-processready) を呼び出す準備ができていることを示す `InitSdkOutcome` オブジェクトを返します。

**注記**  
Anywhere フリートにデプロイされたゲームビルドに対して `InitSDK()` への呼び出しが失敗する場合は、ビルドリソースの作成時に使用した `ServerSdkVersion` パラメータを確認してください。この値は、使用中のサーバー SDK バージョンに明示的に設定する必要があります。このパラメータのデフォルト値は 4.x で、互換性がありません。この問題を解決するには、新しいビルドを作成して新しいフリートにデプロイします。

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

サーバープロセスがゲームセッションをホストする準備ができたことを Amazon GameLift Servers に通知します。[InitSDK()](#integration-server-sdk5-unreal-initsdk) を呼び出した後にこのメソッドを呼び出します。このメソッドは、プロセスごとに 1 回だけ呼び出す必要があります。

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

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

### パラメータ
<a name="integration-server-sdk5-unreal-processready-parameter"></a>

**processParameters**  
サーバープロセスに関する以下の情報を伝える [FProcessParameters](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-process) オブジェクト。  
+ サーバープロセスと通信するために Amazon GameLift Servers サービスが呼び出す、ゲームサーバーコードで実装されたコールバックメソッドの名前。
+ サーバープロセスがリッスンするポートの番号。
+ Amazon GameLift Servers でキャプチャして保存するゲームセッション固有のファイルへのパス。

### 戻り値
<a name="integration-server-sdk5-unreal-processready-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

この例では、[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>

サーバープロセスが終了していることを Amazon GameLift Servers に通知します。アクティブなゲームセッションのシャットダウンを含むその他すべてのクリーンアップタスクの後そして、プロセスを終了する前にこのメソッドを呼び出します。`ProcessEnding()` の結果に応じて、プロセスは成功 (0) またはエラー (-1) で終了し、フリートイベントが生成されます。プロセスがエラーで終了した場合、生成されるフリートイベントは `SERVER_PROCESS_TERMINATED_UNHEALTHY` です。

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

```
FGameLiftGenericOutcome ProcessEnding()
```

### 戻り値
<a name="integration-server-sdk5-unreal-processending-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

サーバープロセスがゲームセッションをアクティブにし、プレイヤーの接続を受ける準備ができていることを Amazon GameLift Servers に通知します。このアクションは、すべてのゲームセッションの初期化の後、`onStartGameSession()` コールバック関数の一部として呼び出されます。

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

```
FGameLiftGenericOutcome ActivateGameSession()
```

### 戻り値
<a name="integration-server-sdk5-unreal-activategamesession-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

この例では、`onStartGameSession()` 委任関数の一部として呼び出された `ActivateGameSession()` を示しています。

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

現在のゲームセッションの機能を更新し、新しいプレイヤーセッションを承諾します。ゲームセッションは、新しいプレイヤーセッションをすべて受け入れるか拒否するかを設定できます。

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

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

### パラメータ
<a name="integration-server-sdk5-unreal-updateplayersessioncreationpolicy-parameter"></a>

**playerCreationSessionPolicy**  
ゲームセッションで新しいプレイヤーを承諾するかどうかを示す文字列値。  
有効な値を次に示します。  
+ **ACCEPT\$1ALL** - すべての新しいプレイヤーセッションを承諾します。
+ **DENY\$1ALL** - すべての新しいプレイヤーセッションを拒否します。

### 戻り値
<a name="integration-server-sdk5-unreal-updateplayersessioncreationpolicy-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

この例は、現在のゲームセッションの参加ポリシーを、すべてのプレイヤーを受け入れるように設定します。

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

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

アクティブなサーバープロセスにホストされたゲームセッションの ID を取得します。

ゲームセッションでアクティブ化されていないアイドル状態のプロセスの場合、呼び出しは [FGameLiftError](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-gamelifterror) を返します。

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

```
FGameLiftStringOutcome GetGameSessionId()
```

### パラメータ
<a name="integration-server-sdk5-unreal-getgamesessionid-parameter"></a>

このアクションにはパラメータがありません。

### 戻り値
<a name="integration-server-sdk5-unreal-getgamesessionid-return"></a>

成功した場合、ゲームセッション ID を [FGameLiftStringOutcome](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-awsstringoutcome) オブジェクトとして返します。成功しなかった場合、エラーメッセージを返します。

ゲームセッションでまだアクティブ化されていないアイドルプロセスの場合、呼び出しは `Success`=`True` および `GameSessionId`=`""` を返します。

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

終了時刻が判る場合に、サーバープロセスがシャットダウンを予定している時刻を返します。サーバープロセスは、Amazon GameLift Servers から`onProcessTerminate()` コールバックを受信した後、アクションを実行します。Amazon GameLift Servers は、次の理由で `onProcessTerminate()` を呼び出します。
+ サーバープロセスが健全性異常を報告したり、Amazon GameLift Servers に応答しなかった場合。
+ スケールダウンイベント中にインスタンスを終了する場合。
+ [スポットインスタンスの中断](spot-tasks.md)によりインスタンスが終了した場合。

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

```
AwsDateTimeOutcome GetTerminationTime()
```

### 戻り値
<a name="integration-server-sdk5-unreal-getterm-return"></a>

成功した場合、終了時刻を `AwsDateTimeOutcome` オブジェクトとして返します。値は終了時間で、`0001 00:00:00` 以降の経過ティックで表現されます。例えば、日付時刻の値 `2020-09-13 12:26:40 -000Z` は、`637355968000000000` ティックに等しくなります。終了時間がない場合は、エラーメッセージを返します。

プロセスが ` ProcessParameters.OnProcessTerminate()` コールバックを受信していない場合、エラーメッセージが返されます。サーバープロセスのシャットダウンの詳細については、「[サーバープロセスのシャットダウン通知に応答する](gamelift-sdk-server-api.md#gamelift-sdk-server-terminate)」を参照してください。

### 例
<a name="integration-server-sdk5-unreal-getterm-example"></a>

```
AwsDateTimeOutcome TermTimeOutcome = GameLiftSdkModule->GetTerminationTime();
```

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

指定されたプレイヤーセッション ID を持つプレイヤーがサーバープロセスに接続し、検証が必要であることを、Amazon GameLift Servers に通知します。Amazon GameLift Servers は、プレイヤーセッション ID が有効であることを検証します。検証できたら、Amazon GameLift Servers はプレーヤースロットの状態を RESERVED から ACTIVE に変更します。

### 構文
<a name="integration-server-sdk5-unreal-acceptplayersession-syntax"></a>

```
FGameLiftGenericOutcome AcceptPlayerSession(const FString& playerSessionId)
```

### パラメータ
<a name="integration-server-sdk5-unreal-acceptplayersession-parameter"></a>

playerSessionId  
新しいプレイヤーセッションが作成されたときに Amazon GameLift Servers によって発行される一意の ID。

### 戻り値
<a name="integration-server-sdk5-unreal-acceptplayersession-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

### 例
<a name="integration-server-sdk5-unreal-acceptplayersession-example"></a>

この例では、無効なプレイヤーセッション ID の検証と拒否を含む接続リクエストを処理します。

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

プレイヤーがサーバープロセスから切断されたことを Amazon GameLift Servers に通知します。それに応じて、Amazon GameLift Servers はプレイヤースロットを利用可能に変更します。

### 構文
<a name="integration-server-sdk5-unreal-removeplayersession-syntax"></a>

```
FGameLiftGenericOutcome RemovePlayerSession(const FString& playerSessionId)
```

### パラメータ
<a name="integration-server-sdk5-unreal-removeplayersession-parameter"></a>

**`playerSessionId`**  
新しいプレイヤーセッションが作成されたときに Amazon GameLift Servers によって発行される一意の ID。

### 戻り値
<a name="integration-server-sdk5-unreal-removeplayersession-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

設定、セッションメタデータ、プレイヤーデータを含む、プレイヤーセッションデータを取得します。このメソッドを使用して、以下に関する情報を取得します。
+ シングルプレイヤーセッション
+ ゲームセッションのすべてのプレイヤーセッション
+ 1 つのプレイヤー ID に関連付けられているすべてのプレイヤーセッション

### 構文
<a name="integration-server-sdk5-unreal-describeplayersessions-syntax"></a>

```
FGameLiftDescribePlayerSessionsOutcome DescribePlayerSessions(const FGameLiftDescribePlayerSessionsRequest &describePlayerSessionsRequest)
```

### パラメータ
<a name="integration-server-sdk5-unreal-describeplayersessions-parameter"></a>

**[FGameLiftDescribePlayerSessionsRequest](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-playersessions)**  
取得するプレイヤーセッションを記述する [FGameLiftDescribePlayerSessionsRequest](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-playersessions) オブジェクト。

### 戻り値
<a name="integration-server-sdk5-unreal-describeplayersessions-return"></a>

成功した場合は、リクエストのパラメータに適合したプレイヤーセッションオブジェクトのセットを含む [FGameLiftDescribePlayerSessionsOutcome](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-describeplayersessionsoutcome) オブジェクトを返します。

### 例
<a name="integration-server-sdk5-unreal-describeplayersessions-example"></a>

この例は、指定したゲームセッションにアクティブに接続されているすべてのプレイヤーセッションのリクエストします。*NextToken* を省略し、*Limit* 値を 10 に設定すると、Amazon GameLift Servers は、リクエストに一致するプレイヤーセッションレコードの最初の 10 個を返します。

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

FlexMatch で作成されたゲームセッションの空きスロット用に新規プレイヤーを検索するリクエストを送信します。詳細については、「[FlexMatch バックフィル機能](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html)」を参照してください。

このアクションは非同期です。新規プレイヤーが正常にマッチングされると、Amazon GameLift Servers はコールバック関数 `OnUpdateGameSession()` を使用して更新済みマッチメーカーデータを送信します。

サーバープロセスではアクティブなマッチバックフィルリクエストは一度に 1 つだけです。新しいリクエストを送信するには、まず [StopMatchBackfill()](#integration-server-sdk5-unreal-stopmatchbackfill) を呼び出して元のリクエストをキャンセルする必要があります。

### 構文
<a name="integration-server-sdk5-unreal-startmatchbackfill-syntax"></a>

```
FGameLiftStringOutcome StartMatchBackfill (FStartMatchBackfillRequest &startBackfillRequest);
```

### パラメータ
<a name="integration-server-sdk5-unreal-startmatchbackfill-parameter"></a>

**[FStartMatchBackfillRequest](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-startmatchbackfillrequest)**  
次の情報を通信する StartMatchBackfillRequest オブジェクト。  
+ バックフィルリクエストに割り当てるチケット ID。この情報はオプションです。ID が指定されていない場合は Amazon GameLift Servers が ID を 1 つ生成します。
+ リクエストを送信するマッチメーカー。完全な設定 ARN が必要です。この値はゲームセッションのマッチメーカーデータに含まれています。
+ バックフィルするゲームセッションの ID。
+ ゲームセッションの現在のプレイヤーに利用可能なマッチメーキングデータ。

### 戻り値
<a name="integration-server-sdk5-unreal-startmatchbackfill-return"></a>

`StartMatchBackfillOutcome` オブジェクトを、マッチバックフィルチケット ID またはエラーメッセージを伴うエラーとともに返します。

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

アクティブなマッチバックフィルリクエストをキャンセルします。詳細については、「[FlexMatch バックフィル機能](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html)」を参照してください。

### 構文
<a name="integration-server-sdk5-unreal-stopmatchbackfill-syntax"></a>

```
FGameLiftGenericOutcome StopMatchBackfill (FStopMatchBackfillRequest &stopBackfillRequest);
```

### パラメータ
<a name="integration-server-sdk5-unreal-stopmatchbackfill-parameter"></a>

**[FStopMatchBackfillRequest](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-stopmatchbackfillrequest)**  
キャンセルするマッチメーキングチケットを識別する StopMatchBackfillRequest オブジェクト:   
+ バックフィルリクエストに割り当てるチケット ID。
+ バックフィルリクエストが送信されたマッチメーカー。
+ バックフィルリクエストに関連付けられたゲームセッション。

### 戻り値
<a name="integration-server-sdk5-unreal-stopmatchbackfill-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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

Amazon GameLift Servers Anywhere コンピューティングリソースと Amazon GameLift Servers 間のネットワーク接続を暗号化するために使用される TLS 証明書へのパスを取得します。この証明書パスは、コンピューティングデバイスを Amazon GameLift Servers Anywhere フリートに登録するときに使用できます。詳細については、「[RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)」を参照してください。

### 構文
<a name="integration-server-sdk5-unreal-getcomputecertificate-syntax"></a>

```
FGameLiftGetComputeCertificateOutcome FGameLiftServerSDKModule::GetComputeCertificate()
```

### 戻り値
<a name="integration-server-sdk5-unreal-getcomputecertificate-return"></a>

以下を含む `GetComputeCertificateResponse` オブジェクトを返します。
+ CertificatePath: コンピューティングリソース上の TLS 証明書へのパス。
+ HostName: コンピューティングリソースのホスト名。

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

Amazon GameLift Servers が他のとやり取りすることを許可する IAM ロール認証情報を取得します。詳細については、「[Amazon GameLift Servers ホストされたゲームサーバーを他の AWS リソースに接続する](gamelift-sdk-server-resources.md)」を参照してください。

### 構文
<a name="integration-server-sdk5-unreal-getfleetrolecredentials-syntax"></a>

```
FGameLiftGetFleetRoleCredentialsOutcome FGameLiftServerSDKModule::GetFleetRoleCredentials(const FGameLiftGetFleetRoleCredentialsRequest &request)
```

### パラメータ
<a name="integration-server-sdk5-unreal-getfleetrolecredentials-parameters"></a>

[FGameLiftGetFleetRoleCredentialsRequest](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsrequest)

### 戻り値
<a name="integration-server-sdk5-unreal-getfleetrolecredentials-return"></a>

[FGameLiftGetFleetRoleCredentialsOutcome](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsoutcome) オブジェクトを返します。

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

Amazon GameLift Servers ゲームサーバー SDK をメモリから解放します。ベストプラクティスとして、`ProcessEnding()` の後、かつプロセスの終了前にこのメソッドを呼び出します。Anywhere フリートを使用していて、ゲームセッションのたびにサーバープロセスを終了しない場合は、`Destroy()`、`InitSDK()` の順に呼び出して再初期化してから、`ProcessReady()` でゲームセッションをホストする準備ができたことを Amazon GameLift Servers に通知します。

### 構文
<a name="integration-server-sdk5-unreal-ref-destroy-syntax"></a>

```
FGameLiftGenericOutcome Destroy();
```

### パラメータ
<a name="integration-server-sdk5-unreal-ref-destroy-parameter"></a>

パラメータはありません。

### 戻り値
<a name="integration-server-sdk5-unreal-ref-destroy-return"></a>

正常またはエラーメッセージを伴うエラーの、一般的な結果を返します。

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