@SdkInternalApi
    final ModifySpotFleetRequestResult executeModifySpotFleetRequest(ModifySpotFleetRequestRequest modifySpotFleetRequestRequest) {

        ExecutionContext executionContext = createExecutionContext(modifySpotFleetRequestRequest);
        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
        awsRequestMetrics.startEvent(Field.ClientExecuteTime);
        Request<ModifySpotFleetRequestRequest> request = null;
        Response<ModifySpotFleetRequestResult> response = null;

        try {
            awsRequestMetrics.startEvent(Field.RequestMarshallTime);
            try {
                request = new ModifySpotFleetRequestRequestMarshaller().marshall(super.beforeMarshalling(modifySpotFleetRequestRequest));
                // 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, "EC2");
                request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ModifySpotFleetRequest");
                request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);

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

            StaxResponseHandler<ModifySpotFleetRequestResult> responseHandler = new StaxResponseHandler<ModifySpotFleetRequestResult>(
                    new ModifySpotFleetRequestResultStaxUnmarshaller());

            response = invoke(request, responseHandler, executionContext);

            return response.getAwsResponse();

        } finally {

            endClientExecution(awsRequestMetrics, request, response);
        }
    }
<p>
Modifies the specified Spot Fleet request.
</p>
<p>
You can only modify a Spot Fleet request of type <code>maintain</code>.
</p>
<p>
While the Spot Fleet request is being modified, it is in the <code>modifying</code> state.
</p>
<p>
To scale up your Spot Fleet, increase its target capacity. The Spot Fleet launches the additional Spot Instances
according to the allocation strategy for the Spot Fleet request. If the allocation strategy is
<code>lowestPrice</code>, the Spot Fleet launches instances using the Spot Instance pool with the lowest price.
If the allocation strategy is <code>diversified</code>, the Spot Fleet distributes the instances across the Spot
Instance pools. If the allocation strategy is <code>capacityOptimized</code>, Spot Fleet launches instances from
Spot Instance pools with optimal capacity for the number of instances that are launching.
</p>
<p>
To scale down your Spot Fleet, decrease its target capacity. First, the Spot Fleet cancels any open requests that
exceed the new target capacity. You can request that the Spot Fleet terminate Spot Instances until the size of
the fleet no longer exceeds the new target capacity. If the allocation strategy is <code>lowestPrice</code>, the
Spot Fleet terminates the instances with the highest price per unit. If the allocation strategy is
<code>capacityOptimized</code>, the Spot Fleet terminates the instances in the Spot Instance pools that have the
least available Spot Instance capacity. If the allocation strategy is <code>diversified</code>, the Spot Fleet
terminates instances across the Spot Instance pools. Alternatively, you can request that the Spot Fleet keep the
fleet at its current size, but not replace any Spot Instances that are interrupted or that you terminate
manually.
</p>
<p>
If you are finished with your Spot Fleet for now, but will use it again later, you can set the target capacity to
0.
</p>

@param modifySpotFleetRequestRequest
       Contains the parameters for ModifySpotFleetRequest.
@return Result of the ModifySpotFleetRequest operation returned by the service.
@sample AmazonEC2.ModifySpotFleetRequest
@see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifySpotFleetRequest" target="_top">AWS API
     Documentation</a>
aws-java-sdk-ec2/src/main/java/com/amazonaws/services/ec2/AmazonEC2Client.java