309 lines
7.0 KiB
Protocol Buffer
309 lines
7.0 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;
|
|
reserved 4;
|
|
string source_rate_control = 5;
|
|
reserved 6;
|
|
repeated VideoProfile video_profiles = 7;
|
|
repeated AudioProfile audio_profiles = 8;
|
|
}
|
|
|
|
message VideoProfile {
|
|
string codec = 1;
|
|
uint32 bit_depth = 2;
|
|
string chroma_subsampling = 3;
|
|
string color_space = 4;
|
|
string transfer_function = 5;
|
|
}
|
|
|
|
message AudioProfile {
|
|
string codec = 1;
|
|
uint32 sample_rate_hz = 2;
|
|
uint32 channels = 3;
|
|
string channel_layout = 4;
|
|
uint32 packet_duration_ms = 5;
|
|
}
|
|
|
|
message DisplayMode {
|
|
uint32 resolution_width = 1;
|
|
uint32 resolution_height = 2;
|
|
uint32 fps = 3;
|
|
}
|
|
|
|
message SessionAdjustment {
|
|
string display_reason = 1;
|
|
string bitrate_reason = 2;
|
|
}
|
|
|
|
message SelectedSessionDescriptor {
|
|
VideoProfile video_profile = 1;
|
|
AudioProfile audio_profile = 2;
|
|
DisplayMode display_mode = 3;
|
|
uint64 bitrate_target_kbps = 4;
|
|
uint64 bitrate_maximum_kbps = 5;
|
|
SessionAdjustment adjustment = 6;
|
|
string media_timestamp_basis = 7;
|
|
}
|
|
|
|
message ProviderStreamPolicy {
|
|
VideoProfile video_profile = 1;
|
|
AudioProfile audio_profile = 2;
|
|
DisplayMode display_mode = 3;
|
|
uint64 bitrate_target_kbps = 4;
|
|
uint64 bitrate_maximum_kbps = 5;
|
|
}
|
|
|
|
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;
|
|
SelectedSessionDescriptor selected_descriptor = 10;
|
|
}
|
|
|
|
message ClientSessionAuthority {
|
|
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;
|
|
SelectedSessionDescriptor selected_descriptor = 8;
|
|
}
|
|
|
|
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;
|
|
string client_id = 17;
|
|
ClipboardPolicy clipboard_policy = 18;
|
|
bool provider_application_termination_allowed = 19;
|
|
ProviderStreamPolicy stream_policy = 20;
|
|
}
|
|
|
|
message GatewayQualityWorkRequest {
|
|
string version = 1;
|
|
string session_id = 2;
|
|
string gateway_id = 3;
|
|
uint64 reconnect_sequence = 4;
|
|
string operation_id = 5;
|
|
optional uint64 revision = 6;
|
|
optional uint64 current_applied_revision = 7;
|
|
string acquisition = 8;
|
|
optional uint64 lease_generation = 9;
|
|
}
|
|
|
|
message GatewayQualityWork {
|
|
string version = 1;
|
|
string session_id = 2;
|
|
string gateway_id = 3;
|
|
uint64 reconnect_sequence = 4;
|
|
string operation_id = 5;
|
|
uint64 revision = 6;
|
|
google.protobuf.Timestamp lease_expires_at = 7;
|
|
SelectedSessionDescriptor selected_descriptor = 8;
|
|
optional uint64 current_applied_revision = 9;
|
|
uint64 lease_generation = 10;
|
|
}
|
|
|
|
message GatewayQualityAck {
|
|
string version = 1;
|
|
string session_id = 2;
|
|
string gateway_id = 3;
|
|
uint64 reconnect_sequence = 4;
|
|
string operation_id = 5;
|
|
uint64 revision = 6;
|
|
string outcome = 7;
|
|
optional uint64 current_applied_revision = 8;
|
|
string failure_code = 9;
|
|
uint64 lease_generation = 10;
|
|
}
|
|
|
|
message GatewayStopWork {
|
|
string version = 1;
|
|
string session_id = 2;
|
|
string gateway_id = 3;
|
|
uint64 reconnect_sequence = 4;
|
|
string operation_id = 5;
|
|
uint32 attempt = 6;
|
|
}
|
|
|
|
message GatewayStopWorkRequest {
|
|
string version = 1;
|
|
string session_id = 2;
|
|
string gateway_id = 3;
|
|
uint64 reconnect_sequence = 4;
|
|
string operation_id = 5;
|
|
string acquisition = 6;
|
|
}
|
|
|
|
message GatewayStopAck {
|
|
string version = 1;
|
|
string session_id = 2;
|
|
string gateway_id = 3;
|
|
uint64 reconnect_sequence = 4;
|
|
string operation_id = 5;
|
|
string outcome = 6;
|
|
string failure_code = 7;
|
|
}
|
|
|
|
message ClipboardPolicy {
|
|
bool client_to_provider_enabled = 1;
|
|
bool provider_to_client_enabled = 2;
|
|
uint32 max_text_bytes = 3;
|
|
uint32 max_updates_per_minute = 4;
|
|
}
|
|
|
|
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 GatewayClipboardAudit {
|
|
string version = 1;
|
|
string session_id = 2;
|
|
string direction = 3;
|
|
string outcome = 4;
|
|
uint32 text_bytes = 5;
|
|
string reason = 6;
|
|
}
|
|
|
|
message StableError {
|
|
string version = 1;
|
|
string code = 2;
|
|
string message = 3;
|
|
bool retryable = 4;
|
|
}
|