VOL-3157: Initial version of the protos
Change-Id: I8ffda169132f80a51632c52dd8ac142efef26ef7
diff --git a/protos/dmi/sw_image.proto b/protos/dmi/sw_image.proto
new file mode 100644
index 0000000..e85767e
--- /dev/null
+++ b/protos/dmi/sw_image.proto
@@ -0,0 +1,53 @@
+syntax = "proto3";
+
+option go_package = "github.com/opencord/device-management-interface/v3/go/dmi";
+package dmi;
+
+import "dmi/commons.proto";
+
+// Protos for modeling a software image and it's status
+
+message ImageVersion {
+ string image_name = 1;
+ string version = 2;
+}
+
+message ImageInformation {
+ ImageVersion image = 1;
+ // Script used by the device specific managers to install the image.
+ // Script must be included in the object downloaded from the image_url
+ string image_install_script = 2;
+ // Location of the image and installation script, authentication (user/pass) if any should be in the url string
+ string image_url = 3;
+ // SHA-256 sum of the image (sha256sum on Linux)
+ string sha256sum = 5;
+}
+
+message ImageStatus {
+ enum ImageState {
+ UNDEFINED_STATE = 0;
+ COPYING_IMAGE = 1;
+ INSTALLING_IMAGE = 2;
+ COMMITING_IMAGE = 3;
+ REBOOTING_DEVICE = 4;
+ UPGRADE_COMPLETE = 5;
+ UPGRADE_FAILED = 6;
+ ACTIVATION_COMPLETE = 7;
+ ACTIVATION_FAILED = 8;
+ }
+
+ enum Reason {
+ UNDEFINED_READON = 0;
+ ERROR_IN_REQUEST = 1;
+ INTERNAL_ERROR = 2;
+ DEVICE_IN_WRONG_STATE = 3;
+ INVALID_IMAGE = 4;
+ WRONG_IMAGE_CHECKSUM = 5;
+ }
+
+ Status status = 1;
+ Reason reason = 2;
+ ImageState state = 3;
+ // description contains more information about the current state of the procedure and is device dependant
+ string description = 4;
+}