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; // Initial state
        COPYING_IMAGE = 1; // Downloading the image on the standby partition
        INSTALLING_IMAGE = 2; // Installing the image on the standby partition
        COMMITTING_IMAGE = 3; // Committing the image and marking it as the active partition
        REBOOTING_DEVICE = 4; // Rebooting the device
        UPGRADE_COMPLETE = 5; // Image upgrade on the standby partition completed
        UPGRADE_FAILED = 6; // Image upgrade on the standby partition failed
        ACTIVATION_COMPLETE = 7; // Image activation completed
        ACTIVATION_FAILED = 8; // Image activation failed
    }

    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;
}
