option name = "volt";

message VOLTService (Service){
    option verbose_name = "vOLT Service";
    option kind = "vOLT";
}

message VOLTServiceInstance (ServiceInstance){
    option kind = "vOLT";
    option owner_class_name = "VOLTService";
    option verbose_name = "vOLT Service Instance";

    required string onu_type = 2 [help_text = "ONU Type", default = "v-ontani", null = False, db_index = False, blank = False];
    optional string description = 3 [max_length = 254, null = True, db_index = False, blank = True];
}

message VOLTDevice (XOSBase){
    option verbose_name = "vOLT Device";

    required manytoone volt_service->VOLTService:volt_devices = 1 [db_index = True, null = False, blank = False];
    required string name = 2 [help_text = "name of device", max_length = 254, null = False, db_index = False, blank = False];
    required string device_id = 3 [help_text = "Device ID", max_length = 254, null = False, db_index = False, blank = False];
    required string device_type = 4 [help_text = "Device Type", default = "asfvolt16_olt", max_length = 254, null = False, db_index = False, blank = False];
    required string host = 5 [help_text = "Host", max_length = 254, null = False, db_index = False, blank = False];
    required int32 port = 6 [help_text = "Fabric port", null = False, db_index = False, blank = False];
}

message VOLTDevicePort (XOSBase){
    option verbose_name = "vOLT Device Port";

    required manytoone volt_device->VOLTDevice:ports = 1 [db_index = True, null = False, blank = False];
    required string port_id = 2 [help_text = "Port ID", max_length = 254, null = False, db_index = False, blank = False, tosca_key = True];
    required int32 s_tag = 3 [help_text = "S Tag", null = False, db_index = False, blank = False];
}
