syntax = "proto3";

package voltha;

import "yang_options.proto";

// Convey a resource identifier
message ID {
    string id = 1;
}

message LogLevel {
    option (yang_child_rule) = MOVE_TO_PARENT_LEVEL;

    // Logging verbosity level
    enum LogLevel {
        DEBUG = 0;
        INFO = 1;
        WARNING = 2;
        ERROR = 3;
        CRITICAL = 4;
    }
}

message AdminState {
    option (yang_child_rule) = MOVE_TO_PARENT_LEVEL;

    // Administrative State
    enum AdminState {

        // The administrative state of the device is unknown
        UNKNOWN = 0;

        // The device is pre-provisioned into Voltha, but not contacted by it
        PREPROVISIONED = 1;

        // The device is enabled for activation and operation
        ENABLED = 3;

        // The device is disabled and shall not perform its intended forwarding
        // functions other than being available for re-activation.
        DISABLED = 2;
    }
}

message OperStatus {
    option (yang_child_rule) = MOVE_TO_PARENT_LEVEL;

    // Operational Status
    enum OperStatus {

        // The status of the device is unknown at this point
        UNKNOWN = 0;

        // The device has been discovered, but not yet activated
        DISCOVERED = 1;

        // The device is being activated (booted, rebooted, upgraded, etc.)
        ACTIVATING = 2;

        // Service impacting tests are being conducted
        TESTING = 3;

        // The device is up and active
        ACTIVE = 4;

        // The device has failed and cannot fulfill its intended role
        FAILED = 5;
    }
}

message ConnectStatus {
    option (yang_child_rule) = MOVE_TO_PARENT_LEVEL;

    // Connectivity Status
    enum ConnectStatus {

        // The device connectivity status is unknown
        UNKNOWN = 0;

        // The device cannot be reached by Voltha
        UNREACHABLE = 1;

        // There is live communication between device and Voltha
        REACHABLE = 2;
    }
}
