// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 using System.Threading; using System.Threading.Tasks; using Amazon.GameLift; using Amazon.GameLift.Model; namespace AmazonGameLiftPlugin.Core.ApiGatewayManagement { public class AmazonGameLiftClientWrapper : IAmazonGameLiftClientWrapper { private readonly IAmazonGameLift _amazonGameLiftClient; private static readonly string s_dummyAwsAccessKey = "1"; private static readonly string s_dummyAwsSecretKey = "1"; internal AmazonGameLiftClientWrapper(IAmazonGameLift amazonGameLiftClient) { _amazonGameLiftClient = amazonGameLiftClient; } public AmazonGameLiftClientWrapper(string localEndpoint) { _amazonGameLiftClient = Create(localEndpoint); } public async Task CreateGameSessionAsync( CreateGameSessionRequest request, CancellationToken cancellationToken = default ) { return await _amazonGameLiftClient.CreateGameSessionAsync(request); } public async Task CreatePlayerSession(CreatePlayerSessionRequest request) { return await _amazonGameLiftClient.CreatePlayerSessionAsync(request); } public async Task SearchGameSessions(SearchGameSessionsRequest request) { return await _amazonGameLiftClient.SearchGameSessionsAsync(request); } public static IAmazonGameLift Create(string localEndpoint) { return new AmazonGameLiftClient(s_dummyAwsAccessKey, s_dummyAwsSecretKey, new AmazonGameLiftConfig { ServiceURL = localEndpoint }); } public async Task DescribeGameSessions(DescribeGameSessionsRequest request) { return await _amazonGameLiftClient.DescribeGameSessionsAsync(request); } } }