whole_func_string: function createReadStream() {
      var streams = AWS.util.nodeRequire('stream');
      var req = this;
      var stream = null;
      var legacyStreams = false;
  
      if (AWS.HttpClient.streamsApiVersion === 2) {
        stream = new streams.Readable();
        stream._read = function() {};
      } else {
        stream = new streams.Stream();
        stream.readable = true;
      }
  
      stream.sent = false;
      stream.on('newListener', function(event) {
        if (!stream.sent && (event === 'data' || event === 'readable')) {
          if (event === 'data') legacyStreams = true;
          stream.sent = true;
          process.nextTick(function() { req.send(function() { }); });
        }
      });
  
      this.on('httpHeaders', function streamHeaders(statusCode, headers, resp) {
        if (statusCode < 300) {
          this.httpRequest._streaming = true;
  
          req.removeListener('httpData', AWS.EventListeners.Core.HTTP_DATA);
          req.removeListener('httpError', AWS.EventListeners.Core.HTTP_ERROR);
          req.on('httpError', function streamHttpError(error, resp) {
            resp.error = error;
            resp.error.retryable = false;
          });
  
          var httpStream = resp.httpResponse.stream;
          if (legacyStreams) {
            httpStream.on('data', function(arg) {
              stream.emit('data', arg);
            });
            httpStream.on('end', function() {
              stream.emit('end');
            });
          } else {
            httpStream.on('readable', function() {
              var chunk;
              do {
                chunk = httpStream.read();
                if (chunk !== null) stream.push(chunk);
              } while (chunk !== null);
              stream.read(0);
            });
            httpStream.on('end', function() {
              stream.push(null);
            });
          }
  
          httpStream.on('error', function(err) {
            stream.emit('error', err);
          });
        }
      });
  
      this.on('error', function(err) {
        stream.emit('error', err);
      });
  
      return stream;
    }
func_code_string: function createReadStream() {
      var streams = AWS.util.nodeRequire('stream');
      var req = this;
      var stream = null;
      var legacyStreams = false;
  
      if (AWS.HttpClient.streamsApiVersion === 2) {
        stream = new streams.Readable();
        stream._read = function() {};
      } else {
        stream = new streams.Stream();
        stream.readable = true;
      }
  
      stream.sent = false;
      stream.on('newListener', function(event) {
        if (!stream.sent && (event === 'data' || event === 'readable')) {
          if (event === 'data') legacyStreams = true;
          stream.sent = true;
          process.nextTick(function() { req.send(function() { }); });
        }
      });
  
      this.on('httpHeaders', function streamHeaders(statusCode, headers, resp) {
        if (statusCode < 300) {
          this.httpRequest._streaming = true;
  
          req.removeListener('httpData', AWS.EventListeners.Core.HTTP_DATA);
          req.removeListener('httpError', AWS.EventListeners.Core.HTTP_ERROR);
          req.on('httpError', function streamHttpError(error, resp) {
            resp.error = error;
            resp.error.retryable = false;
          });
  
          var httpStream = resp.httpResponse.stream;
          if (legacyStreams) {
            httpStream.on('data', function(arg) {
              stream.emit('data', arg);
            });
            httpStream.on('end', function() {
              stream.emit('end');
            });
          } else {
            httpStream.on('readable', function() {
              var chunk;
              do {
                chunk = httpStream.read();
                if (chunk !== null) stream.push(chunk);
              } while (chunk !== null);
              stream.read(0);
            });
            httpStream.on('end', function() {
              stream.push(null);
            });
          }
  
          httpStream.on('error', function(err) {
            stream.emit('error', err);
          });
        }
      });
  
      this.on('error', function(err) {
        stream.emit('error', err);
      });
  
      return stream;
    }
func_documentation_string: Converts the request object into a readable stream that
  can be read from or piped into a writable stream.
  
  @note The data read from a readable stream contains only
  the raw HTTP body contents.
  @example Manually reading from a stream
  request.createReadStream().on('data', function(data) {
  console.log("Got data:", data.toString());
  });
  @example Piping a request body into a file
  var out = fs.createWriteStream('/path/to/outfile.jpg');
  s3.service.getObject(params).createReadStream().pipe(out);
  @return [Stream] the readable stream object that can be piped
  or read from (by registering 'data' event listeners).
  @!macro nobrowser