code: public <T extends AmazonWebServiceClient> Aws doWith(final Function<T, Object> callback) {
      requireNonNull(callback, "Callback is required.");
      return doWith((s, c) -> callback.apply((T) s));
    }
docs: Like {@link #with(Function)} 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.