code: def _create(self, uri, body, records=None, subdomains=None,
              return_none=False, return_raw=False, **kwargs):
          
          self.run_hooks("modify_body_for_create", body, **kwargs)
          resp, resp_body = self._async_call(uri, body=body, method="POST",
                  error_class=exc.DomainCreationFailed)
          response_body = resp_body[self.response_key][0]
          return self.resource_class(self, response_body)
docs: Handles the communication with the API when creating a new
          resource managed by this class.
  
          Since DNS works completely differently for create() than the other
          APIs, this method overrides the default BaseManager behavior.
  
          If 'records' are supplied, they should be a list of dicts. Each
          record dict should have the following format:
  
              {"name": "example.com",
              "type": "A",
              "data": "192.0.2.17",
              "ttl": 86400}
  
          If 'subdomains' are supplied, they should be a list of dicts. Each
          subdomain dict should have the following format:
  
              {"name": "sub1.example.com",
               "comment": "1st sample subdomain",
               "emailAddress": "sample@rackspace.com"}