Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
csbi.proto 1.34 KiB
syntax = "proto3";

package gosdn.csbi;

import "gosdn/transport/transport.proto";

option go_package = "code.fbi.h-da.de/cocsn/api/go/gosdn/csbi";

service csbi {
  rpc Get(GetRequest) returns (GetResponse);
  rpc Create(CreateRequest) returns (CreateResponse);
  rpc Delete(DeleteRequest) returns (DeleteResponse);
}

message GetRequest {
  int64 timestamp = 1;          // Timestamp in nanoseconds since Epoch.
  bool all = 2;
  repeated string did = 3;
}

message GetResponse {
  int64 timestamp = 1;          // Timestamp in nanoseconds since Epoch.
  repeated Deployment deployments = 2;
}

message Deployment {
  string id = 1;
  string name = 2;
  State state = 3;
}

enum State {
  ANNOUNCED = 0;
	BUILT = 1;
	DEPLOYED = 2;
	RUNNING = 3;
	DECOMMISSIONED = 4;
}

message CreateRequest {
  int64 timestamp = 1;          // Timestamp in nanoseconds since Epoch.
  repeated .gosdn.transport.TransportOption TransportOption = 2;
}

message CreateResponse {
  int64 timestamp = 1;          // Timestamp in nanoseconds since Epoch.
  repeated Deployment deployments = 2;
}

message DeleteRequest {
  int64 timestamp = 1;          // Timestamp in nanoseconds since Epoch.
  repeated string did = 2;
}

message DeleteResponse {
  int64 timestamp = 1;          // Timestamp in nanoseconds since Epoch.
  enum status {
    OK = 0;
    ERROR = 1;
  }
  status Status = 2;
}