ndb-grpc-proto.1.3.source-code.platform_api.proto Maven / Gradle / Ivy
syntax = "proto3";
package io.axoniq.platform.grpc;
option java_multiple_files = true;
service PlatformService {
rpc GetPlatformServer (ClientIdentification) returns (PlatformInfo) {
}
rpc OpenStream( stream PlatformInboundInstruction) returns (stream PlatformOutboundInstruction) {}
}
message PlatformInboundInstruction {
oneof request {
ClientIdentification register = 1;
Application application = 10;
User user = 11;
ContextUpdate context = 12;
HeartbeatResponse heartbeat = 99;
UnknownRequest unknown_request = 100;
}
}
message PlatformOutboundInstruction {
oneof request {
NodeInfo node_notification = 1;
RequestReconnect request_reconnect = 3;
HeartbeatRequest heartbeat = 99;
UnknownRequest unknown_request = 100;
}
}
message RequestReconnect {
}
message HeartbeatRequest {
string message_id = 1;
}
message UnknownRequest {
int32 number = 1;
}
message HeartbeatResponse {
string message_id = 1;
string correlates_to = 2;
}
message RequestReleaseTracker {
}
message PlatformInfo {
NodeInfo primary = 1;
}
message NodeInfo {
string host_name = 1;
int32 grpc_port = 2;
int32 http_port = 3;
int32 version = 4;
string node_name = 5;
}
message ClientIdentification {
string client_name = 1;
string component_name = 2;
}
message Application {
string name = 1;
string description = 2;
string hashed_token = 3;
repeated ApplicationRole roles = 4;
Action action = 5;
bool fine_grained_access_control = 6;
}
message User {
string name = 1;
string password = 3;
repeated string roles = 4;
Action action = 5;
}
message ApplicationRole {
string name = 1;
int64 end_date = 2;
string context = 3;
}
enum Action {
MERGE = 0;
DELETE = 1;
RENEW = 2;
}
message ContextUpdate {
string name = 1;
repeated string nodes = 3;
ContextAction action = 4;
}
enum ContextAction {
MERGE_CONTEXT = 0;
DELETE_CONTEXT = 1;
ADD_NODES = 2;
DELETE_NODES = 3;
}