F5-OS-SYSTEM-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Integer32
        FROM SNMPv2-SMI
    TEXTUAL-CONVENTION, DisplayString
        FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP
        FROM SNMPv2-CONF
    platform
        FROM F5-COMMON-SMI-MIB
    ;

--================================================================
f5OsSystem MODULE-IDENTITY
    LAST-UPDATED "202404260000Z"
    ORGANIZATION "F5 Networks, Inc."
    CONTACT-INFO
         "postal: F5 Networks, Inc.
                  801 Fifth Avenue
                  Seattle, WA 98104
          phone:  (206) 272-6500
          email:  support@f5.com"
    DESCRIPTION
        "Top-level infrastructure of the F5OS System MIB tree."

    REVISION      "202404260000Z"
    DESCRIPTION
            "Added System licensing info data and conformance group."

    REVISION      "202309010000Z"
    DESCRIPTION
            "Added new SysObjectID for Velos Chiron chassis."

    REVISION      "202211291400Z"
    DESCRIPTION
            "Added new SysObjectID for rSeries FIPS platform."


    REVISION      "202210261500Z"
    DESCRIPTION
            "Added new SysObjectID for rSeries 12K platform."

    REVISION      "202204070000Z"
    DESCRIPTION
            "Initial revision."

    ::= { platform 3 }

--================================================================

f5OsSystemModelOIDs              OBJECT IDENTIFIER ::= { f5OsSystem 1 }
f5OsSystemConformance            OBJECT IDENTIFIER ::= { f5OsSystem 2 }
f5OsSystemLicensingInfo          OBJECT IDENTIFIER ::= { f5OsSystem 3 }

f5OsAppR5x00                     OBJECT IDENTIFIER ::= { f5OsSystemModelOIDs  1 }
f5OsAppR10x00                    OBJECT IDENTIFIER ::= { f5OsSystemModelOIDs  2 }
f5OsAppR2x00                     OBJECT IDENTIFIER ::= { f5OsSystemModelOIDs  3 }
f5OsAppR4x00                     OBJECT IDENTIFIER ::= { f5OsSystemModelOIDs  4 }
f5OsVelosCx410                   OBJECT IDENTIFIER ::= { f5OsSystemModelOIDs  5 }
f5OsVelosCx410Partition          OBJECT IDENTIFIER ::= { f5OsSystemModelOIDs  6 }
f5OsAppR12x00                    OBJECT IDENTIFIER ::= { f5OsSystemModelOIDs  7 }
f5OsAppR5x00-DF                  OBJECT IDENTIFIER ::= { f5OsSystemModelOIDs  8 }
f5OsAppR10x00-DF                 OBJECT IDENTIFIER ::= { f5OsSystemModelOIDs  9 }
f5OsVelosCx1610                  OBJECT IDENTIFIER ::= { f5OsSystemModelOIDs  10 }
f5OsVelosCx1610Partition         OBJECT IDENTIFIER ::= { f5OsSystemModelOIDs  11 }

--================================================================
-- Add new F5OS platform types above.
--================================================================

ModuleString ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "1t"
    STATUS       current
    DESCRIPTION
            "Textual-convention DisplayString for License Modules info."
    SYNTAX       OCTET STRING(SIZE(0..2048))

--==================================================================
-- System Licensing Information
--==================================================================
licensedVersion OBJECT-TYPE
        SYNTAX          DisplayString
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "The system version on which the license
                         registration-key is first installed."
        ::= { f5OsSystemLicensingInfo 1 }

registrationKey OBJECT-TYPE
        SYNTAX          DisplayString
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "A unique value used to identify the
                         license information."
        ::= { f5OsSystemLicensingInfo 2 }

licensedDate OBJECT-TYPE
        SYNTAX          DisplayString
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "The system licensed date in YYYY/MM/DD format."
        ::= { f5OsSystemLicensingInfo 3 }

licenseStartDate OBJECT-TYPE
        SYNTAX          DisplayString
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "System License start date in YYYY/MM/DD format."
        ::= { f5OsSystemLicensingInfo 4 }

licenseEndDate OBJECT-TYPE
        SYNTAX          DisplayString
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "System License end date YYYY/MM/DD format."
        ::= { f5OsSystemLicensingInfo 5 }

serviceCheckDate OBJECT-TYPE
        SYNTAX          DisplayString
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "System License Service check date."
        ::= { f5OsSystemLicensingInfo 6 }

platformId OBJECT-TYPE
        SYNTAX          DisplayString
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "The system's platform ID on which license
                         installed."
        ::= { f5OsSystemLicensingInfo 7 }

serialNumber OBJECT-TYPE
        SYNTAX          DisplayString
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "The system's serial number on which license
                         installed."
        ::= { f5OsSystemLicensingInfo 8 }

--==================================================================
-- System License Active Modules table BEGIN
--==================================================================
licenseActiveModuleTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF LicenseActiveModuleEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the F5OS System
             license active modules. These entities will
             have a dynamically-varying number of conceptual rows."
    ::= { f5OsSystemLicensingInfo 9 }

licenseActiveModuleEntry OBJECT-TYPE
    SYNTAX     LicenseActiveModuleEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the LicenseActiveModuleTable."
    INDEX      { activeModuleIndex }
    ::= { licenseActiveModuleTable 1 }

LicenseActiveModuleEntry ::= SEQUENCE {
    activeModuleIndex Integer32,
    activeModule      ModuleString
}

activeModuleIndex OBJECT-TYPE
    SYNTAX     Integer32(1..255)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The auxiliary variable used for identifying instances
            of the columnar objects in the LicenseActiveModuleTable."
    ::= { licenseActiveModuleEntry 1 }

activeModule OBJECT-TYPE
        SYNTAX          ModuleString
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "System license active modules."
        ::= { licenseActiveModuleEntry 2 }

--==================================================================
-- System License InActive Modules table BEGIN
--==================================================================
licenseInActiveModuleTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF LicenseInActiveModuleEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the F5OS System's
             license inactive modules. These entities will have
             a dynamically-varying number of conceptual rows."
    ::= { f5OsSystemLicensingInfo 10 }

licenseInActiveModuleEntry OBJECT-TYPE
    SYNTAX     LicenseInActiveModuleEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the LicenseInActiveModuleTable."
    INDEX      { inActiveModuleIndex }
    ::= { licenseInActiveModuleTable 1 }

LicenseInActiveModuleEntry ::= SEQUENCE {
    inActiveModuleIndex Integer32,
    inActiveModule      ModuleString
}

inActiveModuleIndex OBJECT-TYPE
    SYNTAX     Integer32(1..255)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The auxiliary variable used for identifying instances
            of the columnar objects in the LicenseInActiveModuleTable."
    ::= { licenseInActiveModuleEntry 1 }

inActiveModule OBJECT-TYPE
        SYNTAX          ModuleString
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "System license inactive modules."
        ::= { licenseInActiveModuleEntry 2 }

--==================================================================
-- System License Timelimited Modules table BEGIN
--==================================================================
licenseTimeLimitedModuleTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF LicenseTimeLimitedModuleEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the F5OS System's
             license inactive modules. These entities will have
             a dynamically-varying number of conceptual rows."
    ::= { f5OsSystemLicensingInfo 11 }

licenseTimeLimitedModuleEntry OBJECT-TYPE
    SYNTAX     LicenseTimeLimitedModuleEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the LicenseTimeLimitedModuleTable."
    INDEX      { timeLimitedModuleIndex }
    ::= { licenseTimeLimitedModuleTable 1 }

LicenseTimeLimitedModuleEntry ::= SEQUENCE {
    timeLimitedModuleIndex Integer32,
    timeLimitedModule      ModuleString
}

timeLimitedModuleIndex OBJECT-TYPE
    SYNTAX     Integer32(1..255)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The auxiliary variable used for identifying instances
            of the columnar objects in the LicenseTimeLimitedModuleTable."
    ::= { licenseTimeLimitedModuleEntry 1 }

timeLimitedModule OBJECT-TYPE
        SYNTAX          ModuleString
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "System license timelimited modules."
        ::= { licenseTimeLimitedModuleEntry 2 }

--==================================================================
-- F5OS System Conformance and Compliance Group BEGIN
--==================================================================

f5OsSystemGroups                        OBJECT IDENTIFIER ::= { f5OsSystemConformance 1 }
f5OsSystemCompliances                   OBJECT IDENTIFIER ::= { f5OsSystemConformance 2 }

f5OsSystemLicensingInfoGroup    OBJECT-GROUP
    OBJECTS { licensedVersion,       registrationKey,
              licensedDate,          licenseStartDate,
              licenseEndDate,        serviceCheckDate,
              platformId,            serialNumber,
              activeModule,          inActiveModule,
              timeLimitedModule
            }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing information about F5OS System License."
    ::= { f5OsSystemGroups 1 }

f5OsSystemCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "The compliance statement for SNMP entities which have
            f5os system details."

    MODULE
        MANDATORY-GROUPS { f5OsSystemLicensingInfoGroup
                         }
::= { f5OsSystemCompliances 1 }


END
