@SdkInternalApi
    final CreateSnapshotsResult executeCreateSnapshots(CreateSnapshotsRequest createSnapshotsRequest) {

        ExecutionContext executionContext = createExecutionContext(createSnapshotsRequest);
        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
        awsRequestMetrics.startEvent(Field.ClientExecuteTime);
        Request<CreateSnapshotsRequest> request = null;
        Response<CreateSnapshotsResult> response = null;

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

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

            StaxResponseHandler<CreateSnapshotsResult> responseHandler = new StaxResponseHandler<CreateSnapshotsResult>(
                    new CreateSnapshotsResultStaxUnmarshaller());

            response = invoke(request, responseHandler, executionContext);

            return response.getAwsResponse();

        } finally {

            endClientExecution(awsRequestMetrics, request, response);
        }
    }
<p>
Creates crash-consistent snapshots of multiple EBS volumes and stores the data in S3. Volumes are chosen by
specifying an instance. Any attached volumes will produce one snapshot each that is crash-consistent across the
instance.
</p>
<p>
You can include all of the volumes currently attached to the instance, or you can exclude the root volume or
specific data (non-root) volumes from the multi-volume snapshot set.
</p>
<p>
You can create multi-volume snapshots of instances in a Region and instances on an Outpost. If you create
snapshots from an instance in a Region, the snapshots must be stored in the same Region as the instance. If you
create snapshots from an instance on an Outpost, the snapshots can be stored on the same Outpost as the instance,
or in the Region for that Outpost.
</p>

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