modules/jooby-aws/src/main/java/org/jooby/aws/Aws.java
public <T extends AmazonWebServiceClient> Aws doWith(
      final BiFunction<T, Config, Object> callback) {
    requireNonNull(callback, "Callback is required.");
    after.add(callback);
    return this;
  }
public <T extends AmazonWebServiceClient> Aws doWith(
      final BiFunction<T, Config, Object> callback) {
    requireNonNull(callback, "Callback is required.");
    after.add(callback);
    return this;
  }
Like {@link #with(BiFunction)} but it depends on a previously created service.

<pre>
{
use(new Aws()
.with(creds {@literal ->} new AmazonS3Client(creds))
.with(creds {@literal ->} new AmazonSQSClient(creds))
.doWith((AmazonS3Client s3) {@literal ->} new TransferManager(s3))
);
</pre>

It will bind a <code>TransferManager</code> as a Guice service.

@param callback A creation callback.
@param <T> Aws service type.
@return This module.