@SdkInternalApi
    final CreateVpcPeeringAuthorizationResult executeCreateVpcPeeringAuthorization(CreateVpcPeeringAuthorizationRequest createVpcPeeringAuthorizationRequest) {

        ExecutionContext executionContext = createExecutionContext(createVpcPeeringAuthorizationRequest);
        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
        awsRequestMetrics.startEvent(Field.ClientExecuteTime);
        Request<CreateVpcPeeringAuthorizationRequest> request = null;
        Response<CreateVpcPeeringAuthorizationResult> response = null;

        try {
            awsRequestMetrics.startEvent(Field.RequestMarshallTime);
            try {
                request = new CreateVpcPeeringAuthorizationRequestProtocolMarshaller(protocolFactory).marshall(super
                        .beforeMarshalling(createVpcPeeringAuthorizationRequest));
                // 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, "CreateVpcPeeringAuthorization");
                request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);

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

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

            return response.getAwsResponse();

        } finally {

            endClientExecution(awsRequestMetrics, request, response);
        }
    }
<p>
Requests authorization to create or delete a peer connection between the VPC for your Amazon GameLift fleet and a
virtual private cloud (VPC) in your Amazon Web Services account. VPC peering enables the game servers on your
fleet to communicate directly with other Amazon Web Services resources. After you've received authorization, use
<a href="https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreateVpcPeeringConnection.html">
CreateVpcPeeringConnection</a> to establish the peering connection. For more information, see <a
href="https://docs.aws.amazon.com/gamelift/latest/developerguide/vpc-peering.html">VPC Peering with Amazon
GameLift Fleets</a>.
</p>
<p>
You can peer with VPCs that are owned by any Amazon Web Services account you have access to, including the
account that you use to manage your Amazon GameLift fleets. You cannot peer with VPCs that are in different
Regions.
</p>
<p>
To request authorization to create a connection, call this operation from the Amazon Web Services account with
the VPC that you want to peer to your Amazon GameLift fleet. For example, to enable your game servers to retrieve
data from a DynamoDB table, use the account that manages that DynamoDB resource. Identify the following values:
(1) The ID of the VPC that you want to peer with, and (2) the ID of the Amazon Web Services account that you use
to manage Amazon GameLift. If successful, VPC peering is authorized for the specified VPC.
</p>
<p>
To request authorization to delete a connection, call this operation from the Amazon Web Services account with
the VPC that is peered with your Amazon GameLift fleet. Identify the following values: (1) VPC ID that you want
to delete the peering connection for, and (2) ID of the Amazon Web Services account that you use to manage Amazon
GameLift.
</p>
<p>
The authorization remains valid for 24 hours unless it is canceled. You must create or delete the peering
connection while the authorization is valid.
</p>
<p>
<b>Related actions</b>
</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 createVpcPeeringAuthorizationRequest
@return Result of the CreateVpcPeeringAuthorization operation returned by the service.
@throws UnauthorizedException
        The client failed authentication. Clients should not retry such requests.
@throws InvalidRequestException
        One or more parameter values in the request are invalid. Correct the invalid parameter values before
        retrying.
@throws NotFoundException
        THe requested resources was not found. The resource was either not created yet or deleted.
@throws InternalServiceException
        The service encountered an unrecoverable internal failure while processing the request. Clients can retry
        such requests immediately or after a waiting period.
@sample AmazonGameLift.CreateVpcPeeringAuthorization
@see <a href="http://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateVpcPeeringAuthorization"
     target="_top">AWS API Documentation</a>
aws-java-sdk-gamelift/src/main/java/com/amazonaws/services/gamelift/AmazonGameLiftClient.java