// snippet-comment:[These are tags for the AWS doc team's sample catalog. Do not remove.]
// snippet-sourcedescription:[FindRunningInstances.java demonstrates how to use a Filter to find running instances]
// snippet-service:[ec2]
// snippet-keyword:[Java]
// snippet-keyword:[Code Sample]
// snippet-sourcetype:[full-example]
// snippet-sourcedate:[2020-01-10]
// snippet-sourceauthor:[AWS-scmacdon]

/**
 * Copyright 2010-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 *
 * This file is licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License. A copy of
 * the License is located at
 *
 * http://aws.amazon.com/apache2.0/
 *
 * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations under the License.
 *
 */

// snippet-start:[ec2.java2.running_instances.complete]
package com.example.ec2;

// snippet-start:[ec2.java2.running_instances.import]
import software.amazon.awssdk.services.ec2.Ec2Client;
import software.amazon.awssdk.services.ec2.model.Filter;
import software.amazon.awssdk.services.ec2.model.DescribeInstancesRequest;
import software.amazon.awssdk.services.ec2.model.DescribeInstancesResponse;
import software.amazon.awssdk.services.ec2.model.Reservation;
import software.amazon.awssdk.services.ec2.model.Instance;
import software.amazon.awssdk.services.ec2.model.Ec2Exception;
// snippet-end:[ec2.java2.running_instances.import]

/**
 * Locates all running EC2 instances using a Filter
 */
public class FindRunningInstances {
    public static void main(String[] args) {
        Ec2Client ec2 = Ec2Client.create();
        // snippet-start:[ec2.java2.running_instances.main]

       try {

           String nextToken = null;

           do {

                // Create a Filter to find all running instances
                Filter filter = Filter.builder()
                    .name("instance-state-name")
                    .values("running")
                    .build();

                //Create a DescribeInstancesRequest
                DescribeInstancesRequest request = DescribeInstancesRequest.builder()
                    .filters(filter)
                    .build();

                // Find the running instances
                DescribeInstancesResponse response = ec2.describeInstances(request);

                for (Reservation reservation : response.reservations()) {
                    for (Instance instance : reservation.instances()) {
                    System.out.printf(
                            "Found reservation with id %s, " +
                                    "AMI %s, " +
                                    "type %s, " +
                                    "state %s " +
                                    "and monitoring state %s",
                            instance.instanceId(),
                            instance.imageId(),
                            instance.instanceType(),
                            instance.state().name(),
                            instance.monitoring().state());
                    System.out.println("");
                }
            }
            nextToken = response.nextToken();

            } while (nextToken != null);

        } catch (Ec2Exception e) {
            e.getStackTrace();
        }

        // snippet-end:[ec2.java2.running_instances.main]
    }
}
// snippet-end:[ec2.java2.running_instances.complete]

@@ -219,18 +219,25 @@
 ervice:%5B
-ec
+Amazon EC
 2%5D%0A// sn
@@ -355,16 +355,15 @@
 e:%5B2
-020-01-1
+/12/202
 0%5D%0A/
@@ -422,18 +422,8 @@
 ght 
-2010-2020 
 Amaz
@@ -946,64 +946,8 @@
 */%0A%0A
-// snippet-start:%5Bec2.java2.running_instances.complete%5D%0A
 pack
@@ -1022,16 +1022,62 @@
 import%5D%0A
+import software.amazon.awssdk.regions.Region;%0A
 import s
@@ -1712,57 +1712,199 @@
 ) %7B%0A
-        Ec2Client ec2 = Ec2Client.create(
+%0A        Region region = Region.US_WEST_2;%0A        Ec2Client ec2 = Ec2Client.builder()%0A                .region(region)%0A                .build();%0A%0A        findRunningEC2Instances(ec2
 );%0A    
- 
+%7D%0A%0A
    /
@@ -1953,16 +1953,79 @@
 es.main%5D
+%0A   public static void findRunningEC2Instances(Ec2Client ec2) %7B
 %0A%0A      
@@ -2085,17 +2085,16 @@
    do %7B%0A
-%0A
         
@@ -3596,25 +3596,88 @@
     
- e.getStackTrace(
+System.err.println(e.awsErrorDetails().errorMessage());%0A           System.exit(1
 );%0A 
@@ -3685,17 +3685,16 @@
       %7D%0A
-%0A
         
@@ -3753,60 +3753,6 @@
   %7D%0A
+
 %7D%0A
-// snippet-end:%5Bec2.java2.running_instances.complete%5D%0A

Update FindRunningInstances.java