@SdkInternalApi
    final DescribeGameSessionDetailsResult executeDescribeGameSessionDetails(DescribeGameSessionDetailsRequest describeGameSessionDetailsRequest) {

        ExecutionContext executionContext = createExecutionContext(describeGameSessionDetailsRequest);
        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
        awsRequestMetrics.startEvent(Field.ClientExecuteTime);
        Request<DescribeGameSessionDetailsRequest> request = null;
        Response<DescribeGameSessionDetailsResult> response = null;

        try {
            awsRequestMetrics.startEvent(Field.RequestMarshallTime);
            try {
                request = new DescribeGameSessionDetailsRequestProtocolMarshaller(protocolFactory).marshall(super
                        .beforeMarshalling(describeGameSessionDetailsRequest));
                // Binds the request metrics to the current request.
                request.setAWSRequestMetrics(awsRequestMetrics);
                request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
                request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
                request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
                request.addHandlerContext(HandlerContextKey.SERVICE_ID, "GameLift");
                request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeGameSessionDetails");
                request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);

            } finally {
                awsRequestMetrics.endEvent(Field.RequestMarshallTime);
            }

            HttpResponseHandler<AmazonWebServiceResponse<DescribeGameSessionDetailsResult>> responseHandler = protocolFactory.createResponseHandler(
                    new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
                    new DescribeGameSessionDetailsResultJsonUnmarshaller());
            response = invoke(request, responseHandler, executionContext);

            return response.getAwsResponse();

        } finally {

            endClientExecution(awsRequestMetrics, request, response);
        }
    }
<p>
Retrieves additional game session properties, including the game session protection policy in force, a set of one
or more game sessions in a specific fleet location. You can optionally filter the results by current game session
status.
</p>
<p>
This operation can be used in the following ways:
</p>
<ul>
<li>
<p>
To retrieve details for all game sessions that are currently running on all locations in a fleet, provide a fleet
or alias ID, with an optional status filter. This approach returns details from the fleet's home Region and all
remote locations.
</p>
</li>
<li>
<p>
To retrieve details for all game sessions that are currently running on a specific fleet location, provide a
fleet or alias ID and a location name, with optional status filter. The location can be the fleet's home Region
or any remote location.
</p>
</li>
<li>
<p>
To retrieve details for a specific game session, provide the game session ID. This approach looks for the game
session ID in all fleets that reside in the Amazon Web Services Region defined in the request.
</p>
</li>
</ul>
<p>
Use the pagination parameters to retrieve results as a set of sequential pages.
</p>
<p>
If successful, a <code>GameSessionDetail</code> object is returned for each game session that matches the
request.
</p>
<p>
<b>Learn more</b>
</p>
<p>
<a href=
"https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-client-api.html#gamelift-sdk-client-api-find"
>Find a game session</a>
</p>
<p>
<a href=
"https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets"
>All APIs by task</a>
</p>

@param describeGameSessionDetailsRequest
@return Result of the DescribeGameSessionDetails operation returned by the service.
@throws InternalServiceException
        The service encountered an unrecoverable internal failure while processing the request. Clients can retry
        such requests immediately or after a waiting period.
@throws NotFoundException
        THe requested resources was not found. The resource was either not created yet or deleted.
@throws InvalidRequestException
        One or more parameter values in the request are invalid. Correct the invalid parameter values before
        retrying.
@throws UnauthorizedException
        The client failed authentication. Clients should not retry such requests.
@throws TerminalRoutingStrategyException
        The service is unable to resolve the routing for a particular alias because it has a terminal
        <code>RoutingStrategy</code> associated with it. The message returned in this exception is the message
        defined in the routing strategy itself. Such requests should only be retried if the routing strategy for
        the specified alias is modified.
@throws UnsupportedRegionException
        The requested operation is not supported in the Region specified.
@sample AmazonGameLift.DescribeGameSessionDetails
@see <a href="http://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeGameSessionDetails"
     target="_top">AWS API Documentation</a>
aws-java-sdk-gamelift/src/main/java/com/amazonaws/services/gamelift/AmazonGameLiftClient.java