code: function (zones, callback) {
      var self = this;
  
      var listOfZones = [];
      _.each(zones, function (zone) {
        ['name', 'email'].forEach(function (required) {
          if (!zone[required]) {
            throw new Error('details.' + required + ' is a required argument.');
          }
        });
  
        var newZone = {
          name: zone.name,
          emailAddress: zone.email
        };
  
        if (zone.ttl && typeof(zone.ttl) === 'number' && zone.ttl >= 300) {
          newZone.ttl = zone.ttl;
        }
  
        if (zone.comment) {
          newZone.comment = zone.comment;
        }
  
        listOfZones.push(newZone);
      });
  
      var requestOptions = {
        path: _urlPrefix,
        method: 'POST',
        body: {
          domains: listOfZones
        }
      };
  
      self._asyncRequest(requestOptions, function (err, result) {
        return err
          ? callback(err)
          : callback(err, result.response.domains.map(function (domain) {
            return new dns.Zone(self, domain);
        }));
      });
    }
docs: @name Client.createZones
  
  @description register a new zone in the rackspace cloud dns
  
  @param {Array}      zones      the array of zones to create
  @param {Function}   callback    handles the callback of your api call