docs: function(details, callback) {
          var self = this;
  
          // Required arguments
          var lb = {
              name: details.name,
              nodes: details.nodes,
              protocol: details.protocol ? details.protocol.name : '',
              port: details.protocol ? details.protocol.port : '',
              virtualIps: details.virtualIps
          };
  
          if (details.accessList) {
              lb.accessList = details.accessList;
          }
  
          if (details.algorithm) {
              lb.algorithm = details.algorithm;
          }
  
          if (details.connectionLogging) {
              lb.connectionLogging = details.connectionLogging;
          }
  
          if (details.connectionThrottle) {
              lb.connectionThrottle = details.connectionThrottle;
          }
  
          if (details.healthMonitor) {
              lb.healthMonitor = details.healthMonitor;
          }
  
          if (details.metadata) {
              lb.metadata = details.metadata;
          }
  
          if (details.timeout) {
              lb.timeout = details.timeout;
          }
  
          if (details.sessionPersistence) {
              lb.sessionPersistence = details.sessionPersistence;
          }
  
          var validationErrors = validateLbInputs(lb);
  
          if (validationErrors) {
              callback(validationErrors);
              return;
          }
  
          var requestOptions = {
              uri: '/loadbalancers',
              method: 'POST',
              data: {
                  loadBalancer: lb
              },
              endpoint: rackspace.Endpoints.CloudLoadBalancer
          };
  
          self.authorizedRequest(requestOptions, function(err, res, body) {
              if (err || !body.loadBalancer) {
                  callback(err ? err : body);
                  return;
              }
  
              callback(err, new rackspace.LoadBalancer(self, body.loadBalancer));
          });
      }