// copyright 2021-23 BAE Systems // copyright 2023 Real-Time Innovations // copyright 2023 Sparx Systems Pty Ltd // copyright 2023 SimVentions // copyright 2023 Open Text Inc. // copyright 2021-23 Object Management Group Inc // Version 1.0 #ifndef ORGOMGTDAISERVICEMODELPLANEXECUTIONRECOMMENDATIONSDEFVAR #define ORGOMGTDAISERVICEMODELPLANEXECUTIONRECOMMENDATIONSDEFVAR #include "PlanExecution.idl" #include "Utils.idl" #include "Recommendations.idl" #include "Util.idl" module org { module omg { module tdai { module ServiceModel { module PlanExecutionRecommendations { // This is the DDS Topic type for invoking and implementing the recommendConstituent method on the PlanExecutionAction interface. // To invoke the operation publish a DDS Sample of this type; to implement it subscribe for samples. // // 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 org::omg::tdai::DataModel::PlanExecution::PlanExecutionConstituent plan; // Qualifying information relating to the recommendation #ifdef DDS_XTYPES @key org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #else org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #endif }; #ifndef DDS_XTYPES #pragma keylist recommendConstituent recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the DDS Topic type for invoking and implementing the start method on the PlanExecutionControl interface. // To invoke the operation publish a DDS Sample of this type; to implement it subscribe for samples. // // 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 org::omg::tdai::DataModel::PlanExecution::ConstituentRef id; // Qualifying information relating to the recommendation #ifdef DDS_XTYPES @key org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #else org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #endif }; #ifndef DDS_XTYPES #pragma keylist start recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the DDS Topic type for invoking and implementing the pause method on the PlanExecutionControl interface. // To invoke the operation publish a DDS Sample of this type; to implement it subscribe for samples. // // 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 org::omg::tdai::DataModel::PlanExecution::ConstituentRef id; // Qualifying information relating to the recommendation #ifdef DDS_XTYPES @key org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #else org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #endif }; #ifndef DDS_XTYPES #pragma keylist pause recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the DDS Topic type for invoking and implementing the resume method on the PlanExecutionControl interface. // To invoke the operation publish a DDS Sample of this type; to implement it subscribe for samples. // // 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 org::omg::tdai::DataModel::PlanExecution::ConstituentRef id; // Qualifying information relating to the recommendation #ifdef DDS_XTYPES @key org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #else org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #endif }; #ifndef DDS_XTYPES #pragma keylist resume recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the DDS Topic type for invoking and implementing the terminate method on the PlanExecutionControl interface. // To invoke the operation publish a DDS Sample of this type; to implement it subscribe for samples. // // 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 org::omg::tdai::DataModel::PlanExecution::ConstituentRef id; // Qualifying information relating to the recommendation #ifdef DDS_XTYPES @key org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #else org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #endif }; #ifndef DDS_XTYPES #pragma keylist terminate recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the DDS Topic type for invoking and implementing the updateConstituent method on the ExtendedPlanExecutionAction interface. // To invoke the operation publish a DDS Sample of this type; to implement it subscribe for samples. // // 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. org::omg::tdai::DataModel::PlanExecution::PlanExecutionConstituent planExecutionConstituent; // Qualifying information relating to the recommendation #ifdef DDS_XTYPES @key org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #else org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #endif }; #ifndef DDS_XTYPES #pragma keylist updateConstituent recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the DDS Topic type for invoking and implementing the updateStatus method on the ExtendedPlanExecutionAction interface. // To invoke the operation publish a DDS Sample of this type; to implement it subscribe for samples. // // 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 org::omg::tdai::DataModel::PlanExecution::ConstituentRef id; // The status value to update to org::omg::tdai::MetaModel::DataModel::Utils::QuantityDescriptor status; // Qualifying information relating to the recommendation #ifdef DDS_XTYPES @key org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #else org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #endif }; #ifndef DDS_XTYPES #pragma keylist updateStatus recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the DDS Topic type for invoking and implementing the updateTimeSpan method on the ExtendedPlanExecutionAction interface. // To invoke the operation publish a DDS Sample of this type; to implement it subscribe for samples. // // 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 org::omg::tdai::DataModel::PlanExecution::ConstituentRef id; // The time span value to update to org::omg::tex::DataPayload::Util::Period timeSpan; // Qualifying information relating to the recommendation #ifdef DDS_XTYPES @key org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #else org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #endif }; #ifndef DDS_XTYPES #pragma keylist updateTimeSpan recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the DDS Topic type for invoking and implementing the updateProgress method on the ExtendedPlanExecutionAction interface. // To invoke the operation publish a DDS Sample of this type; to implement it subscribe for samples. // // 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 org::omg::tdai::DataModel::PlanExecution::ConstituentRef id; // The progress value to update to org::omg::tdai::MetaModel::DataModel::Utils::Percentage progress; // Metadata pertaining to the recommendation #ifdef DDS_XTYPES @key org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #else org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #endif }; #ifndef DDS_XTYPES #pragma keylist updateProgress recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the DDS Topic type for invoking and implementing the startAt method on the ExtendedPlanExecutionControl interface. // To invoke the operation publish a DDS Sample of this type; to implement it subscribe for samples. // // 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 org::omg::tdai::DataModel::PlanExecution::ConstituentRef id; // The time at which it is recommended to start executing the planning constituent org::omg::tex::DataPayload::Util::DateTime time; // Qualifying information relating to the recommendation #ifdef DDS_XTYPES @key org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #else org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #endif }; #ifndef DDS_XTYPES #pragma keylist startAt recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the DDS Topic type for invoking and implementing the pauseAt method on the ExtendedPlanExecutionControl interface. // To invoke the operation publish a DDS Sample of this type; to implement it subscribe for samples. // // 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 org::omg::tdai::DataModel::PlanExecution::ConstituentRef id; // The time at which it is recommended to pause execution of the planning // constituent org::omg::tex::DataPayload::Util::DateTime time; // Qualifying information relating to the recommendation #ifdef DDS_XTYPES @key org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #else org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #endif }; #ifndef DDS_XTYPES #pragma keylist pauseAt recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the DDS Topic type for invoking and implementing the resumeAt method on the ExtendedPlanExecutionControl interface. // To invoke the operation publish a DDS Sample of this type; to implement it subscribe for samples. // // 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 org::omg::tdai::DataModel::PlanExecution::ConstituentRef id; // The time at which it is recommended to resume execution of the planning // constituent org::omg::tex::DataPayload::Util::DateTime time; // Qualifying information relating to the recommendation #ifdef DDS_XTYPES @key org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #else org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #endif }; #ifndef DDS_XTYPES #pragma keylist resumeAt recommendation.respondee.clientId recommendation.respondee.requestId #endif // This is the DDS Topic type for invoking and implementing the terminateAt method on the ExtendedPlanExecutionControl interface. // To invoke the operation publish a DDS Sample of this type; to implement it subscribe for samples. // // 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 org::omg::tdai::DataModel::PlanExecution::ConstituentRef id; // The time at which it is recommended to terminate the execution of the planning // constituent org::omg::tex::DataPayload::Util::DateTime time; // Qualifying information relating to the recommendation #ifdef DDS_XTYPES @key org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #else org::omg::tdai::MetaModel::ServiceModel::Recommendations::RecommendationMetadata recommendation; #endif }; #ifndef DDS_XTYPES #pragma keylist terminateAt recommendation.respondee.clientId recommendation.respondee.requestId #endif }; }; }; }; }; #endif