Two things:  1) it should just declare `public Iterator` (use the most generic interface you can get away with).  2) I think it would be more practical if list returned an instance of `Iterable`.  That way you could do stuff like:

```java
    for (Service svc : client.list(options)) {
       // woot!
    }
```
instead of this:
```java
    Iterator<Service> iterator = client.list(options);
    while (iterator.hasNext()) {
        Service service = iterator.next();
    }
```