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

yamcs.protobuf.commanding.clearance_service.proto Maven / Gradle / Ivy

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

package yamcs.protobuf.commanding;

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

import "google/protobuf/empty.proto";
import "google/protobuf/timestamp.proto";

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

service ClearanceApi {

  // List clearances
  rpc ListClearances(google.protobuf.Empty) returns (ListClearancesResponse) {
    option (yamcs.api.route) = {
      get: "/api/clearances"
    };
  }
  
  // Update a user's clearance
  rpc UpdateClearance(UpdateClearanceRequest) returns (ClearanceInfo) {
    option (yamcs.api.route) = {
      patch: "/api/clearances/{username}"
      body: "*"
      log: "Clearance of '{username}' changed to {level}"
    };
  }

  // Delete a user's clearance
  rpc DeleteClearance(DeleteClearanceRequest) returns (google.protobuf.Empty) {
    option (yamcs.api.route) = {
      delete: "/api/clearances/{username}"
      log: "Clearance revoked from user '{username}'"
    };
  }
  
  // Receive updates on own clearance
  rpc SubscribeClearance(google.protobuf.Empty) returns (stream ClearanceInfo) {
    option (yamcs.api.websocket) = {
      topic: "clearance"
    };
  }
}

message ListClearancesResponse {
  repeated ClearanceInfo clearances = 1;
}

message ClearanceInfo {
  optional string username = 1;
  optional mdb.SignificanceInfo.SignificanceLevelType level = 2;
  optional string issuedBy = 3;
  optional google.protobuf.Timestamp issueTime = 4;
  optional bool hasCommandPrivileges = 5;
}

message UpdateClearanceRequest {
  optional string username = 1;
  optional mdb.SignificanceInfo.SignificanceLevelType level = 2;
}

message DeleteClearanceRequest {
  optional string username = 1;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy