All Downloads are FREE. Search and download functionalities are using the official Maven repository.

yamcs.protobuf.processing.mdb_override_service.proto Maven / Gradle / Ivy

There is a newer version: 5.10.9
Show newest version
syntax="proto2";

package yamcs.protobuf.processing;

option java_package = "org.yamcs.protobuf";
option java_outer_classname = "MdbOverrideServiceProto";
option java_multiple_files = true;

import "google/protobuf/empty.proto";

import "yamcs/api/annotations.proto";
import "yamcs/protobuf/mdb/mdb.proto";

// Groups operations that support runtime changes to some parts of the MDB.
//
// These changes are always scoped to a processor, and do not persist across
// server restarts.
service MdbOverrideApi {
  option (yamcs.api.label) = "MDB Override";

  // List MDB overrides
  rpc ListMdbOverrides(ListMdbOverridesRequest) returns (ListMdbOverridesResponse) {
    option (yamcs.api.route) = {
      label: "List MDB Overrides"
      get: "/api/mdb-overrides/{instance}/{processor}"
    };
  }

  // Get overrides for an algorithm
  rpc GetAlgorithmOverrides(GetAlgorithmOverridesRequest) returns (GetAlgorithmOverridesResponse) {
    option (yamcs.api.route) = {
      get: "/api/mdb-overrides/{instance}/{processor}/algorithms/{name*}"
    };
  }

  // Get elements of a parameter's definition, as changed for a
  // specific processor.
  //
  // This may return empty, if there is no change, or a previous change
  // was explicitly deleted.
  rpc GetParameterOverride(GetParameterOverrideRequest) returns (ParameterOverride) {
    option (yamcs.api.route) = {
      get: "/api/mdb-overrides/{instance}/{processor}/parameters/{name*}"
    };
  }

  // Update a parameter's definition
  rpc UpdateParameter(UpdateParameterRequest) returns (mdb.ParameterTypeInfo) {
    option (yamcs.api.route) = {
      patch: "/api/mdb-overrides/{instance}/{processor}/parameters/{name*}"
      body: "*"
      additional_bindings: {
        patch: "/api/mdb/{instance}/{processor}/parameters/{name*}"
        body: "*"
        deprecated: true
      }
    };
  }
  
  // Update an algorithm's definition
  rpc UpdateAlgorithm(UpdateAlgorithmRequest) returns (google.protobuf.Empty) {
    option (yamcs.api.route) = {
      patch: "/api/mdb-overrides/{instance}/{processor}/algorithms/{name*}"
      body: "*"
      additional_bindings: {
        patch: "/api/mdb/{instance}/{processor}/algorithms/{name*}"
        body: "*"
        deprecated: true
      }
    };
  }

  // Receive notifications on processor-level MDB changes.
  //
  // Updates include the current state of the algorithm or
  // parameter, also when an override is essentially removed.
  rpc SubscribeMdbChanges(SubscribeMdbChangesRequest) returns (stream MdbOverrideInfo) {
    option (yamcs.api.websocket) = {
      label: "Subscribe MDB Changes"
      topic: "mdb-changes"
    };
  }
}

message SubscribeMdbChangesRequest {
  // Yamcs instance name.
  optional string instance = 1;

  // Processor name.
  optional string processor = 2;
}

message ListMdbOverridesRequest {
  // Yamcs instance name.
  optional string instance = 1;

  // Processor name.
  optional string processor = 2;
}

message ListMdbOverridesResponse {
  repeated MdbOverrideInfo overrides = 1;
}

message GetAlgorithmOverridesRequest {
  // Yamcs instance name.
  optional string instance = 1;

  // Processor name.
  optional string processor = 2;

  // Algorithm name.
  optional string name = 3;
}

message GetAlgorithmOverridesResponse {
  // Updated algorithm text
  optional AlgorithmTextOverride textOverride = 1;
}

message GetParameterOverrideRequest {
  // Yamcs instance name.
  optional string instance = 1;

  // Processor name.
  optional string processor = 2;

  // Parameter name.
  optional string name = 3;
}

// A change to a parameter's type.
//
// This can be either due to an alarm or a calibrator change.
message ParameterOverride {
  // Parameter name
  optional string parameter = 1;

  // Default calibrator (when no specific context)
  optional mdb.CalibratorInfo defaultCalibrator = 5;

  // Calibrators under specific context
  repeated mdb.ContextCalibratorInfo contextCalibrators = 6;

  // Default alarm properties (when no specific context)
  optional mdb.AlarmInfo defaultAlarm = 7;

  // Alarm properties under specific context
  repeated mdb.ContextAlarmInfo contextAlarms = 8;
}

message MdbOverrideInfo {
  enum OverrideType {
    // Override of an algorithm's text
    ALGORITHM_TEXT = 0;

    // Override of a parameter's type
    // (alarms, calibrators, or both)
    PARAMETER = 1;
  }
  optional OverrideType type = 1;
  optional AlgorithmTextOverride algorithmTextOverride = 2;
  optional ParameterOverride parameterOverride = 3;
}

message AlgorithmTextOverride {
  // Algorithm name
  optional string algorithm = 1;

  // Algorithm text
  optional string text = 2;
}

// Used to change calibrators or alarms for one parameter
message UpdateParameterRequest {
  enum ActionType {

    // Reset all parameter properties (calibrators+alarms) to their default
    // Mission Database value
    RESET = 0;
    
    // Reset calibrators to their default MDB value
    RESET_CALIBRATORS = 1;
    
    // Sets the default calibrator (the contextual ones are unmodified)
    SET_DEFAULT_CALIBRATOR = 2;
    
    // Sets all calibrations (default + contextual), if default is not set,
    // the existing calibration is not modified
    SET_CALIBRATORS = 3;
     
    // Reset alarms to their default Mission Database value
    RESET_ALARMS = 4;
    
    // Sets the default alarms (contextual ones are unmodified)
    SET_DEFAULT_ALARMS = 5;
    
    // Sets all alarms (default + contextual), if default is not set, the
    // existing alarm is not modified.
    SET_ALARMS = 6;
  }
  
  // Yamcs instance name.
  optional string instance = 1;
  
  // Processor name.
  optional string processor = 2;
  
  // Parameter name.
  optional string name = 3;

  // The action by which to modify this parameter.
  optional ActionType action = 4;
  
  // Used when action = SET_DEFAULT_CALIBRATOR or SET_CALIBRATORS
  optional mdb.CalibratorInfo defaultCalibrator = 5;
  
  // Used when action = SET_CALIBRATORS
  repeated mdb.ContextCalibratorInfo contextCalibrator = 6;
  
  // Used when action = SET_DEFAULT_ALARMS or SET_ALARMS
  optional mdb.AlarmInfo defaultAlarm = 7;
  
  // Used when action = SET_ALARMS
  repeated mdb.ContextAlarmInfo contextAlarm = 8;
}

message UpdateAlgorithmRequest {
  enum ActionType {
    // Restores the original MDB definition
    RESET = 0;
    
    // Sets the algorithm text
    SET = 1;
  }
  
  // Yamcs instance name.
  optional string instance = 1;
  
  // Processor name.
  optional string processor = 2;
  
  // Algorithm name.
  optional string name = 3;
  
  // The action by which to modify this algorithm
  optional ActionType action = 4;
  
  // Used when action = SET
  optional mdb.AlgorithmInfo algorithm = 6;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy