

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

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

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

**注記**  
このリファレンスは、サーバー SDK for Amazon GameLift Servers の以前のバージョン用です。最新バージョンについては、「[C\# サーバー SDK 5.x for Amazon GameLift Servers -- アクション](integration-server-sdk5-csharp-actions.md)」を参照してください。

[C\# サーバー SDK for Amazon GameLift Servers 4.x -- データ型](integration-server-sdk-csharp-ref-datatypes.md)

**Topics**
+ [C\# サーバー SDK for Amazon GameLift Servers 4.x -- データ型](integration-server-sdk-csharp-ref-datatypes.md)
+ [AcceptPlayerSession()](#integration-server-sdk-csharp-ref-acceptplayersession)
+ [ActivateGameSession()](#integration-server-sdk-csharp-ref-activategamesession)
+ [DescribePlayerSessions()](#integration-server-sdk-csharp-ref-describeplayersessions)
+ [GetGameSessionId()](#integration-server-sdk-csharp-ref-getgamesessionid)
+ [GetInstanceCertificate()](#integration-server-sdk-csharp-ref-getinstancecertificate)
+ [GetSdkVersion()](#integration-server-sdk-csharp-ref-getsdk)
+ [GetTerminationTime()](#integration-server-sdk-csharp-ref-getterm)
+ [InitSDK()](#integration-server-sdk-csharp-ref-initsdk)
+ [ProcessEnding()](#integration-server-sdk-csharp-ref-processending)
+ [ProcessReady()](#integration-server-sdk-csharp-ref-processready)
+ [RemovePlayerSession()](#integration-server-sdk-csharp-ref-removeplayersession)
+ [StartMatchBackfill()](#integration-server-sdk-csharp-ref-startmatchbackfill)
+ [StopMatchBackfill()](#integration-server-sdk-csharp-ref-stopmatchbackfill)
+ [TerminateGameSession()](#integration-server-sdk-csharp-ref-terminategamesession)
+ [UpdatePlayerSessionCreationPolicy()](#integration-server-sdk-csharp-ref-updateplayersessioncreationpolicy)

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

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

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

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

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

**playerSessionId**  
新しいプレイヤーセッションが作成されたときに Amazon GameLift Servers によって発行される一意の ID。プレイヤーセッション ID は、`PlayerSession` オブジェクトです。これは、クライアントの *GameLift API* アクションの [StartGameSessionPlacement](https://docs.aws.amazon.com/gamelift/latest/apireference/API_StartGameSessionPlacement.html)、[CreateGameSession](https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreateGameSession.html)、[DescribeGameSessionPlacement](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeGameSessionPlacement.html)、または [DescribePlayerSessions](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribePlayerSessions.html) の呼び出しに応答して返されます。  
型: string  
必須: はい

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

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

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

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

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

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

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

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

```
GenericOutcome ActivateGameSession()
```

### パラメータ
<a name="integration-server-sdk-csharp-ref-activategamesession-parameter"></a>

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

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

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

### 例
<a name="integration-server-sdk-csharp-ref-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   
    var activateGameSessionOutcome = GameLiftServerAPI.ActivateGameSession();
}
```

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

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

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

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

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

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

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

成功した場合は、リクエストのパラメータに適合したプレイヤーセッションオブジェクトのセットを含む `DescribePlayerSessionsOutcome` オブジェクトを返します。プレイヤーセッションオブジェクトの構造は AWS SDK Amazon GameLift Servers API [PlayerSession](https://docs.aws.amazon.com/gamelift/latest/apireference/API_PlayerSession.html) データ型と同じです。

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

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

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

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

サーバープロセスがアクティブな場合、サーバープロセスが現在ホストしているゲームセッションの ID を取得します。

ゲームセッションでまだアクティブ化されていないアイドルプロセスの場合、コールは、`Success` = `True` そして `GameSessionId` = `""` (空の文字列) を返します。

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

```
AwsStringOutcome GetGameSessionId()
```

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

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

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

成功した場合、ゲームセッション ID を `AwsStringOutcome` オブジェクトとして返します。成功しなかった場合、エラーメッセージを返します。

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

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

## GetInstanceCertificate()
<a name="integration-server-sdk-csharp-ref-getinstancecertificate"></a>

フリートとそのインスタンスに関連付けられている pem エンコードされた TLS 証明書のファイルの場所を取得します。証明書設定を GENERATED に設定して新しいフリートを作成すると、この証明書 AWS Certificate Manager が生成されます。この証明書を使用して、ゲームクライアントとのセキュリティ保護ありの接続を確立し、クライアント/サーバー通信を暗号化します。

### 構文
<a name="integration-server-sdk-csharp-ref-getinstancecertificate-syntax"></a>

```
GetInstanceCertificateOutcome GetInstanceCertificate();
```

### パラメータ
<a name="integration-server-sdk-csharp-ref-getinstancecertificate-parameter"></a>

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

### 戻り値
<a name="integration-server-sdk-csharp-ref-getinstancecertificate-return"></a>

成功すると、インスタンスに保存されているフリートの TLS 証明書ファイルの場所と証明書チェーンを含む `GetInstanceCertificateOutcome` オブジェクトを返します。証明書チェーンから抽出されたルート証明書ファイルもインスタンスに保存されます。成功しなかった場合、エラーメッセージを返します。

証明書と証明書チェーンデータの詳細については、 AWS Certificate Manager API リファレンスの[GetCertificate Response Elements](https://docs.aws.amazon.com/acm/latest/APIReference/API_GetCertificate.html#API_GetCertificate_ResponseElements)」を参照してください。

### 例
<a name="integration-server-sdk-csharp-ref-getinstancecertificate-example"></a>

```
var getInstanceCertificateOutcome = GameLiftServerAPI.GetInstanceCertificate();
```

## GetSdkVersion()
<a name="integration-server-sdk-csharp-ref-getsdk"></a>

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

### 構文
<a name="integration-server-sdk-csharp-ref-getsdk-syntax"></a>

```
AwsStringOutcome GetSdkVersion()
```

### パラメータ
<a name="integration-server-sdk-csharp-ref-getsdk-parameter"></a>

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

### 戻り値
<a name="integration-server-sdk-csharp-ref-getsdk-return"></a>

成功した場合、`AwsStringOutcome` オブジェクトとして現在の SDK バージョンを返します。返される文字列は、バージョン番号のみを含みます(例: 3.1.5)。成功しなかった場合、エラーメッセージを返します。

### 例
<a name="integration-server-sdk-csharp-ref-getsdk-example"></a>

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

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

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

プロセスが `onProcessTerminate()` コールバックを受信した場合、戻り値は予想終了時刻です。プロセスが `onProcessTerminate()` コールバックを受信していない場合、エラーメッセージが返されます。[サーバープロセスのシャットダウン](gamelift-sdk-server-api.md#gamelift-sdk-server-terminate)の詳細を確認してください。

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

```
AwsDateTimeOutcome GetTerminationTime()
```

### パラメータ
<a name="integration-server-sdk-csharp-ref-getterm-parameter"></a>

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

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

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

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

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

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

Amazon GameLift Servers SDK を初期化します。このメソッドは起動時に他の Amazon GameLift Servers 関連の初期化が実行される前に呼び出す必要があります。

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

```
InitSDKOutcome InitSDK()
```

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

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

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

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

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

```
var initSDKOutcome = GameLiftServerAPI.InitSDK(); 
```

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

サーバープロセスがシャットダウンしていることを Amazon GameLift Servers サービスに通知します。このメソッドは、すべてのアクティブゲームセッションのシャットダウンを含む他のすべてのクリーンアップタスクの後に呼び出されます。このメソッドは、終了コード 0 で終了します。0 以外の終了コードでは、処理が問題なく終了しなかったというイベントメッセージが発生します。

メソッドがコード 0 で終了すると、成功した終了コードでプロセスを終了できます。エラーコードでプロセスを終了することもできます。エラーコードで終了すると、フリートイベントはプロセスが異常終了したことを示します (`SERVER_PROCESS_TERMINATED_UNHEALTHY`)。

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

```
GenericOutcome ProcessEnding()
```

### パラメータ
<a name="integration-server-sdk-csharp-ref-processending-parameter"></a>

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

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

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

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

```
var processEndingOutcome = GameLiftServerAPI.ProcessEnding();
if (processReadyOutcome.Success)
   Environment.Exit(0);
// otherwise, exit with error code
Environment.Exit(errorCode);
```

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

サーバープロセスがゲームセッションをホストする準備ができたことを Amazon GameLift Servers サービスに通知します。このメソッドは、[InitSDK()](#integration-server-sdk-csharp-ref-initsdk) の呼び出しが成功して必要な設定タスクが完了した後、サーバープロセスがゲームセッションをホストできるようになる前に呼び出す必要があります。このメソッドは、プロセスごとに 1 回だけ呼び出す必要があります。

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

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

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

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

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

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

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

この例では、[ProcessReady()](#integration-server-sdk-csharp-ref-processready) 呼び出しと委任関数の実装の両方を示します。

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

var processReadyOutcome = GameLiftServerAPI.ProcessReady(processParams);

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

void OnProcessTerminate()
{
   // game-specific tasks required to gracefully shut down a game session, 
   // such as notifying players, preserving game state data, and other cleanup
    var ProcessEndingOutcome = GameLiftServerAPI.ProcessEnding();
}

bool OnHealthCheck()
{
    bool isHealthy;
    // complete health evaluation within 60 seconds and set health
    return isHealthy;
}
```

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

指定されたプレイヤーセッション ID のプレイヤーがサーバープロセスから切断されたことを Amazon GameLift Servers サービスに通知します。それに応じて、Amazon GameLift Servers はプレイヤースロットを新しいプレイヤーに割り当てられるよう利用可能に変更します。

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

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

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

**playerSessionId**  
新しいプレイヤーセッションが作成されたときに Amazon GameLift Servers によって発行される一意の ID。プレイヤーセッション ID は、`PlayerSession` オブジェクトです。これは、クライアントの *GameLift API* アクションの [StartGameSessionPlacement](https://docs.aws.amazon.com/gamelift/latest/apireference/API_StartGameSessionPlacement.html)、[CreateGameSession](https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreateGameSession.html)、[DescribeGameSessionPlacement](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeGameSessionPlacement.html)、または [DescribePlayerSessions](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribePlayerSessions.html) の呼び出しに応答して返されます。  
型: string  
必須: はい

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

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

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

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

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

FlexMatch で作成されたゲームセッションの空きスロット用に新規プレイヤーを検索するリクエストを送信します。 AWS SDK アクション [StartMatchBackfill()](https://docs.aws.amazon.com/gamelift/latest/apireference/API_StartMatchBackfill.html) も参照してください。このアクションを使用すると、ゲームセッションをホストするゲームサーバーのプロセスによってマッチバックフィルリクエストを開始できます。[FlexMatch のバックフィル機能](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html)について。

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

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

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

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

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

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

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

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

### 例
<a name="integration-server-sdk-csharp-ref-startmatchbackfill-example"></a>

```
// Build a backfill request
var startBackfillRequest = new AWS.GameLift.Server.Model.StartMatchBackfillRequest()
{
    TicketId = "a ticket ID", //optional
    MatchmakingConfigurationArn = "the matchmaker configuration ARN", 
    GameSessionId = GameLiftServerAPI.GetGameSessionId().Result,    // gets ID for current game session
        //get player data for all currently connected players
            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
var 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-sdk-csharp-ref-stopmatchbackfill"></a>

[StartMatchBackfill()](#integration-server-sdk-csharp-ref-startmatchbackfill) とともに作成されたアクティブなマッチバックフィルリクエストをキャンセルします。 AWS SDK アクション [StopMatchmaking()](https://docs.aws.amazon.com/gamelift/latest/apireference/API_StopMatchmaking.html) も参照してください。[FlexMatch のバックフィル機能](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html)について。

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

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

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

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

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

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

### 例
<a name="integration-server-sdk-csharp-ref-stopmatchbackfill-example"></a>

```
// Set backfill stop request parameters

var stopBackfillRequest = new AWS.GameLift.Server.Model.StopMatchBackfillRequest()
{
    TicketId = "a ticket ID", //optional, if not provided one is autogenerated
    MatchmakingConfigurationArn = "the matchmaker configuration ARN", //from the game session matchmaker data
    GameSessionId = GameLiftServerAPI.GetGameSessionId().Result    //gets the ID for the current game session
};

var stopBackfillOutcome = GameLiftServerAPI.StopMatchBackfillRequest(stopBackfillRequest);
```

## TerminateGameSession()
<a name="integration-server-sdk-csharp-ref-terminategamesession"></a>

**このメソッドは、バージョン 4.0.1 で非推奨となりました。代わりに、サーバープロセスはゲームセッションが終了した後に [ProcessEnding()](#integration-server-sdk-csharp-ref-processending) を呼び出す必要があります。**

サーバープロセスがゲームセッションをシャットダウンしたことを Amazon GameLift Servers サービスに通知します。このアクションは、サーバープロセスがアクティブなままになり、新しいゲームセッションをホストするための準備ができたときに呼び出されます。これは、新しいゲームセッションをホストするためにサーバープロセスがすぐに利用可能であることを Amazon GameLift Servers に通知するため、ゲームセッション終了手順が完了した後にのみ呼び出す必要があります。

ゲームセッションが停止した後にサーバープロセスがシャットダウンされる場合は、このアクションは呼び出されません。代わりに、[ProcessEnding()](#integration-server-sdk-csharp-ref-processending) を呼び出し、ゲームセッションとサーバープロセスの両方が終了していることを通知します。

### 構文
<a name="integration-server-sdk-csharp-ref-terminategamesession-syntax"></a>

```
GenericOutcome TerminateGameSession()
```

### パラメータ
<a name="integration-server-sdk-csharp-ref-terminategamesession-parameter"></a>

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

### 戻り値
<a name="integration-server-sdk-csharp-ref-terminategamesession-return"></a>

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

### 例
<a name="integration-server-sdk-csharp-ref-terminategamesession-example"></a>

この例は、ゲームセッションの終了時のサーバープロセスを示しています。

```
// game-specific tasks required to gracefully shut down a game session, 
// such as notifying players, preserving game state data, and other cleanup

var terminateGameSessionOutcome = GameLiftServerAPI.TerminateGameSession();
var processReadyOutcome = GameLiftServerAPI.ProcessReady(processParams);
```

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

現在のゲームセッションの機能を更新し、新しいプレイヤーセッションを承諾します。ゲームセッションは、新しいプレイヤーセッションをすべて受け入れるか拒否するかを設定できます。(*Amazon GameLift Servers サービス API リファレンス*の [UpdateGameSession()](https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateGameSession.html) アクションも参照してください)。

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

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

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

**newPlayerSessionPolicy**  
ゲームセッションで新しいプレイヤーを承諾するかどうかを示す文字列値。  
型: [PlayerSessionCreationPolicy](https://sdk.amazonaws.com/cpp/api/LATEST/namespace_aws_1_1_game_lift_1_1_model.html#afa8a7527defe9e7ca0caebc239182c43) enum。有効な値を次に示します。  
+ **ACCEPT\_ALL** - すべての新しいプレイヤーセッションを承諾します。
+ **DENY\_ALL** - すべての新しいプレイヤーセッションを拒否します。
必須: はい

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

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

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

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

```
var updatePlayerSessionCreationPolicyOutcomex = 
    GameLiftServerAPI.UpdatePlayerSessionCreationPolicy(PlayerSessionCreationPolicy.ACCEPT_ALL);
```