code: public <ResultT> Task<ResultT> execute(
        @Nonnull final AwsRequest request,
        @Nonnull final Decoder<ResultT> resultDecoder) {
      return dispatcher.dispatchTask(new Callable<ResultT>() {
        @Override
        public ResultT call() {
          return proxy.execute(request, resultDecoder);
        }
      });
    }
docs: Executes the AWS request, and decodes the result into an instance of the
  specified type. The response will be decoded using the codec registry specified when the app
  client was configured. If no codec registry was configured, a default codec registry will be
  used. The default codec registry supports the mappings specified <a
  href="http://mongodb.github.io/mongo-java-driver/3.1/bson/documents/#document">here</a>
  
  @param request the AWS request to execute.
  @param resultDecoder the {@link Decoder} to use to decode the result into a value.
  @param <ResultT> the type into which the response will be decoded.
  @return a task containing the decoded result value.