Files
VerseVDI-Protocol/proto/versevdi/tunnel/v1/tunnel.proto
T
sechmachine 357e5e0dbc
Verify Protocol / verify (push) Canceled after 0s
Verify Protocol / module (push) Successful in 2m30s
feat(protocol): add gateway provider session work
2026-07-29 11:10:32 +07:00

164 lines
3.5 KiB
Protocol Buffer

syntax = "proto3";
package versevdi.tunnel.v1;
import "google/protobuf/timestamp.proto";
option go_package = "git.sechmachine.io.vn/sechmachine/VerseVDI-Protocol/gen/go/tunnel";
message VersionNegotiation {
repeated string supported_versions = 1;
repeated string features = 2;
}
message AdmissionRequest {
string session_id = 1;
string protocol_version = 2;
string audience = 3;
string purpose = 4;
string grant = 5;
}
message AdmissionResult {
bool admitted = 1;
string session_id = 2;
string failure_code = 3;
int64 session_version = 4;
}
message SessionClose {
string session_id = 1;
string code = 2;
string reason = 3;
google.protobuf.Timestamp occurred_at = 4;
}
message Health {
string session_id = 1;
int64 sequence = 2;
google.protobuf.Timestamp observed_at = 3;
}
message BoundedError {
string code = 1;
string message = 2;
}
message ChannelOpen {
string channel_id = 1;
string direction = 2;
uint32 maximum_frame_bytes = 3;
}
message CapabilityProfile {
string transport = 1;
string framing = 2;
string media = 3;
string audio = 4;
string source_rate_control = 5;
string client_decode = 6;
}
message GatewayRegistration {
string version = 1;
string gateway_id = 2;
string instance_identity = 3;
string certificate_identity = 4;
string public_identity = 5;
string address = 6;
uint32 protocol_min_version = 7;
uint32 protocol_max_version = 8;
uint32 connection_capacity = 9;
uint64 bandwidth_capacity_kbps = 10;
repeated string features = 11;
CapabilityProfile capabilities = 12;
string provider_identity = 13;
}
message GatewayHeartbeat {
string version = 1;
string gateway_id = 2;
uint64 sequence = 3;
google.protobuf.Timestamp observed_at = 4;
uint32 active_connections = 5;
uint64 egress_kbps = 6;
string state = 7;
}
message GatewayDrain {
string version = 1;
string gateway_id = 2;
uint64 sequence = 3;
string reason = 4;
google.protobuf.Timestamp deadline = 5;
}
message TunnelAdmissionRequest {
string version = 1;
string session_id = 2;
string gateway_id = 3;
string audience = 4;
string grant = 5;
uint64 reconnect_sequence = 6;
string client_nonce = 7;
CapabilityProfile capabilities = 8;
string device_signature = 9;
}
message SessionAuthority {
string version = 1;
string session_id = 2;
string gateway_id = 3;
string audience = 4;
uint64 reconnect_sequence = 5;
google.protobuf.Timestamp expires_at = 6;
CapabilityProfile capabilities = 7;
string provider_profile = 8;
string provider_identity = 9;
}
message ProviderSessionWork {
string version = 1;
string session_id = 2;
string gateway_id = 3;
uint64 reconnect_sequence = 4;
google.protobuf.Timestamp expires_at = 5;
string provider_profile = 6;
string provider_identity = 7;
string policy_version_id = 8;
string application_id = 9;
string management_host = 10;
uint32 management_port = 11;
string stream_host = 12;
uint32 stream_port = 13;
string client_certificate_pem = 14;
string client_private_key_pem = 15;
string server_certificate_pem = 16;
}
message ChannelFrame {
string version = 1;
string flow_id = 2;
uint64 sequence = 3;
uint32 flags = 4;
uint32 fragment_index = 5;
uint32 fragment_count = 6;
uint64 timestamp_ms = 7;
bytes payload = 8;
}
message ProviderState {
string version = 1;
string session_id = 2;
string state = 3;
bool cleanup_pending = 4;
repeated string channels = 5;
}
message StableError {
string version = 1;
string code = 2;
string message = 3;
bool retryable = 4;
}