// generated from rosidl_adapter/resource/srv.idl.em
// with input from action_msgs/srv/CancelGoal.srv
// generated code does not contain a copyright notice

#include "action_msgs/msg/GoalInfo.idl"

module action_msgs {
  module srv {
    @verbatim (language="comment", text=
      " Cancel one or more goals with the following policy:" "\n"
      "" "\n"
      " - If the goal ID is zero and timestamp is zero, cancel all goals." "\n"
      " - If the goal ID is zero and timestamp is not zero, cancel all goals accepted" "\n"
      "   at or before the timestamp." "\n"
      " - If the goal ID is not zero and timestamp is zero, cancel the goal with the" "\n"
      "   given ID regardless of the time it was accepted." "\n"
      " - If the goal ID is not zero and timestamp is not zero, cancel the goal with" "\n"
      "   the given ID and all goals accepted at or before the timestamp.")
    struct CancelGoal_Request {
      @verbatim (language="comment", text=
        " Goal info describing the goals to cancel, see above.")
      action_msgs::msg::GoalInfo goal_info;
    };
    module CancelGoal_Response_Constants {
      const int8 ERROR_NONE = 0;
      const int8 ERROR_REJECTED = 1;
      const int8 ERROR_UNKNOWN_GOAL_ID = 2;
      const int8 ERROR_GOAL_TERMINATED = 3;
    };
    @verbatim (language="comment", text=
      "#" "\n"
      "# Return codes." "\n"
      "#")
    struct CancelGoal_Response {
      @verbatim (language="comment", text=
        " Return code, see above definitions.")
      int8 return_code;

      @verbatim (language="comment", text=
        " Goals that accepted the cancel request.")
      sequence<action_msgs::msg::GoalInfo> goals_canceling;
    };
  };
};
