// copyright 2021 BAE Systems, Object Management Group Inc #ifndef SERVICEMODELPLANEXECUTIONRECOMMENDATIONSDEFVAR #define SERVICEMODELPLANEXECUTIONRECOMMENDATIONSDEFVAR #include "PlanExecution.idl" #include "Util.idl" #include "Utils.idl" #include "Recommendations.idl" module ServiceModel { module PlanExecutionRecommendations { // This is the operation to invoke to recommend a Plan Execution Constituent // specialization such as a Plan, TaskObjective or ResourceTasking. // This interface allows client tactical decision aids to make recommendations to // enact tactical Plans. Referenced instances must exist. Therefore decision aids // should first create any referenced entities, then recommend plan(s), then any // sub-plans, then contributing task objectives, then implementing resource tasking // recommendations. // All Recommendation operations on the PlanExecutionAction interface receive a // PlanExecutionResponse instance in the callback. // It is invalid to recommend a constituent that already exists. That is, a // PlanExecutionConstituent is returned for the ConstituentRef through the // PlanDataSink interface. struct recommendConstituent { // The constituent of plan execution being recommended DataModel::PlanExecution::PlanExecutionConstituent plan; // Qualifying information relating to the recommendation MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; }; #ifndef DDS_XTYPES #pragma keylist recommendConstituent recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the operation to invoke to recommend that a Plan Execution Constituent // specialization such as a Plan, TaskObjective or ResourceTasking is paused // immediately. // This interface allows client tactical decision aids to make recommendations to // control the execution of tactical plan-constituents. All Recommendation // operations on the PlanExecutionControl interface receive a PlanExecutionResponse // instance in the callback. // It is invalid to recommend a change to the execution of a constituent that does // not exist. That is, no PlanExecutionConstituent is returned for the // ConstituentRef through the PlanDataSink interface. struct pause { // The list of plan changes recevied by the listener DataModel::PlanExecution::ConstituentRef id; // Qualifying information relating to the recommendation MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; }; #ifndef DDS_XTYPES #pragma keylist pause recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the operation to invoke to recommend that a Plan Execution Constituent // specialization such as a Plan, TaskObjective or ResourceTasking is resumed // immediately. The constituent must have previously been paused. // This interface allows client tactical decision aids to make recommendations to // control the execution of tactical plan-constituents. All Recommendation // operations on the PlanExecutionControl interface receive a PlanExecutionResponse // instance in the callback. // It is invalid to recommend a change to the execution of a constituent that does // not exist. That is, no PlanExecutionConstituent is returned for the // ConstituentRef through the PlanDataSink interface. struct resume { // The list of plan changes recevied by the listener DataModel::PlanExecution::ConstituentRef id; // Qualifying information relating to the recommendation MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; }; #ifndef DDS_XTYPES #pragma keylist resume recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the operation to invoke to recommend that a Plan Execution Constituent // specialization such as a Plan, TaskObjective or ResourceTasking is started // immediately. The constituent must not have previously been started. // This interface allows client tactical decision aids to make recommendations to // control the execution of tactical plan-constituents. All Recommendation // operations on the PlanExecutionControl interface receive a PlanExecutionResponse // instance in the callback. // It is invalid to recommend a change to the execution of a constituent that does // not exist. That is, no PlanExecutionConstituent is returned for the // ConstituentRef through the PlanDataSink interface. struct start { // A reference to the constituent of plan execution for which the action is being // recommended DataModel::PlanExecution::ConstituentRef id; // Qualifying information relating to the recommendation MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; }; #ifndef DDS_XTYPES #pragma keylist start recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the operation to invoke to recommend that a Plan Execution Constituent // specialization such as a Plan, TaskObjective or ResourceTasking is terminated // immediately. The constituent must have previously been started. // This interface allows client tactical decision aids to make recommendations to // control the execution of tactical plan-constituents. All Recommendation // operations on the PlanExecutionControl interface receive a PlanExecutionResponse // instance in the callback. // It is invalid to recommend a change to the execution of a constituent that does // not exist. That is, no PlanExecutionConstituent is returned for the // ConstituentRef through the PlanDataSink interface. struct terminate { // The list of plan changes recevied by the listener DataModel::PlanExecution::ConstituentRef id; // Qualifying information relating to the recommendation MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; }; #ifndef DDS_XTYPES #pragma keylist terminate recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the operation to invoke to recommend the update of a whole Plan Execution // Constituent specialization such as a Plan, TaskObjective or ResourceTasking. // This interface allows client tactical decision aids to make recommendations to // update tactical Plans in whole or part. // All Recommendation operations on the ExtendedPlanAction interface receive a // PlanResponse instance in the callback. // It is invalid to recommend an update to constituent that does not exist. That is, // no PlanExecutionConstituent is returned for the ConstituentRef through the // PlanDataSink interface. struct updateConstituent { // The new values recommended for the plan execution constituent. DataModel::PlanExecution::PlanExecutionConstituent planExecutionConstituent; // Qualifying information relating to the recommendation MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; }; #ifndef DDS_XTYPES #pragma keylist updateConstituent recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the operation to invoke to recommend an update to the progress achieved // for a Plan Execution Constituent specialization such as a Plan, TaskObjective or // ResourceTasking. It is invalid to recommend an update to constituent that does // not exist. That is, there is no instance within the Plan Execution component with // the specified id. // This interface allows client tactical decision aids to make recommendations to // update tactical Plans in whole or part. // All Recommendation operations on the ExtendedPlanAction interface receive a // PlanResponse instance in the callback. // It is invalid to recommend an update to constituent that does not exist. That is, // no PlanExecutionConstituent is returned for the ConstituentRef through the // PlanDataSink interface. struct updateProgress { // A reference to the plan constituent DataModel::PlanExecution::ConstituentRef id; // The progress value to update to MetaModel::DataModel::Utils::Percentage progress; // Metadata pertaining to the recommendation MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; }; #ifndef DDS_XTYPES #pragma keylist updateProgress recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the operation to invoke to recommend a change of a status to a Plan // Execution Constituent specialization such as a Plan, TaskObjective or // ResourceTasking. It is invalid to recommend an update to constituent that does // not exist. That is, there is no instance within the Plan Execution component with // the specified id. // . // This interface allows client tactical decision aids to make recommendations to // update tactical Plans in whole or part. // All Recommendation operations on the ExtendedPlanAction interface receive a // PlanResponse instance in the callback. // It is invalid to recommend an update to constituent that does not exist. That is, // no PlanExecutionConstituent is returned for the ConstituentRef through the // PlanDataSink interface. struct updateStatus { // A reference to the plan constituent DataModel::PlanExecution::ConstituentRef id; // The status value to update to MetaModel::DataModel::Utils::QuantityDescriptor status; // Qualifying information relating to the recommendation MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; }; #ifndef DDS_XTYPES #pragma keylist updateStatus recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the operation to invoke to recommend a change of a time span for a Plan // Execution Constituent specialization such as a Plan, TaskObjective or // ResourceTasking. It is invalid to recommend an update to constituent that does // not exist. That is, there is no instance within the Plan Execution component with // the specified id. // . // This interface allows client tactical decision aids to make recommendations to // update tactical Plans in whole or part. // All Recommendation operations on the ExtendedPlanAction interface receive a // PlanResponse instance in the callback. // It is invalid to recommend an update to constituent that does not exist. That is, // no PlanExecutionConstituent is returned for the ConstituentRef through the // PlanDataSink interface. struct updateTimeSpan { // A reference to the plan constituent DataModel::PlanExecution::ConstituentRef id; // The time span value to update to DataPayload::Util::Period timeSpan; // Qualifying information relating to the recommendation MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; }; #ifndef DDS_XTYPES #pragma keylist updateTimeSpan recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the operation to invoke to recommend that a Plan Execution Constituent // specialization such as a Plan, TaskObjective or ResourceTasking is paused at a // future time. This must be within it's time-span. // This interface allows client tactical decision aids to make recommendations to // control the future execution of tactical plan-constituents. All Recommendation // operations on the ExtendedPlanExecutionControl interface receive a // PlanExecutionResponse instance in the callback. // It is invalid to recommend a change to the execution of a constituent that does // not exist. That is, no PlanExecutionConstituent is returned for the // ConstituentRef through the PlanDataSink interface. struct pauseAt { // A reference to the constituent of plan execution for which the action is being // recommended DataModel::PlanExecution::ConstituentRef id; // The time at which it is recommended to pause execution of the planning // constituent DataPayload::Util::DateTime time; // Qualifying information relating to the recommendation MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; }; #ifndef DDS_XTYPES #pragma keylist pauseAt recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the operation to invoke to recommend that a Plan Execution Constituent // specialization such as a Plan, TaskObjective or ResourceTasking is resumed at a // future time. This must be within it's time-span. // This interface allows client tactical decision aids to make recommendations to // control the future execution of tactical plan-constituents. All Recommendation // operations on the ExtendedPlanExecutionControl interface receive a // PlanExecutionResponse instance in the callback. // It is invalid to recommend a change to the execution of a constituent that does // not exist. That is, no PlanExecutionConstituent is returned for the // ConstituentRef through the PlanDataSink interface. struct resumeAt { // A reference to the constituent of plan execution for which the action is being // recommended DataModel::PlanExecution::ConstituentRef id; // The time at which it is recommended to resume execution of the planning // constituent DataPayload::Util::DateTime time; // Qualifying information relating to the recommendation MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; }; #ifndef DDS_XTYPES #pragma keylist resumeAt recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the operation to invoke to recommend that a Plan Execution Constituent // specialization such as a Plan, TaskObjective or ResourceTasking is started at a // future time. This must be before the end of it's time-span // This interface allows client tactical decision aids to make recommendations to // control the future execution of tactical plan-constituents. All Recommendation // operations on the ExtendedPlanExecutionControl interface receive a // PlanExecutionResponse instance in the callback. // It is invalid to recommend a change to the execution of a constituent that does // not exist. That is, no PlanExecutionConstituent is returned for the // ConstituentRef through the PlanDataSink interface. struct startAt { // A reference to the constituent of plan execution for which the action is being // recommended DataModel::PlanExecution::ConstituentRef id; // The time at which it is recommended to start executing the planning constituent DataPayload::Util::DateTime time; // Qualifying information relating to the recommendation MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; }; #ifndef DDS_XTYPES #pragma keylist startAt recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the operation to invoke to recommend that a Plan Execution Constituent // specialization such as a Plan, TaskObjective or ResourceTasking is terminated at // a future time. This must be after the start of it's time-span. // This interface allows client tactical decision aids to make recommendations to // control the future execution of tactical plan-constituents. All Recommendation // operations on the ExtendedPlanExecutionControl interface receive a // PlanExecutionResponse instance in the callback. // It is invalid to recommend a change to the execution of a constituent that does // not exist. That is, no PlanExecutionConstituent is returned for the // ConstituentRef through the PlanDataSink interface. struct terminateAt { // A reference to the constituent of plan execution for which the action is being // recommended DataModel::PlanExecution::ConstituentRef id; // The time at which it is recommended to terminate the execution of the planning // constituent DataPayload::Util::DateTime time; // Qualifying information relating to the recommendation MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; }; #ifndef DDS_XTYPES #pragma keylist terminateAt recommendation.respondee.clientId recommendation.respondee.requestId #endif }; }; #endif