1
0
mirror of https://github.com/juanfont/headscale.git synced 2024-12-20 19:09:07 +01:00
juanfont.headscale/proto/headscale/v1/headscale.proto
Kristoffer Dalby 428d7c86ce Rename namespace in protobuf files
While this truly breaks the point of the backwards compatible stuff with
protobuf, it does not seem worth it to attempt to glue together a
compatible API.

Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
2023-01-18 15:40:04 +01:00

202 lines
5.7 KiB
Protocol Buffer

syntax = "proto3";
package headscale.v1;
option go_package = "github.com/juanfont/headscale/gen/go/v1";
import "google/api/annotations.proto";
import "headscale/v1/user.proto";
import "headscale/v1/preauthkey.proto";
import "headscale/v1/machine.proto";
import "headscale/v1/routes.proto";
import "headscale/v1/apikey.proto";
// import "headscale/v1/device.proto";
service HeadscaleService {
// --- User start ---
rpc GetUser(GetUserRequest) returns(GetUserResponse) {
option(google.api.http) = {
get : "/api/v1/user/{name}"
};
}
rpc CreateUser(CreateUserRequest) returns(CreateUserResponse) {
option(google.api.http) = {
post : "/api/v1/user"
body : "*"
};
}
rpc RenameUser(RenameUserRequest) returns(RenameUserResponse) {
option(google.api.http) = {
post : "/api/v1/user/{old_name}/rename/{new_name}"
};
}
rpc DeleteUser(DeleteUserRequest) returns(DeleteUserResponse) {
option(google.api.http) = {
delete : "/api/v1/user/{name}"
};
}
rpc ListUsers(ListUsersRequest) returns(ListUsersResponse) {
option(google.api.http) = {
get : "/api/v1/user"
};
}
// --- User end ---
// --- PreAuthKeys start ---
rpc CreatePreAuthKey(CreatePreAuthKeyRequest) returns(CreatePreAuthKeyResponse) {
option(google.api.http) = {
post : "/api/v1/preauthkey"
body : "*"
};
}
rpc ExpirePreAuthKey(ExpirePreAuthKeyRequest) returns(ExpirePreAuthKeyResponse) {
option(google.api.http) = {
post : "/api/v1/preauthkey/expire"
body : "*"
};
}
rpc ListPreAuthKeys(ListPreAuthKeysRequest) returns(ListPreAuthKeysResponse) {
option(google.api.http) = {
get : "/api/v1/preauthkey"
};
}
// --- PreAuthKeys end ---
// --- Machine start ---
rpc DebugCreateMachine(DebugCreateMachineRequest) returns(DebugCreateMachineResponse) {
option(google.api.http) = {
post : "/api/v1/debug/machine"
body : "*"
};
}
rpc GetMachine(GetMachineRequest) returns(GetMachineResponse) {
option(google.api.http) = {
get : "/api/v1/machine/{machine_id}"
};
}
rpc SetTags(SetTagsRequest) returns(SetTagsResponse) {
option(google.api.http) = {
post : "/api/v1/machine/{machine_id}/tags"
body : "*"
};
}
rpc RegisterMachine(RegisterMachineRequest) returns(RegisterMachineResponse) {
option(google.api.http) = {
post : "/api/v1/machine/register"
};
}
rpc DeleteMachine(DeleteMachineRequest) returns(DeleteMachineResponse) {
option(google.api.http) = {
delete : "/api/v1/machine/{machine_id}"
};
}
rpc ExpireMachine(ExpireMachineRequest) returns(ExpireMachineResponse) {
option(google.api.http) = {
post : "/api/v1/machine/{machine_id}/expire"
};
}
rpc RenameMachine(RenameMachineRequest) returns(RenameMachineResponse) {
option(google.api.http) = {
post : "/api/v1/machine/{machine_id}/rename/{new_name}"
};
}
rpc ListMachines(ListMachinesRequest) returns(ListMachinesResponse) {
option(google.api.http) = {
get : "/api/v1/machine"
};
}
rpc MoveMachine(MoveMachineRequest) returns(MoveMachineResponse) {
option(google.api.http) = {
post : "/api/v1/machine/{machine_id}/user"
};
}
// --- Machine end ---
// --- Route start ---
rpc GetRoutes(GetRoutesRequest) returns(GetRoutesResponse) {
option(google.api.http) = {
get : "/api/v1/routes"
};
}
rpc EnableRoute(EnableRouteRequest) returns(EnableRouteResponse) {
option(google.api.http) = {
post : "/api/v1/routes/{route_id}/enable"
};
}
rpc DisableRoute(DisableRouteRequest) returns(DisableRouteResponse) {
option(google.api.http) = {
post : "/api/v1/routes/{route_id}/disable"
};
}
rpc GetMachineRoutes(GetMachineRoutesRequest) returns(GetMachineRoutesResponse) {
option(google.api.http) = {
get : "/api/v1/machine/{machine_id}/routes"
};
}
// --- Route end ---
// --- ApiKeys start ---
rpc CreateApiKey(CreateApiKeyRequest) returns(CreateApiKeyResponse) {
option(google.api.http) = {
post : "/api/v1/apikey"
body : "*"
};
}
rpc ExpireApiKey(ExpireApiKeyRequest) returns(ExpireApiKeyResponse) {
option(google.api.http) = {
post : "/api/v1/apikey/expire"
body : "*"
};
}
rpc ListApiKeys(ListApiKeysRequest) returns(ListApiKeysResponse) {
option(google.api.http) = {
get : "/api/v1/apikey"
};
}
// --- ApiKeys end ---
// Implement Tailscale API
// rpc GetDevice(GetDeviceRequest) returns(GetDeviceResponse) {
// option(google.api.http) = {
// get : "/api/v1/device/{id}"
// };
// }
// rpc DeleteDevice(DeleteDeviceRequest) returns(DeleteDeviceResponse) {
// option(google.api.http) = {
// delete : "/api/v1/device/{id}"
// };
// }
// rpc GetDeviceRoutes(GetDeviceRoutesRequest) returns(GetDeviceRoutesResponse) {
// option(google.api.http) = {
// get : "/api/v1/device/{id}/routes"
// };
// }
// rpc EnableDeviceRoutes(EnableDeviceRoutesRequest) returns(EnableDeviceRoutesResponse) {
// option(google.api.http) = {
// post : "/api/v1/device/{id}/routes"
// };
// }
}