type Query {
    vars: Vars
}

type Subscription {
    vars: Vars!
}

enum ConfigErrorState {
    UNKNOWN_ERROR
    INELIGIBLE
    INVALID
    NO_KEY_SERVER
    WITHDRAWN
}

type Vars implements Node {
    id: ID!
    """
    Unraid version
    """
    version: String
    maxArraysz: Int
    maxCachesz: Int
    """
    Machine hostname
    """
    name: String
    timeZone: String
    comment: String
    security: String
    workgroup: String
    domain: String
    domainShort: String
    hideDotFiles: Boolean
    localMaster: Boolean
    enableFruit: String
    """
    Should a NTP server be used for time sync?
    """
    useNtp: Boolean
    """
    NTP Server 1
    """
    ntpServer1: String
    """
    NTP Server 2
    """
    ntpServer2: String
    """
    NTP Server 3
    """
    ntpServer3: String
    """
    NTP Server 4
    """
    ntpServer4: String
    domainLogin: String
    sysModel: String
    sysArraySlots: Int
    sysCacheSlots: Int
    sysFlashSlots: Int
    useSsl: Boolean
    """
    Port for the webui via HTTP
    """
    port: Int
    """
    Port for the webui via HTTPS
    """
    portssl: Int
    localTld: String
    bindMgt: Boolean
    """
    Should telnet be enabled?
    """
    useTelnet: Boolean
    porttelnet: Int
    useSsh: Boolean
    portssh: Int
    startPage: String
    startArray: Boolean
    spindownDelay: String
    queueDepth: String
    spinupGroups: Boolean
    defaultFormat: String
    defaultFsType: String
    shutdownTimeout: Int
    luksKeyfile: String
    pollAttributes: String
    pollAttributesDefault: String
    pollAttributesStatus: String
    nrRequests: Int
    nrRequestsDefault: Int
    nrRequestsStatus: String
    mdNumStripes: Int
    mdNumStripesDefault: Int
    mdNumStripesStatus: String
    mdSyncWindow: Int
    mdSyncWindowDefault: Int
    mdSyncWindowStatus: String
    mdSyncThresh: Int
    mdSyncThreshDefault: Int
    mdSyncThreshStatus: String
    mdWriteMethod: Int
    mdWriteMethodDefault: String
    mdWriteMethodStatus: String
    shareDisk: String
    shareUser: String
    shareUserInclude: String
    shareUserExclude: String
    shareSmbEnabled: Boolean
    shareNfsEnabled: Boolean
    shareAfpEnabled: Boolean
    shareInitialOwner: String
    shareInitialGroup: String
    shareCacheEnabled: Boolean
    shareCacheFloor: String
    shareMoverSchedule: String
    shareMoverLogging: Boolean
    fuseRemember: String
    fuseRememberDefault: String
    fuseRememberStatus: String
    fuseDirectio: String
    fuseDirectioDefault: String
    fuseDirectioStatus: String
    shareAvahiEnabled: Boolean
    shareAvahiSmbName: String
    shareAvahiSmbModel: String
    shareAvahiAfpName: String
    shareAvahiAfpModel: String
    safeMode: Boolean
    startMode: String
    configValid: Boolean
    configError: ConfigErrorState
    joinStatus: String
    deviceCount: Int
    flashGuid: String
    flashProduct: String
    flashVendor: String
    regCheck: String
    regFile: String
    regGuid: String
    regTy: String
    regState: RegistrationState
    """
    Registration owner
    """
    regTo: String
    regTm: String
    regTm2: String
    regGen: String
    sbName: String
    sbVersion: String
    sbUpdated: String
    sbEvents: Int
    sbState: String
    sbClean: Boolean
    sbSynced: Int
    sbSyncErrs: Int
    sbSynced2: Int
    sbSyncExit: String
    sbNumDisks: Int
    mdColor: String
    mdNumDisks: Int
    mdNumDisabled: Int
    mdNumInvalid: Int
    mdNumMissing: Int
    mdNumNew: Int
    mdNumErased: Int
    mdResync: Int
    mdResyncCorr: String
    mdResyncPos: String
    mdResyncDb: String
    mdResyncDt: String
    mdResyncAction: String
    mdResyncSize: Int
    mdState: String
    mdVersion: String
    cacheNumDevices: Int
    cacheSbNumDisks: Int
    fsState: String
    """
    Human friendly string of array events happening
    """
    fsProgress: String
    """
    Percentage from 0 - 100 while upgrading a disk or swapping parity drives
    """
    fsCopyPrcnt: Int
    fsNumMounted: Int
    fsNumUnmountable: Int
    fsUnmountableMask: String
    """
    Total amount of user shares
    """
    shareCount: Int
    """
    Total amount shares with SMB enabled
    """
    shareSmbCount: Int
    """
    Total amount shares with NFS enabled
    """
    shareNfsCount: Int
    """
    Total amount shares with AFP enabled
    """
    shareAfpCount: Int
    shareMoverActive: Boolean
    csrfToken: String
}

enum mdState {
    SWAP_DSBL
    STARTED
}

enum registrationType {
    BASIC
    PLUS
    PRO
    STARTER
    UNLEASHED
    LIFETIME
    INVALID
    TRIAL
}

enum RegistrationState {
    TRIAL
    BASIC
    PLUS
    PRO
    STARTER
    UNLEASHED
    LIFETIME
    """
    Trial Expired
    """
    EEXPIRED
    """
    GUID Error
    """
    EGUID
    """
    Multiple License Keys Present
    """
    EGUID1
    """
    Invalid installation
    """
    ETRIAL
    """
    No Keyfile
    """
    ENOKEYFILE
    """
    No Keyfile
    """
    ENOKEYFILE1
    """
    Missing key file
    """
    ENOKEYFILE2
    """
    No Flash
    """
    ENOFLASH
    ENOFLASH1
    ENOFLASH2
    ENOFLASH3
    ENOFLASH4
    ENOFLASH5
    ENOFLASH6
    ENOFLASH7
    """
    BLACKLISTED
    """
    EBLACKLISTED
    """
    BLACKLISTED
    """
    EBLACKLISTED1
    """
    BLACKLISTED
    """
    EBLACKLISTED2
    """
    Trial Requires Internet Connection
    """
    ENOCONN
}
