code: public ImmutableList<InstanceInfo> getRoleInstancesWithMetadata(String roleName, 
              Map<String, String> metadataQuery) {
          checkArgument(!checkNotNull(metadataQuery, "metadataQuery").isEmpty(), "No metadata query arguments specified");
          return getRoleInstancesWithMetadataImpl(roleName, metadataQuery);        
      }
docs: Retrieve information about all online instances of a particular role matching the given metadata query from
  the Conqueso Server.
  The metadata query is expressed as key/value pairs in the provided map. For example, calling this method like
  this:
  <p>
  <code>
  conquesoClient.getRoleInstancesWithMetadata("reporting-service", ImmutableMap.of("availability-zone",
  "us-east-1c", "instance-type", "m1.small"));
  </code>
  </p>
  will return all instances of role reporting-service with metadata that matches availability-zone=us-east-1c and
  instance-type=m1.small.
  
  @param roleName the role to retrieve
  @param metadataQuery the map key/value pairs representing a query for instances matching the metadata
  @return the information about the matching instances
  @throws ConquesoCommunicationException if there's an error communicating with the Conqueso Server.