Files
panels/protobufs/panel.proto

84 lines
1.9 KiB
Protocol Buffer

// Copyright 2023 Declan Teevan
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package panels.panel.v1;
import "google/protobuf/empty.proto";
import "google/protobuf/timestamp.proto";
service PanelService {
rpc CreatePanel(CreatePanelRequest) returns (Panel) {}
rpc GetPanel(GetPanelByIdRequest) returns (Panel) {}
rpc GetPanelByName(GetPanelByNameRequest) returns (Panel) {}
rpc UpdatePanel(UpdatePanelByIdRequest) returns (Panel) {}
rpc UpdatePanelByName(UpdatePanelByNameRequest) returns (Panel) {}
rpc DeletePanel(DeletePanelByIdRequest) returns (google.protobuf.Empty) {}
rpc DeletePanelByName(DeletePanelByNameRequest) returns (google.protobuf.Empty) {}
}
message Panel {
string id = 1;
string name = 2;
string description = 3;
google.protobuf.Timestamp created_at = 4;
google.protobuf.Timestamp updated_at = 5;
}
message PanelMutable {
optional string name = 1;
optional string description = 2;
}
message CreatePanelRequest {
PanelMutable data = 1;
}
message GetPanelByIdRequest {
string id = 1;
}
message GetPanelByNameRequest {
string name = 1;
}
message UpdatePanelByIdRequest {
string id = 1;
PanelMutable data = 2;
}
message UpdatePanelByNameRequest {
string name = 1;
PanelMutable data = 2;
}
message DeletePanelByIdRequest {
string id = 1;
}
message DeletePanelByNameRequest {
string name = 1;
}
// Kafka Event Schema
message PanelEvent {
string type = 1;
Panel data = 2;
}