mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-10-28 10:51:44 +01:00 
			
		
		
		
	Rename machine in protos and gen code
This commit is contained in:
		
							parent
							
								
									47bc930ace
								
							
						
					
					
						commit
						ae03f440ee
					
				@ -1,6 +1,6 @@
 | 
			
		||||
// Code generated by protoc-gen-go. DO NOT EDIT.
 | 
			
		||||
// versions:
 | 
			
		||||
// 	protoc-gen-go v1.28.1
 | 
			
		||||
// 	protoc-gen-go v1.29.1
 | 
			
		||||
// 	protoc        (unknown)
 | 
			
		||||
// source: headscale/v1/apikey.proto
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
// Code generated by protoc-gen-go. DO NOT EDIT.
 | 
			
		||||
// versions:
 | 
			
		||||
// 	protoc-gen-go v1.28.1
 | 
			
		||||
// 	protoc-gen-go v1.29.1
 | 
			
		||||
// 	protoc        (unknown)
 | 
			
		||||
// source: headscale/v1/device.proto
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
// Code generated by protoc-gen-go. DO NOT EDIT.
 | 
			
		||||
// versions:
 | 
			
		||||
// 	protoc-gen-go v1.28.1
 | 
			
		||||
// 	protoc-gen-go v1.29.1
 | 
			
		||||
// 	protoc        (unknown)
 | 
			
		||||
// source: headscale/v1/headscale.proto
 | 
			
		||||
 | 
			
		||||
@ -31,261 +31,252 @@ var file_headscale_v1_headscale_proto_rawDesc = []byte{
 | 
			
		||||
	0x73, 0x63, 0x61, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, 0x72,
 | 
			
		||||
	0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2f, 0x76,
 | 
			
		||||
	0x31, 0x2f, 0x70, 0x72, 0x65, 0x61, 0x75, 0x74, 0x68, 0x6b, 0x65, 0x79, 0x2e, 0x70, 0x72, 0x6f,
 | 
			
		||||
	0x74, 0x6f, 0x1a, 0x1a, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2f, 0x76, 0x31,
 | 
			
		||||
	0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19,
 | 
			
		||||
	0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x75,
 | 
			
		||||
	0x74, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x68, 0x65, 0x61, 0x64, 0x73,
 | 
			
		||||
	0x63, 0x61, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x70, 0x69, 0x6b, 0x65, 0x79, 0x2e, 0x70,
 | 
			
		||||
	0x72, 0x6f, 0x74, 0x6f, 0x32, 0x8d, 0x18, 0x0a, 0x10, 0x48, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61,
 | 
			
		||||
	0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x63, 0x0a, 0x07, 0x47, 0x65, 0x74,
 | 
			
		||||
	0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65,
 | 
			
		||||
	0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65,
 | 
			
		||||
	0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76,
 | 
			
		||||
	0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
 | 
			
		||||
	0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f,
 | 
			
		||||
	0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x68,
 | 
			
		||||
	0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1f, 0x2e, 0x68,
 | 
			
		||||
	0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61,
 | 
			
		||||
	0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e,
 | 
			
		||||
	0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65,
 | 
			
		||||
	0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
 | 
			
		||||
	0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x3a, 0x01, 0x2a, 0x22, 0x0c, 0x2f, 0x61, 0x70, 0x69,
 | 
			
		||||
	0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x12, 0x82, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x6e,
 | 
			
		||||
	0x61, 0x6d, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1f, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63,
 | 
			
		||||
	0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x55, 0x73, 0x65,
 | 
			
		||||
	0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73,
 | 
			
		||||
	0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x55, 0x73,
 | 
			
		||||
	0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93,
 | 
			
		||||
	0x02, 0x2b, 0x22, 0x29, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72,
 | 
			
		||||
	0x2f, 0x7b, 0x6f, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x6e, 0x61,
 | 
			
		||||
	0x6d, 0x65, 0x2f, 0x7b, 0x6e, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x6c, 0x0a,
 | 
			
		||||
	0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1f, 0x2e, 0x68, 0x65,
 | 
			
		||||
	0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74,
 | 
			
		||||
	0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x68,
 | 
			
		||||
	0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65,
 | 
			
		||||
	0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b,
 | 
			
		||||
	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x2a, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f,
 | 
			
		||||
	0x75, 0x73, 0x65, 0x72, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x62, 0x0a, 0x09, 0x4c,
 | 
			
		||||
	0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73,
 | 
			
		||||
	0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72,
 | 
			
		||||
	0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73,
 | 
			
		||||
	0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72,
 | 
			
		||||
	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02,
 | 
			
		||||
	0x0e, 0x12, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x12,
 | 
			
		||||
	0x80, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x65, 0x41, 0x75, 0x74,
 | 
			
		||||
	0x74, 0x6f, 0x1a, 0x17, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2f, 0x76, 0x31,
 | 
			
		||||
	0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x68, 0x65, 0x61,
 | 
			
		||||
	0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73,
 | 
			
		||||
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c,
 | 
			
		||||
	0x65, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x70, 0x69, 0x6b, 0x65, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74,
 | 
			
		||||
	0x6f, 0x32, 0x85, 0x17, 0x0a, 0x10, 0x48, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x53,
 | 
			
		||||
	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x63, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65,
 | 
			
		||||
	0x72, 0x12, 0x1c, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31,
 | 
			
		||||
	0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
 | 
			
		||||
	0x1d, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47,
 | 
			
		||||
	0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b,
 | 
			
		||||
	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f,
 | 
			
		||||
	0x75, 0x73, 0x65, 0x72, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x68, 0x0a, 0x0a, 0x43,
 | 
			
		||||
	0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1f, 0x2e, 0x68, 0x65, 0x61, 0x64,
 | 
			
		||||
	0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55,
 | 
			
		||||
	0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x68, 0x65, 0x61,
 | 
			
		||||
	0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
 | 
			
		||||
	0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x17, 0x82, 0xd3,
 | 
			
		||||
	0xe4, 0x93, 0x02, 0x11, 0x3a, 0x01, 0x2a, 0x22, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31,
 | 
			
		||||
	0x2f, 0x75, 0x73, 0x65, 0x72, 0x12, 0x82, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65,
 | 
			
		||||
	0x55, 0x73, 0x65, 0x72, 0x12, 0x1f, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65,
 | 
			
		||||
	0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65,
 | 
			
		||||
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c,
 | 
			
		||||
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52,
 | 
			
		||||
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x22,
 | 
			
		||||
	0x29, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x7b, 0x6f,
 | 
			
		||||
	0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x2f,
 | 
			
		||||
	0x7b, 0x6e, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x6c, 0x0a, 0x0a, 0x44, 0x65,
 | 
			
		||||
	0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1f, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73,
 | 
			
		||||
	0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73,
 | 
			
		||||
	0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x68, 0x65, 0x61, 0x64,
 | 
			
		||||
	0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55,
 | 
			
		||||
	0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4,
 | 
			
		||||
	0x93, 0x02, 0x15, 0x2a, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65,
 | 
			
		||||
	0x72, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x62, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74,
 | 
			
		||||
	0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c,
 | 
			
		||||
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65,
 | 
			
		||||
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c,
 | 
			
		||||
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65,
 | 
			
		||||
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, 0x0c,
 | 
			
		||||
	0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x12, 0x80, 0x01, 0x0a,
 | 
			
		||||
	0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x65, 0x41, 0x75, 0x74, 0x68, 0x4b, 0x65,
 | 
			
		||||
	0x79, 0x12, 0x25, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31,
 | 
			
		||||
	0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x65, 0x41, 0x75, 0x74, 0x68, 0x4b, 0x65,
 | 
			
		||||
	0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73,
 | 
			
		||||
	0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72,
 | 
			
		||||
	0x65, 0x41, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
 | 
			
		||||
	0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x3a, 0x01, 0x2a, 0x22, 0x12, 0x2f, 0x61, 0x70,
 | 
			
		||||
	0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x65, 0x61, 0x75, 0x74, 0x68, 0x6b, 0x65, 0x79, 0x12,
 | 
			
		||||
	0x87, 0x01, 0x0a, 0x10, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x50, 0x72, 0x65, 0x41, 0x75, 0x74,
 | 
			
		||||
	0x68, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65,
 | 
			
		||||
	0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x65, 0x41, 0x75, 0x74,
 | 
			
		||||
	0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x50, 0x72, 0x65, 0x41, 0x75, 0x74,
 | 
			
		||||
	0x68, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x68, 0x65,
 | 
			
		||||
	0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74,
 | 
			
		||||
	0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x69, 0x72,
 | 
			
		||||
	0x65, 0x50, 0x72, 0x65, 0x41, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f,
 | 
			
		||||
	0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x3a, 0x01, 0x2a, 0x22, 0x12,
 | 
			
		||||
	0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19,
 | 
			
		||||
	0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x65, 0x61, 0x75, 0x74, 0x68, 0x6b,
 | 
			
		||||
	0x65, 0x79, 0x12, 0x87, 0x01, 0x0a, 0x10, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x50, 0x72, 0x65,
 | 
			
		||||
	0x41, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63,
 | 
			
		||||
	0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x50, 0x72, 0x65,
 | 
			
		||||
	0x41, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26,
 | 
			
		||||
	0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78,
 | 
			
		||||
	0x70, 0x69, 0x72, 0x65, 0x50, 0x72, 0x65, 0x41, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x52, 0x65,
 | 
			
		||||
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01,
 | 
			
		||||
	0x2a, 0x22, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x65, 0x61, 0x75,
 | 
			
		||||
	0x74, 0x68, 0x6b, 0x65, 0x79, 0x2f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x12, 0x7a, 0x0a, 0x0f,
 | 
			
		||||
	0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x65, 0x41, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x73, 0x12,
 | 
			
		||||
	0x24, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c,
 | 
			
		||||
	0x69, 0x73, 0x74, 0x50, 0x72, 0x65, 0x41, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65,
 | 
			
		||||
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c,
 | 
			
		||||
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x65, 0x41, 0x75, 0x74, 0x68,
 | 
			
		||||
	0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1a, 0x82, 0xd3,
 | 
			
		||||
	0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72,
 | 
			
		||||
	0x65, 0x61, 0x75, 0x74, 0x68, 0x6b, 0x65, 0x79, 0x12, 0x89, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x62,
 | 
			
		||||
	0x75, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x12,
 | 
			
		||||
	0x27, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44,
 | 
			
		||||
	0x65, 0x62, 0x75, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e,
 | 
			
		||||
	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73,
 | 
			
		||||
	0x65, 0x79, 0x2f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x12, 0x7a, 0x0a, 0x0f, 0x4c, 0x69, 0x73,
 | 
			
		||||
	0x74, 0x50, 0x72, 0x65, 0x41, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x24, 0x2e, 0x68,
 | 
			
		||||
	0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74,
 | 
			
		||||
	0x50, 0x72, 0x65, 0x41, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
 | 
			
		||||
	0x73, 0x74, 0x1a, 0x25, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76,
 | 
			
		||||
	0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x65, 0x41, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79,
 | 
			
		||||
	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02,
 | 
			
		||||
	0x14, 0x12, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x65, 0x61, 0x75,
 | 
			
		||||
	0x74, 0x68, 0x6b, 0x65, 0x79, 0x12, 0x7d, 0x0a, 0x0f, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x72,
 | 
			
		||||
	0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73,
 | 
			
		||||
	0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x72, 0x65,
 | 
			
		||||
	0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
 | 
			
		||||
	0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f,
 | 
			
		||||
	0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x2f, 0x6d, 0x61, 0x63,
 | 
			
		||||
	0x68, 0x69, 0x6e, 0x65, 0x12, 0x75, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x68, 0x69,
 | 
			
		||||
	0x6e, 0x65, 0x12, 0x1f, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76,
 | 
			
		||||
	0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75,
 | 
			
		||||
	0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e,
 | 
			
		||||
	0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73,
 | 
			
		||||
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f,
 | 
			
		||||
	0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2f, 0x7b,
 | 
			
		||||
	0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x74, 0x0a, 0x07, 0x53,
 | 
			
		||||
	0x65, 0x74, 0x54, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61,
 | 
			
		||||
	0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71,
 | 
			
		||||
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65,
 | 
			
		||||
	0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
 | 
			
		||||
	0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x3a, 0x01, 0x2a, 0x22, 0x21,
 | 
			
		||||
	0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2f,
 | 
			
		||||
	0x7b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x61, 0x67,
 | 
			
		||||
	0x73, 0x12, 0x80, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x61,
 | 
			
		||||
	0x63, 0x68, 0x69, 0x6e, 0x65, 0x12, 0x24, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c,
 | 
			
		||||
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x63,
 | 
			
		||||
	0x68, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x68, 0x65,
 | 
			
		||||
	0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73,
 | 
			
		||||
	0x74, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
 | 
			
		||||
	0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x18, 0x2f, 0x61, 0x70, 0x69,
 | 
			
		||||
	0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2f, 0x72, 0x65, 0x67, 0x69,
 | 
			
		||||
	0x73, 0x74, 0x65, 0x72, 0x12, 0x7e, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x61,
 | 
			
		||||
	0x63, 0x68, 0x69, 0x6e, 0x65, 0x12, 0x22, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c,
 | 
			
		||||
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69,
 | 
			
		||||
	0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x68, 0x65, 0x61, 0x64,
 | 
			
		||||
	0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d,
 | 
			
		||||
	0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24,
 | 
			
		||||
	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x2a, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f,
 | 
			
		||||
	0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2f, 0x7b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65,
 | 
			
		||||
	0x5f, 0x69, 0x64, 0x7d, 0x12, 0x85, 0x01, 0x0a, 0x0d, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x4d,
 | 
			
		||||
	0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x12, 0x22, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61,
 | 
			
		||||
	0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x4d, 0x61, 0x63, 0x68,
 | 
			
		||||
	0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x68, 0x65, 0x61,
 | 
			
		||||
	0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65,
 | 
			
		||||
	0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
 | 
			
		||||
	0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x22, 0x23, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31,
 | 
			
		||||
	0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2f, 0x7b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e,
 | 
			
		||||
	0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x12, 0x90, 0x01, 0x0a,
 | 
			
		||||
	0x0d, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x12, 0x22,
 | 
			
		||||
	0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65,
 | 
			
		||||
	0x6e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
 | 
			
		||||
	0x73, 0x74, 0x1a, 0x23, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76,
 | 
			
		||||
	0x31, 0x2e, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x52,
 | 
			
		||||
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x22,
 | 
			
		||||
	0x2e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65,
 | 
			
		||||
	0x2f, 0x7b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65,
 | 
			
		||||
	0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25,
 | 
			
		||||
	0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65,
 | 
			
		||||
	0x62, 0x75, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73,
 | 
			
		||||
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x3a, 0x01, 0x2a,
 | 
			
		||||
	0x22, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x2f,
 | 
			
		||||
	0x6e, 0x6f, 0x64, 0x65, 0x12, 0x66, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x12,
 | 
			
		||||
	0x1c, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47,
 | 
			
		||||
	0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e,
 | 
			
		||||
	0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74,
 | 
			
		||||
	0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3,
 | 
			
		||||
	0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f,
 | 
			
		||||
	0x64, 0x65, 0x2f, 0x7b, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x6e, 0x0a, 0x07,
 | 
			
		||||
	0x53, 0x65, 0x74, 0x54, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63,
 | 
			
		||||
	0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65,
 | 
			
		||||
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c,
 | 
			
		||||
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70,
 | 
			
		||||
	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22,
 | 
			
		||||
	0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x2f, 0x7b, 0x6e,
 | 
			
		||||
	0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x61, 0x67, 0x73, 0x12, 0x74, 0x0a, 0x0c,
 | 
			
		||||
	0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x2e, 0x68,
 | 
			
		||||
	0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69,
 | 
			
		||||
	0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
 | 
			
		||||
	0x22, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52,
 | 
			
		||||
	0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
 | 
			
		||||
	0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x22, 0x15, 0x2f, 0x61, 0x70,
 | 
			
		||||
	0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74,
 | 
			
		||||
	0x65, 0x72, 0x12, 0x6f, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65,
 | 
			
		||||
	0x12, 0x1f, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e,
 | 
			
		||||
	0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
 | 
			
		||||
	0x74, 0x1a, 0x20, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31,
 | 
			
		||||
	0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
 | 
			
		||||
	0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x2a, 0x16, 0x2f, 0x61, 0x70,
 | 
			
		||||
	0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x2f, 0x7b, 0x6e, 0x6f, 0x64, 0x65, 0x5f,
 | 
			
		||||
	0x69, 0x64, 0x7d, 0x12, 0x76, 0x0a, 0x0a, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x4e, 0x6f, 0x64,
 | 
			
		||||
	0x65, 0x12, 0x1f, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31,
 | 
			
		||||
	0x2e, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
 | 
			
		||||
	0x73, 0x74, 0x1a, 0x20, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76,
 | 
			
		||||
	0x31, 0x2e, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70,
 | 
			
		||||
	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1d, 0x2f, 0x61,
 | 
			
		||||
	0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x2f, 0x7b, 0x6e, 0x6f, 0x64, 0x65,
 | 
			
		||||
	0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x0a,
 | 
			
		||||
	0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x2e, 0x68, 0x65, 0x61,
 | 
			
		||||
	0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65,
 | 
			
		||||
	0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x68, 0x65,
 | 
			
		||||
	0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6e, 0x61, 0x6d,
 | 
			
		||||
	0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82,
 | 
			
		||||
	0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x22, 0x28, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6e,
 | 
			
		||||
	0x6f, 0x64, 0x65, 0x2f, 0x7b, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65,
 | 
			
		||||
	0x6e, 0x61, 0x6d, 0x65, 0x2f, 0x7b, 0x6e, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12,
 | 
			
		||||
	0x6e, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x73, 0x12,
 | 
			
		||||
	0x21, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c,
 | 
			
		||||
	0x69, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
 | 
			
		||||
	0x73, 0x74, 0x1a, 0x22, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76,
 | 
			
		||||
	0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x73, 0x52, 0x65,
 | 
			
		||||
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f,
 | 
			
		||||
	0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x12,
 | 
			
		||||
	0x7d, 0x0a, 0x0b, 0x4d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x12, 0x20,
 | 
			
		||||
	0x62, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1e, 0x2e, 0x68,
 | 
			
		||||
	0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74,
 | 
			
		||||
	0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x68,
 | 
			
		||||
	0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74,
 | 
			
		||||
	0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x82,
 | 
			
		||||
	0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6e,
 | 
			
		||||
	0x6f, 0x64, 0x65, 0x12, 0x6e, 0x0a, 0x08, 0x4d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12,
 | 
			
		||||
	0x1d, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d,
 | 
			
		||||
	0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e,
 | 
			
		||||
	0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f,
 | 
			
		||||
	0x76, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
 | 
			
		||||
	0x1a, 0x21, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e,
 | 
			
		||||
	0x4d, 0x6f, 0x76, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
 | 
			
		||||
	0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x22, 0x21, 0x2f, 0x61, 0x70,
 | 
			
		||||
	0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2f, 0x7b, 0x6d, 0x61,
 | 
			
		||||
	0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x12, 0x64,
 | 
			
		||||
	0x0a, 0x09, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x1e, 0x2e, 0x68, 0x65,
 | 
			
		||||
	0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f,
 | 
			
		||||
	0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x68, 0x65,
 | 
			
		||||
	0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f,
 | 
			
		||||
	0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3,
 | 
			
		||||
	0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f,
 | 
			
		||||
	0x75, 0x74, 0x65, 0x73, 0x12, 0x7c, 0x0a, 0x0b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f,
 | 
			
		||||
	0x75, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e,
 | 
			
		||||
	0x76, 0x31, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65,
 | 
			
		||||
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c,
 | 
			
		||||
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65,
 | 
			
		||||
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22,
 | 
			
		||||
	0x22, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73,
 | 
			
		||||
	0x2f, 0x7b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x65, 0x6e, 0x61, 0x62,
 | 
			
		||||
	0x6c, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f,
 | 
			
		||||
	0x75, 0x74, 0x65, 0x12, 0x21, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e,
 | 
			
		||||
	0x76, 0x31, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52,
 | 
			
		||||
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61,
 | 
			
		||||
	0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x75,
 | 
			
		||||
	0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93,
 | 
			
		||||
	0x02, 0x23, 0x22, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x75, 0x74,
 | 
			
		||||
	0x65, 0x73, 0x2f, 0x7b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x69,
 | 
			
		||||
	0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63,
 | 
			
		||||
	0x68, 0x69, 0x6e, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x68, 0x65, 0x61,
 | 
			
		||||
	0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63,
 | 
			
		||||
	0x68, 0x69, 0x6e, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
 | 
			
		||||
	0x74, 0x1a, 0x26, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31,
 | 
			
		||||
	0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65,
 | 
			
		||||
	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02,
 | 
			
		||||
	0x25, 0x12, 0x23, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69,
 | 
			
		||||
	0x6e, 0x65, 0x2f, 0x7b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f,
 | 
			
		||||
	0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x75, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
 | 
			
		||||
	0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c,
 | 
			
		||||
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65,
 | 
			
		||||
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63,
 | 
			
		||||
	0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x75,
 | 
			
		||||
	0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93,
 | 
			
		||||
	0x02, 0x1b, 0x2a, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x75, 0x74,
 | 
			
		||||
	0x65, 0x73, 0x2f, 0x7b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x70, 0x0a,
 | 
			
		||||
	0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x12, 0x21, 0x2e,
 | 
			
		||||
	0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65,
 | 
			
		||||
	0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
 | 
			
		||||
	0x1a, 0x22, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e,
 | 
			
		||||
	0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70,
 | 
			
		||||
	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x3a, 0x01, 0x2a, 0x22,
 | 
			
		||||
	0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x70, 0x69, 0x6b, 0x65, 0x79, 0x12,
 | 
			
		||||
	0x77, 0x0a, 0x0c, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x12,
 | 
			
		||||
	0x21, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45,
 | 
			
		||||
	0x78, 0x70, 0x69, 0x72, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65,
 | 
			
		||||
	0x73, 0x74, 0x1a, 0x22, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76,
 | 
			
		||||
	0x31, 0x2e, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x52, 0x65,
 | 
			
		||||
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01,
 | 
			
		||||
	0x2a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x70, 0x69, 0x6b, 0x65,
 | 
			
		||||
	0x79, 0x2f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x12, 0x6a, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74,
 | 
			
		||||
	0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x20, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63,
 | 
			
		||||
	0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x4b, 0x65,
 | 
			
		||||
	0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x68, 0x65, 0x61, 0x64,
 | 
			
		||||
	0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69,
 | 
			
		||||
	0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3,
 | 
			
		||||
	0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x70,
 | 
			
		||||
	0x69, 0x6b, 0x65, 0x79, 0x42, 0x29, 0x5a, 0x27, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
 | 
			
		||||
	0x6f, 0x6d, 0x2f, 0x6a, 0x75, 0x61, 0x6e, 0x66, 0x6f, 0x6e, 0x74, 0x2f, 0x68, 0x65, 0x61, 0x64,
 | 
			
		||||
	0x73, 0x63, 0x61, 0x6c, 0x65, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x31, 0x62,
 | 
			
		||||
	0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 | 
			
		||||
	0x76, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23,
 | 
			
		||||
	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x22, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f,
 | 
			
		||||
	0x6e, 0x6f, 0x64, 0x65, 0x2f, 0x7b, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x75,
 | 
			
		||||
	0x73, 0x65, 0x72, 0x12, 0x64, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73,
 | 
			
		||||
	0x12, 0x1e, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e,
 | 
			
		||||
	0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
 | 
			
		||||
	0x1a, 0x1f, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e,
 | 
			
		||||
	0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
 | 
			
		||||
	0x65, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f,
 | 
			
		||||
	0x76, 0x31, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x7c, 0x0a, 0x0b, 0x45, 0x6e, 0x61,
 | 
			
		||||
	0x62, 0x6c, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73,
 | 
			
		||||
	0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f,
 | 
			
		||||
	0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x68, 0x65, 0x61,
 | 
			
		||||
	0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65,
 | 
			
		||||
	0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82,
 | 
			
		||||
	0xd3, 0xe4, 0x93, 0x02, 0x22, 0x22, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72,
 | 
			
		||||
	0x6f, 0x75, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x7d,
 | 
			
		||||
	0x2f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x61,
 | 
			
		||||
	0x62, 0x6c, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x21, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73,
 | 
			
		||||
	0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x52,
 | 
			
		||||
	0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x68, 0x65,
 | 
			
		||||
	0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62,
 | 
			
		||||
	0x6c, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
 | 
			
		||||
	0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x22, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31,
 | 
			
		||||
	0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x69,
 | 
			
		||||
	0x64, 0x7d, 0x2f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x7f, 0x0a, 0x0d, 0x47, 0x65,
 | 
			
		||||
	0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x22, 0x2e, 0x68, 0x65,
 | 
			
		||||
	0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f,
 | 
			
		||||
	0x64, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
 | 
			
		||||
	0x23, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47,
 | 
			
		||||
	0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70,
 | 
			
		||||
	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x61,
 | 
			
		||||
	0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x2f, 0x7b, 0x6e, 0x6f, 0x64, 0x65,
 | 
			
		||||
	0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x75, 0x0a, 0x0b, 0x44,
 | 
			
		||||
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x68, 0x65, 0x61,
 | 
			
		||||
	0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
 | 
			
		||||
	0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x68,
 | 
			
		||||
	0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65,
 | 
			
		||||
	0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
 | 
			
		||||
	0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x2a, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31,
 | 
			
		||||
	0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x69,
 | 
			
		||||
	0x64, 0x7d, 0x12, 0x70, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b,
 | 
			
		||||
	0x65, 0x79, 0x12, 0x21, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76,
 | 
			
		||||
	0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x52, 0x65,
 | 
			
		||||
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c,
 | 
			
		||||
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65,
 | 
			
		||||
	0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02,
 | 
			
		||||
	0x13, 0x3a, 0x01, 0x2a, 0x22, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x70,
 | 
			
		||||
	0x69, 0x6b, 0x65, 0x79, 0x12, 0x77, 0x0a, 0x0c, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x41, 0x70,
 | 
			
		||||
	0x69, 0x4b, 0x65, 0x79, 0x12, 0x21, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65,
 | 
			
		||||
	0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79,
 | 
			
		||||
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63,
 | 
			
		||||
	0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x41, 0x70, 0x69,
 | 
			
		||||
	0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4,
 | 
			
		||||
	0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f,
 | 
			
		||||
	0x61, 0x70, 0x69, 0x6b, 0x65, 0x79, 0x2f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x12, 0x6a, 0x0a,
 | 
			
		||||
	0x0b, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x20, 0x2e, 0x68,
 | 
			
		||||
	0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74,
 | 
			
		||||
	0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21,
 | 
			
		||||
	0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69,
 | 
			
		||||
	0x73, 0x74, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
 | 
			
		||||
	0x65, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f,
 | 
			
		||||
	0x76, 0x31, 0x2f, 0x61, 0x70, 0x69, 0x6b, 0x65, 0x79, 0x42, 0x29, 0x5a, 0x27, 0x67, 0x69, 0x74,
 | 
			
		||||
	0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6a, 0x75, 0x61, 0x6e, 0x66, 0x6f, 0x6e, 0x74,
 | 
			
		||||
	0x2f, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67,
 | 
			
		||||
	0x6f, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var file_headscale_v1_headscale_proto_goTypes = []interface{}{
 | 
			
		||||
	(*GetUserRequest)(nil),             // 0: headscale.v1.GetUserRequest
 | 
			
		||||
	(*CreateUserRequest)(nil),          // 1: headscale.v1.CreateUserRequest
 | 
			
		||||
	(*RenameUserRequest)(nil),          // 2: headscale.v1.RenameUserRequest
 | 
			
		||||
	(*DeleteUserRequest)(nil),          // 3: headscale.v1.DeleteUserRequest
 | 
			
		||||
	(*ListUsersRequest)(nil),           // 4: headscale.v1.ListUsersRequest
 | 
			
		||||
	(*CreatePreAuthKeyRequest)(nil),    // 5: headscale.v1.CreatePreAuthKeyRequest
 | 
			
		||||
	(*ExpirePreAuthKeyRequest)(nil),    // 6: headscale.v1.ExpirePreAuthKeyRequest
 | 
			
		||||
	(*ListPreAuthKeysRequest)(nil),     // 7: headscale.v1.ListPreAuthKeysRequest
 | 
			
		||||
	(*DebugCreateMachineRequest)(nil),  // 8: headscale.v1.DebugCreateMachineRequest
 | 
			
		||||
	(*GetMachineRequest)(nil),          // 9: headscale.v1.GetMachineRequest
 | 
			
		||||
	(*SetTagsRequest)(nil),             // 10: headscale.v1.SetTagsRequest
 | 
			
		||||
	(*RegisterMachineRequest)(nil),     // 11: headscale.v1.RegisterMachineRequest
 | 
			
		||||
	(*DeleteMachineRequest)(nil),       // 12: headscale.v1.DeleteMachineRequest
 | 
			
		||||
	(*ExpireMachineRequest)(nil),       // 13: headscale.v1.ExpireMachineRequest
 | 
			
		||||
	(*RenameMachineRequest)(nil),       // 14: headscale.v1.RenameMachineRequest
 | 
			
		||||
	(*ListMachinesRequest)(nil),        // 15: headscale.v1.ListMachinesRequest
 | 
			
		||||
	(*MoveMachineRequest)(nil),         // 16: headscale.v1.MoveMachineRequest
 | 
			
		||||
	(*GetRoutesRequest)(nil),           // 17: headscale.v1.GetRoutesRequest
 | 
			
		||||
	(*EnableRouteRequest)(nil),         // 18: headscale.v1.EnableRouteRequest
 | 
			
		||||
	(*DisableRouteRequest)(nil),        // 19: headscale.v1.DisableRouteRequest
 | 
			
		||||
	(*GetMachineRoutesRequest)(nil),    // 20: headscale.v1.GetMachineRoutesRequest
 | 
			
		||||
	(*DeleteRouteRequest)(nil),         // 21: headscale.v1.DeleteRouteRequest
 | 
			
		||||
	(*CreateApiKeyRequest)(nil),        // 22: headscale.v1.CreateApiKeyRequest
 | 
			
		||||
	(*ExpireApiKeyRequest)(nil),        // 23: headscale.v1.ExpireApiKeyRequest
 | 
			
		||||
	(*ListApiKeysRequest)(nil),         // 24: headscale.v1.ListApiKeysRequest
 | 
			
		||||
	(*GetUserResponse)(nil),            // 25: headscale.v1.GetUserResponse
 | 
			
		||||
	(*CreateUserResponse)(nil),         // 26: headscale.v1.CreateUserResponse
 | 
			
		||||
	(*RenameUserResponse)(nil),         // 27: headscale.v1.RenameUserResponse
 | 
			
		||||
	(*DeleteUserResponse)(nil),         // 28: headscale.v1.DeleteUserResponse
 | 
			
		||||
	(*ListUsersResponse)(nil),          // 29: headscale.v1.ListUsersResponse
 | 
			
		||||
	(*CreatePreAuthKeyResponse)(nil),   // 30: headscale.v1.CreatePreAuthKeyResponse
 | 
			
		||||
	(*ExpirePreAuthKeyResponse)(nil),   // 31: headscale.v1.ExpirePreAuthKeyResponse
 | 
			
		||||
	(*ListPreAuthKeysResponse)(nil),    // 32: headscale.v1.ListPreAuthKeysResponse
 | 
			
		||||
	(*DebugCreateMachineResponse)(nil), // 33: headscale.v1.DebugCreateMachineResponse
 | 
			
		||||
	(*GetMachineResponse)(nil),         // 34: headscale.v1.GetMachineResponse
 | 
			
		||||
	(*SetTagsResponse)(nil),            // 35: headscale.v1.SetTagsResponse
 | 
			
		||||
	(*RegisterMachineResponse)(nil),    // 36: headscale.v1.RegisterMachineResponse
 | 
			
		||||
	(*DeleteMachineResponse)(nil),      // 37: headscale.v1.DeleteMachineResponse
 | 
			
		||||
	(*ExpireMachineResponse)(nil),      // 38: headscale.v1.ExpireMachineResponse
 | 
			
		||||
	(*RenameMachineResponse)(nil),      // 39: headscale.v1.RenameMachineResponse
 | 
			
		||||
	(*ListMachinesResponse)(nil),       // 40: headscale.v1.ListMachinesResponse
 | 
			
		||||
	(*MoveMachineResponse)(nil),        // 41: headscale.v1.MoveMachineResponse
 | 
			
		||||
	(*GetRoutesResponse)(nil),          // 42: headscale.v1.GetRoutesResponse
 | 
			
		||||
	(*EnableRouteResponse)(nil),        // 43: headscale.v1.EnableRouteResponse
 | 
			
		||||
	(*DisableRouteResponse)(nil),       // 44: headscale.v1.DisableRouteResponse
 | 
			
		||||
	(*GetMachineRoutesResponse)(nil),   // 45: headscale.v1.GetMachineRoutesResponse
 | 
			
		||||
	(*DeleteRouteResponse)(nil),        // 46: headscale.v1.DeleteRouteResponse
 | 
			
		||||
	(*CreateApiKeyResponse)(nil),       // 47: headscale.v1.CreateApiKeyResponse
 | 
			
		||||
	(*ExpireApiKeyResponse)(nil),       // 48: headscale.v1.ExpireApiKeyResponse
 | 
			
		||||
	(*ListApiKeysResponse)(nil),        // 49: headscale.v1.ListApiKeysResponse
 | 
			
		||||
	(*GetUserRequest)(nil),           // 0: headscale.v1.GetUserRequest
 | 
			
		||||
	(*CreateUserRequest)(nil),        // 1: headscale.v1.CreateUserRequest
 | 
			
		||||
	(*RenameUserRequest)(nil),        // 2: headscale.v1.RenameUserRequest
 | 
			
		||||
	(*DeleteUserRequest)(nil),        // 3: headscale.v1.DeleteUserRequest
 | 
			
		||||
	(*ListUsersRequest)(nil),         // 4: headscale.v1.ListUsersRequest
 | 
			
		||||
	(*CreatePreAuthKeyRequest)(nil),  // 5: headscale.v1.CreatePreAuthKeyRequest
 | 
			
		||||
	(*ExpirePreAuthKeyRequest)(nil),  // 6: headscale.v1.ExpirePreAuthKeyRequest
 | 
			
		||||
	(*ListPreAuthKeysRequest)(nil),   // 7: headscale.v1.ListPreAuthKeysRequest
 | 
			
		||||
	(*DebugCreateNodeRequest)(nil),   // 8: headscale.v1.DebugCreateNodeRequest
 | 
			
		||||
	(*GetNodeRequest)(nil),           // 9: headscale.v1.GetNodeRequest
 | 
			
		||||
	(*SetTagsRequest)(nil),           // 10: headscale.v1.SetTagsRequest
 | 
			
		||||
	(*RegisterNodeRequest)(nil),      // 11: headscale.v1.RegisterNodeRequest
 | 
			
		||||
	(*DeleteNodeRequest)(nil),        // 12: headscale.v1.DeleteNodeRequest
 | 
			
		||||
	(*ExpireNodeRequest)(nil),        // 13: headscale.v1.ExpireNodeRequest
 | 
			
		||||
	(*RenameNodeRequest)(nil),        // 14: headscale.v1.RenameNodeRequest
 | 
			
		||||
	(*ListNodesRequest)(nil),         // 15: headscale.v1.ListNodesRequest
 | 
			
		||||
	(*MoveNodeRequest)(nil),          // 16: headscale.v1.MoveNodeRequest
 | 
			
		||||
	(*GetRoutesRequest)(nil),         // 17: headscale.v1.GetRoutesRequest
 | 
			
		||||
	(*EnableRouteRequest)(nil),       // 18: headscale.v1.EnableRouteRequest
 | 
			
		||||
	(*DisableRouteRequest)(nil),      // 19: headscale.v1.DisableRouteRequest
 | 
			
		||||
	(*GetNodeRoutesRequest)(nil),     // 20: headscale.v1.GetNodeRoutesRequest
 | 
			
		||||
	(*DeleteRouteRequest)(nil),       // 21: headscale.v1.DeleteRouteRequest
 | 
			
		||||
	(*CreateApiKeyRequest)(nil),      // 22: headscale.v1.CreateApiKeyRequest
 | 
			
		||||
	(*ExpireApiKeyRequest)(nil),      // 23: headscale.v1.ExpireApiKeyRequest
 | 
			
		||||
	(*ListApiKeysRequest)(nil),       // 24: headscale.v1.ListApiKeysRequest
 | 
			
		||||
	(*GetUserResponse)(nil),          // 25: headscale.v1.GetUserResponse
 | 
			
		||||
	(*CreateUserResponse)(nil),       // 26: headscale.v1.CreateUserResponse
 | 
			
		||||
	(*RenameUserResponse)(nil),       // 27: headscale.v1.RenameUserResponse
 | 
			
		||||
	(*DeleteUserResponse)(nil),       // 28: headscale.v1.DeleteUserResponse
 | 
			
		||||
	(*ListUsersResponse)(nil),        // 29: headscale.v1.ListUsersResponse
 | 
			
		||||
	(*CreatePreAuthKeyResponse)(nil), // 30: headscale.v1.CreatePreAuthKeyResponse
 | 
			
		||||
	(*ExpirePreAuthKeyResponse)(nil), // 31: headscale.v1.ExpirePreAuthKeyResponse
 | 
			
		||||
	(*ListPreAuthKeysResponse)(nil),  // 32: headscale.v1.ListPreAuthKeysResponse
 | 
			
		||||
	(*DebugCreateNodeResponse)(nil),  // 33: headscale.v1.DebugCreateNodeResponse
 | 
			
		||||
	(*GetNodeResponse)(nil),          // 34: headscale.v1.GetNodeResponse
 | 
			
		||||
	(*SetTagsResponse)(nil),          // 35: headscale.v1.SetTagsResponse
 | 
			
		||||
	(*RegisterNodeResponse)(nil),     // 36: headscale.v1.RegisterNodeResponse
 | 
			
		||||
	(*DeleteNodeResponse)(nil),       // 37: headscale.v1.DeleteNodeResponse
 | 
			
		||||
	(*ExpireNodeResponse)(nil),       // 38: headscale.v1.ExpireNodeResponse
 | 
			
		||||
	(*RenameNodeResponse)(nil),       // 39: headscale.v1.RenameNodeResponse
 | 
			
		||||
	(*ListNodesResponse)(nil),        // 40: headscale.v1.ListNodesResponse
 | 
			
		||||
	(*MoveNodeResponse)(nil),         // 41: headscale.v1.MoveNodeResponse
 | 
			
		||||
	(*GetRoutesResponse)(nil),        // 42: headscale.v1.GetRoutesResponse
 | 
			
		||||
	(*EnableRouteResponse)(nil),      // 43: headscale.v1.EnableRouteResponse
 | 
			
		||||
	(*DisableRouteResponse)(nil),     // 44: headscale.v1.DisableRouteResponse
 | 
			
		||||
	(*GetNodeRoutesResponse)(nil),    // 45: headscale.v1.GetNodeRoutesResponse
 | 
			
		||||
	(*DeleteRouteResponse)(nil),      // 46: headscale.v1.DeleteRouteResponse
 | 
			
		||||
	(*CreateApiKeyResponse)(nil),     // 47: headscale.v1.CreateApiKeyResponse
 | 
			
		||||
	(*ExpireApiKeyResponse)(nil),     // 48: headscale.v1.ExpireApiKeyResponse
 | 
			
		||||
	(*ListApiKeysResponse)(nil),      // 49: headscale.v1.ListApiKeysResponse
 | 
			
		||||
}
 | 
			
		||||
var file_headscale_v1_headscale_proto_depIdxs = []int32{
 | 
			
		||||
	0,  // 0: headscale.v1.HeadscaleService.GetUser:input_type -> headscale.v1.GetUserRequest
 | 
			
		||||
@ -296,19 +287,19 @@ var file_headscale_v1_headscale_proto_depIdxs = []int32{
 | 
			
		||||
	5,  // 5: headscale.v1.HeadscaleService.CreatePreAuthKey:input_type -> headscale.v1.CreatePreAuthKeyRequest
 | 
			
		||||
	6,  // 6: headscale.v1.HeadscaleService.ExpirePreAuthKey:input_type -> headscale.v1.ExpirePreAuthKeyRequest
 | 
			
		||||
	7,  // 7: headscale.v1.HeadscaleService.ListPreAuthKeys:input_type -> headscale.v1.ListPreAuthKeysRequest
 | 
			
		||||
	8,  // 8: headscale.v1.HeadscaleService.DebugCreateMachine:input_type -> headscale.v1.DebugCreateMachineRequest
 | 
			
		||||
	9,  // 9: headscale.v1.HeadscaleService.GetMachine:input_type -> headscale.v1.GetMachineRequest
 | 
			
		||||
	8,  // 8: headscale.v1.HeadscaleService.DebugCreateNode:input_type -> headscale.v1.DebugCreateNodeRequest
 | 
			
		||||
	9,  // 9: headscale.v1.HeadscaleService.GetNode:input_type -> headscale.v1.GetNodeRequest
 | 
			
		||||
	10, // 10: headscale.v1.HeadscaleService.SetTags:input_type -> headscale.v1.SetTagsRequest
 | 
			
		||||
	11, // 11: headscale.v1.HeadscaleService.RegisterMachine:input_type -> headscale.v1.RegisterMachineRequest
 | 
			
		||||
	12, // 12: headscale.v1.HeadscaleService.DeleteMachine:input_type -> headscale.v1.DeleteMachineRequest
 | 
			
		||||
	13, // 13: headscale.v1.HeadscaleService.ExpireMachine:input_type -> headscale.v1.ExpireMachineRequest
 | 
			
		||||
	14, // 14: headscale.v1.HeadscaleService.RenameMachine:input_type -> headscale.v1.RenameMachineRequest
 | 
			
		||||
	15, // 15: headscale.v1.HeadscaleService.ListMachines:input_type -> headscale.v1.ListMachinesRequest
 | 
			
		||||
	16, // 16: headscale.v1.HeadscaleService.MoveMachine:input_type -> headscale.v1.MoveMachineRequest
 | 
			
		||||
	11, // 11: headscale.v1.HeadscaleService.RegisterNode:input_type -> headscale.v1.RegisterNodeRequest
 | 
			
		||||
	12, // 12: headscale.v1.HeadscaleService.DeleteNode:input_type -> headscale.v1.DeleteNodeRequest
 | 
			
		||||
	13, // 13: headscale.v1.HeadscaleService.ExpireNode:input_type -> headscale.v1.ExpireNodeRequest
 | 
			
		||||
	14, // 14: headscale.v1.HeadscaleService.RenameNode:input_type -> headscale.v1.RenameNodeRequest
 | 
			
		||||
	15, // 15: headscale.v1.HeadscaleService.ListNodes:input_type -> headscale.v1.ListNodesRequest
 | 
			
		||||
	16, // 16: headscale.v1.HeadscaleService.MoveNode:input_type -> headscale.v1.MoveNodeRequest
 | 
			
		||||
	17, // 17: headscale.v1.HeadscaleService.GetRoutes:input_type -> headscale.v1.GetRoutesRequest
 | 
			
		||||
	18, // 18: headscale.v1.HeadscaleService.EnableRoute:input_type -> headscale.v1.EnableRouteRequest
 | 
			
		||||
	19, // 19: headscale.v1.HeadscaleService.DisableRoute:input_type -> headscale.v1.DisableRouteRequest
 | 
			
		||||
	20, // 20: headscale.v1.HeadscaleService.GetMachineRoutes:input_type -> headscale.v1.GetMachineRoutesRequest
 | 
			
		||||
	20, // 20: headscale.v1.HeadscaleService.GetNodeRoutes:input_type -> headscale.v1.GetNodeRoutesRequest
 | 
			
		||||
	21, // 21: headscale.v1.HeadscaleService.DeleteRoute:input_type -> headscale.v1.DeleteRouteRequest
 | 
			
		||||
	22, // 22: headscale.v1.HeadscaleService.CreateApiKey:input_type -> headscale.v1.CreateApiKeyRequest
 | 
			
		||||
	23, // 23: headscale.v1.HeadscaleService.ExpireApiKey:input_type -> headscale.v1.ExpireApiKeyRequest
 | 
			
		||||
@ -321,19 +312,19 @@ var file_headscale_v1_headscale_proto_depIdxs = []int32{
 | 
			
		||||
	30, // 30: headscale.v1.HeadscaleService.CreatePreAuthKey:output_type -> headscale.v1.CreatePreAuthKeyResponse
 | 
			
		||||
	31, // 31: headscale.v1.HeadscaleService.ExpirePreAuthKey:output_type -> headscale.v1.ExpirePreAuthKeyResponse
 | 
			
		||||
	32, // 32: headscale.v1.HeadscaleService.ListPreAuthKeys:output_type -> headscale.v1.ListPreAuthKeysResponse
 | 
			
		||||
	33, // 33: headscale.v1.HeadscaleService.DebugCreateMachine:output_type -> headscale.v1.DebugCreateMachineResponse
 | 
			
		||||
	34, // 34: headscale.v1.HeadscaleService.GetMachine:output_type -> headscale.v1.GetMachineResponse
 | 
			
		||||
	33, // 33: headscale.v1.HeadscaleService.DebugCreateNode:output_type -> headscale.v1.DebugCreateNodeResponse
 | 
			
		||||
	34, // 34: headscale.v1.HeadscaleService.GetNode:output_type -> headscale.v1.GetNodeResponse
 | 
			
		||||
	35, // 35: headscale.v1.HeadscaleService.SetTags:output_type -> headscale.v1.SetTagsResponse
 | 
			
		||||
	36, // 36: headscale.v1.HeadscaleService.RegisterMachine:output_type -> headscale.v1.RegisterMachineResponse
 | 
			
		||||
	37, // 37: headscale.v1.HeadscaleService.DeleteMachine:output_type -> headscale.v1.DeleteMachineResponse
 | 
			
		||||
	38, // 38: headscale.v1.HeadscaleService.ExpireMachine:output_type -> headscale.v1.ExpireMachineResponse
 | 
			
		||||
	39, // 39: headscale.v1.HeadscaleService.RenameMachine:output_type -> headscale.v1.RenameMachineResponse
 | 
			
		||||
	40, // 40: headscale.v1.HeadscaleService.ListMachines:output_type -> headscale.v1.ListMachinesResponse
 | 
			
		||||
	41, // 41: headscale.v1.HeadscaleService.MoveMachine:output_type -> headscale.v1.MoveMachineResponse
 | 
			
		||||
	36, // 36: headscale.v1.HeadscaleService.RegisterNode:output_type -> headscale.v1.RegisterNodeResponse
 | 
			
		||||
	37, // 37: headscale.v1.HeadscaleService.DeleteNode:output_type -> headscale.v1.DeleteNodeResponse
 | 
			
		||||
	38, // 38: headscale.v1.HeadscaleService.ExpireNode:output_type -> headscale.v1.ExpireNodeResponse
 | 
			
		||||
	39, // 39: headscale.v1.HeadscaleService.RenameNode:output_type -> headscale.v1.RenameNodeResponse
 | 
			
		||||
	40, // 40: headscale.v1.HeadscaleService.ListNodes:output_type -> headscale.v1.ListNodesResponse
 | 
			
		||||
	41, // 41: headscale.v1.HeadscaleService.MoveNode:output_type -> headscale.v1.MoveNodeResponse
 | 
			
		||||
	42, // 42: headscale.v1.HeadscaleService.GetRoutes:output_type -> headscale.v1.GetRoutesResponse
 | 
			
		||||
	43, // 43: headscale.v1.HeadscaleService.EnableRoute:output_type -> headscale.v1.EnableRouteResponse
 | 
			
		||||
	44, // 44: headscale.v1.HeadscaleService.DisableRoute:output_type -> headscale.v1.DisableRouteResponse
 | 
			
		||||
	45, // 45: headscale.v1.HeadscaleService.GetMachineRoutes:output_type -> headscale.v1.GetMachineRoutesResponse
 | 
			
		||||
	45, // 45: headscale.v1.HeadscaleService.GetNodeRoutes:output_type -> headscale.v1.GetNodeRoutesResponse
 | 
			
		||||
	46, // 46: headscale.v1.HeadscaleService.DeleteRoute:output_type -> headscale.v1.DeleteRouteResponse
 | 
			
		||||
	47, // 47: headscale.v1.HeadscaleService.CreateApiKey:output_type -> headscale.v1.CreateApiKeyResponse
 | 
			
		||||
	48, // 48: headscale.v1.HeadscaleService.ExpireApiKey:output_type -> headscale.v1.ExpireApiKeyResponse
 | 
			
		||||
@ -352,7 +343,7 @@ func file_headscale_v1_headscale_proto_init() {
 | 
			
		||||
	}
 | 
			
		||||
	file_headscale_v1_user_proto_init()
 | 
			
		||||
	file_headscale_v1_preauthkey_proto_init()
 | 
			
		||||
	file_headscale_v1_machine_proto_init()
 | 
			
		||||
	file_headscale_v1_node_proto_init()
 | 
			
		||||
	file_headscale_v1_routes_proto_init()
 | 
			
		||||
	file_headscale_v1_apikey_proto_init()
 | 
			
		||||
	type x struct{}
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -1,6 +1,6 @@
 | 
			
		||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 | 
			
		||||
// versions:
 | 
			
		||||
// - protoc-gen-go-grpc v1.2.0
 | 
			
		||||
// - protoc-gen-go-grpc v1.3.0
 | 
			
		||||
// - protoc             (unknown)
 | 
			
		||||
// source: headscale/v1/headscale.proto
 | 
			
		||||
 | 
			
		||||
@ -18,6 +18,34 @@ import (
 | 
			
		||||
// Requires gRPC-Go v1.32.0 or later.
 | 
			
		||||
const _ = grpc.SupportPackageIsVersion7
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	HeadscaleService_GetUser_FullMethodName          = "/headscale.v1.HeadscaleService/GetUser"
 | 
			
		||||
	HeadscaleService_CreateUser_FullMethodName       = "/headscale.v1.HeadscaleService/CreateUser"
 | 
			
		||||
	HeadscaleService_RenameUser_FullMethodName       = "/headscale.v1.HeadscaleService/RenameUser"
 | 
			
		||||
	HeadscaleService_DeleteUser_FullMethodName       = "/headscale.v1.HeadscaleService/DeleteUser"
 | 
			
		||||
	HeadscaleService_ListUsers_FullMethodName        = "/headscale.v1.HeadscaleService/ListUsers"
 | 
			
		||||
	HeadscaleService_CreatePreAuthKey_FullMethodName = "/headscale.v1.HeadscaleService/CreatePreAuthKey"
 | 
			
		||||
	HeadscaleService_ExpirePreAuthKey_FullMethodName = "/headscale.v1.HeadscaleService/ExpirePreAuthKey"
 | 
			
		||||
	HeadscaleService_ListPreAuthKeys_FullMethodName  = "/headscale.v1.HeadscaleService/ListPreAuthKeys"
 | 
			
		||||
	HeadscaleService_DebugCreateNode_FullMethodName  = "/headscale.v1.HeadscaleService/DebugCreateNode"
 | 
			
		||||
	HeadscaleService_GetNode_FullMethodName          = "/headscale.v1.HeadscaleService/GetNode"
 | 
			
		||||
	HeadscaleService_SetTags_FullMethodName          = "/headscale.v1.HeadscaleService/SetTags"
 | 
			
		||||
	HeadscaleService_RegisterNode_FullMethodName     = "/headscale.v1.HeadscaleService/RegisterNode"
 | 
			
		||||
	HeadscaleService_DeleteNode_FullMethodName       = "/headscale.v1.HeadscaleService/DeleteNode"
 | 
			
		||||
	HeadscaleService_ExpireNode_FullMethodName       = "/headscale.v1.HeadscaleService/ExpireNode"
 | 
			
		||||
	HeadscaleService_RenameNode_FullMethodName       = "/headscale.v1.HeadscaleService/RenameNode"
 | 
			
		||||
	HeadscaleService_ListNodes_FullMethodName        = "/headscale.v1.HeadscaleService/ListNodes"
 | 
			
		||||
	HeadscaleService_MoveNode_FullMethodName         = "/headscale.v1.HeadscaleService/MoveNode"
 | 
			
		||||
	HeadscaleService_GetRoutes_FullMethodName        = "/headscale.v1.HeadscaleService/GetRoutes"
 | 
			
		||||
	HeadscaleService_EnableRoute_FullMethodName      = "/headscale.v1.HeadscaleService/EnableRoute"
 | 
			
		||||
	HeadscaleService_DisableRoute_FullMethodName     = "/headscale.v1.HeadscaleService/DisableRoute"
 | 
			
		||||
	HeadscaleService_GetNodeRoutes_FullMethodName    = "/headscale.v1.HeadscaleService/GetNodeRoutes"
 | 
			
		||||
	HeadscaleService_DeleteRoute_FullMethodName      = "/headscale.v1.HeadscaleService/DeleteRoute"
 | 
			
		||||
	HeadscaleService_CreateApiKey_FullMethodName     = "/headscale.v1.HeadscaleService/CreateApiKey"
 | 
			
		||||
	HeadscaleService_ExpireApiKey_FullMethodName     = "/headscale.v1.HeadscaleService/ExpireApiKey"
 | 
			
		||||
	HeadscaleService_ListApiKeys_FullMethodName      = "/headscale.v1.HeadscaleService/ListApiKeys"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// HeadscaleServiceClient is the client API for HeadscaleService service.
 | 
			
		||||
//
 | 
			
		||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
 | 
			
		||||
@ -32,21 +60,21 @@ type HeadscaleServiceClient interface {
 | 
			
		||||
	CreatePreAuthKey(ctx context.Context, in *CreatePreAuthKeyRequest, opts ...grpc.CallOption) (*CreatePreAuthKeyResponse, error)
 | 
			
		||||
	ExpirePreAuthKey(ctx context.Context, in *ExpirePreAuthKeyRequest, opts ...grpc.CallOption) (*ExpirePreAuthKeyResponse, error)
 | 
			
		||||
	ListPreAuthKeys(ctx context.Context, in *ListPreAuthKeysRequest, opts ...grpc.CallOption) (*ListPreAuthKeysResponse, error)
 | 
			
		||||
	// --- Machine start ---
 | 
			
		||||
	DebugCreateMachine(ctx context.Context, in *DebugCreateMachineRequest, opts ...grpc.CallOption) (*DebugCreateMachineResponse, error)
 | 
			
		||||
	GetMachine(ctx context.Context, in *GetMachineRequest, opts ...grpc.CallOption) (*GetMachineResponse, error)
 | 
			
		||||
	// --- Node start ---
 | 
			
		||||
	DebugCreateNode(ctx context.Context, in *DebugCreateNodeRequest, opts ...grpc.CallOption) (*DebugCreateNodeResponse, error)
 | 
			
		||||
	GetNode(ctx context.Context, in *GetNodeRequest, opts ...grpc.CallOption) (*GetNodeResponse, error)
 | 
			
		||||
	SetTags(ctx context.Context, in *SetTagsRequest, opts ...grpc.CallOption) (*SetTagsResponse, error)
 | 
			
		||||
	RegisterMachine(ctx context.Context, in *RegisterMachineRequest, opts ...grpc.CallOption) (*RegisterMachineResponse, error)
 | 
			
		||||
	DeleteMachine(ctx context.Context, in *DeleteMachineRequest, opts ...grpc.CallOption) (*DeleteMachineResponse, error)
 | 
			
		||||
	ExpireMachine(ctx context.Context, in *ExpireMachineRequest, opts ...grpc.CallOption) (*ExpireMachineResponse, error)
 | 
			
		||||
	RenameMachine(ctx context.Context, in *RenameMachineRequest, opts ...grpc.CallOption) (*RenameMachineResponse, error)
 | 
			
		||||
	ListMachines(ctx context.Context, in *ListMachinesRequest, opts ...grpc.CallOption) (*ListMachinesResponse, error)
 | 
			
		||||
	MoveMachine(ctx context.Context, in *MoveMachineRequest, opts ...grpc.CallOption) (*MoveMachineResponse, error)
 | 
			
		||||
	RegisterNode(ctx context.Context, in *RegisterNodeRequest, opts ...grpc.CallOption) (*RegisterNodeResponse, error)
 | 
			
		||||
	DeleteNode(ctx context.Context, in *DeleteNodeRequest, opts ...grpc.CallOption) (*DeleteNodeResponse, error)
 | 
			
		||||
	ExpireNode(ctx context.Context, in *ExpireNodeRequest, opts ...grpc.CallOption) (*ExpireNodeResponse, error)
 | 
			
		||||
	RenameNode(ctx context.Context, in *RenameNodeRequest, opts ...grpc.CallOption) (*RenameNodeResponse, error)
 | 
			
		||||
	ListNodes(ctx context.Context, in *ListNodesRequest, opts ...grpc.CallOption) (*ListNodesResponse, error)
 | 
			
		||||
	MoveNode(ctx context.Context, in *MoveNodeRequest, opts ...grpc.CallOption) (*MoveNodeResponse, error)
 | 
			
		||||
	// --- Route start ---
 | 
			
		||||
	GetRoutes(ctx context.Context, in *GetRoutesRequest, opts ...grpc.CallOption) (*GetRoutesResponse, error)
 | 
			
		||||
	EnableRoute(ctx context.Context, in *EnableRouteRequest, opts ...grpc.CallOption) (*EnableRouteResponse, error)
 | 
			
		||||
	DisableRoute(ctx context.Context, in *DisableRouteRequest, opts ...grpc.CallOption) (*DisableRouteResponse, error)
 | 
			
		||||
	GetMachineRoutes(ctx context.Context, in *GetMachineRoutesRequest, opts ...grpc.CallOption) (*GetMachineRoutesResponse, error)
 | 
			
		||||
	GetNodeRoutes(ctx context.Context, in *GetNodeRoutesRequest, opts ...grpc.CallOption) (*GetNodeRoutesResponse, error)
 | 
			
		||||
	DeleteRoute(ctx context.Context, in *DeleteRouteRequest, opts ...grpc.CallOption) (*DeleteRouteResponse, error)
 | 
			
		||||
	// --- ApiKeys start ---
 | 
			
		||||
	CreateApiKey(ctx context.Context, in *CreateApiKeyRequest, opts ...grpc.CallOption) (*CreateApiKeyResponse, error)
 | 
			
		||||
@ -64,7 +92,7 @@ func NewHeadscaleServiceClient(cc grpc.ClientConnInterface) HeadscaleServiceClie
 | 
			
		||||
 | 
			
		||||
func (c *headscaleServiceClient) GetUser(ctx context.Context, in *GetUserRequest, opts ...grpc.CallOption) (*GetUserResponse, error) {
 | 
			
		||||
	out := new(GetUserResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/headscale.v1.HeadscaleService/GetUser", in, out, opts...)
 | 
			
		||||
	err := c.cc.Invoke(ctx, HeadscaleService_GetUser_FullMethodName, in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@ -73,7 +101,7 @@ func (c *headscaleServiceClient) GetUser(ctx context.Context, in *GetUserRequest
 | 
			
		||||
 | 
			
		||||
func (c *headscaleServiceClient) CreateUser(ctx context.Context, in *CreateUserRequest, opts ...grpc.CallOption) (*CreateUserResponse, error) {
 | 
			
		||||
	out := new(CreateUserResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/headscale.v1.HeadscaleService/CreateUser", in, out, opts...)
 | 
			
		||||
	err := c.cc.Invoke(ctx, HeadscaleService_CreateUser_FullMethodName, in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@ -82,7 +110,7 @@ func (c *headscaleServiceClient) CreateUser(ctx context.Context, in *CreateUserR
 | 
			
		||||
 | 
			
		||||
func (c *headscaleServiceClient) RenameUser(ctx context.Context, in *RenameUserRequest, opts ...grpc.CallOption) (*RenameUserResponse, error) {
 | 
			
		||||
	out := new(RenameUserResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/headscale.v1.HeadscaleService/RenameUser", in, out, opts...)
 | 
			
		||||
	err := c.cc.Invoke(ctx, HeadscaleService_RenameUser_FullMethodName, in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@ -91,7 +119,7 @@ func (c *headscaleServiceClient) RenameUser(ctx context.Context, in *RenameUserR
 | 
			
		||||
 | 
			
		||||
func (c *headscaleServiceClient) DeleteUser(ctx context.Context, in *DeleteUserRequest, opts ...grpc.CallOption) (*DeleteUserResponse, error) {
 | 
			
		||||
	out := new(DeleteUserResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/headscale.v1.HeadscaleService/DeleteUser", in, out, opts...)
 | 
			
		||||
	err := c.cc.Invoke(ctx, HeadscaleService_DeleteUser_FullMethodName, in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@ -100,7 +128,7 @@ func (c *headscaleServiceClient) DeleteUser(ctx context.Context, in *DeleteUserR
 | 
			
		||||
 | 
			
		||||
func (c *headscaleServiceClient) ListUsers(ctx context.Context, in *ListUsersRequest, opts ...grpc.CallOption) (*ListUsersResponse, error) {
 | 
			
		||||
	out := new(ListUsersResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/headscale.v1.HeadscaleService/ListUsers", in, out, opts...)
 | 
			
		||||
	err := c.cc.Invoke(ctx, HeadscaleService_ListUsers_FullMethodName, in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@ -109,7 +137,7 @@ func (c *headscaleServiceClient) ListUsers(ctx context.Context, in *ListUsersReq
 | 
			
		||||
 | 
			
		||||
func (c *headscaleServiceClient) CreatePreAuthKey(ctx context.Context, in *CreatePreAuthKeyRequest, opts ...grpc.CallOption) (*CreatePreAuthKeyResponse, error) {
 | 
			
		||||
	out := new(CreatePreAuthKeyResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/headscale.v1.HeadscaleService/CreatePreAuthKey", in, out, opts...)
 | 
			
		||||
	err := c.cc.Invoke(ctx, HeadscaleService_CreatePreAuthKey_FullMethodName, in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@ -118,7 +146,7 @@ func (c *headscaleServiceClient) CreatePreAuthKey(ctx context.Context, in *Creat
 | 
			
		||||
 | 
			
		||||
func (c *headscaleServiceClient) ExpirePreAuthKey(ctx context.Context, in *ExpirePreAuthKeyRequest, opts ...grpc.CallOption) (*ExpirePreAuthKeyResponse, error) {
 | 
			
		||||
	out := new(ExpirePreAuthKeyResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/headscale.v1.HeadscaleService/ExpirePreAuthKey", in, out, opts...)
 | 
			
		||||
	err := c.cc.Invoke(ctx, HeadscaleService_ExpirePreAuthKey_FullMethodName, in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@ -127,25 +155,25 @@ func (c *headscaleServiceClient) ExpirePreAuthKey(ctx context.Context, in *Expir
 | 
			
		||||
 | 
			
		||||
func (c *headscaleServiceClient) ListPreAuthKeys(ctx context.Context, in *ListPreAuthKeysRequest, opts ...grpc.CallOption) (*ListPreAuthKeysResponse, error) {
 | 
			
		||||
	out := new(ListPreAuthKeysResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/headscale.v1.HeadscaleService/ListPreAuthKeys", in, out, opts...)
 | 
			
		||||
	err := c.cc.Invoke(ctx, HeadscaleService_ListPreAuthKeys_FullMethodName, in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *headscaleServiceClient) DebugCreateMachine(ctx context.Context, in *DebugCreateMachineRequest, opts ...grpc.CallOption) (*DebugCreateMachineResponse, error) {
 | 
			
		||||
	out := new(DebugCreateMachineResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/headscale.v1.HeadscaleService/DebugCreateMachine", in, out, opts...)
 | 
			
		||||
func (c *headscaleServiceClient) DebugCreateNode(ctx context.Context, in *DebugCreateNodeRequest, opts ...grpc.CallOption) (*DebugCreateNodeResponse, error) {
 | 
			
		||||
	out := new(DebugCreateNodeResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, HeadscaleService_DebugCreateNode_FullMethodName, in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *headscaleServiceClient) GetMachine(ctx context.Context, in *GetMachineRequest, opts ...grpc.CallOption) (*GetMachineResponse, error) {
 | 
			
		||||
	out := new(GetMachineResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/headscale.v1.HeadscaleService/GetMachine", in, out, opts...)
 | 
			
		||||
func (c *headscaleServiceClient) GetNode(ctx context.Context, in *GetNodeRequest, opts ...grpc.CallOption) (*GetNodeResponse, error) {
 | 
			
		||||
	out := new(GetNodeResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, HeadscaleService_GetNode_FullMethodName, in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@ -154,61 +182,61 @@ func (c *headscaleServiceClient) GetMachine(ctx context.Context, in *GetMachineR
 | 
			
		||||
 | 
			
		||||
func (c *headscaleServiceClient) SetTags(ctx context.Context, in *SetTagsRequest, opts ...grpc.CallOption) (*SetTagsResponse, error) {
 | 
			
		||||
	out := new(SetTagsResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/headscale.v1.HeadscaleService/SetTags", in, out, opts...)
 | 
			
		||||
	err := c.cc.Invoke(ctx, HeadscaleService_SetTags_FullMethodName, in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *headscaleServiceClient) RegisterMachine(ctx context.Context, in *RegisterMachineRequest, opts ...grpc.CallOption) (*RegisterMachineResponse, error) {
 | 
			
		||||
	out := new(RegisterMachineResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/headscale.v1.HeadscaleService/RegisterMachine", in, out, opts...)
 | 
			
		||||
func (c *headscaleServiceClient) RegisterNode(ctx context.Context, in *RegisterNodeRequest, opts ...grpc.CallOption) (*RegisterNodeResponse, error) {
 | 
			
		||||
	out := new(RegisterNodeResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, HeadscaleService_RegisterNode_FullMethodName, in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *headscaleServiceClient) DeleteMachine(ctx context.Context, in *DeleteMachineRequest, opts ...grpc.CallOption) (*DeleteMachineResponse, error) {
 | 
			
		||||
	out := new(DeleteMachineResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/headscale.v1.HeadscaleService/DeleteMachine", in, out, opts...)
 | 
			
		||||
func (c *headscaleServiceClient) DeleteNode(ctx context.Context, in *DeleteNodeRequest, opts ...grpc.CallOption) (*DeleteNodeResponse, error) {
 | 
			
		||||
	out := new(DeleteNodeResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, HeadscaleService_DeleteNode_FullMethodName, in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *headscaleServiceClient) ExpireMachine(ctx context.Context, in *ExpireMachineRequest, opts ...grpc.CallOption) (*ExpireMachineResponse, error) {
 | 
			
		||||
	out := new(ExpireMachineResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/headscale.v1.HeadscaleService/ExpireMachine", in, out, opts...)
 | 
			
		||||
func (c *headscaleServiceClient) ExpireNode(ctx context.Context, in *ExpireNodeRequest, opts ...grpc.CallOption) (*ExpireNodeResponse, error) {
 | 
			
		||||
	out := new(ExpireNodeResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, HeadscaleService_ExpireNode_FullMethodName, in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *headscaleServiceClient) RenameMachine(ctx context.Context, in *RenameMachineRequest, opts ...grpc.CallOption) (*RenameMachineResponse, error) {
 | 
			
		||||
	out := new(RenameMachineResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/headscale.v1.HeadscaleService/RenameMachine", in, out, opts...)
 | 
			
		||||
func (c *headscaleServiceClient) RenameNode(ctx context.Context, in *RenameNodeRequest, opts ...grpc.CallOption) (*RenameNodeResponse, error) {
 | 
			
		||||
	out := new(RenameNodeResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, HeadscaleService_RenameNode_FullMethodName, in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *headscaleServiceClient) ListMachines(ctx context.Context, in *ListMachinesRequest, opts ...grpc.CallOption) (*ListMachinesResponse, error) {
 | 
			
		||||
	out := new(ListMachinesResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/headscale.v1.HeadscaleService/ListMachines", in, out, opts...)
 | 
			
		||||
func (c *headscaleServiceClient) ListNodes(ctx context.Context, in *ListNodesRequest, opts ...grpc.CallOption) (*ListNodesResponse, error) {
 | 
			
		||||
	out := new(ListNodesResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, HeadscaleService_ListNodes_FullMethodName, in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *headscaleServiceClient) MoveMachine(ctx context.Context, in *MoveMachineRequest, opts ...grpc.CallOption) (*MoveMachineResponse, error) {
 | 
			
		||||
	out := new(MoveMachineResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/headscale.v1.HeadscaleService/MoveMachine", in, out, opts...)
 | 
			
		||||
func (c *headscaleServiceClient) MoveNode(ctx context.Context, in *MoveNodeRequest, opts ...grpc.CallOption) (*MoveNodeResponse, error) {
 | 
			
		||||
	out := new(MoveNodeResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, HeadscaleService_MoveNode_FullMethodName, in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@ -217,7 +245,7 @@ func (c *headscaleServiceClient) MoveMachine(ctx context.Context, in *MoveMachin
 | 
			
		||||
 | 
			
		||||
func (c *headscaleServiceClient) GetRoutes(ctx context.Context, in *GetRoutesRequest, opts ...grpc.CallOption) (*GetRoutesResponse, error) {
 | 
			
		||||
	out := new(GetRoutesResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/headscale.v1.HeadscaleService/GetRoutes", in, out, opts...)
 | 
			
		||||
	err := c.cc.Invoke(ctx, HeadscaleService_GetRoutes_FullMethodName, in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@ -226,7 +254,7 @@ func (c *headscaleServiceClient) GetRoutes(ctx context.Context, in *GetRoutesReq
 | 
			
		||||
 | 
			
		||||
func (c *headscaleServiceClient) EnableRoute(ctx context.Context, in *EnableRouteRequest, opts ...grpc.CallOption) (*EnableRouteResponse, error) {
 | 
			
		||||
	out := new(EnableRouteResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/headscale.v1.HeadscaleService/EnableRoute", in, out, opts...)
 | 
			
		||||
	err := c.cc.Invoke(ctx, HeadscaleService_EnableRoute_FullMethodName, in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@ -235,16 +263,16 @@ func (c *headscaleServiceClient) EnableRoute(ctx context.Context, in *EnableRout
 | 
			
		||||
 | 
			
		||||
func (c *headscaleServiceClient) DisableRoute(ctx context.Context, in *DisableRouteRequest, opts ...grpc.CallOption) (*DisableRouteResponse, error) {
 | 
			
		||||
	out := new(DisableRouteResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/headscale.v1.HeadscaleService/DisableRoute", in, out, opts...)
 | 
			
		||||
	err := c.cc.Invoke(ctx, HeadscaleService_DisableRoute_FullMethodName, in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *headscaleServiceClient) GetMachineRoutes(ctx context.Context, in *GetMachineRoutesRequest, opts ...grpc.CallOption) (*GetMachineRoutesResponse, error) {
 | 
			
		||||
	out := new(GetMachineRoutesResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/headscale.v1.HeadscaleService/GetMachineRoutes", in, out, opts...)
 | 
			
		||||
func (c *headscaleServiceClient) GetNodeRoutes(ctx context.Context, in *GetNodeRoutesRequest, opts ...grpc.CallOption) (*GetNodeRoutesResponse, error) {
 | 
			
		||||
	out := new(GetNodeRoutesResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, HeadscaleService_GetNodeRoutes_FullMethodName, in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@ -253,7 +281,7 @@ func (c *headscaleServiceClient) GetMachineRoutes(ctx context.Context, in *GetMa
 | 
			
		||||
 | 
			
		||||
func (c *headscaleServiceClient) DeleteRoute(ctx context.Context, in *DeleteRouteRequest, opts ...grpc.CallOption) (*DeleteRouteResponse, error) {
 | 
			
		||||
	out := new(DeleteRouteResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/headscale.v1.HeadscaleService/DeleteRoute", in, out, opts...)
 | 
			
		||||
	err := c.cc.Invoke(ctx, HeadscaleService_DeleteRoute_FullMethodName, in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@ -262,7 +290,7 @@ func (c *headscaleServiceClient) DeleteRoute(ctx context.Context, in *DeleteRout
 | 
			
		||||
 | 
			
		||||
func (c *headscaleServiceClient) CreateApiKey(ctx context.Context, in *CreateApiKeyRequest, opts ...grpc.CallOption) (*CreateApiKeyResponse, error) {
 | 
			
		||||
	out := new(CreateApiKeyResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/headscale.v1.HeadscaleService/CreateApiKey", in, out, opts...)
 | 
			
		||||
	err := c.cc.Invoke(ctx, HeadscaleService_CreateApiKey_FullMethodName, in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@ -271,7 +299,7 @@ func (c *headscaleServiceClient) CreateApiKey(ctx context.Context, in *CreateApi
 | 
			
		||||
 | 
			
		||||
func (c *headscaleServiceClient) ExpireApiKey(ctx context.Context, in *ExpireApiKeyRequest, opts ...grpc.CallOption) (*ExpireApiKeyResponse, error) {
 | 
			
		||||
	out := new(ExpireApiKeyResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/headscale.v1.HeadscaleService/ExpireApiKey", in, out, opts...)
 | 
			
		||||
	err := c.cc.Invoke(ctx, HeadscaleService_ExpireApiKey_FullMethodName, in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@ -280,7 +308,7 @@ func (c *headscaleServiceClient) ExpireApiKey(ctx context.Context, in *ExpireApi
 | 
			
		||||
 | 
			
		||||
func (c *headscaleServiceClient) ListApiKeys(ctx context.Context, in *ListApiKeysRequest, opts ...grpc.CallOption) (*ListApiKeysResponse, error) {
 | 
			
		||||
	out := new(ListApiKeysResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/headscale.v1.HeadscaleService/ListApiKeys", in, out, opts...)
 | 
			
		||||
	err := c.cc.Invoke(ctx, HeadscaleService_ListApiKeys_FullMethodName, in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@ -301,21 +329,21 @@ type HeadscaleServiceServer interface {
 | 
			
		||||
	CreatePreAuthKey(context.Context, *CreatePreAuthKeyRequest) (*CreatePreAuthKeyResponse, error)
 | 
			
		||||
	ExpirePreAuthKey(context.Context, *ExpirePreAuthKeyRequest) (*ExpirePreAuthKeyResponse, error)
 | 
			
		||||
	ListPreAuthKeys(context.Context, *ListPreAuthKeysRequest) (*ListPreAuthKeysResponse, error)
 | 
			
		||||
	// --- Machine start ---
 | 
			
		||||
	DebugCreateMachine(context.Context, *DebugCreateMachineRequest) (*DebugCreateMachineResponse, error)
 | 
			
		||||
	GetMachine(context.Context, *GetMachineRequest) (*GetMachineResponse, error)
 | 
			
		||||
	// --- Node start ---
 | 
			
		||||
	DebugCreateNode(context.Context, *DebugCreateNodeRequest) (*DebugCreateNodeResponse, error)
 | 
			
		||||
	GetNode(context.Context, *GetNodeRequest) (*GetNodeResponse, error)
 | 
			
		||||
	SetTags(context.Context, *SetTagsRequest) (*SetTagsResponse, error)
 | 
			
		||||
	RegisterMachine(context.Context, *RegisterMachineRequest) (*RegisterMachineResponse, error)
 | 
			
		||||
	DeleteMachine(context.Context, *DeleteMachineRequest) (*DeleteMachineResponse, error)
 | 
			
		||||
	ExpireMachine(context.Context, *ExpireMachineRequest) (*ExpireMachineResponse, error)
 | 
			
		||||
	RenameMachine(context.Context, *RenameMachineRequest) (*RenameMachineResponse, error)
 | 
			
		||||
	ListMachines(context.Context, *ListMachinesRequest) (*ListMachinesResponse, error)
 | 
			
		||||
	MoveMachine(context.Context, *MoveMachineRequest) (*MoveMachineResponse, error)
 | 
			
		||||
	RegisterNode(context.Context, *RegisterNodeRequest) (*RegisterNodeResponse, error)
 | 
			
		||||
	DeleteNode(context.Context, *DeleteNodeRequest) (*DeleteNodeResponse, error)
 | 
			
		||||
	ExpireNode(context.Context, *ExpireNodeRequest) (*ExpireNodeResponse, error)
 | 
			
		||||
	RenameNode(context.Context, *RenameNodeRequest) (*RenameNodeResponse, error)
 | 
			
		||||
	ListNodes(context.Context, *ListNodesRequest) (*ListNodesResponse, error)
 | 
			
		||||
	MoveNode(context.Context, *MoveNodeRequest) (*MoveNodeResponse, error)
 | 
			
		||||
	// --- Route start ---
 | 
			
		||||
	GetRoutes(context.Context, *GetRoutesRequest) (*GetRoutesResponse, error)
 | 
			
		||||
	EnableRoute(context.Context, *EnableRouteRequest) (*EnableRouteResponse, error)
 | 
			
		||||
	DisableRoute(context.Context, *DisableRouteRequest) (*DisableRouteResponse, error)
 | 
			
		||||
	GetMachineRoutes(context.Context, *GetMachineRoutesRequest) (*GetMachineRoutesResponse, error)
 | 
			
		||||
	GetNodeRoutes(context.Context, *GetNodeRoutesRequest) (*GetNodeRoutesResponse, error)
 | 
			
		||||
	DeleteRoute(context.Context, *DeleteRouteRequest) (*DeleteRouteResponse, error)
 | 
			
		||||
	// --- ApiKeys start ---
 | 
			
		||||
	CreateApiKey(context.Context, *CreateApiKeyRequest) (*CreateApiKeyResponse, error)
 | 
			
		||||
@ -352,32 +380,32 @@ func (UnimplementedHeadscaleServiceServer) ExpirePreAuthKey(context.Context, *Ex
 | 
			
		||||
func (UnimplementedHeadscaleServiceServer) ListPreAuthKeys(context.Context, *ListPreAuthKeysRequest) (*ListPreAuthKeysResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method ListPreAuthKeys not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (UnimplementedHeadscaleServiceServer) DebugCreateMachine(context.Context, *DebugCreateMachineRequest) (*DebugCreateMachineResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method DebugCreateMachine not implemented")
 | 
			
		||||
func (UnimplementedHeadscaleServiceServer) DebugCreateNode(context.Context, *DebugCreateNodeRequest) (*DebugCreateNodeResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method DebugCreateNode not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (UnimplementedHeadscaleServiceServer) GetMachine(context.Context, *GetMachineRequest) (*GetMachineResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method GetMachine not implemented")
 | 
			
		||||
func (UnimplementedHeadscaleServiceServer) GetNode(context.Context, *GetNodeRequest) (*GetNodeResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method GetNode not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (UnimplementedHeadscaleServiceServer) SetTags(context.Context, *SetTagsRequest) (*SetTagsResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method SetTags not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (UnimplementedHeadscaleServiceServer) RegisterMachine(context.Context, *RegisterMachineRequest) (*RegisterMachineResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method RegisterMachine not implemented")
 | 
			
		||||
func (UnimplementedHeadscaleServiceServer) RegisterNode(context.Context, *RegisterNodeRequest) (*RegisterNodeResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method RegisterNode not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (UnimplementedHeadscaleServiceServer) DeleteMachine(context.Context, *DeleteMachineRequest) (*DeleteMachineResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method DeleteMachine not implemented")
 | 
			
		||||
func (UnimplementedHeadscaleServiceServer) DeleteNode(context.Context, *DeleteNodeRequest) (*DeleteNodeResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method DeleteNode not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (UnimplementedHeadscaleServiceServer) ExpireMachine(context.Context, *ExpireMachineRequest) (*ExpireMachineResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method ExpireMachine not implemented")
 | 
			
		||||
func (UnimplementedHeadscaleServiceServer) ExpireNode(context.Context, *ExpireNodeRequest) (*ExpireNodeResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method ExpireNode not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (UnimplementedHeadscaleServiceServer) RenameMachine(context.Context, *RenameMachineRequest) (*RenameMachineResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method RenameMachine not implemented")
 | 
			
		||||
func (UnimplementedHeadscaleServiceServer) RenameNode(context.Context, *RenameNodeRequest) (*RenameNodeResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method RenameNode not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (UnimplementedHeadscaleServiceServer) ListMachines(context.Context, *ListMachinesRequest) (*ListMachinesResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method ListMachines not implemented")
 | 
			
		||||
func (UnimplementedHeadscaleServiceServer) ListNodes(context.Context, *ListNodesRequest) (*ListNodesResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method ListNodes not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (UnimplementedHeadscaleServiceServer) MoveMachine(context.Context, *MoveMachineRequest) (*MoveMachineResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method MoveMachine not implemented")
 | 
			
		||||
func (UnimplementedHeadscaleServiceServer) MoveNode(context.Context, *MoveNodeRequest) (*MoveNodeResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method MoveNode not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (UnimplementedHeadscaleServiceServer) GetRoutes(context.Context, *GetRoutesRequest) (*GetRoutesResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method GetRoutes not implemented")
 | 
			
		||||
@ -388,8 +416,8 @@ func (UnimplementedHeadscaleServiceServer) EnableRoute(context.Context, *EnableR
 | 
			
		||||
func (UnimplementedHeadscaleServiceServer) DisableRoute(context.Context, *DisableRouteRequest) (*DisableRouteResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method DisableRoute not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (UnimplementedHeadscaleServiceServer) GetMachineRoutes(context.Context, *GetMachineRoutesRequest) (*GetMachineRoutesResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method GetMachineRoutes not implemented")
 | 
			
		||||
func (UnimplementedHeadscaleServiceServer) GetNodeRoutes(context.Context, *GetNodeRoutesRequest) (*GetNodeRoutesResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method GetNodeRoutes not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (UnimplementedHeadscaleServiceServer) DeleteRoute(context.Context, *DeleteRouteRequest) (*DeleteRouteResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method DeleteRoute not implemented")
 | 
			
		||||
@ -426,7 +454,7 @@ func _HeadscaleService_GetUser_Handler(srv interface{}, ctx context.Context, dec
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/headscale.v1.HeadscaleService/GetUser",
 | 
			
		||||
		FullMethod: HeadscaleService_GetUser_FullMethodName,
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).GetUser(ctx, req.(*GetUserRequest))
 | 
			
		||||
@ -444,7 +472,7 @@ func _HeadscaleService_CreateUser_Handler(srv interface{}, ctx context.Context,
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/headscale.v1.HeadscaleService/CreateUser",
 | 
			
		||||
		FullMethod: HeadscaleService_CreateUser_FullMethodName,
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).CreateUser(ctx, req.(*CreateUserRequest))
 | 
			
		||||
@ -462,7 +490,7 @@ func _HeadscaleService_RenameUser_Handler(srv interface{}, ctx context.Context,
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/headscale.v1.HeadscaleService/RenameUser",
 | 
			
		||||
		FullMethod: HeadscaleService_RenameUser_FullMethodName,
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).RenameUser(ctx, req.(*RenameUserRequest))
 | 
			
		||||
@ -480,7 +508,7 @@ func _HeadscaleService_DeleteUser_Handler(srv interface{}, ctx context.Context,
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/headscale.v1.HeadscaleService/DeleteUser",
 | 
			
		||||
		FullMethod: HeadscaleService_DeleteUser_FullMethodName,
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).DeleteUser(ctx, req.(*DeleteUserRequest))
 | 
			
		||||
@ -498,7 +526,7 @@ func _HeadscaleService_ListUsers_Handler(srv interface{}, ctx context.Context, d
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/headscale.v1.HeadscaleService/ListUsers",
 | 
			
		||||
		FullMethod: HeadscaleService_ListUsers_FullMethodName,
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).ListUsers(ctx, req.(*ListUsersRequest))
 | 
			
		||||
@ -516,7 +544,7 @@ func _HeadscaleService_CreatePreAuthKey_Handler(srv interface{}, ctx context.Con
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/headscale.v1.HeadscaleService/CreatePreAuthKey",
 | 
			
		||||
		FullMethod: HeadscaleService_CreatePreAuthKey_FullMethodName,
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).CreatePreAuthKey(ctx, req.(*CreatePreAuthKeyRequest))
 | 
			
		||||
@ -534,7 +562,7 @@ func _HeadscaleService_ExpirePreAuthKey_Handler(srv interface{}, ctx context.Con
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/headscale.v1.HeadscaleService/ExpirePreAuthKey",
 | 
			
		||||
		FullMethod: HeadscaleService_ExpirePreAuthKey_FullMethodName,
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).ExpirePreAuthKey(ctx, req.(*ExpirePreAuthKeyRequest))
 | 
			
		||||
@ -552,7 +580,7 @@ func _HeadscaleService_ListPreAuthKeys_Handler(srv interface{}, ctx context.Cont
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/headscale.v1.HeadscaleService/ListPreAuthKeys",
 | 
			
		||||
		FullMethod: HeadscaleService_ListPreAuthKeys_FullMethodName,
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).ListPreAuthKeys(ctx, req.(*ListPreAuthKeysRequest))
 | 
			
		||||
@ -560,38 +588,38 @@ func _HeadscaleService_ListPreAuthKeys_Handler(srv interface{}, ctx context.Cont
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _HeadscaleService_DebugCreateMachine_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(DebugCreateMachineRequest)
 | 
			
		||||
func _HeadscaleService_DebugCreateNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(DebugCreateNodeRequest)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).DebugCreateMachine(ctx, in)
 | 
			
		||||
		return srv.(HeadscaleServiceServer).DebugCreateNode(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/headscale.v1.HeadscaleService/DebugCreateMachine",
 | 
			
		||||
		FullMethod: HeadscaleService_DebugCreateNode_FullMethodName,
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).DebugCreateMachine(ctx, req.(*DebugCreateMachineRequest))
 | 
			
		||||
		return srv.(HeadscaleServiceServer).DebugCreateNode(ctx, req.(*DebugCreateNodeRequest))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _HeadscaleService_GetMachine_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(GetMachineRequest)
 | 
			
		||||
func _HeadscaleService_GetNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(GetNodeRequest)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).GetMachine(ctx, in)
 | 
			
		||||
		return srv.(HeadscaleServiceServer).GetNode(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/headscale.v1.HeadscaleService/GetMachine",
 | 
			
		||||
		FullMethod: HeadscaleService_GetNode_FullMethodName,
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).GetMachine(ctx, req.(*GetMachineRequest))
 | 
			
		||||
		return srv.(HeadscaleServiceServer).GetNode(ctx, req.(*GetNodeRequest))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
@ -606,7 +634,7 @@ func _HeadscaleService_SetTags_Handler(srv interface{}, ctx context.Context, dec
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/headscale.v1.HeadscaleService/SetTags",
 | 
			
		||||
		FullMethod: HeadscaleService_SetTags_FullMethodName,
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).SetTags(ctx, req.(*SetTagsRequest))
 | 
			
		||||
@ -614,110 +642,110 @@ func _HeadscaleService_SetTags_Handler(srv interface{}, ctx context.Context, dec
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _HeadscaleService_RegisterMachine_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(RegisterMachineRequest)
 | 
			
		||||
func _HeadscaleService_RegisterNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(RegisterNodeRequest)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).RegisterMachine(ctx, in)
 | 
			
		||||
		return srv.(HeadscaleServiceServer).RegisterNode(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/headscale.v1.HeadscaleService/RegisterMachine",
 | 
			
		||||
		FullMethod: HeadscaleService_RegisterNode_FullMethodName,
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).RegisterMachine(ctx, req.(*RegisterMachineRequest))
 | 
			
		||||
		return srv.(HeadscaleServiceServer).RegisterNode(ctx, req.(*RegisterNodeRequest))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _HeadscaleService_DeleteMachine_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(DeleteMachineRequest)
 | 
			
		||||
func _HeadscaleService_DeleteNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(DeleteNodeRequest)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).DeleteMachine(ctx, in)
 | 
			
		||||
		return srv.(HeadscaleServiceServer).DeleteNode(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/headscale.v1.HeadscaleService/DeleteMachine",
 | 
			
		||||
		FullMethod: HeadscaleService_DeleteNode_FullMethodName,
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).DeleteMachine(ctx, req.(*DeleteMachineRequest))
 | 
			
		||||
		return srv.(HeadscaleServiceServer).DeleteNode(ctx, req.(*DeleteNodeRequest))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _HeadscaleService_ExpireMachine_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(ExpireMachineRequest)
 | 
			
		||||
func _HeadscaleService_ExpireNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(ExpireNodeRequest)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).ExpireMachine(ctx, in)
 | 
			
		||||
		return srv.(HeadscaleServiceServer).ExpireNode(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/headscale.v1.HeadscaleService/ExpireMachine",
 | 
			
		||||
		FullMethod: HeadscaleService_ExpireNode_FullMethodName,
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).ExpireMachine(ctx, req.(*ExpireMachineRequest))
 | 
			
		||||
		return srv.(HeadscaleServiceServer).ExpireNode(ctx, req.(*ExpireNodeRequest))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _HeadscaleService_RenameMachine_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(RenameMachineRequest)
 | 
			
		||||
func _HeadscaleService_RenameNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(RenameNodeRequest)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).RenameMachine(ctx, in)
 | 
			
		||||
		return srv.(HeadscaleServiceServer).RenameNode(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/headscale.v1.HeadscaleService/RenameMachine",
 | 
			
		||||
		FullMethod: HeadscaleService_RenameNode_FullMethodName,
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).RenameMachine(ctx, req.(*RenameMachineRequest))
 | 
			
		||||
		return srv.(HeadscaleServiceServer).RenameNode(ctx, req.(*RenameNodeRequest))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _HeadscaleService_ListMachines_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(ListMachinesRequest)
 | 
			
		||||
func _HeadscaleService_ListNodes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(ListNodesRequest)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).ListMachines(ctx, in)
 | 
			
		||||
		return srv.(HeadscaleServiceServer).ListNodes(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/headscale.v1.HeadscaleService/ListMachines",
 | 
			
		||||
		FullMethod: HeadscaleService_ListNodes_FullMethodName,
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).ListMachines(ctx, req.(*ListMachinesRequest))
 | 
			
		||||
		return srv.(HeadscaleServiceServer).ListNodes(ctx, req.(*ListNodesRequest))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _HeadscaleService_MoveMachine_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(MoveMachineRequest)
 | 
			
		||||
func _HeadscaleService_MoveNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(MoveNodeRequest)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).MoveMachine(ctx, in)
 | 
			
		||||
		return srv.(HeadscaleServiceServer).MoveNode(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/headscale.v1.HeadscaleService/MoveMachine",
 | 
			
		||||
		FullMethod: HeadscaleService_MoveNode_FullMethodName,
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).MoveMachine(ctx, req.(*MoveMachineRequest))
 | 
			
		||||
		return srv.(HeadscaleServiceServer).MoveNode(ctx, req.(*MoveNodeRequest))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
@ -732,7 +760,7 @@ func _HeadscaleService_GetRoutes_Handler(srv interface{}, ctx context.Context, d
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/headscale.v1.HeadscaleService/GetRoutes",
 | 
			
		||||
		FullMethod: HeadscaleService_GetRoutes_FullMethodName,
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).GetRoutes(ctx, req.(*GetRoutesRequest))
 | 
			
		||||
@ -750,7 +778,7 @@ func _HeadscaleService_EnableRoute_Handler(srv interface{}, ctx context.Context,
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/headscale.v1.HeadscaleService/EnableRoute",
 | 
			
		||||
		FullMethod: HeadscaleService_EnableRoute_FullMethodName,
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).EnableRoute(ctx, req.(*EnableRouteRequest))
 | 
			
		||||
@ -768,7 +796,7 @@ func _HeadscaleService_DisableRoute_Handler(srv interface{}, ctx context.Context
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/headscale.v1.HeadscaleService/DisableRoute",
 | 
			
		||||
		FullMethod: HeadscaleService_DisableRoute_FullMethodName,
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).DisableRoute(ctx, req.(*DisableRouteRequest))
 | 
			
		||||
@ -776,20 +804,20 @@ func _HeadscaleService_DisableRoute_Handler(srv interface{}, ctx context.Context
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _HeadscaleService_GetMachineRoutes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(GetMachineRoutesRequest)
 | 
			
		||||
func _HeadscaleService_GetNodeRoutes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(GetNodeRoutesRequest)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).GetMachineRoutes(ctx, in)
 | 
			
		||||
		return srv.(HeadscaleServiceServer).GetNodeRoutes(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/headscale.v1.HeadscaleService/GetMachineRoutes",
 | 
			
		||||
		FullMethod: HeadscaleService_GetNodeRoutes_FullMethodName,
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).GetMachineRoutes(ctx, req.(*GetMachineRoutesRequest))
 | 
			
		||||
		return srv.(HeadscaleServiceServer).GetNodeRoutes(ctx, req.(*GetNodeRoutesRequest))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
@ -804,7 +832,7 @@ func _HeadscaleService_DeleteRoute_Handler(srv interface{}, ctx context.Context,
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/headscale.v1.HeadscaleService/DeleteRoute",
 | 
			
		||||
		FullMethod: HeadscaleService_DeleteRoute_FullMethodName,
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).DeleteRoute(ctx, req.(*DeleteRouteRequest))
 | 
			
		||||
@ -822,7 +850,7 @@ func _HeadscaleService_CreateApiKey_Handler(srv interface{}, ctx context.Context
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/headscale.v1.HeadscaleService/CreateApiKey",
 | 
			
		||||
		FullMethod: HeadscaleService_CreateApiKey_FullMethodName,
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).CreateApiKey(ctx, req.(*CreateApiKeyRequest))
 | 
			
		||||
@ -840,7 +868,7 @@ func _HeadscaleService_ExpireApiKey_Handler(srv interface{}, ctx context.Context
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/headscale.v1.HeadscaleService/ExpireApiKey",
 | 
			
		||||
		FullMethod: HeadscaleService_ExpireApiKey_FullMethodName,
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).ExpireApiKey(ctx, req.(*ExpireApiKeyRequest))
 | 
			
		||||
@ -858,7 +886,7 @@ func _HeadscaleService_ListApiKeys_Handler(srv interface{}, ctx context.Context,
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/headscale.v1.HeadscaleService/ListApiKeys",
 | 
			
		||||
		FullMethod: HeadscaleService_ListApiKeys_FullMethodName,
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(HeadscaleServiceServer).ListApiKeys(ctx, req.(*ListApiKeysRequest))
 | 
			
		||||
@ -906,40 +934,40 @@ var HeadscaleService_ServiceDesc = grpc.ServiceDesc{
 | 
			
		||||
			Handler:    _HeadscaleService_ListPreAuthKeys_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "DebugCreateMachine",
 | 
			
		||||
			Handler:    _HeadscaleService_DebugCreateMachine_Handler,
 | 
			
		||||
			MethodName: "DebugCreateNode",
 | 
			
		||||
			Handler:    _HeadscaleService_DebugCreateNode_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "GetMachine",
 | 
			
		||||
			Handler:    _HeadscaleService_GetMachine_Handler,
 | 
			
		||||
			MethodName: "GetNode",
 | 
			
		||||
			Handler:    _HeadscaleService_GetNode_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "SetTags",
 | 
			
		||||
			Handler:    _HeadscaleService_SetTags_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "RegisterMachine",
 | 
			
		||||
			Handler:    _HeadscaleService_RegisterMachine_Handler,
 | 
			
		||||
			MethodName: "RegisterNode",
 | 
			
		||||
			Handler:    _HeadscaleService_RegisterNode_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "DeleteMachine",
 | 
			
		||||
			Handler:    _HeadscaleService_DeleteMachine_Handler,
 | 
			
		||||
			MethodName: "DeleteNode",
 | 
			
		||||
			Handler:    _HeadscaleService_DeleteNode_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "ExpireMachine",
 | 
			
		||||
			Handler:    _HeadscaleService_ExpireMachine_Handler,
 | 
			
		||||
			MethodName: "ExpireNode",
 | 
			
		||||
			Handler:    _HeadscaleService_ExpireNode_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "RenameMachine",
 | 
			
		||||
			Handler:    _HeadscaleService_RenameMachine_Handler,
 | 
			
		||||
			MethodName: "RenameNode",
 | 
			
		||||
			Handler:    _HeadscaleService_RenameNode_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "ListMachines",
 | 
			
		||||
			Handler:    _HeadscaleService_ListMachines_Handler,
 | 
			
		||||
			MethodName: "ListNodes",
 | 
			
		||||
			Handler:    _HeadscaleService_ListNodes_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "MoveMachine",
 | 
			
		||||
			Handler:    _HeadscaleService_MoveMachine_Handler,
 | 
			
		||||
			MethodName: "MoveNode",
 | 
			
		||||
			Handler:    _HeadscaleService_MoveNode_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "GetRoutes",
 | 
			
		||||
@ -954,8 +982,8 @@ var HeadscaleService_ServiceDesc = grpc.ServiceDesc{
 | 
			
		||||
			Handler:    _HeadscaleService_DisableRoute_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "GetMachineRoutes",
 | 
			
		||||
			Handler:    _HeadscaleService_GetMachineRoutes_Handler,
 | 
			
		||||
			MethodName: "GetNodeRoutes",
 | 
			
		||||
			Handler:    _HeadscaleService_GetNodeRoutes_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "DeleteRoute",
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1608
									
								
								gen/go/headscale/v1/node.pb.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1608
									
								
								gen/go/headscale/v1/node.pb.go
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -1,6 +1,6 @@
 | 
			
		||||
// Code generated by protoc-gen-go. DO NOT EDIT.
 | 
			
		||||
// versions:
 | 
			
		||||
// 	protoc-gen-go v1.28.1
 | 
			
		||||
// 	protoc-gen-go v1.29.1
 | 
			
		||||
// 	protoc        (unknown)
 | 
			
		||||
// source: headscale/v1/preauthkey.proto
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
// Code generated by protoc-gen-go. DO NOT EDIT.
 | 
			
		||||
// versions:
 | 
			
		||||
// 	protoc-gen-go v1.28.1
 | 
			
		||||
// 	protoc-gen-go v1.29.1
 | 
			
		||||
// 	protoc        (unknown)
 | 
			
		||||
// source: headscale/v1/routes.proto
 | 
			
		||||
 | 
			
		||||
@ -27,7 +27,7 @@ type Route struct {
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	Id         uint64                 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
 | 
			
		||||
	Machine    *Machine               `protobuf:"bytes,2,opt,name=machine,proto3" json:"machine,omitempty"`
 | 
			
		||||
	Node       *Node                  `protobuf:"bytes,2,opt,name=node,proto3" json:"node,omitempty"`
 | 
			
		||||
	Prefix     string                 `protobuf:"bytes,3,opt,name=prefix,proto3" json:"prefix,omitempty"`
 | 
			
		||||
	Advertised bool                   `protobuf:"varint,4,opt,name=advertised,proto3" json:"advertised,omitempty"`
 | 
			
		||||
	Enabled    bool                   `protobuf:"varint,5,opt,name=enabled,proto3" json:"enabled,omitempty"`
 | 
			
		||||
@ -76,9 +76,9 @@ func (x *Route) GetId() uint64 {
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *Route) GetMachine() *Machine {
 | 
			
		||||
func (x *Route) GetNode() *Node {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.Machine
 | 
			
		||||
		return x.Node
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
@ -387,16 +387,16 @@ func (*DisableRouteResponse) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_headscale_v1_routes_proto_rawDescGZIP(), []int{6}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type GetMachineRoutesRequest struct {
 | 
			
		||||
type GetNodeRoutesRequest struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	MachineId uint64 `protobuf:"varint,1,opt,name=machine_id,json=machineId,proto3" json:"machine_id,omitempty"`
 | 
			
		||||
	NodeId uint64 `protobuf:"varint,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *GetMachineRoutesRequest) Reset() {
 | 
			
		||||
	*x = GetMachineRoutesRequest{}
 | 
			
		||||
func (x *GetNodeRoutesRequest) Reset() {
 | 
			
		||||
	*x = GetNodeRoutesRequest{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_headscale_v1_routes_proto_msgTypes[7]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
@ -404,13 +404,13 @@ func (x *GetMachineRoutesRequest) Reset() {
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *GetMachineRoutesRequest) String() string {
 | 
			
		||||
func (x *GetNodeRoutesRequest) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*GetMachineRoutesRequest) ProtoMessage() {}
 | 
			
		||||
func (*GetNodeRoutesRequest) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *GetMachineRoutesRequest) ProtoReflect() protoreflect.Message {
 | 
			
		||||
func (x *GetNodeRoutesRequest) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_headscale_v1_routes_proto_msgTypes[7]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
@ -422,19 +422,19 @@ func (x *GetMachineRoutesRequest) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use GetMachineRoutesRequest.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*GetMachineRoutesRequest) Descriptor() ([]byte, []int) {
 | 
			
		||||
// Deprecated: Use GetNodeRoutesRequest.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*GetNodeRoutesRequest) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_headscale_v1_routes_proto_rawDescGZIP(), []int{7}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *GetMachineRoutesRequest) GetMachineId() uint64 {
 | 
			
		||||
func (x *GetNodeRoutesRequest) GetNodeId() uint64 {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.MachineId
 | 
			
		||||
		return x.NodeId
 | 
			
		||||
	}
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type GetMachineRoutesResponse struct {
 | 
			
		||||
type GetNodeRoutesResponse struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
@ -442,8 +442,8 @@ type GetMachineRoutesResponse struct {
 | 
			
		||||
	Routes []*Route `protobuf:"bytes,1,rep,name=routes,proto3" json:"routes,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *GetMachineRoutesResponse) Reset() {
 | 
			
		||||
	*x = GetMachineRoutesResponse{}
 | 
			
		||||
func (x *GetNodeRoutesResponse) Reset() {
 | 
			
		||||
	*x = GetNodeRoutesResponse{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_headscale_v1_routes_proto_msgTypes[8]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
@ -451,13 +451,13 @@ func (x *GetMachineRoutesResponse) Reset() {
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *GetMachineRoutesResponse) String() string {
 | 
			
		||||
func (x *GetNodeRoutesResponse) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*GetMachineRoutesResponse) ProtoMessage() {}
 | 
			
		||||
func (*GetNodeRoutesResponse) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *GetMachineRoutesResponse) ProtoReflect() protoreflect.Message {
 | 
			
		||||
func (x *GetNodeRoutesResponse) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_headscale_v1_routes_proto_msgTypes[8]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
@ -469,12 +469,12 @@ func (x *GetMachineRoutesResponse) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use GetMachineRoutesResponse.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*GetMachineRoutesResponse) Descriptor() ([]byte, []int) {
 | 
			
		||||
// Deprecated: Use GetNodeRoutesResponse.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*GetNodeRoutesResponse) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_headscale_v1_routes_proto_rawDescGZIP(), []int{8}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *GetMachineRoutesResponse) GetRoutes() []*Route {
 | 
			
		||||
func (x *GetNodeRoutesResponse) GetRoutes() []*Route {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.Routes
 | 
			
		||||
	}
 | 
			
		||||
@ -573,62 +573,61 @@ var file_headscale_v1_routes_proto_rawDesc = []byte{
 | 
			
		||||
	0x6f, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x68, 0x65, 0x61,
 | 
			
		||||
	0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
 | 
			
		||||
	0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73,
 | 
			
		||||
	0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x68, 0x65, 0x61, 0x64,
 | 
			
		||||
	0x73, 0x63, 0x61, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65,
 | 
			
		||||
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xea, 0x02, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x74, 0x65,
 | 
			
		||||
	0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64,
 | 
			
		||||
	0x12, 0x2f, 0x0a, 0x07, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
 | 
			
		||||
	0x0b, 0x32, 0x15, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31,
 | 
			
		||||
	0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x52, 0x07, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e,
 | 
			
		||||
	0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28,
 | 
			
		||||
	0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x64, 0x76,
 | 
			
		||||
	0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61,
 | 
			
		||||
	0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61,
 | 
			
		||||
	0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62,
 | 
			
		||||
	0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72,
 | 
			
		||||
	0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x50, 0x72, 0x69, 0x6d, 0x61,
 | 
			
		||||
	0x72, 0x79, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74,
 | 
			
		||||
	0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
 | 
			
		||||
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
 | 
			
		||||
	0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a,
 | 
			
		||||
	0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28,
 | 
			
		||||
	0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
 | 
			
		||||
	0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75,
 | 
			
		||||
	0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65,
 | 
			
		||||
	0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
 | 
			
		||||
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
 | 
			
		||||
	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65,
 | 
			
		||||
	0x64, 0x41, 0x74, 0x22, 0x12, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73,
 | 
			
		||||
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x40, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x6f,
 | 
			
		||||
	0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06,
 | 
			
		||||
	0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x68,
 | 
			
		||||
	0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x74,
 | 
			
		||||
	0x65, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x22, 0x2f, 0x0a, 0x12, 0x45, 0x6e, 0x61,
 | 
			
		||||
	0x62, 0x6c, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
 | 
			
		||||
	0x19, 0x0a, 0x08, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
 | 
			
		||||
	0x04, 0x52, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x49, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x45, 0x6e,
 | 
			
		||||
	0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
 | 
			
		||||
	0x65, 0x22, 0x30, 0x0a, 0x13, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x75, 0x74,
 | 
			
		||||
	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x6f, 0x75, 0x74,
 | 
			
		||||
	0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x72, 0x6f, 0x75, 0x74,
 | 
			
		||||
	0x65, 0x49, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f,
 | 
			
		||||
	0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x0a, 0x17, 0x47,
 | 
			
		||||
	0x65, 0x74, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52,
 | 
			
		||||
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e,
 | 
			
		||||
	0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x61, 0x63, 0x68,
 | 
			
		||||
	0x69, 0x6e, 0x65, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x68,
 | 
			
		||||
	0x69, 0x6e, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
 | 
			
		||||
	0x65, 0x12, 0x2b, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
 | 
			
		||||
	0x0b, 0x32, 0x13, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31,
 | 
			
		||||
	0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x22, 0x2f,
 | 
			
		||||
	0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71,
 | 
			
		||||
	0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x69, 0x64,
 | 
			
		||||
	0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x49, 0x64, 0x22,
 | 
			
		||||
	0x15, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65,
 | 
			
		||||
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x29, 0x5a, 0x27, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
 | 
			
		||||
	0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6a, 0x75, 0x61, 0x6e, 0x66, 0x6f, 0x6e, 0x74, 0x2f, 0x68, 0x65,
 | 
			
		||||
	0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x76,
 | 
			
		||||
	0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 | 
			
		||||
	0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x68, 0x65, 0x61, 0x64,
 | 
			
		||||
	0x73, 0x63, 0x61, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72,
 | 
			
		||||
	0x6f, 0x74, 0x6f, 0x22, 0xe1, 0x02, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x0e, 0x0a,
 | 
			
		||||
	0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x26, 0x0a,
 | 
			
		||||
	0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x68, 0x65,
 | 
			
		||||
	0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52,
 | 
			
		||||
	0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18,
 | 
			
		||||
	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x1e, 0x0a,
 | 
			
		||||
	0x0a, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28,
 | 
			
		||||
	0x08, 0x52, 0x0a, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x12, 0x18, 0x0a,
 | 
			
		||||
	0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07,
 | 
			
		||||
	0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x70, 0x72,
 | 
			
		||||
	0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x50,
 | 
			
		||||
	0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
 | 
			
		||||
	0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
 | 
			
		||||
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
 | 
			
		||||
	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41,
 | 
			
		||||
	0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18,
 | 
			
		||||
	0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
 | 
			
		||||
	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
 | 
			
		||||
	0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a,
 | 
			
		||||
	0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b,
 | 
			
		||||
	0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
 | 
			
		||||
	0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x64, 0x65,
 | 
			
		||||
	0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x12, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x6f,
 | 
			
		||||
	0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x40, 0x0a, 0x11, 0x47,
 | 
			
		||||
	0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
 | 
			
		||||
	0x12, 0x2b, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
 | 
			
		||||
	0x32, 0x13, 0x2e, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e,
 | 
			
		||||
	0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x22, 0x2f, 0x0a,
 | 
			
		||||
	0x12, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
 | 
			
		||||
	0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18,
 | 
			
		||||
	0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x49, 0x64, 0x22, 0x15,
 | 
			
		||||
	0x0a, 0x13, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73,
 | 
			
		||||
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x0a, 0x13, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65,
 | 
			
		||||
	0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08,
 | 
			
		||||
	0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07,
 | 
			
		||||
	0x72, 0x6f, 0x75, 0x74, 0x65, 0x49, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x44, 0x69, 0x73, 0x61, 0x62,
 | 
			
		||||
	0x6c, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
 | 
			
		||||
	0x2f, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73,
 | 
			
		||||
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f,
 | 
			
		||||
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64,
 | 
			
		||||
	0x22, 0x44, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65,
 | 
			
		||||
	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x72, 0x6f, 0x75,
 | 
			
		||||
	0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x68, 0x65, 0x61, 0x64,
 | 
			
		||||
	0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x06,
 | 
			
		||||
	0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x22, 0x2f, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
 | 
			
		||||
	0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08,
 | 
			
		||||
	0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07,
 | 
			
		||||
	0x72, 0x6f, 0x75, 0x74, 0x65, 0x49, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74,
 | 
			
		||||
	0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x29,
 | 
			
		||||
	0x5a, 0x27, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6a, 0x75, 0x61,
 | 
			
		||||
	0x6e, 0x66, 0x6f, 0x6e, 0x74, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2f,
 | 
			
		||||
	0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
 | 
			
		||||
	0x33,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
@ -645,27 +644,27 @@ func file_headscale_v1_routes_proto_rawDescGZIP() []byte {
 | 
			
		||||
 | 
			
		||||
var file_headscale_v1_routes_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
 | 
			
		||||
var file_headscale_v1_routes_proto_goTypes = []interface{}{
 | 
			
		||||
	(*Route)(nil),                    // 0: headscale.v1.Route
 | 
			
		||||
	(*GetRoutesRequest)(nil),         // 1: headscale.v1.GetRoutesRequest
 | 
			
		||||
	(*GetRoutesResponse)(nil),        // 2: headscale.v1.GetRoutesResponse
 | 
			
		||||
	(*EnableRouteRequest)(nil),       // 3: headscale.v1.EnableRouteRequest
 | 
			
		||||
	(*EnableRouteResponse)(nil),      // 4: headscale.v1.EnableRouteResponse
 | 
			
		||||
	(*DisableRouteRequest)(nil),      // 5: headscale.v1.DisableRouteRequest
 | 
			
		||||
	(*DisableRouteResponse)(nil),     // 6: headscale.v1.DisableRouteResponse
 | 
			
		||||
	(*GetMachineRoutesRequest)(nil),  // 7: headscale.v1.GetMachineRoutesRequest
 | 
			
		||||
	(*GetMachineRoutesResponse)(nil), // 8: headscale.v1.GetMachineRoutesResponse
 | 
			
		||||
	(*DeleteRouteRequest)(nil),       // 9: headscale.v1.DeleteRouteRequest
 | 
			
		||||
	(*DeleteRouteResponse)(nil),      // 10: headscale.v1.DeleteRouteResponse
 | 
			
		||||
	(*Machine)(nil),                  // 11: headscale.v1.Machine
 | 
			
		||||
	(*timestamppb.Timestamp)(nil),    // 12: google.protobuf.Timestamp
 | 
			
		||||
	(*Route)(nil),                 // 0: headscale.v1.Route
 | 
			
		||||
	(*GetRoutesRequest)(nil),      // 1: headscale.v1.GetRoutesRequest
 | 
			
		||||
	(*GetRoutesResponse)(nil),     // 2: headscale.v1.GetRoutesResponse
 | 
			
		||||
	(*EnableRouteRequest)(nil),    // 3: headscale.v1.EnableRouteRequest
 | 
			
		||||
	(*EnableRouteResponse)(nil),   // 4: headscale.v1.EnableRouteResponse
 | 
			
		||||
	(*DisableRouteRequest)(nil),   // 5: headscale.v1.DisableRouteRequest
 | 
			
		||||
	(*DisableRouteResponse)(nil),  // 6: headscale.v1.DisableRouteResponse
 | 
			
		||||
	(*GetNodeRoutesRequest)(nil),  // 7: headscale.v1.GetNodeRoutesRequest
 | 
			
		||||
	(*GetNodeRoutesResponse)(nil), // 8: headscale.v1.GetNodeRoutesResponse
 | 
			
		||||
	(*DeleteRouteRequest)(nil),    // 9: headscale.v1.DeleteRouteRequest
 | 
			
		||||
	(*DeleteRouteResponse)(nil),   // 10: headscale.v1.DeleteRouteResponse
 | 
			
		||||
	(*Node)(nil),                  // 11: headscale.v1.Node
 | 
			
		||||
	(*timestamppb.Timestamp)(nil), // 12: google.protobuf.Timestamp
 | 
			
		||||
}
 | 
			
		||||
var file_headscale_v1_routes_proto_depIdxs = []int32{
 | 
			
		||||
	11, // 0: headscale.v1.Route.machine:type_name -> headscale.v1.Machine
 | 
			
		||||
	11, // 0: headscale.v1.Route.node:type_name -> headscale.v1.Node
 | 
			
		||||
	12, // 1: headscale.v1.Route.created_at:type_name -> google.protobuf.Timestamp
 | 
			
		||||
	12, // 2: headscale.v1.Route.updated_at:type_name -> google.protobuf.Timestamp
 | 
			
		||||
	12, // 3: headscale.v1.Route.deleted_at:type_name -> google.protobuf.Timestamp
 | 
			
		||||
	0,  // 4: headscale.v1.GetRoutesResponse.routes:type_name -> headscale.v1.Route
 | 
			
		||||
	0,  // 5: headscale.v1.GetMachineRoutesResponse.routes:type_name -> headscale.v1.Route
 | 
			
		||||
	0,  // 5: headscale.v1.GetNodeRoutesResponse.routes:type_name -> headscale.v1.Route
 | 
			
		||||
	6,  // [6:6] is the sub-list for method output_type
 | 
			
		||||
	6,  // [6:6] is the sub-list for method input_type
 | 
			
		||||
	6,  // [6:6] is the sub-list for extension type_name
 | 
			
		||||
@ -678,7 +677,7 @@ func file_headscale_v1_routes_proto_init() {
 | 
			
		||||
	if File_headscale_v1_routes_proto != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	file_headscale_v1_machine_proto_init()
 | 
			
		||||
	file_headscale_v1_node_proto_init()
 | 
			
		||||
	if !protoimpl.UnsafeEnabled {
 | 
			
		||||
		file_headscale_v1_routes_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*Route); i {
 | 
			
		||||
@ -765,7 +764,7 @@ func file_headscale_v1_routes_proto_init() {
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_headscale_v1_routes_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*GetMachineRoutesRequest); i {
 | 
			
		||||
			switch v := v.(*GetNodeRoutesRequest); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
@ -777,7 +776,7 @@ func file_headscale_v1_routes_proto_init() {
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_headscale_v1_routes_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*GetMachineRoutesResponse); i {
 | 
			
		||||
			switch v := v.(*GetNodeRoutesResponse); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
// Code generated by protoc-gen-go. DO NOT EDIT.
 | 
			
		||||
// versions:
 | 
			
		||||
// 	protoc-gen-go v1.28.1
 | 
			
		||||
// 	protoc-gen-go v1.29.1
 | 
			
		||||
// 	protoc        (unknown)
 | 
			
		||||
// source: headscale/v1/user.proto
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -101,15 +101,15 @@
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "/api/v1/debug/machine": {
 | 
			
		||||
    "/api/v1/debug/node": {
 | 
			
		||||
      "post": {
 | 
			
		||||
        "summary": "--- Machine start ---",
 | 
			
		||||
        "operationId": "HeadscaleService_DebugCreateMachine",
 | 
			
		||||
        "summary": "--- Node start ---",
 | 
			
		||||
        "operationId": "HeadscaleService_DebugCreateNode",
 | 
			
		||||
        "responses": {
 | 
			
		||||
          "200": {
 | 
			
		||||
            "description": "A successful response.",
 | 
			
		||||
            "schema": {
 | 
			
		||||
              "$ref": "#/definitions/v1DebugCreateMachineResponse"
 | 
			
		||||
              "$ref": "#/definitions/v1DebugCreateNodeResponse"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          "default": {
 | 
			
		||||
@ -125,7 +125,7 @@
 | 
			
		||||
            "in": "body",
 | 
			
		||||
            "required": true,
 | 
			
		||||
            "schema": {
 | 
			
		||||
              "$ref": "#/definitions/v1DebugCreateMachineRequest"
 | 
			
		||||
              "$ref": "#/definitions/v1DebugCreateNodeRequest"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ],
 | 
			
		||||
@ -134,14 +134,14 @@
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "/api/v1/machine": {
 | 
			
		||||
    "/api/v1/node": {
 | 
			
		||||
      "get": {
 | 
			
		||||
        "operationId": "HeadscaleService_ListMachines",
 | 
			
		||||
        "operationId": "HeadscaleService_ListNodes",
 | 
			
		||||
        "responses": {
 | 
			
		||||
          "200": {
 | 
			
		||||
            "description": "A successful response.",
 | 
			
		||||
            "schema": {
 | 
			
		||||
              "$ref": "#/definitions/v1ListMachinesResponse"
 | 
			
		||||
              "$ref": "#/definitions/v1ListNodesResponse"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          "default": {
 | 
			
		||||
@ -164,14 +164,14 @@
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "/api/v1/machine/register": {
 | 
			
		||||
    "/api/v1/node/register": {
 | 
			
		||||
      "post": {
 | 
			
		||||
        "operationId": "HeadscaleService_RegisterMachine",
 | 
			
		||||
        "operationId": "HeadscaleService_RegisterNode",
 | 
			
		||||
        "responses": {
 | 
			
		||||
          "200": {
 | 
			
		||||
            "description": "A successful response.",
 | 
			
		||||
            "schema": {
 | 
			
		||||
              "$ref": "#/definitions/v1RegisterMachineResponse"
 | 
			
		||||
              "$ref": "#/definitions/v1RegisterNodeResponse"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          "default": {
 | 
			
		||||
@ -200,14 +200,14 @@
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "/api/v1/machine/{machineId}": {
 | 
			
		||||
    "/api/v1/node/{nodeId}": {
 | 
			
		||||
      "get": {
 | 
			
		||||
        "operationId": "HeadscaleService_GetMachine",
 | 
			
		||||
        "operationId": "HeadscaleService_GetNode",
 | 
			
		||||
        "responses": {
 | 
			
		||||
          "200": {
 | 
			
		||||
            "description": "A successful response.",
 | 
			
		||||
            "schema": {
 | 
			
		||||
              "$ref": "#/definitions/v1GetMachineResponse"
 | 
			
		||||
              "$ref": "#/definitions/v1GetNodeResponse"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          "default": {
 | 
			
		||||
@ -219,7 +219,7 @@
 | 
			
		||||
        },
 | 
			
		||||
        "parameters": [
 | 
			
		||||
          {
 | 
			
		||||
            "name": "machineId",
 | 
			
		||||
            "name": "nodeId",
 | 
			
		||||
            "in": "path",
 | 
			
		||||
            "required": true,
 | 
			
		||||
            "type": "string",
 | 
			
		||||
@ -231,12 +231,12 @@
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "delete": {
 | 
			
		||||
        "operationId": "HeadscaleService_DeleteMachine",
 | 
			
		||||
        "operationId": "HeadscaleService_DeleteNode",
 | 
			
		||||
        "responses": {
 | 
			
		||||
          "200": {
 | 
			
		||||
            "description": "A successful response.",
 | 
			
		||||
            "schema": {
 | 
			
		||||
              "$ref": "#/definitions/v1DeleteMachineResponse"
 | 
			
		||||
              "$ref": "#/definitions/v1DeleteNodeResponse"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          "default": {
 | 
			
		||||
@ -248,7 +248,7 @@
 | 
			
		||||
        },
 | 
			
		||||
        "parameters": [
 | 
			
		||||
          {
 | 
			
		||||
            "name": "machineId",
 | 
			
		||||
            "name": "nodeId",
 | 
			
		||||
            "in": "path",
 | 
			
		||||
            "required": true,
 | 
			
		||||
            "type": "string",
 | 
			
		||||
@ -260,14 +260,14 @@
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "/api/v1/machine/{machineId}/expire": {
 | 
			
		||||
    "/api/v1/node/{nodeId}/expire": {
 | 
			
		||||
      "post": {
 | 
			
		||||
        "operationId": "HeadscaleService_ExpireMachine",
 | 
			
		||||
        "operationId": "HeadscaleService_ExpireNode",
 | 
			
		||||
        "responses": {
 | 
			
		||||
          "200": {
 | 
			
		||||
            "description": "A successful response.",
 | 
			
		||||
            "schema": {
 | 
			
		||||
              "$ref": "#/definitions/v1ExpireMachineResponse"
 | 
			
		||||
              "$ref": "#/definitions/v1ExpireNodeResponse"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          "default": {
 | 
			
		||||
@ -279,7 +279,7 @@
 | 
			
		||||
        },
 | 
			
		||||
        "parameters": [
 | 
			
		||||
          {
 | 
			
		||||
            "name": "machineId",
 | 
			
		||||
            "name": "nodeId",
 | 
			
		||||
            "in": "path",
 | 
			
		||||
            "required": true,
 | 
			
		||||
            "type": "string",
 | 
			
		||||
@ -291,14 +291,14 @@
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "/api/v1/machine/{machineId}/rename/{newName}": {
 | 
			
		||||
    "/api/v1/node/{nodeId}/rename/{newName}": {
 | 
			
		||||
      "post": {
 | 
			
		||||
        "operationId": "HeadscaleService_RenameMachine",
 | 
			
		||||
        "operationId": "HeadscaleService_RenameNode",
 | 
			
		||||
        "responses": {
 | 
			
		||||
          "200": {
 | 
			
		||||
            "description": "A successful response.",
 | 
			
		||||
            "schema": {
 | 
			
		||||
              "$ref": "#/definitions/v1RenameMachineResponse"
 | 
			
		||||
              "$ref": "#/definitions/v1RenameNodeResponse"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          "default": {
 | 
			
		||||
@ -310,7 +310,7 @@
 | 
			
		||||
        },
 | 
			
		||||
        "parameters": [
 | 
			
		||||
          {
 | 
			
		||||
            "name": "machineId",
 | 
			
		||||
            "name": "nodeId",
 | 
			
		||||
            "in": "path",
 | 
			
		||||
            "required": true,
 | 
			
		||||
            "type": "string",
 | 
			
		||||
@ -328,14 +328,14 @@
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "/api/v1/machine/{machineId}/routes": {
 | 
			
		||||
    "/api/v1/node/{nodeId}/routes": {
 | 
			
		||||
      "get": {
 | 
			
		||||
        "operationId": "HeadscaleService_GetMachineRoutes",
 | 
			
		||||
        "operationId": "HeadscaleService_GetNodeRoutes",
 | 
			
		||||
        "responses": {
 | 
			
		||||
          "200": {
 | 
			
		||||
            "description": "A successful response.",
 | 
			
		||||
            "schema": {
 | 
			
		||||
              "$ref": "#/definitions/v1GetMachineRoutesResponse"
 | 
			
		||||
              "$ref": "#/definitions/v1GetNodeRoutesResponse"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          "default": {
 | 
			
		||||
@ -347,7 +347,7 @@
 | 
			
		||||
        },
 | 
			
		||||
        "parameters": [
 | 
			
		||||
          {
 | 
			
		||||
            "name": "machineId",
 | 
			
		||||
            "name": "nodeId",
 | 
			
		||||
            "in": "path",
 | 
			
		||||
            "required": true,
 | 
			
		||||
            "type": "string",
 | 
			
		||||
@ -359,7 +359,7 @@
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "/api/v1/machine/{machineId}/tags": {
 | 
			
		||||
    "/api/v1/node/{nodeId}/tags": {
 | 
			
		||||
      "post": {
 | 
			
		||||
        "operationId": "HeadscaleService_SetTags",
 | 
			
		||||
        "responses": {
 | 
			
		||||
@ -378,7 +378,7 @@
 | 
			
		||||
        },
 | 
			
		||||
        "parameters": [
 | 
			
		||||
          {
 | 
			
		||||
            "name": "machineId",
 | 
			
		||||
            "name": "nodeId",
 | 
			
		||||
            "in": "path",
 | 
			
		||||
            "required": true,
 | 
			
		||||
            "type": "string",
 | 
			
		||||
@ -406,14 +406,14 @@
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "/api/v1/machine/{machineId}/user": {
 | 
			
		||||
    "/api/v1/node/{nodeId}/user": {
 | 
			
		||||
      "post": {
 | 
			
		||||
        "operationId": "HeadscaleService_MoveMachine",
 | 
			
		||||
        "operationId": "HeadscaleService_MoveNode",
 | 
			
		||||
        "responses": {
 | 
			
		||||
          "200": {
 | 
			
		||||
            "description": "A successful response.",
 | 
			
		||||
            "schema": {
 | 
			
		||||
              "$ref": "#/definitions/v1MoveMachineResponse"
 | 
			
		||||
              "$ref": "#/definitions/v1MoveNodeResponse"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          "default": {
 | 
			
		||||
@ -425,7 +425,7 @@
 | 
			
		||||
        },
 | 
			
		||||
        "parameters": [
 | 
			
		||||
          {
 | 
			
		||||
            "name": "machineId",
 | 
			
		||||
            "name": "nodeId",
 | 
			
		||||
            "in": "path",
 | 
			
		||||
            "required": true,
 | 
			
		||||
            "type": "string",
 | 
			
		||||
@ -917,7 +917,7 @@
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "v1DebugCreateMachineRequest": {
 | 
			
		||||
    "v1DebugCreateNodeRequest": {
 | 
			
		||||
      "type": "object",
 | 
			
		||||
      "properties": {
 | 
			
		||||
        "user": {
 | 
			
		||||
@ -937,15 +937,15 @@
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "v1DebugCreateMachineResponse": {
 | 
			
		||||
    "v1DebugCreateNodeResponse": {
 | 
			
		||||
      "type": "object",
 | 
			
		||||
      "properties": {
 | 
			
		||||
        "machine": {
 | 
			
		||||
          "$ref": "#/definitions/v1Machine"
 | 
			
		||||
        "node": {
 | 
			
		||||
          "$ref": "#/definitions/v1Node"
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "v1DeleteMachineResponse": {
 | 
			
		||||
    "v1DeleteNodeResponse": {
 | 
			
		||||
      "type": "object"
 | 
			
		||||
    },
 | 
			
		||||
    "v1DeleteRouteResponse": {
 | 
			
		||||
@ -971,11 +971,11 @@
 | 
			
		||||
    "v1ExpireApiKeyResponse": {
 | 
			
		||||
      "type": "object"
 | 
			
		||||
    },
 | 
			
		||||
    "v1ExpireMachineResponse": {
 | 
			
		||||
    "v1ExpireNodeResponse": {
 | 
			
		||||
      "type": "object",
 | 
			
		||||
      "properties": {
 | 
			
		||||
        "machine": {
 | 
			
		||||
          "$ref": "#/definitions/v1Machine"
 | 
			
		||||
        "node": {
 | 
			
		||||
          "$ref": "#/definitions/v1Node"
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
@ -993,15 +993,15 @@
 | 
			
		||||
    "v1ExpirePreAuthKeyResponse": {
 | 
			
		||||
      "type": "object"
 | 
			
		||||
    },
 | 
			
		||||
    "v1GetMachineResponse": {
 | 
			
		||||
    "v1GetNodeResponse": {
 | 
			
		||||
      "type": "object",
 | 
			
		||||
      "properties": {
 | 
			
		||||
        "machine": {
 | 
			
		||||
          "$ref": "#/definitions/v1Machine"
 | 
			
		||||
        "node": {
 | 
			
		||||
          "$ref": "#/definitions/v1Node"
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "v1GetMachineRoutesResponse": {
 | 
			
		||||
    "v1GetNodeRoutesResponse": {
 | 
			
		||||
      "type": "object",
 | 
			
		||||
      "properties": {
 | 
			
		||||
        "routes": {
 | 
			
		||||
@ -1042,13 +1042,13 @@
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "v1ListMachinesResponse": {
 | 
			
		||||
    "v1ListNodesResponse": {
 | 
			
		||||
      "type": "object",
 | 
			
		||||
      "properties": {
 | 
			
		||||
        "machines": {
 | 
			
		||||
        "nodes": {
 | 
			
		||||
          "type": "array",
 | 
			
		||||
          "items": {
 | 
			
		||||
            "$ref": "#/definitions/v1Machine"
 | 
			
		||||
            "$ref": "#/definitions/v1Node"
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
@ -1075,7 +1075,15 @@
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "v1Machine": {
 | 
			
		||||
    "v1MoveNodeResponse": {
 | 
			
		||||
      "type": "object",
 | 
			
		||||
      "properties": {
 | 
			
		||||
        "node": {
 | 
			
		||||
          "$ref": "#/definitions/v1Node"
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "v1Node": {
 | 
			
		||||
      "type": "object",
 | 
			
		||||
      "properties": {
 | 
			
		||||
        "id": {
 | 
			
		||||
@ -1151,14 +1159,6 @@
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "v1MoveMachineResponse": {
 | 
			
		||||
      "type": "object",
 | 
			
		||||
      "properties": {
 | 
			
		||||
        "machine": {
 | 
			
		||||
          "$ref": "#/definitions/v1Machine"
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "v1PreAuthKey": {
 | 
			
		||||
      "type": "object",
 | 
			
		||||
      "properties": {
 | 
			
		||||
@ -1196,14 +1196,6 @@
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "v1RegisterMachineResponse": {
 | 
			
		||||
      "type": "object",
 | 
			
		||||
      "properties": {
 | 
			
		||||
        "machine": {
 | 
			
		||||
          "$ref": "#/definitions/v1Machine"
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "v1RegisterMethod": {
 | 
			
		||||
      "type": "string",
 | 
			
		||||
      "enum": [
 | 
			
		||||
@ -1214,11 +1206,19 @@
 | 
			
		||||
      ],
 | 
			
		||||
      "default": "REGISTER_METHOD_UNSPECIFIED"
 | 
			
		||||
    },
 | 
			
		||||
    "v1RenameMachineResponse": {
 | 
			
		||||
    "v1RegisterNodeResponse": {
 | 
			
		||||
      "type": "object",
 | 
			
		||||
      "properties": {
 | 
			
		||||
        "machine": {
 | 
			
		||||
          "$ref": "#/definitions/v1Machine"
 | 
			
		||||
        "node": {
 | 
			
		||||
          "$ref": "#/definitions/v1Node"
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "v1RenameNodeResponse": {
 | 
			
		||||
      "type": "object",
 | 
			
		||||
      "properties": {
 | 
			
		||||
        "node": {
 | 
			
		||||
          "$ref": "#/definitions/v1Node"
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
@ -1237,8 +1237,8 @@
 | 
			
		||||
          "type": "string",
 | 
			
		||||
          "format": "uint64"
 | 
			
		||||
        },
 | 
			
		||||
        "machine": {
 | 
			
		||||
          "$ref": "#/definitions/v1Machine"
 | 
			
		||||
        "node": {
 | 
			
		||||
          "$ref": "#/definitions/v1Node"
 | 
			
		||||
        },
 | 
			
		||||
        "prefix": {
 | 
			
		||||
          "type": "string"
 | 
			
		||||
@ -1269,8 +1269,8 @@
 | 
			
		||||
    "v1SetTagsResponse": {
 | 
			
		||||
      "type": "object",
 | 
			
		||||
      "properties": {
 | 
			
		||||
        "machine": {
 | 
			
		||||
          "$ref": "#/definitions/v1Machine"
 | 
			
		||||
        "node": {
 | 
			
		||||
          "$ref": "#/definitions/v1Node"
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
{
 | 
			
		||||
  "swagger": "2.0",
 | 
			
		||||
  "info": {
 | 
			
		||||
    "title": "headscale/v1/machine.proto",
 | 
			
		||||
    "title": "headscale/v1/node.proto",
 | 
			
		||||
    "version": "version not set"
 | 
			
		||||
  },
 | 
			
		||||
  "consumes": [
 | 
			
		||||
							
								
								
									
										156
									
								
								grpcv1.go
									
									
									
									
									
								
							
							
						
						
									
										156
									
								
								grpcv1.go
									
									
									
									
									
								
							@ -164,16 +164,16 @@ func (api headscaleV1APIServer) ListPreAuthKeys(
 | 
			
		||||
	return &v1.ListPreAuthKeysResponse{PreAuthKeys: response}, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (api headscaleV1APIServer) RegisterMachine(
 | 
			
		||||
func (api headscaleV1APIServer) RegisterNode(
 | 
			
		||||
	ctx context.Context,
 | 
			
		||||
	request *v1.RegisterMachineRequest,
 | 
			
		||||
) (*v1.RegisterMachineResponse, error) {
 | 
			
		||||
	request *v1.RegisterNodeRequest,
 | 
			
		||||
) (*v1.RegisterNodeResponse, error) {
 | 
			
		||||
	log.Trace().
 | 
			
		||||
		Str("user", request.GetUser()).
 | 
			
		||||
		Str("node_key", request.GetKey()).
 | 
			
		||||
		Msg("Registering machine")
 | 
			
		||||
		Msg("Registering node")
 | 
			
		||||
 | 
			
		||||
	machine, err := api.h.RegisterMachineFromAuthCallback(
 | 
			
		||||
	node, err := api.h.RegisterNodeFromAuthCallback(
 | 
			
		||||
		request.GetKey(),
 | 
			
		||||
		request.GetUser(),
 | 
			
		||||
		nil,
 | 
			
		||||
@ -183,26 +183,26 @@ func (api headscaleV1APIServer) RegisterMachine(
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return &v1.RegisterMachineResponse{Machine: machine.toProto()}, nil
 | 
			
		||||
	return &v1.RegisterNodeResponse{Node: node.toProto()}, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (api headscaleV1APIServer) GetMachine(
 | 
			
		||||
func (api headscaleV1APIServer) GetNode(
 | 
			
		||||
	ctx context.Context,
 | 
			
		||||
	request *v1.GetMachineRequest,
 | 
			
		||||
) (*v1.GetMachineResponse, error) {
 | 
			
		||||
	machine, err := api.h.GetMachineByID(request.GetMachineId())
 | 
			
		||||
	request *v1.GetNodeRequest,
 | 
			
		||||
) (*v1.GetNodeResponse, error) {
 | 
			
		||||
	node, err := api.h.GetNodeByID(request.GetNodeId())
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return &v1.GetMachineResponse{Machine: machine.toProto()}, nil
 | 
			
		||||
	return &v1.GetNodeResponse{Node: node.toProto()}, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (api headscaleV1APIServer) SetTags(
 | 
			
		||||
	ctx context.Context,
 | 
			
		||||
	request *v1.SetTagsRequest,
 | 
			
		||||
) (*v1.SetTagsResponse, error) {
 | 
			
		||||
	machine, err := api.h.GetMachineByID(request.GetMachineId())
 | 
			
		||||
	node, err := api.h.GetNodeByID(request.GetNodeId())
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@ -211,24 +211,24 @@ func (api headscaleV1APIServer) SetTags(
 | 
			
		||||
		err := validateTag(tag)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return &v1.SetTagsResponse{
 | 
			
		||||
				Machine: nil,
 | 
			
		||||
				Node: nil,
 | 
			
		||||
			}, status.Error(codes.InvalidArgument, err.Error())
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err = api.h.SetTags(machine, request.GetTags())
 | 
			
		||||
	err = api.h.SetTags(node, request.GetTags())
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return &v1.SetTagsResponse{
 | 
			
		||||
			Machine: nil,
 | 
			
		||||
			Node: nil,
 | 
			
		||||
		}, status.Error(codes.Internal, err.Error())
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	log.Trace().
 | 
			
		||||
		Str("machine", machine.Hostname).
 | 
			
		||||
		Str("node", node.Hostname).
 | 
			
		||||
		Strs("tags", request.GetTags()).
 | 
			
		||||
		Msg("Changing tags of machine")
 | 
			
		||||
		Msg("Changing tags of node")
 | 
			
		||||
 | 
			
		||||
	return &v1.SetTagsResponse{Machine: machine.toProto()}, nil
 | 
			
		||||
	return &v1.SetTagsResponse{Node: node.toProto()}, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func validateTag(tag string) error {
 | 
			
		||||
@ -244,57 +244,57 @@ func validateTag(tag string) error {
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (api headscaleV1APIServer) DeleteMachine(
 | 
			
		||||
func (api headscaleV1APIServer) DeleteNode(
 | 
			
		||||
	ctx context.Context,
 | 
			
		||||
	request *v1.DeleteMachineRequest,
 | 
			
		||||
) (*v1.DeleteMachineResponse, error) {
 | 
			
		||||
	machine, err := api.h.GetMachineByID(request.GetMachineId())
 | 
			
		||||
	request *v1.DeleteNodeRequest,
 | 
			
		||||
) (*v1.DeleteNodeResponse, error) {
 | 
			
		||||
	node, err := api.h.GetNodeByID(request.GetNodeId())
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err = api.h.DeleteMachine(
 | 
			
		||||
		machine,
 | 
			
		||||
	err = api.h.DeleteNode(
 | 
			
		||||
		node,
 | 
			
		||||
	)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return &v1.DeleteMachineResponse{}, nil
 | 
			
		||||
	return &v1.DeleteNodeResponse{}, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (api headscaleV1APIServer) ExpireMachine(
 | 
			
		||||
func (api headscaleV1APIServer) ExpireNode(
 | 
			
		||||
	ctx context.Context,
 | 
			
		||||
	request *v1.ExpireMachineRequest,
 | 
			
		||||
) (*v1.ExpireMachineResponse, error) {
 | 
			
		||||
	machine, err := api.h.GetMachineByID(request.GetMachineId())
 | 
			
		||||
	request *v1.ExpireNodeRequest,
 | 
			
		||||
) (*v1.ExpireNodeResponse, error) {
 | 
			
		||||
	node, err := api.h.GetNodeByID(request.GetNodeId())
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	api.h.ExpireMachine(
 | 
			
		||||
		machine,
 | 
			
		||||
	api.h.ExpireNode(
 | 
			
		||||
		node,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	log.Trace().
 | 
			
		||||
		Str("machine", machine.Hostname).
 | 
			
		||||
		Time("expiry", *machine.Expiry).
 | 
			
		||||
		Msg("machine expired")
 | 
			
		||||
		Str("node", node.Hostname).
 | 
			
		||||
		Time("expiry", *node.Expiry).
 | 
			
		||||
		Msg("node expired")
 | 
			
		||||
 | 
			
		||||
	return &v1.ExpireMachineResponse{Machine: machine.toProto()}, nil
 | 
			
		||||
	return &v1.ExpireNodeResponse{Node: node.toProto()}, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (api headscaleV1APIServer) RenameMachine(
 | 
			
		||||
func (api headscaleV1APIServer) RenameNode(
 | 
			
		||||
	ctx context.Context,
 | 
			
		||||
	request *v1.RenameMachineRequest,
 | 
			
		||||
) (*v1.RenameMachineResponse, error) {
 | 
			
		||||
	machine, err := api.h.GetMachineByID(request.GetMachineId())
 | 
			
		||||
	request *v1.RenameNodeRequest,
 | 
			
		||||
) (*v1.RenameNodeResponse, error) {
 | 
			
		||||
	node, err := api.h.GetNodeByID(request.GetNodeId())
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err = api.h.RenameMachine(
 | 
			
		||||
		machine,
 | 
			
		||||
	err = api.h.RenameNode(
 | 
			
		||||
		node,
 | 
			
		||||
		request.GetNewName(),
 | 
			
		||||
	)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
@ -302,42 +302,42 @@ func (api headscaleV1APIServer) RenameMachine(
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	log.Trace().
 | 
			
		||||
		Str("machine", machine.Hostname).
 | 
			
		||||
		Str("node", node.Hostname).
 | 
			
		||||
		Str("new_name", request.GetNewName()).
 | 
			
		||||
		Msg("machine renamed")
 | 
			
		||||
		Msg("node renamed")
 | 
			
		||||
 | 
			
		||||
	return &v1.RenameMachineResponse{Machine: machine.toProto()}, nil
 | 
			
		||||
	return &v1.RenameNodeResponse{Node: node.toProto()}, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (api headscaleV1APIServer) ListMachines(
 | 
			
		||||
func (api headscaleV1APIServer) ListNodes(
 | 
			
		||||
	ctx context.Context,
 | 
			
		||||
	request *v1.ListMachinesRequest,
 | 
			
		||||
) (*v1.ListMachinesResponse, error) {
 | 
			
		||||
	request *v1.ListNodesRequest,
 | 
			
		||||
) (*v1.ListNodesResponse, error) {
 | 
			
		||||
	if request.GetUser() != "" {
 | 
			
		||||
		machines, err := api.h.ListMachinesByUser(request.GetUser())
 | 
			
		||||
		nodes, err := api.h.ListNodesByUser(request.GetUser())
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, err
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		response := make([]*v1.Machine, len(machines))
 | 
			
		||||
		for index, machine := range machines {
 | 
			
		||||
			response[index] = machine.toProto()
 | 
			
		||||
		response := make([]*v1.Node, len(nodes))
 | 
			
		||||
		for index, node := range nodes {
 | 
			
		||||
			response[index] = node.toProto()
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return &v1.ListMachinesResponse{Machines: response}, nil
 | 
			
		||||
		return &v1.ListNodesResponse{Nodes: response}, nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	machines, err := api.h.ListMachines()
 | 
			
		||||
	nodes, err := api.h.ListNodes()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	response := make([]*v1.Machine, len(machines))
 | 
			
		||||
	for index, machine := range machines {
 | 
			
		||||
		m := machine.toProto()
 | 
			
		||||
	response := make([]*v1.Node, len(nodes))
 | 
			
		||||
	for index, node := range nodes {
 | 
			
		||||
		m := node.toProto()
 | 
			
		||||
		validTags, invalidTags := getTags(
 | 
			
		||||
			api.h.aclPolicy,
 | 
			
		||||
			machine,
 | 
			
		||||
			node,
 | 
			
		||||
			api.h.cfg.OIDC.StripEmaildomain,
 | 
			
		||||
		)
 | 
			
		||||
		m.InvalidTags = invalidTags
 | 
			
		||||
@ -345,24 +345,24 @@ func (api headscaleV1APIServer) ListMachines(
 | 
			
		||||
		response[index] = m
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return &v1.ListMachinesResponse{Machines: response}, nil
 | 
			
		||||
	return &v1.ListNodesResponse{Nodes: response}, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (api headscaleV1APIServer) MoveMachine(
 | 
			
		||||
func (api headscaleV1APIServer) MoveNode(
 | 
			
		||||
	ctx context.Context,
 | 
			
		||||
	request *v1.MoveMachineRequest,
 | 
			
		||||
) (*v1.MoveMachineResponse, error) {
 | 
			
		||||
	machine, err := api.h.GetMachineByID(request.GetMachineId())
 | 
			
		||||
	request *v1.MoveNodeRequest,
 | 
			
		||||
) (*v1.MoveNodeResponse, error) {
 | 
			
		||||
	node, err := api.h.GetNodeByID(request.GetNodeId())
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err = api.h.SetMachineUser(machine, request.GetUser())
 | 
			
		||||
	err = api.h.SetNodeUser(node, request.GetUser())
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return &v1.MoveMachineResponse{Machine: machine.toProto()}, nil
 | 
			
		||||
	return &v1.MoveNodeResponse{Node: node.toProto()}, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (api headscaleV1APIServer) GetRoutes(
 | 
			
		||||
@ -403,21 +403,21 @@ func (api headscaleV1APIServer) DisableRoute(
 | 
			
		||||
	return &v1.DisableRouteResponse{}, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (api headscaleV1APIServer) GetMachineRoutes(
 | 
			
		||||
func (api headscaleV1APIServer) GetNodeRoutes(
 | 
			
		||||
	ctx context.Context,
 | 
			
		||||
	request *v1.GetMachineRoutesRequest,
 | 
			
		||||
) (*v1.GetMachineRoutesResponse, error) {
 | 
			
		||||
	machine, err := api.h.GetMachineByID(request.GetMachineId())
 | 
			
		||||
	request *v1.GetNodeRoutesRequest,
 | 
			
		||||
) (*v1.GetNodeRoutesResponse, error) {
 | 
			
		||||
	node, err := api.h.GetNodeByID(request.GetNodeId())
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	routes, err := api.h.GetMachineRoutes(machine)
 | 
			
		||||
	routes, err := api.h.GetNodeRoutes(node)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return &v1.GetMachineRoutesResponse{
 | 
			
		||||
	return &v1.GetNodeRoutesResponse{
 | 
			
		||||
		Routes: Routes(routes).toProto(),
 | 
			
		||||
	}, nil
 | 
			
		||||
}
 | 
			
		||||
@ -491,10 +491,10 @@ func (api headscaleV1APIServer) ListApiKeys(
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// The following service calls are for testing and debugging
 | 
			
		||||
func (api headscaleV1APIServer) DebugCreateMachine(
 | 
			
		||||
func (api headscaleV1APIServer) DebugCreateNode(
 | 
			
		||||
	ctx context.Context,
 | 
			
		||||
	request *v1.DebugCreateMachineRequest,
 | 
			
		||||
) (*v1.DebugCreateMachineResponse, error) {
 | 
			
		||||
	request *v1.DebugCreateNodeRequest,
 | 
			
		||||
) (*v1.DebugCreateNodeResponse, error) {
 | 
			
		||||
	user, err := api.h.GetUser(request.GetUser())
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
@ -514,7 +514,7 @@ func (api headscaleV1APIServer) DebugCreateMachine(
 | 
			
		||||
	hostinfo := tailcfg.Hostinfo{
 | 
			
		||||
		RoutableIPs: routes,
 | 
			
		||||
		OS:          "TestOS",
 | 
			
		||||
		Hostname:    "DebugTestMachine",
 | 
			
		||||
		Hostname:    "DebugTestNode",
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	givenName, err := api.h.GenerateGivenName(request.GetKey(), request.GetName())
 | 
			
		||||
@ -522,7 +522,7 @@ func (api headscaleV1APIServer) DebugCreateMachine(
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	newMachine := Machine{
 | 
			
		||||
	newNode := Node{
 | 
			
		||||
		MachineKey: request.GetKey(),
 | 
			
		||||
		Hostname:   request.GetName(),
 | 
			
		||||
		GivenName:  givenName,
 | 
			
		||||
@ -538,16 +538,16 @@ func (api headscaleV1APIServer) DebugCreateMachine(
 | 
			
		||||
	nodeKey := key.NodePublic{}
 | 
			
		||||
	err = nodeKey.UnmarshalText([]byte(request.GetKey()))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Panic().Msg("can not add machine for debug. invalid node key")
 | 
			
		||||
		log.Panic().Msg("can not add node for debug. invalid node key")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	api.h.registrationCache.Set(
 | 
			
		||||
		NodePublicKeyStripPrefix(nodeKey),
 | 
			
		||||
		newMachine,
 | 
			
		||||
		newNode,
 | 
			
		||||
		registerCacheExpiration,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	return &v1.DebugCreateMachineResponse{Machine: newMachine.toProto()}, nil
 | 
			
		||||
	return &v1.DebugCreateNodeResponse{Node: newNode.toProto()}, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (api headscaleV1APIServer) mustEmbedUnimplementedHeadscaleServiceServer() {}
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@ import "google/api/annotations.proto";
 | 
			
		||||
 | 
			
		||||
import "headscale/v1/user.proto";
 | 
			
		||||
import "headscale/v1/preauthkey.proto";
 | 
			
		||||
import "headscale/v1/machine.proto";
 | 
			
		||||
import "headscale/v1/node.proto";
 | 
			
		||||
import "headscale/v1/routes.proto";
 | 
			
		||||
import "headscale/v1/apikey.proto";
 | 
			
		||||
// import "headscale/v1/device.proto";
 | 
			
		||||
@ -67,63 +67,63 @@ service HeadscaleService {
 | 
			
		||||
    }
 | 
			
		||||
    // --- PreAuthKeys end ---
 | 
			
		||||
 | 
			
		||||
    // --- Machine start ---
 | 
			
		||||
    rpc DebugCreateMachine(DebugCreateMachineRequest) returns(DebugCreateMachineResponse) {
 | 
			
		||||
    // --- Node start ---
 | 
			
		||||
    rpc DebugCreateNode(DebugCreateNodeRequest) returns(DebugCreateNodeResponse) {
 | 
			
		||||
        option(google.api.http) = {
 | 
			
		||||
            post : "/api/v1/debug/machine"
 | 
			
		||||
            post : "/api/v1/debug/node"
 | 
			
		||||
            body : "*"
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    rpc GetMachine(GetMachineRequest) returns(GetMachineResponse) {
 | 
			
		||||
    rpc GetNode(GetNodeRequest) returns(GetNodeResponse) {
 | 
			
		||||
        option(google.api.http) = {
 | 
			
		||||
            get : "/api/v1/machine/{machine_id}"
 | 
			
		||||
            get : "/api/v1/node/{node_id}"
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    rpc SetTags(SetTagsRequest) returns(SetTagsResponse) {
 | 
			
		||||
        option(google.api.http) = {
 | 
			
		||||
            post : "/api/v1/machine/{machine_id}/tags"
 | 
			
		||||
            post : "/api/v1/node/{node_id}/tags"
 | 
			
		||||
            body : "*"
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    rpc RegisterMachine(RegisterMachineRequest) returns(RegisterMachineResponse) {
 | 
			
		||||
    rpc RegisterNode(RegisterNodeRequest) returns(RegisterNodeResponse) {
 | 
			
		||||
        option(google.api.http) = {
 | 
			
		||||
            post : "/api/v1/machine/register"
 | 
			
		||||
            post : "/api/v1/node/register"
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    rpc DeleteMachine(DeleteMachineRequest) returns(DeleteMachineResponse) {
 | 
			
		||||
    rpc DeleteNode(DeleteNodeRequest) returns(DeleteNodeResponse) {
 | 
			
		||||
        option(google.api.http) = {
 | 
			
		||||
            delete : "/api/v1/machine/{machine_id}"
 | 
			
		||||
            delete : "/api/v1/node/{node_id}"
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    rpc ExpireMachine(ExpireMachineRequest) returns(ExpireMachineResponse) {
 | 
			
		||||
    rpc ExpireNode(ExpireNodeRequest) returns(ExpireNodeResponse) {
 | 
			
		||||
        option(google.api.http) = {
 | 
			
		||||
            post : "/api/v1/machine/{machine_id}/expire"
 | 
			
		||||
            post : "/api/v1/node/{node_id}/expire"
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    rpc RenameMachine(RenameMachineRequest) returns(RenameMachineResponse) {
 | 
			
		||||
    rpc RenameNode(RenameNodeRequest) returns(RenameNodeResponse) {
 | 
			
		||||
        option(google.api.http) = {
 | 
			
		||||
            post : "/api/v1/machine/{machine_id}/rename/{new_name}"
 | 
			
		||||
            post : "/api/v1/node/{node_id}/rename/{new_name}"
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    rpc ListMachines(ListMachinesRequest) returns(ListMachinesResponse) {
 | 
			
		||||
    rpc ListNodes(ListNodesRequest) returns(ListNodesResponse) {
 | 
			
		||||
        option(google.api.http) = {
 | 
			
		||||
            get : "/api/v1/machine"
 | 
			
		||||
            get : "/api/v1/node"
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    rpc MoveMachine(MoveMachineRequest) returns(MoveMachineResponse) {
 | 
			
		||||
    rpc MoveNode(MoveNodeRequest) returns(MoveNodeResponse) {
 | 
			
		||||
        option(google.api.http) = {
 | 
			
		||||
            post : "/api/v1/machine/{machine_id}/user"
 | 
			
		||||
            post : "/api/v1/node/{node_id}/user"
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
    // --- Machine end ---
 | 
			
		||||
    // --- Node end ---
 | 
			
		||||
 | 
			
		||||
    // --- Route start ---
 | 
			
		||||
    rpc GetRoutes(GetRoutesRequest) returns(GetRoutesResponse) {
 | 
			
		||||
@ -144,9 +144,9 @@ service HeadscaleService {
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    rpc GetMachineRoutes(GetMachineRoutesRequest) returns(GetMachineRoutesResponse) {
 | 
			
		||||
    rpc GetNodeRoutes(GetNodeRoutesRequest) returns(GetNodeRoutesResponse) {
 | 
			
		||||
        option(google.api.http) = {
 | 
			
		||||
            get : "/api/v1/machine/{machine_id}/routes"
 | 
			
		||||
            get : "/api/v1/node/{node_id}/routes"
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										126
									
								
								proto/headscale/v1/node.proto
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										126
									
								
								proto/headscale/v1/node.proto
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,126 @@
 | 
			
		||||
syntax = "proto3";
 | 
			
		||||
package headscale.v1;
 | 
			
		||||
option  go_package = "github.com/juanfont/headscale/gen/go/v1";
 | 
			
		||||
 | 
			
		||||
import "google/protobuf/timestamp.proto";
 | 
			
		||||
import "headscale/v1/user.proto";
 | 
			
		||||
import "headscale/v1/preauthkey.proto";
 | 
			
		||||
 | 
			
		||||
enum RegisterMethod {
 | 
			
		||||
    REGISTER_METHOD_UNSPECIFIED = 0;
 | 
			
		||||
    REGISTER_METHOD_AUTH_KEY    = 1;
 | 
			
		||||
    REGISTER_METHOD_CLI         = 2;
 | 
			
		||||
    REGISTER_METHOD_OIDC        = 3;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message Node {
 | 
			
		||||
    uint64          id           = 1;
 | 
			
		||||
    string          machine_key  = 2;
 | 
			
		||||
    string          node_key     = 3;
 | 
			
		||||
    string          disco_key    = 4;
 | 
			
		||||
    repeated string ip_addresses = 5;
 | 
			
		||||
    string          name         = 6;
 | 
			
		||||
    User user          = 7;
 | 
			
		||||
 | 
			
		||||
    google.protobuf.Timestamp last_seen              = 8;
 | 
			
		||||
    google.protobuf.Timestamp last_successful_update = 9;
 | 
			
		||||
    google.protobuf.Timestamp expiry                 = 10;
 | 
			
		||||
 | 
			
		||||
    PreAuthKey pre_auth_key = 11;
 | 
			
		||||
 | 
			
		||||
    google.protobuf.Timestamp created_at = 12;
 | 
			
		||||
 | 
			
		||||
    RegisterMethod register_method = 13;
 | 
			
		||||
 | 
			
		||||
    reserved 14 to 17;
 | 
			
		||||
    // google.protobuf.Timestamp updated_at = 14;
 | 
			
		||||
    // google.protobuf.Timestamp deleted_at = 15;
 | 
			
		||||
 | 
			
		||||
    // bytes host_info      = 15;
 | 
			
		||||
    // bytes endpoints      = 16;
 | 
			
		||||
    // bytes enabled_routes = 17;
 | 
			
		||||
 | 
			
		||||
    repeated string forced_tags  = 18;
 | 
			
		||||
    repeated string invalid_tags = 19;
 | 
			
		||||
    repeated string valid_tags   = 20;
 | 
			
		||||
    string          given_name   = 21;
 | 
			
		||||
    bool            online       = 22;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message RegisterNodeRequest {
 | 
			
		||||
    string user = 1;
 | 
			
		||||
    string key       = 2;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message RegisterNodeResponse {
 | 
			
		||||
    Node node = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message GetNodeRequest {
 | 
			
		||||
    uint64 node_id = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message GetNodeResponse {
 | 
			
		||||
    Node node = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message SetTagsRequest {
 | 
			
		||||
    uint64          node_id = 1;
 | 
			
		||||
    repeated string tags       = 2;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message SetTagsResponse {
 | 
			
		||||
    Node node = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message DeleteNodeRequest {
 | 
			
		||||
    uint64 node_id = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message DeleteNodeResponse {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message ExpireNodeRequest {
 | 
			
		||||
    uint64 node_id = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message ExpireNodeResponse {
 | 
			
		||||
    Node node = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message RenameNodeRequest {
 | 
			
		||||
    uint64 node_id = 1;
 | 
			
		||||
    string new_name   = 2;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message RenameNodeResponse {
 | 
			
		||||
    Node node = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message ListNodesRequest {
 | 
			
		||||
    string user = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message ListNodesResponse {
 | 
			
		||||
    repeated Node nodes = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message MoveNodeRequest {
 | 
			
		||||
    uint64 node_id = 1;
 | 
			
		||||
    string user  = 2;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message MoveNodeResponse {
 | 
			
		||||
    Node node = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message DebugCreateNodeRequest {
 | 
			
		||||
    string user       = 1;
 | 
			
		||||
    string          key    = 2;
 | 
			
		||||
    string          name   = 3;
 | 
			
		||||
    repeated string routes = 4;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message DebugCreateNodeResponse {
 | 
			
		||||
    Node node = 1;
 | 
			
		||||
}
 | 
			
		||||
@ -3,11 +3,11 @@ package headscale.v1;
 | 
			
		||||
option  go_package = "github.com/juanfont/headscale/gen/go/v1";
 | 
			
		||||
 | 
			
		||||
import "google/protobuf/timestamp.proto";
 | 
			
		||||
import "headscale/v1/machine.proto";
 | 
			
		||||
import "headscale/v1/node.proto";
 | 
			
		||||
 | 
			
		||||
message Route {
 | 
			
		||||
    uint64  id          = 1;
 | 
			
		||||
    Machine machine     = 2;
 | 
			
		||||
    Node    node     = 2;
 | 
			
		||||
    string  prefix      = 3;
 | 
			
		||||
    bool    advertised   = 4;
 | 
			
		||||
    bool    enabled     = 5;
 | 
			
		||||
@ -39,11 +39,11 @@ message DisableRouteRequest {
 | 
			
		||||
message DisableRouteResponse {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message GetMachineRoutesRequest {
 | 
			
		||||
    uint64 machine_id = 1;
 | 
			
		||||
message GetNodeRoutesRequest {
 | 
			
		||||
    uint64 node_id = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message GetMachineRoutesResponse {
 | 
			
		||||
message GetNodeRoutesResponse {
 | 
			
		||||
    repeated Route routes = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user