KALLIOPEPBX-MIB DEFINITIONS ::= BEGIN

IMPORTS
    OBJECT-TYPE, MODULE-IDENTITY, Integer32, Counter32, TimeTicks,
    Unsigned32, Gauge32
        FROM SNMPv2-SMI

    netresults, kalliope
        FROM NETRESULTS-MIB;

kalliopepbx MODULE-IDENTITY
    LAST-UPDATED    "202509301400Z"
    ORGANIZATION    "Kalliope Srl"
    CONTACT-INFO    "Kalliope Srl
            support@kalliope.com"
    DESCRIPTION
        "KalliopePBX.  This MIB defined
        objects for managing KalliopepBX nodes."
    REVISION    "201801082025Z"
    DESCRIPTION
        "Initial published revision."
    REVISION    "201801240025Z"
    DESCRIPTION
        "Added kPbxNodeInfoServicesAsterisk subtree"
    REVISION    "201807250025Z"
    DESCRIPTION
        "Whole kalliopepbx sub-tree reorganization"
    REVISION    "202306050025Z"
    DESCRIPTION
        "Added kpbxNodeTotalAccountsBackground object"
    REVISION    "202509301400Z"
    DESCRIPTION
        "Updated ORGANIZATION and CONTACT_INFO,
        added multiple subtrees"
    ::= { kalliope  1 }

-- textual conventions

KBytes ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "Storage size, expressed in units of 1024 bytes."
    SYNTAX Integer32 (0..2147483647)

-- Subtree definition --
kpbxNode            OBJECT IDENTIFIER ::= { kalliopepbx 1 }
kpbxNodeInfo        OBJECT IDENTIFIER ::= { kpbxNode 1 }
kpbxNodeServices    OBJECT IDENTIFIER ::= { kpbxNode 2 }
kpbxNodeSecurity    OBJECT IDENTIFIER ::= { kpbxNode 3 }
kpbxNodeTenants     OBJECT IDENTIFIER ::= { kpbxNode 4 }
kpbxNodeAccounts    OBJECT IDENTIFIER ::= { kpbxNode 5 }
kpbxNodeCalls       OBJECT IDENTIFIER ::= { kpbxNode 6 }
kcnStatus           OBJECT IDENTIFIER ::= { kpbxNode 7 }
kcnStorage          OBJECT IDENTIFIER ::= { kpbxNode 8 }


--
-- kpbxNodeInfo
--
kpbxNodeInfoSystem  OBJECT IDENTIFIER ::= { kpbxNodeInfo 1 }
kpbxNodeInfoVersion OBJECT IDENTIFIER ::= { kpbxNodeInfo 2 }

--
-- kpbxNodeInfoSystem
--

-- kpbxNodeInfoSysPartNumber
kpbxNodeInfoSysPartNumber OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "KalliopePBX part number."
     ::= { kpbxNodeInfoSystem 1 }

-- kpbxNodeInfoSysHWId
kpbxNodeInfoSysHWId OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "KalliopePBX hardware ID."
     ::= { kpbxNodeInfoSystem 2 }

-- kpbxNodeInfoSysSerialNumber
kpbxNodeInfoSysSerialNumber OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "KalliopePBX serial number."
     ::= { kpbxNodeInfoSystem 3 }

--
-- kpbxNodeInfoVersion
--

-- kpbxNodeInfoVersionPrimaryFirmware
kpbxNodeInfoVersionPrimaryFirmware OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Version of the primary firmware."
     ::= { kpbxNodeInfoVersion 1 }

-- kpbxNodeInfoVersionSecondaryFirmware
kpbxNodeInfoVersionSecondaryFirmware OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Version of the secondary firmware."
     ::= { kpbxNodeInfoVersion 2 }

-- kpbxNodeInfoVersionBootloader
kpbxNodeInfoVersionBootloader OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Version of the bootloader."
     ::= { kpbxNodeInfoVersion 3 }

-- kpbxNodeInfoVersionRunning
kpbxNodeInfoVersionRunning OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Version of the running firmware."
     ::= { kpbxNodeInfoVersion 4 }


--
-- kpbxNodeServices
--
kpbxNodeServicesAsterisk OBJECT IDENTIFIER ::= { kpbxNodeServices 1 }

--
-- kpbxNodeServicesAsterisk
--

-- kpbxNodeServicesAsteriskUpTime
kpbxNodeServicesAsteriskUpTime OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Time ticks since Asterisk was started."
    ::= { kpbxNodeServicesAsterisk 1 }

-- kpbxNodeServicesAsteriskReloadTime
kpbxNodeServicesAsteriskReloadTime OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Time ticks since Asterisk was last reloaded."
    ::= { kpbxNodeServicesAsterisk 2 }

-- kpbxNodeServicesAsteriskVMSize
kpbxNodeServicesAsteriskVMSize OBJECT-TYPE
    SYNTAX     KBytes
    UNITS      "KBytes"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Virtual memory size for Asterisk process."
     ::= { kpbxNodeServicesAsterisk 3 }

-- kpbxNodeServicesAsteriskVMRSS
kpbxNodeServicesAsteriskVMRSS OBJECT-TYPE
    SYNTAX     KBytes
    UNITS      "KBytes"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Resident set size for Asterisk process."
     ::= { kpbxNodeServicesAsterisk 4 }


--
-- kpbxNodeSecurity
--
kpbxNodeSecuritySip OBJECT IDENTIFIER ::= { kpbxNodeSecurity 1 }

--
-- kalliopePbxNodeSecuritySip
--

-- kpbxNodeSecuritySipTotalAuthFailed
kpbxNodeSecuritySipTotalAuthFailed OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of autentication failed since last restart."
    ::= { kpbxNodeSecuritySip 1 }

-- kpbxNodeSecuritySipBadPasswordAuthFailed
kpbxNodeSecuritySipBadPasswordAuthFailed OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of autentication failed due to incorrect password since last restart."
    ::= { kpbxNodeSecuritySip 2 }

-- kpbxNodeSecuritySipACLAuthFailed
kpbxNodeSecuritySipACLAuthFailed OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of autentication failed due to source IP address violating ACL since
        last restart."
    ::= { kpbxNodeSecuritySip 3 }


--
-- kpbxNodeTenants
--

-- kpbxNodeTenantsNumber
kpbxNodeTenantsNumber OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of tenants currently defined."
    ::= { kpbxNodeTenants 1 }

-- kpbxNodeTenantsTable
kpbxNodeTenantsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF KpbxNodeTenantsTableEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table containing each tenant index, name, domain, UUID, and their storage status."
    ::= { kpbxNodeTenants 2 }

-- Row: kpbxNodeTenantsTableEntry
kpbxNodeTenantsTableEntry OBJECT-TYPE
    SYNTAX      KpbxNodeTenantsTableEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A row describing a given tenant."
    INDEX      { tenantIndex }
    ::= { kpbxNodeTenantsTable 1 }

-- KpbxNodeTenantsTableEntry row (sequence of columns) definition
KpbxNodeTenantsTableEntry ::= SEQUENCE {
        tenantIndex                 Unsigned32,
        tenantName                  OCTET STRING,
        tenantDomain                OCTET STRING,
        tenantUuid                  OCTET STRING,
        tenantLocalStorageQuota     Integer32,
        tenantLocalStorageUsed      Integer32,
        tenantRemoteStorageQuota    Integer32,
        tenantRemoteStorageUsed     Integer32
}

-- Column: tenantIndex
tenantIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The tenant index."
    ::= { kpbxNodeTenantsTableEntry 1 }

-- Column: tenantName
tenantName OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The tenant name."
    ::= { kpbxNodeTenantsTableEntry 2 }

-- Column: tenantDomain
tenantDomain OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The tenant domain."
    ::= { kpbxNodeTenantsTableEntry 3 }

-- Column: tenantUuid
tenantUuid OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The tenant UUID."
    ::= { kpbxNodeTenantsTableEntry 4 }

-- Column: tenantLocalStorageQuota
tenantLocalStorageQuota OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of MBytes assigned to the tenant in the local storage."
    ::= { kpbxNodeTenantsTableEntry 5 }

-- Column: tenantLocalStorageUsed
tenantLocalStorageUsed OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of MBytes used by the tenant in its portion of the local storage."
    ::= { kpbxNodeTenantsTableEntry 6 }

-- Column: tenantRemoteStorageQuota
tenantRemoteStorageQuota OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of MBytes assigned to the tenant in the remote storage."
    ::= { kpbxNodeTenantsTableEntry 7 }

-- Column: tenantRemoteStorageUsed
tenantRemoteStorageUsed OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of MBytes used by the tenant in its portion of the remote storage."
    ::= { kpbxNodeTenantsTableEntry 8 }


--
-- kpbxNodeAccounts
--

-- kpbxNodeTotalAccountsConfigured
kpbxNodeTotalAccountsConfigured OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of configured accounts."
    ::= { kpbxNodeAccounts 1 }

-- kpbxNodeTotalAccountsReachable
kpbxNodeTotalAccountsReachable OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of accounts registered and reachable with RTT < 2000ms."
    ::= { kpbxNodeAccounts 2 }

-- kpbxNodeTotalAccountsUnreachable
kpbxNodeTotalAccountsUnreachable OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of accounts registered and unreachable."
    ::= { kpbxNodeAccounts 3 }

-- kpbxNodeTotalAccountsNotRegistered
kpbxNodeTotalAccountsNotRegistered OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of not registered accounts."
    ::= { kpbxNodeAccounts 4 }

-- kpbxNodeTotalAccountsLagged
kpbxNodeTotalAccountsLagged OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of accounts registered and reachable with RTT >= 2000ms."
    ::= { kpbxNodeAccounts 5 }

-- kpbxNodeTotalAccountsBackground
kpbxNodeTotalAccountsBackground OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of accounts provisioned to mobile apps and currently in background state (available for wake-up)"
    ::= { kpbxNodeAccounts 6 }


--
-- kpbxNodeCalls
--
kpbxNodeCallsActive     OBJECT IDENTIFIER ::= { kpbxNodeCalls 1 }
kpbxNodeCallsProcessed  OBJECT IDENTIFIER ::= { kpbxNodeCalls 2 }

--
-- kpbxNodeCallsActive
--
kpbxNodeCallsActiveAllTenants   OBJECT IDENTIFIER ::= { kpbxNodeCallsActive 1 }

--
-- kpbxNodeCallsActiveAllTenants
--

-- kpbxNodeCurrentCallsAllTotal
kpbxNodeCurrentCallsAllTotal OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of current calls for all tenants."
    ::= { kpbxNodeCallsActiveAllTenants 1 }

-- kpbxNodeCurrentCallsAllIn
kpbxNodeCurrentCallsAllIn OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of current incoming calls for all tenants."
    ::= { kpbxNodeCallsActiveAllTenants 2 }

-- kpbxNodeCurrentCallsAllOut
kpbxNodeCurrentCallsAllOut OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of current outgoing calls for all tenants."
    ::= { kpbxNodeCallsActiveAllTenants 3 }

-- kpbxNodeCurrentCallsAllLocal
kpbxNodeCurrentCallsAllLocal OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of current local calls for all tenants."
    ::= { kpbxNodeCallsActiveAllTenants 4 }

--
-- kpbxNodeCallsProcessed
--
kpbxNodeCallsProcessedAllTenants    OBJECT IDENTIFIER ::= { kpbxNodeCallsProcessed 1 }

--
-- kpbxNodeCallsProcessedAllTenants
--

-- kpbxNodeProcessedCallsAllTotal
kpbxNodeProcessedCallsAllTotal OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of processed calls for all tenants from last boot."
    ::= { kpbxNodeCallsProcessedAllTenants 1 }


--
-- kcnStatus
--
kcnStatusPingback       OBJECT IDENTIFIER ::= { kcnStatus 1 }
kcnStatusClocksource    OBJECT IDENTIFIER ::= { kcnStatus 2 }
kcnStatusBackup         OBJECT IDENTIFIER ::= { kcnStatus 3 }

--
-- kcnStatusPingback
--

-- pingbackFailedCount
pingbackFailedCount OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of failed pingback calls to the license server."
    ::= { kcnStatusPingback 1 }

-- daysLeftBeforeReadonly
daysLeftBeforeReadonly OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of days left before the PBX GUI is set to READ ONLY.
        If it's 0, check pingbackFailedCount - if it isn't 0, the timer has expired or is 
        about to. Otherwise, there is no countdown being done."
    ::= { kcnStatusPingback 2 }

-- daysLeftBeforeBlock
daysLeftBeforeBlock OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of days left before the PBX becomes blocked.
        If it's 0, check pingbackFailedCount - if it isn't 0, the timer has expired or is 
        about to. Otherwise, there is no countdown being done."
    ::= { kcnStatusPingback 3 }

--
-- kcnStatusClocksource
--

-- kcnStatusClocksourceUsed
kcnStatusClocksourceUsed OBJECT-TYPE
    SYNTAX      INTEGER {
        tsc(1),
        hpet(2),
        acpi_pm(3),
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Clocksource used by kernel."
    ::= { kcnStatusClocksource 1 }


--
-- kcnStatusBackup
--

-- kcnStatusBackupRole
kcnStatusBackupRole OBJECT-TYPE
    SYNTAX      INTEGER {
        standalone(0),
        primary(1),
        backup(2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Tells if the KCN is standalone, primary or has the backup role."
    ::= { kcnStatusBackup 1 }

kcnStatusBackupCreate   OBJECT IDENTIFIER ::= { kcnStatusBackup 2 }
kcnStatusBackupRestore  OBJECT IDENTIFIER ::= { kcnStatusBackup 3 }

--
-- kcnStatusBackupCreate
--

-- kcnStatusBackupCreateLastExecTimestamp
kcnStatusBackupCreateLastExecTimestamp OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "EPOCH of the beginning of last backup creation."
    ::= { kcnStatusBackupCreate 1 }

-- kcnStatusBackupCreateLastExecSecondsElapsed
kcnStatusBackupCreateLastExecSecondsElapsed OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Seconds elapsed since value reported by kcnStatusBackupCreateLastExecTimestamp."
    ::= { kcnStatusBackupCreate 2 }

-- kcnStatusBackupCreateLastSuccessTimestamp
kcnStatusBackupCreateLastSuccessTimestamp OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "EPOCH of the end of last successful backup creation."
    ::= { kcnStatusBackupCreate 3 }

-- kcnStatusBackupCreateLastSuccessSecondsElapsed
kcnStatusBackupCreateLastSuccessSecondsElapsed OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Seconds elapsed since value reported by kcnStatusBackupCreateLastSuccessTimestamp."
    ::= { kcnStatusBackupCreate 4 }

-- kcnStatusBackupCreateLastFailureTimestamp
kcnStatusBackupCreateLastFailureTimestamp OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "EPOCH of the last failed backup creation."
    ::= { kcnStatusBackupCreate 5 }

-- kcnStatusBackupCreateLastFailuresSecondsElapsed
kcnStatusBackupCreateLastFailuresSecondsElapsed OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Seconds elapsed since value reported by kcnStatusBackupCreateLastFailureTimestamp."
    ::= { kcnStatusBackupCreate 6 }

--
-- kcnStatusBackupRestore
--

-- kcnStatusBackupRestoreLastExecTimestamp
kcnStatusBackupRestoreLastExecTimestamp OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "EPOCH of the beginning of last backup restore execution."
    ::= { kcnStatusBackupRestore 1 }

-- kcnStatusBackupRestoreLastExecSecondsElapsed
kcnStatusBackupRestoreLastExecSecondsElapsed OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Seconds elapsed since value reported by kcnStatusBackupRestoreLastExecTimestamp."
    ::= { kcnStatusBackupRestore 2 }

-- kcnStatusBackupRestoreLastSuccessTimestamp
kcnStatusBackupRestoreLastSuccessTimestamp OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "EPOCH of the end of last successful backup restore execution."
    ::= { kcnStatusBackupRestore 3 }

-- kcnStatusBackupRestoreLastSuccessSecondsElapsed
kcnStatusBackupRestoreLastSuccessSecondsElapsed OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Seconds elapsed since value reported by kcnStatusBackupRestoreLastSuccessTimestamp."
    ::= { kcnStatusBackupRestore 4 }

-- kcnStatusBackupRestoreLastFailureTimestamp
kcnStatusBackupRestoreLastFailureTimestamp OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "EPOCH of the last failed backup creation."
    ::= { kcnStatusBackupRestore 5 }

-- kcnStatusBackupRestoreLastFailureSecondsElapsed
kcnStatusBackupRestoreLastFailureSecondsElapsed OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Seconds elapsed since value reported by kcnStatusBackupRestoreLastFailureTimestamp."
    ::= { kcnStatusBackupRestore 6 }


--
-- kcnStorage
--
kcnStorageRemote    OBJECT IDENTIFIER ::= { kcnStorage 1 }

--
-- kcnStorageRemote
--

-- kcnStorageRemoteNumber
kcnStorageRemoteNumber OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of configured remote filesystems."
    ::= { kcnStorageRemote 1 }

-- kcnStorageRemoteTable
kcnStorageRemoteTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF KcnStorageRemoteTableEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table containing each remote storage index, name, Mount/Write status, and their
        total/used/available size."
    ::= { kcnStorageRemote 2 }

-- Row: kcnStorageRemoteTableEntry
kcnStorageRemoteTableEntry OBJECT-TYPE
    SYNTAX      KcnStorageRemoteTableEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A row describing a given remote storage."
    ::= { kcnStorageRemoteTable 1 }

-- KcnStorageRemoteTableEntry row (sequence of columns) definition
KcnStorageRemoteTableEntry ::= SEQUENCE {
        remoteStorageIndex              Unsigned32,
        remoteStorageName               OCTET STRING,
        remoteStorageMountStatus        Integer32,
        remoteStorageWriteStatus        Integer32,
        remoteStorageUsageCheckStatus   Integer32,
        remoteStorageSizeTotal          Integer32,
        remoteStorageSizeUsed           Integer32,
        remoteStorageSizeAvail          Integer32
}

-- Column: remoteStorageIndex
remoteStorageIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The remote storage index."
    ::= { kcnStorageRemoteTableEntry 1 }

-- Column: remoteStorageName
remoteStorageName OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The remote storage name."
    ::= { kcnStorageRemoteTableEntry 2 }

-- Column: remoteStorageMountStatus
remoteStorageMountStatus OBJECT-TYPE
    SYNTAX      INTEGER {
        unknown(0),
        mounted(1),
        not-mounted(2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The remote storage mount status."
    ::= { kcnStorageRemoteTableEntry 3 }

-- Column: remoteStorageWriteStatus
remoteStorageWriteStatus OBJECT-TYPE
    SYNTAX      INTEGER {
        unknown(0),
        success(1),
        failure(2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The remote storage write status."
    ::= { kcnStorageRemoteTableEntry 4 }

-- Column: remoteStorageUsageCheckStatus
remoteStorageUsageCheckStatus OBJECT-TYPE
    SYNTAX      INTEGER {
        unknown(0),
        success(1),
        failure(2),
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The remote storage usage check status."
    ::= { kcnStorageRemoteTableEntry 5 }

-- Column: remoteStorageSizeTotal
remoteStorageSizeTotal OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The size of the storage represented by this entry, in MBytes."
    ::= { kcnStorageRemoteTableEntry 6 }

-- Column: remoteStorageSizeUsed
remoteStorageSizeUsed OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The amount of the storage represented by this entry that is allocated, in MBytes."
    ::= { kcnStorageRemoteTableEntry 7 }

-- Column: remoteStorageSizeAvail
remoteStorageSizeAvail OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The amount of the storage represented by this entry that is available, in MBytes."
    ::= { kcnStorageRemoteTableEntry 8 }


END
