blob: ae7dd8d2ac6d3a19f49ef1c500b638fa5f1d677f [file] [log] [blame]
Serge Bazanski6bd41592021-08-23 13:18:37 +02001syntax = "proto3";
2package metropolis.proto.api;
3option go_package = "source.monogon.dev/metropolis/proto/api";
4
Serge Bazanski9ffa1f92021-09-01 15:42:23 +02005import "metropolis/proto/ext/authorization.proto";
6
Serge Bazanski6bd41592021-08-23 13:18:37 +02007// Management service available to Cluster Managers.
8service Management {
9 // GetRegisterTicket retrieves the current RegisterTicket which is required
10 // for new nodes to register into the cluster. Presenting this ticket on
11 // registration does not automatically grant access to arbitrary node
12 // registration. Instead, it is used to guard the API surface of the
13 // Register RPC from potential denial of service attacks, and can be
14 // regenerated at any time in case it leaks.
Serge Bazanski9ffa1f92021-09-01 15:42:23 +020015 rpc GetRegisterTicket(GetRegisterTicketRequest) returns (GetRegisterTicketResponse) {
16 option (metropolis.proto.ext.authorization) = {
17 need: PERMISSION_GET_REGISTER_TICKET
18 };
19 }
Serge Bazanski6bd41592021-08-23 13:18:37 +020020}
21
22message GetRegisterTicketRequest {
23}
24
25message GetRegisterTicketResponse {
26 // Opaque bytes that comprise the RegisterTicket.
27 bytes ticket = 1;
28}