@Override
    public DescribeInstancesResult describeInstances(DescribeInstancesRequest request) {
        request = beforeClientExecution(request);
        return executeDescribeInstances(request);
    }
<p>
Describes the specified instances or all instances.
</p>
<p>
If you specify instance IDs, the output includes information for only the specified instances. If you specify
filters, the output includes information for only those instances that meet the filter criteria. If you do not
specify instance IDs or filters, the output includes information for all instances, which can affect performance.
We recommend that you use pagination to ensure that the operation returns quickly and successfully.
</p>
<p>
If you specify an instance ID that is not valid, an error is returned. If you specify an instance that you do not
own, it is not included in the output.
</p>
<p>
Recently terminated instances might appear in the returned results. This interval is usually less than one hour.
</p>
<p>
If you describe instances in the rare case where an Availability Zone is experiencing a service disruption and
you specify instance IDs that are in the affected zone, or do not specify any instance IDs at all, the call
fails. If you describe instances and specify only instance IDs that are in an unaffected zone, the call works
normally.
</p>
<important>
<p>
We strongly recommend using only paginated requests. Unpaginated requests are susceptible to throttling and
timeouts.
</p>
</important> <note>
<p>
The order of the elements in the response, including those within nested structures, might vary. Applications
should not assume the elements appear in a particular order.
</p>
</note>

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