ELTEX-ELM-LIC-MIB DEFINITIONS ::= BEGIN

IMPORTS
	eltexLtd
		FROM ELTEX-SMI-ACTUAL
	MODULE-IDENTITY, OBJECT-TYPE, Integer32
		FROM SNMPv2-SMI
	DisplayString, DateAndTime, TEXTUAL-CONVENTION
		FROM SNMPv2-TC
	MODULE-COMPLIANCE, OBJECT-GROUP
		FROM SNMPv2-CONF;

eltexElmLicMib MODULE-IDENTITY
	LAST-UPDATED "202504220000Z"  -- April 22, 2025 00:00:00 EST
	ORGANIZATION "Eltex Enterprise, Ltd."
	CONTACT-INFO "eltex-co.ru"
	DESCRIPTION "The MIB module for Eltex licence management"
	REVISION "202504220000Z"
	DESCRIPTION "Initial revision of The ELTEX-ELM-LIC-MIB."
	::= { eltexLtd 61 }

-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Identifiers
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

eltexElmLicObjects OBJECT IDENTIFIER ::= { eltexElmLicMib 1 }
	eltexElmLicInfo OBJECT IDENTIFIER ::= { eltexElmLicObjects 1 }
		eltexElmLicInfoBundle OBJECT IDENTIFIER ::= { eltexElmLicInfo 2 }
	eltexElmLicManagerInfo OBJECT IDENTIFIER ::= { eltexElmLicObjects 2 }

eltexElmLicConformance OBJECT IDENTIFIER ::= { eltexElmLicMib 2 }
	eltexElmLicGroups OBJECT IDENTIFIER ::= { eltexElmLicConformance 1 }
	eltexElmLicCompliances OBJECT IDENTIFIER ::= { eltexElmLicConformance 2 }

-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Textual conventions
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

EltexElmLicParamPurpose ::= TEXTUAL-CONVENTION
	STATUS current
	DESCRIPTION
		"This is the purpose of licence parameter, which says
		 how parameter will impact on system:

		    invalid(-1)     : none of the following, this parameter
		                      not known to the system.

		    enable(1)       : parameter enables or disables related entities or functionality.

		    limit(2)        : parameter accordingly limits related system values.

		    range(3)        : parameter sets available range to related system value (from x to y).

		    timestamp(4)    : parameter sets timestamp to related actions
		                      (... to t2)

		    timeinterval(5) : parameter sets time interval to related actions.
		                      (from t1 to t2)"

	SYNTAX INTEGER {
		invalid(-1),
		enable(1),
		limit(2),
		range(3),
		timestamp(4),
		timeinterval(5)
	}

EltexElmLicParamSource ::= TEXTUAL-CONVENTION
	STATUS current
	DESCRIPTION
		"These are the license parameter sources that say
		 how the parameter was obtained:

		    unknown(-1) : none

		    boot(1)     : The license was loaded via the boot menu

		    filev1(2)   : The license was loaded via a legacy license file format

		    filev2(3)   : The license was loaded from a license file

		    elm(4)      : The license was uploaded via elm server"


	SYNTAX INTEGER {
		unknown(-1),
		boot(1),
		filev1(2),
		filev2(3),
		elm(4)
	}

EltexElmLicParamState ::= TEXTUAL-CONVENTION
	STATUS current
	DESCRIPTION
		"This parameter characterizes the license status:

		    unknown(-1)    : none

		    active(1)      : The license is active

		    candidate(2)   : The license will active after reboot

		    unsupported(3) : The license is not supported by this version"

	SYNTAX INTEGER {
		unknown(-1),
		active(1),
		candidate(2),
		unsupported(3)
	}

EltexElmLicServerType ::= TEXTUAL-CONVENTION
	STATUS      current
	DESCRIPTION "Remote ELM server type"
	SYNTAX      INTEGER {
		unknown(0),
		root(1),
		offline(2)
	}

EltexElmLicStatus ::= TEXTUAL-CONVENTION
	STATUS      current
	DESCRIPTION "Status of last interaction with ELM server."
	SYNTAX      INTEGER {
		undefined(0),
		success(1),
		failed(2)
	}

-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Licence bundle information
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

eltexElmLicInfoBundleValidFromDate OBJECT-TYPE
	SYNTAX     DateAndTime
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"Licence bundle start date."
	::= { eltexElmLicInfoBundle 1 }

eltexElmLicInfoBundleExpiryDate OBJECT-TYPE
	SYNTAX     DateAndTime
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"Licence bundle expiration date."
	::= { eltexElmLicInfoBundle 2 }

-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Licence parameter information
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

eltexElmLicInfoParamsTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF EltexElmLicInfoParamsEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Licence parameters table."
    ::= { eltexElmLicInfo 1 }

eltexElmLicInfoParamsEntry OBJECT-TYPE
	SYNTAX     EltexElmLicInfoParamsEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"Entry contains information about licence parameter."
	INDEX {
		eltexElmLicInfoParamIndex
	}
	::= { eltexElmLicInfoParamsTable 1 }

EltexElmLicInfoParamsEntry ::=
	SEQUENCE {
		eltexElmLicInfoParamIndex
			Integer32,
		eltexElmLicInfoParamName
			DisplayString,
		eltexElmLicInfoParamPurpose
			EltexElmLicParamPurpose,
		eltexElmLicInfoParamValue
			DisplayString,
		eltexElmLicInfoParamSource
			EltexElmLicParamSource,
		eltexElmLicInfoParamState
			EltexElmLicParamState,
		eltexElmLicInfoParamValidFromDate
			DateAndTime,
		eltexElmLicInfoParamExpireDate
			DateAndTime
		}

eltexElmLicInfoParamIndex OBJECT-TYPE
	SYNTAX     Integer32 (1..256)
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"Licence parameter Id."
	::= { eltexElmLicInfoParamsEntry 1 }

eltexElmLicInfoParamName OBJECT-TYPE
	SYNTAX     DisplayString
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"Licence parameter name."
	::= { eltexElmLicInfoParamsEntry 2 }

eltexElmLicInfoParamPurpose OBJECT-TYPE
	SYNTAX     EltexElmLicParamPurpose
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"Licence parameter purpose."
	::= { eltexElmLicInfoParamsEntry 3 }

eltexElmLicInfoParamValue OBJECT-TYPE
	SYNTAX     DisplayString
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"Licence parameter value."
	::= { eltexElmLicInfoParamsEntry 4 }

eltexElmLicInfoParamSource OBJECT-TYPE
	SYNTAX     EltexElmLicParamSource
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"Licence parameter source"
	::= { eltexElmLicInfoParamsEntry 5 }

eltexElmLicInfoParamState OBJECT-TYPE
	SYNTAX     EltexElmLicParamState
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"Licence parameter state"
	::= { eltexElmLicInfoParamsEntry 6 }

eltexElmLicInfoParamValidFromDate OBJECT-TYPE
	SYNTAX     DateAndTime
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"Licence parameter start date."
	::= { eltexElmLicInfoParamsEntry 7 }

eltexElmLicInfoParamExpireDate OBJECT-TYPE
	SYNTAX     DateAndTime
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"Licence parameter expiration date."
	::= { eltexElmLicInfoParamsEntry 8 }

-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Licence manager information
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

eltexElmLicManagerServerType OBJECT-TYPE
	SYNTAX     EltexElmLicServerType
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"Remote ELM server type."
	::= { eltexElmLicManagerInfo 1 }

eltexElmLicManagerStatus OBJECT-TYPE
	SYNTAX     EltexElmLicStatus
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"Status of last interaction session with remote
		 ELM server."
	::= { eltexElmLicManagerInfo 2 }

eltexElmLicManagerLastRequestDate OBJECT-TYPE
	SYNTAX     DateAndTime
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"Date of last interaction session with remote
		 ELM server."
	::= { eltexElmLicManagerInfo 3 }

eltexElmLicManagerNextRequestDate OBJECT-TYPE
	SYNTAX     DateAndTime
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"Date of next interaction session with remote
		 ELM server."
	::= { eltexElmLicManagerInfo 4 }

-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- compliance statements
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

eltexElmLicCompliance MODULE-COMPLIANCE
	STATUS current
	DESCRIPTION
		"The compliance statement."
	MODULE       -- this module
	MANDATORY-GROUPS {
		eltexElmLicGroup
		}
	::= { eltexElmLicCompliances 1 }

-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- units of conformance
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

eltexElmLicGroup OBJECT-GROUP
	OBJECTS {
		eltexElmLicManagerServerType,
		eltexElmLicManagerStatus,
		eltexElmLicManagerLastRequestDate,
		eltexElmLicManagerNextRequestDate,
		eltexElmLicInfoBundleValidFromDate,
		eltexElmLicInfoBundleExpiryDate,
		eltexElmLicInfoParamName,
		eltexElmLicInfoParamPurpose,
		eltexElmLicInfoParamValue,
		eltexElmLicInfoParamSource,
		eltexElmLicInfoParamState,
		eltexElmLicInfoParamValidFromDate,
		eltexElmLicInfoParamExpireDate
		}
	STATUS current
	DESCRIPTION
		"These objects are used for licence information."
	::= { eltexElmLicGroups 1 }

END
