| 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; | 
 |   } | 
 | } |