syntax = "proto3";

package config;

import "lib/config/folderconfiguration.proto";
import "lib/config/deviceconfiguration.proto";
import "lib/config/guiconfiguration.proto";
import "lib/config/ldapconfiguration.proto";
import "lib/config/optionsconfiguration.proto";
import "lib/config/observed.proto";

import "ext.proto";

message Configuration {
    int32                        version         = 1 [(ext.xml) = "version,attr"];
    repeated FolderConfiguration folders         = 2;
    repeated DeviceConfiguration devices         = 3;
    GUIConfiguration             gui             = 4 [(ext.goname) = "GUI"];
    LDAPConfiguration            ldap            = 5 [(ext.goname) = "LDAP"];
    OptionsConfiguration         options         = 6;
    repeated ObservedDevice      ignored_devices = 7 [(ext.json) = "remoteIgnoredDevices", (ext.xml) = "remoteIgnoredDevice"];
    repeated ObservedDevice      pending_devices = 8 [deprecated=true];
    Defaults                     defaults        = 9;
}

message Defaults {
    FolderConfiguration folder  = 1;
    DeviceConfiguration device  = 2;
    Ignores             ignores = 3;
}

message Ignores {
    repeated string lines = 1;
}
