mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-10-28 10:51:44 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			77 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
| syntax = "proto3";
 | |
| package headscale.v1;
 | |
| option go_package = "github.com/juanfont/headscale/gen/go/v1";
 | |
| 
 | |
| import "google/protobuf/timestamp.proto";
 | |
| 
 | |
| // This is a potential reimplementation of Tailscale's API
 | |
| // https://github.com/tailscale/tailscale/blob/main/api.md
 | |
| 
 | |
| message Latency {
 | |
|   float latency_ms = 1;
 | |
|   bool preferred = 2;
 | |
| }
 | |
| 
 | |
| message ClientSupports {
 | |
|   bool hair_pinning = 1;
 | |
|   bool ipv6 = 2;
 | |
|   bool pcp = 3;
 | |
|   bool pmp = 4;
 | |
|   bool udp = 5;
 | |
|   bool upnp = 6;
 | |
| }
 | |
| 
 | |
| message ClientConnectivity {
 | |
|   repeated string endpoints = 1;
 | |
|   string derp = 2;
 | |
|   bool mapping_varies_by_dest_ip = 3;
 | |
|   map<string, Latency> latency = 4;
 | |
|   ClientSupports client_supports = 5;
 | |
| }
 | |
| 
 | |
| message GetDeviceRequest { string id = 1; }
 | |
| 
 | |
| message GetDeviceResponse {
 | |
|   repeated string addresses = 1;
 | |
|   string id = 2;
 | |
|   string user = 3;
 | |
|   string name = 4;
 | |
|   string hostname = 5;
 | |
|   string client_version = 6;
 | |
|   bool update_available = 7;
 | |
|   string os = 8;
 | |
|   google.protobuf.Timestamp created = 9;
 | |
|   google.protobuf.Timestamp last_seen = 10;
 | |
|   bool key_expiry_disabled = 11;
 | |
|   google.protobuf.Timestamp expires = 12;
 | |
|   bool authorized = 13;
 | |
|   bool is_external = 14;
 | |
|   string machine_key = 15;
 | |
|   string node_key = 16;
 | |
|   bool blocks_incoming_connections = 17;
 | |
|   repeated string enabled_routes = 18;
 | |
|   repeated string advertised_routes = 19;
 | |
|   ClientConnectivity client_connectivity = 20;
 | |
| }
 | |
| 
 | |
| message DeleteDeviceRequest { string id = 1; }
 | |
| 
 | |
| message DeleteDeviceResponse {}
 | |
| 
 | |
| message GetDeviceRoutesRequest { string id = 1; }
 | |
| 
 | |
| message GetDeviceRoutesResponse {
 | |
|   repeated string enabled_routes = 1;
 | |
|   repeated string advertised_routes = 2;
 | |
| }
 | |
| 
 | |
| message EnableDeviceRoutesRequest {
 | |
|   string id = 1;
 | |
|   repeated string routes = 2;
 | |
| }
 | |
| 
 | |
| message EnableDeviceRoutesResponse {
 | |
|   repeated string enabled_routes = 1;
 | |
|   repeated string advertised_routes = 2;
 | |
| }
 |