code: def create(self, **kwargs):
          
          required_one_of = ['automap', 'snatpool', 'translation']
          has_any = [x for x in iterkeys(kwargs) if x in required_one_of]
  
          # The rules for SNAT is that you must provide one, and only one,
          # of the `required_one_of` values above.
          if len(has_any) == 1:
              return self._create(**kwargs)
  
          raise RequireOneOf(
              "Creation requires one of the provided {0}".format(
                  ', '.join(required_one_of)
              )
          )
docs: Call this to create a new snat on the BIG-IP®.
  
          Uses HTTP POST to 'containing' URI to create a service associated with
          a new URI on the device.
  
          Note this is the one of two fundamental Resource operations that
          returns a different uri (in the returned object) than the uri the
          operation was called on.  The returned uri can be accessed as
          Object.selfLink, the actual uri used by REST operations on the object
          is Object._meta_data['uri'].  The _meta_data['uri'] is the same as
          Object.selfLink with the substring 'localhost' replaced with the value
          of Object._meta_data['BIG-IP']._meta_data['hostname'], and without
          query args, or hash fragments.
  
          The following is done prior to the POST
          * Ensures that one of ``automap``, ``snatpool``, ``translation``
            parameter is passed in.
  
          :param kwargs: All the key-values needed to create the resource
          :returns: An instance of the Python object that represents the device's
          uri-published resource.  The uri of the resource is part of the
          object's _meta_data.