syntax = "proto3";

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

package voltha;

import "google/protobuf/any.proto";
import "voltha_protos/common.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;
}
