code: function _createRequestValidationError(message, parameterConfig, subErrors) {
      var error = new VError({
          name: 'ValidationError',
          constructorOpt: _createRequestValidationError
      }, message);
      error.source = { type: parameterConfig.in };
      if (/^(header|path|query|formData)$/.test(parameterConfig.in)) {
          error.source.name = parameterConfig.name;
      }
      error.subErrors = subErrors;
      _.forEach(error.subErrors, function (subError) {
          subError.source = subError.source || error.source;
          subError.field = _.get(subError, 'source.name',
              path.join((subError.dataPath || '/'), _.get(subError, 'params.key', '')));
          subError.in = _.get(subError, 'source.type');
  
      });
      return error;
  }
docs: @param  {string} message the message to use for this error;
  N.B.: the text of this message is quasi-API, changing it could break API users
  @param  {Object} parameterConfig the configuration for the parameter that failed validation
  @param  {string} parameterConfig.in where parameter that failed validation is located, one of:
  header, path, query, form, body, request (for the request as a whole)
  @param  {string} [parameterConfig.name] the name of the parameter that failed validation
  (only used when parameterConfig.in is header, path, query, or form)
  @param  {Object[]} subErrors the array of validation errors from the swaggerUtil validation function
  
  @returns  {Object} a VError representing the validation errors detected for the request