code: def create(self, check, notification_plan, criteria=None,
              disabled=False, label=None, name=None, metadata=None):
          
          uri = "/%s" % self.uri_base
          body = {"check_id": utils.get_id(check),
                  "notification_plan_id": utils.get_id(notification_plan),
                  }
          if criteria:
              body["criteria"] = criteria
          if disabled is not None:
              body["disabled"] = disabled
          label_name = label or name
          if label_name:
              body["label"] = label_name
          if metadata:
              body["metadata"] = metadata
          resp, resp_body = self.api.method_post(uri, body=body)
          if resp.status_code == 201:
              alarm_id = resp.headers["x-object-id"]
              return self.get(alarm_id)
docs: Creates an alarm that binds the check on the given entity with a
          notification plan.
  
          Note that the 'criteria' parameter, if supplied, should be a string
          representing the DSL for describing alerting conditions and their
          output states. Pyrax does not do any validation of these criteria
          statements; it is up to you as the developer to understand the language
          and correctly form the statement. This alarm language is documented
          online in the Cloud Monitoring section of http://docs.rackspace.com.