code: def create(self, label=None, name=None, critical_state=None, ok_state=None,
              warning_state=None):
          
          uri = "/%s" % self.uri_base
          body = {"label": label or name}
  
          def make_list_of_ids(parameter):
              params = utils.coerce_to_list(parameter)
              return [utils.get_id(param) for param in params]
  
          if critical_state:
              critical_state = utils.coerce_to_list(critical_state)
              body["critical_state"] = make_list_of_ids(critical_state)
          if warning_state:
              warning_state = utils.coerce_to_list(warning_state)
              body["warning_state"] = make_list_of_ids(warning_state)
          if ok_state:
              ok_state = utils.coerce_to_list(ok_state)
              body["ok_state"] = make_list_of_ids(ok_state)
          resp, resp_body = self.api.method_post(uri, body=body)
          return self.get(resp.headers["x-object-id"])
docs: Creates a notification plan to be executed when a monitoring check
          triggers an alarm. You can optionally label (or name) the plan.
  
          A plan consists of one or more notifications to be executed when an
          associated alarm is triggered. You can have different lists of actions
          for CRITICAL, WARNING or OK states.