Restructure and extend protos for easier usage
This commit is contained in:
parent
ca41423aa6
commit
e6959915c6
8 changed files with 229 additions and 0 deletions
10
api/.editorconfig
Normal file
10
api/.editorconfig
Normal file
|
@ -0,0 +1,10 @@
|
|||
root = true
|
||||
|
||||
[*]
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
charset = utf-8
|
||||
|
||||
[*.proto]
|
||||
indent_style = space
|
||||
indent_size = 4
|
2
api/.gitignore
vendored
Normal file
2
api/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
.vscode/
|
||||
.idea/
|
1
api/README.md
Normal file
1
api/README.md
Normal file
|
@ -0,0 +1 @@
|
|||
# INetMock protobuf API
|
43
api/proto/audit/details/dns_details.proto
Normal file
43
api/proto/audit/details/dns_details.proto
Normal file
|
@ -0,0 +1,43 @@
|
|||
syntax = "proto3";
|
||||
|
||||
option go_package = "gitlab.com/inetmock/inetmock/pkg/audit/details";
|
||||
option java_multiple_files = true;
|
||||
option java_package = "com.github.baez90.inetmock.audit.details";
|
||||
option java_outer_classname = "HandlerEventProto";
|
||||
option csharp_namespace = "INetMock.Client.Audit.Details";
|
||||
|
||||
package inetmock.audit.details;
|
||||
|
||||
enum DNSOpCode {
|
||||
Query = 0;
|
||||
Status = 2;
|
||||
Notify = 4;
|
||||
Update = 5;
|
||||
}
|
||||
|
||||
enum ResourceRecordType {
|
||||
UnknownRR = 0;
|
||||
A = 1;
|
||||
NS = 2;
|
||||
CNAME = 5;
|
||||
SOA = 6;
|
||||
PTR = 12;
|
||||
HINFO = 13;
|
||||
MINFO = 14;
|
||||
MX = 15;
|
||||
TXT = 16;
|
||||
RP = 17;
|
||||
AAAA = 28;
|
||||
SRV = 33;
|
||||
NAPTR = 35;
|
||||
}
|
||||
|
||||
message DNSQuestionEntity {
|
||||
ResourceRecordType type = 1;
|
||||
string name = 2;
|
||||
}
|
||||
|
||||
message DNSDetailsEntity {
|
||||
DNSOpCode opcode = 1;
|
||||
repeated DNSQuestionEntity questions = 2;
|
||||
}
|
33
api/proto/audit/details/http_details.proto
Normal file
33
api/proto/audit/details/http_details.proto
Normal file
|
@ -0,0 +1,33 @@
|
|||
syntax = "proto3";
|
||||
|
||||
option go_package = "gitlab.com/inetmock/inetmock/pkg/audit/details";
|
||||
option java_multiple_files = true;
|
||||
option java_package = "com.github.baez90.inetmock.audit.details";
|
||||
option java_outer_classname = "HandlerEventProto";
|
||||
option csharp_namespace = "INetMock.Client.Audit.Details";
|
||||
|
||||
package inetmock.audit.details;
|
||||
|
||||
enum HTTPMethod {
|
||||
GET = 0;
|
||||
HEAD = 1;
|
||||
POST = 2;
|
||||
PUT = 3;
|
||||
DELETE = 4;
|
||||
CONNECT = 5;
|
||||
OPTIONS = 6;
|
||||
TRACE = 7;
|
||||
PATCH = 8;
|
||||
}
|
||||
|
||||
message HTTPHeaderValue {
|
||||
repeated string values = 1;
|
||||
}
|
||||
|
||||
message HTTPDetailsEntity {
|
||||
HTTPMethod method = 1;
|
||||
string host = 2;
|
||||
string uri = 3;
|
||||
string proto = 4;
|
||||
map<string, HTTPHeaderValue> headers = 5;
|
||||
}
|
52
api/proto/audit/event_entity.proto
Normal file
52
api/proto/audit/event_entity.proto
Normal file
|
@ -0,0 +1,52 @@
|
|||
syntax = "proto3";
|
||||
|
||||
option go_package = "gitlab.com/inetmock/inetmock/pkg/audit";
|
||||
option java_multiple_files = true;
|
||||
option java_package = "com.github.baez90.inetmock.audit";
|
||||
option java_outer_classname = "HandlerEventProto";
|
||||
option csharp_namespace = "INetMock.Client.Audit";
|
||||
|
||||
package inetmock.audit;
|
||||
|
||||
import "google/protobuf/any.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
||||
enum TransportProtocol {
|
||||
UNKNOWN_TRANSPORT = 0;
|
||||
TCP = 1;
|
||||
UDP = 2;
|
||||
}
|
||||
|
||||
enum AppProtocol {
|
||||
UNKNOWN_APPLICATION = 0;
|
||||
DNS = 1;
|
||||
HTTP = 2;
|
||||
HTTP_PROXY = 3;
|
||||
}
|
||||
|
||||
enum TLSVersion {
|
||||
SSLv30 = 0;
|
||||
TLS10 = 1;
|
||||
TLS11 = 2;
|
||||
TLS12 = 3;
|
||||
TLS13 = 4;
|
||||
}
|
||||
|
||||
message TLSDetailsEntity {
|
||||
TLSVersion version = 1;
|
||||
string cipherSuite = 2;
|
||||
string serverName = 3;
|
||||
}
|
||||
|
||||
message EventEntity {
|
||||
int64 id = 1;
|
||||
google.protobuf.Timestamp timestamp = 2;
|
||||
TransportProtocol transport = 3;
|
||||
AppProtocol application = 4;
|
||||
bytes sourceIP = 5;
|
||||
bytes destinationIP = 6;
|
||||
uint32 sourcePort = 7;
|
||||
uint32 destinationPort = 8;
|
||||
TLSDetailsEntity tls = 9;
|
||||
google.protobuf.Any protocolDetails = 10;
|
||||
}
|
53
api/proto/rpc/audit.proto
Normal file
53
api/proto/rpc/audit.proto
Normal file
|
@ -0,0 +1,53 @@
|
|||
syntax = "proto3";
|
||||
|
||||
option go_package = "gitlab.com/inetmock/inetmock/pkg/rpc";
|
||||
option java_multiple_files = true;
|
||||
option java_package = "com.github.baez90.inetmock.rpc";
|
||||
option java_outer_classname = "AuditProto";
|
||||
option csharp_namespace = "INetMock.Client.Rpc";
|
||||
|
||||
import 'proto/audit/event_entity.proto';
|
||||
|
||||
package inetmock.rpc;
|
||||
|
||||
enum FileOpenMode {
|
||||
TRUNCATE = 0;
|
||||
APPEND = 1;
|
||||
}
|
||||
|
||||
message WatchEventsRequest {
|
||||
string watcherName = 1;
|
||||
}
|
||||
|
||||
message RegisterFileSinkRequest {
|
||||
string targetPath = 1;
|
||||
FileOpenMode openMode = 2;
|
||||
uint32 permissions = 3;
|
||||
}
|
||||
|
||||
message RegisterFileSinkResponse {
|
||||
|
||||
}
|
||||
|
||||
message RemoveFileSinkRequest {
|
||||
string targetPath = 1;
|
||||
}
|
||||
|
||||
message RemoveFileSinkResponse {
|
||||
bool SinkGotRemoved = 1;
|
||||
}
|
||||
|
||||
message ListSinksRequest {
|
||||
|
||||
}
|
||||
|
||||
message ListSinksResponse {
|
||||
repeated string sinks = 1;
|
||||
}
|
||||
|
||||
service Audit {
|
||||
rpc WatchEvents (WatchEventsRequest) returns (stream inetmock.audit.EventEntity);
|
||||
rpc RegisterFileSink (RegisterFileSinkRequest) returns (RegisterFileSinkResponse);
|
||||
rpc RemoveFileSink (RemoveFileSinkRequest) returns (RemoveFileSinkResponse);
|
||||
rpc ListSinks(ListSinksRequest) returns (ListSinksResponse);
|
||||
}
|
35
api/proto/rpc/health.proto
Normal file
35
api/proto/rpc/health.proto
Normal file
|
@ -0,0 +1,35 @@
|
|||
syntax = "proto3";
|
||||
|
||||
option go_package = "gitlab.com/inetmock/inetmock/internal/rpc";
|
||||
option java_multiple_files = true;
|
||||
option java_package = "com.github.baez90.inetmock.rpc";
|
||||
option java_outer_classname = "HealthProto";
|
||||
option csharp_namespace = "INetMock.Client.Rpc";
|
||||
|
||||
package inetmock.rpc;
|
||||
|
||||
service Health {
|
||||
rpc GetHealth (HealthRequest) returns (HealthResponse) {
|
||||
}
|
||||
}
|
||||
|
||||
enum HealthState {
|
||||
HEALTHY = 0;
|
||||
INITIALIZING = 1;
|
||||
UNHEALTHY = 2;
|
||||
UNKNOWN = 3;
|
||||
}
|
||||
|
||||
message HealthRequest {
|
||||
repeated string components = 1;
|
||||
}
|
||||
|
||||
message ComponentHealth {
|
||||
HealthState State = 1;
|
||||
string message = 2;
|
||||
}
|
||||
|
||||
message HealthResponse {
|
||||
HealthState overallHealthState = 1;
|
||||
map<string, ComponentHealth> componentsHealth = 2;
|
||||
}
|
Loading…
Reference in a new issue