-- ZyXEL Communications Corporation
-- Private Enterprise MIB definition 
  
-- This file describes the ZyXEL Communications Corporation Enterprise MIB.
-- It contains ZyXEL products OIDs, and common managed objects.

ZYXEL-SERVICE-REGISTER-MIB DEFINITIONS ::= BEGIN

    IMPORTS
	OBJECT-TYPE
		FROM SNMPv2-SMI			-- RFC2578	
		
	MODULE-IDENTITY
		FROM SNMPv2-SMI

  	DisplayString                                          
		FROM SNMPv2-TC
	
	esMgmt			
		FROM ZYXEL-ES-SMI;
		
	zyxelServiceRegister MODULE-IDENTITY
		LAST-UPDATED "201801100000Z"    
		ORGANIZATION "Enterprise Solution ZyXEL"     
		CONTACT-INFO
			""	   
		DESCRIPTION
			"The subtree for service register"
		::= { esMgmt 118 }
				
 	zyxelServiceRegisterSetup OBJECT IDENTIFIER ::= { zyxelServiceRegister 1 }		
	zyxelServiceRegisterStatus OBJECT IDENTIFIER ::= { zyxelServiceRegister 2 }
	zyxelServiceRegisterTrapInfoObjects OBJECT IDENTIFIER ::= { zyxelServiceRegister 3 }
	zyxelServiceRegisterNotifications OBJECT IDENTIFIER ::= { zyxelServiceRegister 4 } 	

-- ******************************************************************
-- *
-- * SERVICE REGISTER mib
-- *
-- ****************************************************************** 
                      
-- * 
-- * zyxelServiceRegisterServiceTable  
-- *
	zyxelServiceRegisterServiceTable OBJECT-TYPE
	 	SYNTAX      SEQUENCE OF ZyxelServiceRegisterServiceEntry
	    MAX-ACCESS  not-accessible
	    STATUS      current
	    DESCRIPTION
		"The table contains service register status."              
    ::= { zyxelServiceRegisterStatus 1 }  
    
    zyxelServiceRegisterServiceEntry OBJECT-TYPE
        SYNTAX      ZyxelServiceRegisterServiceEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
		"An entry contains service register information."
        INDEX {           
            zyServiceRegisterServiceName                 
        }
    ::= { zyxelServiceRegisterServiceTable 1 }

    ZyxelServiceRegisterServiceEntry ::=
        SEQUENCE {
			zyServiceRegisterServiceName OCTET STRING,
			zyServiceRegisterServiceStatus INTEGER,
			zyServiceRegisterServiceType INTEGER,
			zyServiceRegisterServiceExpiration INTEGER,
			zyServiceRegisterServiceCount INTEGER,
			zyServiceRegisterServiceDescript DisplayString
        }
    
    zyServiceRegisterServiceName OBJECT-TYPE
        SYNTAX  	OCTET STRING
        MAX-ACCESS 	not-accessible
        STATUS      current
        DESCRIPTION
		"This lists the services that available on the device."
    ::= { zyxelServiceRegisterServiceEntry 1 }

    zyServiceRegisterServiceStatus OBJECT-TYPE
        SYNTAX      INTEGER {
			notLicensed(0),
			licensed(1),
            default(2),
			notActivated(3),
			gracePeriod(4),
			expired(5),
			licensed_activated_after_reboot(6)
		}

        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
		"This field displays service status."
    ::= { zyxelServiceRegisterServiceEntry 2 }

    zyServiceRegisterServiceType OBJECT-TYPE
        SYNTAX      INTEGER {
			none(0),
			trial(1), 
			standard(2)
		}

        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
		"This field displays whether you applied for a trial application (Trial) or registered a service at myZyxel (Standard). 
		 This field is none when a service is not activated. "            
    ::= { zyxelServiceRegisterServiceEntry 3 }      

    zyServiceRegisterServiceExpiration OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
		"This field displays the remaining hours your service expires.
		 na(-1) - means this field is not applicable."
    ::= { zyxelServiceRegisterServiceEntry 4 }

	zyServiceRegisterServiceCount OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
         "This field displays the license count for quantity-base service.
         na(-1) - means this field is not applicable."          
    ::= { zyxelServiceRegisterServiceEntry 5 } 	

	zyServiceRegisterServiceDescript OBJECT-TYPE
        SYNTAX  	DisplayString
        MAX-ACCESS 	read-only
        STATUS      current
        DESCRIPTION "This filed displays service name for security firewall services."	
    ::= { zyxelServiceRegisterServiceEntry 6 }

	zyServiceRegisterTheServiceHasExpired NOTIFICATION-TYPE
     	OBJECTS {
			zyServiceRegisterServiceName
      	}       
  		STATUS  current
     	DESCRIPTION
      	"The service has expired."
     	::= { zyxelServiceRegisterNotifications 1 }  
     	
	zyServiceRegisterTheServiceIsDueToExpireInSomeHours NOTIFICATION-TYPE
     	OBJECTS {
			zyServiceRegisterServiceName,
			zyServiceRegisterServiceExpiration
      	}       
  		STATUS  current
     	DESCRIPTION
      	"The service is due to expired in some hours. You must renew your license before it expires."
     	::= { zyxelServiceRegisterNotifications 2 }      	
    
  END
