class AvailabilityZoneStepDefinitions {

    @Given("^AZs \"([^\"]*)\" ignore instances with tags \"([^\"]*)\"$")
    public AvailabilityZoneStepDefinitions givenAzWithIgnoreTags(String azs, String instanceIgnoreTags) {
        String[] availabilityZones = azs.split(",\\s*");

        List<Tag> tags = CucumberHelperFunctions.tagStringToList(instanceIgnoreTags);

        List<String> instanceIdsToIgnore =
                new ArrayList<>(ec2Raider.getInstancesFromAnyTags(tags).stream().map(EC2InstanceTO::getInstanceId).collect(Collectors.toList()));

        for (String availabilityZone : availabilityZones) {
            executionStateCache.addInstances(ec2Raider.getEc2InstancesForAvailabilityZone(availabilityZone, instanceIdsToIgnore));
        }
        return this;
    }

    public  AvailabilityZoneStepDefinitions();

}