code: function invokeAction(requestData, callback) {
  		var self = this;
  		var endpointInfo = {
  			host: invokeAction.host,
  			sslHost: invokeAction.sslHost || sslHost,
  			port: invokeAction.port,
  			prefix: invokeAction.prefix,
  			authtype: authType,
  			url: helpers.formatPath(invokeAction.prefix, this.resourceName,
  				action)
  		};
  		var credentials = {
  			consumerkey: this.consumerkey,
  			consumersecret: this.consumersecret
  		};
  
  		if (_.isFunction(requestData)) {
  			callback = requestData;
  			requestData = {};
  		}
  
  		function checkAndParse(err, data, response) {
  			if (err) {
  				return callback(err);
  			}
  
  			return responseParser.parse(data, {
  				format: self.format,
  				logger: self.logger,
  				url: endpointInfo.url,
  				params: requestData,
  				contentType: response.headers['content-type']
  			}, getLocationForRedirectsAndCallback);
  			function getLocationForRedirectsAndCallback(err, parsed) {
  				if (err) {
  					return callback(err);
  				}
  
  				if (response && response.headers['location']) {
  					parsed.location = response.headers['location'];
  				}
  
  				return callback(null, parsed);
  			}
  		}
  
  		_.defaults(requestData, this.defaultParams);
  
  		if (httpMethod === 'GET') {
  			// Add the default parameters to the request data
  			return request.get(endpointInfo, requestData, this.headers,
  				credentials, this.logger, checkAndParse);
  		}
  
  		if (httpMethod === 'POST' || httpMethod === 'PUT') {
  			return request.postOrPut(httpMethod, endpointInfo, requestData,
  				this.headers, credentials, this.logger, checkAndParse);
  		}
  
  		return callback(new Error('Unsupported HTTP verb: ' + httpMethod));
  	}
docs: /*jshint validthis: true