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 | |
// The image_url would contain the protocol, credentials, the IP address/DNS of the server and the path of the file | |
// e.g. sftp://download_user:download_pass@192.168.0.1:22/images/image1 | |
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; | |
COMMITTING_IMAGE = 3; | |
REBOOTING_DEVICE = 4; | |
UPGRADE_COMPLETE = 5; | |
UPGRADE_FAILED = 6; | |
ACTIVATION_COMPLETE = 7; | |
ACTIVATION_FAILED = 8; | |
} | |
enum Reason { | |
UNDEFINED_REASON = 0; | |
ERROR_IN_REQUEST = 1; | |
INTERNAL_ERROR = 2; | |
DEVICE_IN_WRONG_STATE = 3; | |
INVALID_IMAGE = 4; | |
WRONG_IMAGE_CHECKSUM = 5; | |
OPERATION_ALREADY_IN_PROGRESS = 6; | |
UNKNOWN_DEVICE = 7; | |
// The DM implementations should have retry mechanisms (timeout values dependant on specific implementations) | |
// and even after those if the operation cannot be completed/reached then return error with reason as DEVICE_NOT_REACHABLE | |
DEVICE_NOT_REACHABLE = 8; | |
} | |
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; | |
string reason_detail = 5; | |
} |