c/a/api: reorganize and add AgentInit

Move hardware reporting-related data into a separate file for better
organization.

Also add an AgentInit message which will be used to pass data to the
Agent.

Change-Id: I1eecbd5a78da03170651f76f9f24e134dddaca4f
Reviewed-on: https://review.monogon.dev/c/monogon/+/1140
Reviewed-by: Leopold Schabel <leo@monogon.tech>
Tested-by: Leopold Schabel <leo@monogon.tech>
diff --git a/cloud/agent/api/takeover.proto b/cloud/agent/api/takeover.proto
index 9453df3..47b531f 100644
--- a/cloud/agent/api/takeover.proto
+++ b/cloud/agent/api/takeover.proto
@@ -14,11 +14,26 @@
   string bmaas_endpoint = 3;
 }
 
-// TakeoverResponse is the message the takeover process sends back after
-// receiving an TakeoverInit message.
-message TakeoverResponse {
+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;
+  }
 }