syntax = "proto3";

option go_package = "github.com/opencord/voltha-protos/v4/go/voltha";
option java_package = "org.opencord.voltha";
option java_outer_classname = "VolthaAdapter";

package voltha;

import "google/protobuf/any.proto";
import "voltha_protos/meta.proto";
import "google/protobuf/timestamp.proto";


message AdapterConfig {

    // Custom (vendor-specific) configuration attributes
    google.protobuf.Any additional_config = 64;

}

// Adapter (software plugin)
message Adapter {

    // the adapter ID has to be unique,
    // it will be generated as Type + CurrentReplica
    string id = 1 [(access) = READ_ONLY];
    string vendor = 2 [(access) = READ_ONLY];
    string version = 3 [(access) = READ_ONLY];

    // Adapter configuration
    AdapterConfig config = 16;

    // Custom descriptors and custom configuration
    google.protobuf.Any additional_description = 64 [(access) = READ_ONLY];

    repeated string logical_device_ids = 4;  // Logical devices "owned"

    // timestamp when the adapter last sent a message to the core
    google.protobuf.Timestamp last_communication = 5;

    int32 currentReplica = 6;
    int32 totalReplicas = 7;
    string endpoint = 8;
    // all replicas of the same adapter will have the same type
    // it is used to associate a device to an adapter
    string type = 9;

}

message Adapters {
    repeated Adapter items = 1;
}
