syntax = "proto3";
package cloud.agent.api;
option go_package = "source.monogon.dev/cloud/agent/api";

// TakeoverInit is the message sent to the takeover process over an SSH session
// during initialization.
message TakeoverInit {
  // Machine ID of this machine to be taken over as assigned by the BMaaS
  // service.
  string machine_id = 1;
  // bmaas_endpoint is an address of the BMaaS service the agent should call
  // back to.
  string bmaas_endpoint = 2;
  // Optional CA certificate to be used instead of a public CA root store.
  // Formatted as raw ASN.1 DER.
  bytes ca_certificate = 3;
}

message TakeoverSuccess {
  // init_message is the exact init message the agent received.
  TakeoverInit init_message = 1;
  // key is the agent's public key.
  bytes key = 2;
  // warnings contains a list of non-critical errors which occurred during the
  // takeover preparation.
  repeated string warning = 3;
}

message TakeoverError {
  // Error message
  string message = 1;
}

// TakeoverResponse is the message the takeover process sends back after
// receiving an TakeoverInit message.
message TakeoverResponse {
  oneof result {
    TakeoverSuccess success = 1;
    TakeoverError error = 2;
  }
}
