docs: function webhook() {
    var opts = {
      validate: true,
    };
  
    // Process arguments
    var tokenString;
    for (var i = 0, l = arguments.length; i < l; i++) {
      var arg = arguments[i];
      if (typeof arg === 'string') {
        tokenString = arg;
      } else {
        opts = _.extend(opts, arg);
      }
    }
  
    // set auth token from input or environment variable
    opts.authToken = tokenString ? tokenString : process.env.TWILIO_AUTH_TOKEN;
  
    // Create middleware function
    return function hook(request, response, next) {
      // Do validation if requested
      if (opts.validate) {
        // Check for a valid auth token
        if (!opts.authToken) {
          console.error('[Twilio]: Error - Twilio auth token is required for webhook request validation.');
          response.type('text/plain')
            .status(500)
            .send('Webhook Error - we attempted to validate this request without first configuring our auth token.');
        } else {
          // Check that the request originated from Twilio
          var valid = validateExpressRequest(request, opts.authToken, {
            url: opts.url,
            host: opts.host,
            protocol: opts.protocol
          });
  
          if (valid) {
              next();
          } else {
            return response
              .type('text/plain')
              .status(403)
              .send('Twilio Request Validation Failed.');
          }
        }
      } else {
        next();
      }
    };
  }