-- 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-ACCESS-CONTROL-MIB.mib
-- Revision 1.8  2015/07/28 

ZYXEL-ACCESS-CONTROL-MIB DEFINITIONS ::= BEGIN

    IMPORTS
	OBJECT-TYPE
		FROM SNMPv2-SMI			-- RFC2578	
		
	MODULE-IDENTITY
		FROM SNMPv2-SMI
	
	EnabledStatus
		FROM  P-BRIDGE-MIB
	
	IpAddress
		FROM SNMPv2-SMI

	InetAddressType, InetAddress
		FROM INET-ADDRESS-MIB		-- RFC2851

	DisplayString                                          
		FROM SNMPv2-TC

	esMgmt			
		FROM ZYXEL-ES-SMI;

	zyxelAccessControl MODULE-IDENTITY
		LAST-UPDATED	"201904240000Z"    
		ORGANIZATION "Enterprise Solution ZyXEL"     
		CONTACT-INFO
			""	   
		DESCRIPTION
			"The subtree for access control"
		::= { esMgmt 9 }
	
	zyxelAccessControlSetup     OBJECT IDENTIFIER ::= { zyxelAccessControl 1 }	
	zyxelAccessControlTrapInfoObject OBJECT IDENTIFIER ::= { zyxelAccessControl 3 }
	zyxelAccessControlNotifications 	OBJECT IDENTIFIER ::= { zyxelAccessControl 4 }
--  1.zyxelAccessControlSetup
	                                                      
-- 		zyxelAccessControlTable

        zyxelAccessControlTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF ZyxelAccessControlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "The table contains access control configuration."
        ::= { zyxelAccessControlSetup 1 }
        
		zyxelAccessControlEntry OBJECT-TYPE
        SYNTAX	ZyxelAccessControlEntry
        MAX-ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	
		"An entry contains access control configuration."
        INDEX          	{ zyAccessControlService }
        ::= { zyxelAccessControlTable 1 }

        ZyxelAccessControlEntry ::=
           SEQUENCE {
        	zyAccessControlService		INTEGER,
        	zyAccessControlState		EnabledStatus,
        	zyAccessControlServicePort	INTEGER,
        	zyAccessControlTimeout		INTEGER,
			zyAccessControlLoginTimeout	INTEGER,
			zyAccessControlHttpRedirectToHttps EnabledStatus
           }

        zyAccessControlService OBJECT-TYPE
        SYNTAX  INTEGER {
        	telnet(1),
        	ssh(2),
        	ftp(3),
        	http(4),
        	https(5),
        	icmp(6),
        	snmp(7),
        	console(8)
        }
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "Services you may use to access the switch."
        ::= { zyxelAccessControlEntry 1 }

        zyAccessControlState OBJECT-TYPE
        SYNTAX  EnabledStatus
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "Enable/Disable a specified service that you want to allow to access the switch."
        ::= { zyxelAccessControlEntry 2 }

        zyAccessControlServicePort OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "Port number for the specified service."
        ::= { zyxelAccessControlEntry 3 }

        zyAccessControlTimeout OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "The timeout period in minutes for aging out the session."
        ::= { zyxelAccessControlEntry 4 }

        zyAccessControlLoginTimeout OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "The login timeout period in seconds for aging out the session."
        ::= { zyxelAccessControlEntry 5 }


        zyAccessControlHttpRedirectToHttps OBJECT-TYPE
        SYNTAX  EnabledStatus
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "Redirect http pages to https pages"
        ::= { zyxelAccessControlEntry 6 }


-- 		zyxelSecuredClientTable
        zyxelSecuredClientTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF ZyxelSecuredClientEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "The table contains secured client configuration."
        ::= { zyxelAccessControlSetup 2 }
        
		zyxelSecuredClientEntry OBJECT-TYPE
        SYNTAX	ZyxelSecuredClientEntry
        MAX-ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	
		"An entry contains secured client configuration."
        INDEX          	{ zySecuredClientIndex }
        ::= { zyxelSecuredClientTable 1 }

        ZyxelSecuredClientEntry ::=
           SEQUENCE {
           	zySecuredClientIndex			INTEGER,
           	zySecuredClientState			EnabledStatus,
        	zySecuredClientStartIpAddress	IpAddress,
        	zySecuredClientEndIpAddress		IpAddress,
        	zySecuredClientService			BITS
           }

        zySecuredClientIndex OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "Index number of secured client set."
        ::= { zyxelSecuredClientEntry 1 }

        zySecuredClientState OBJECT-TYPE
        SYNTAX  EnabledStatus
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "Enable/Disable this secured client set."
        ::= { zyxelSecuredClientEntry 2 }

        zySecuredClientStartIpAddress OBJECT-TYPE
        SYNTAX  IpAddress
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "Configure the start IP address of trusted computers from which you can manage this switch."
        ::= { zyxelSecuredClientEntry 3 }

        zySecuredClientEndIpAddress OBJECT-TYPE
        SYNTAX  IpAddress
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "Configure the end IP address of trusted computers from which you can manage this switch."
        ::= { zyxelSecuredClientEntry 4 }

        zySecuredClientService OBJECT-TYPE
        SYNTAX	BITS {
			telnet(0),
			ftp(1),
			http(2),
			icmp(3),
			snmp(4),
			ssh(5),
			https(6)
		}
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "Select services that may be used for managing the switch from the specified trusted computers."
        ::= { zyxelSecuredClientEntry 5 }
		
-- 		zyxelSecuredClientIpv6Table
        zyxelSecuredClientIpv6Table OBJECT-TYPE
        SYNTAX	SEQUENCE OF ZyxelSecuredClientIpv6Entry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "The table contains IPv6 secured client configuration."
        ::= { zyxelAccessControlSetup 3 }
        
		zyxelSecuredClientIpv6Entry OBJECT-TYPE
        SYNTAX	ZyxelSecuredClientIpv6Entry
        MAX-ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	
		"An entry contains IPv6 secured client configuration."
        INDEX          	{ zySecuredClientIpv6Index }
        ::= { zyxelSecuredClientIpv6Table 1 }

        ZyxelSecuredClientIpv6Entry ::=
           SEQUENCE {
           	zySecuredClientIpv6Index				INTEGER,
           	zySecuredClientIpv6State				EnabledStatus,
			zySecuredClientIpv6StartIpAddressType	InetAddressType,
        	zySecuredClientIpv6StartIpAddress		InetAddress,
			zySecuredClientIpv6EndIpAddressType		InetAddressType,
        	zySecuredClientIpv6EndIpAddress			InetAddress,
        	zySecuredClientIpv6Service				BITS
           }

        zySecuredClientIpv6Index OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "Index number of IPv6 secured client set."
        ::= { zyxelSecuredClientIpv6Entry 1 }

        zySecuredClientIpv6State OBJECT-TYPE
        SYNTAX  EnabledStatus
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "Enable/Disable this IPv6 secured client set."
        ::= { zyxelSecuredClientIpv6Entry 2 }

		zySecuredClientIpv6StartIpAddressType OBJECT-TYPE
        SYNTAX  InetAddressType
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
        "A value that represents a type of the start IPv6 address."
        ::= { zyxelSecuredClientIpv6Entry 3 }
		
        zySecuredClientIpv6StartIpAddress OBJECT-TYPE
        SYNTAX  InetAddress
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "Configure the start IPv6 address of trusted computers from which you can manage this switch."
        ::= { zyxelSecuredClientIpv6Entry 4 }

		zySecuredClientIpv6EndIpAddressType OBJECT-TYPE
        SYNTAX  InetAddressType
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
        "A value that represents a type of the end IPv6 address."
        ::= { zyxelSecuredClientIpv6Entry 5 }
		
        zySecuredClientIpv6EndIpAddress OBJECT-TYPE
        SYNTAX  InetAddress
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "Configure the end IPv6 address of trusted computers from which you can manage this switch."
        ::= { zyxelSecuredClientIpv6Entry 6 }

        zySecuredClientIpv6Service OBJECT-TYPE
        SYNTAX	BITS {
			telnet(0),
			ftp(1),
			http(2),
			icmp(3),
			snmp(4),
			ssh(5),
			https(6)
		}
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "Select services that may be used for managing the switch from the specified trusted computers."
        ::= { zyxelSecuredClientIpv6Entry 7 }
		
-- *******************************************************************
-- *
-- * zyxelAccessControlTrapInfoObject
-- *
-- *******************************************************************		
		zyAccessControlLoginService OBJECT-TYPE
        SYNTAX  INTEGER {
        	console(0),
			telnet(1),
        	ssh(2),
        	ftp(3),
        	http(4),
			https(5)
        }
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
			"Services user use to access the switch."  
        ::= { zyxelAccessControlTrapInfoObject 1 } 
		
		
		zyAccessControlLoginUsername OBJECT-TYPE
        SYNTAX  DisplayString
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
			"Username of login the switch"  
        ::= { zyxelAccessControlTrapInfoObject 2 } 
		
		zyAccessControlLoginIpAddress OBJECT-TYPE
        SYNTAX  DisplayString
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
			"IP address of loging this switch"  
        ::= { zyxelAccessControlTrapInfoObject 3 } 
		
	   zyAccessControlLoginRecord NOTIFICATION-TYPE
       OBJECTS {
				zyAccessControlLoginService,
				zyAccessControlLoginUsername,
				zyAccessControlLoginIpAddress
         }       
	   STATUS  current
       DESCRIPTION
       "Record login information."
       ::= { zyxelAccessControlNotifications 1 }
	   
	   zyAccessControlLogoutRecord NOTIFICATION-TYPE
       OBJECTS {
				zyAccessControlLoginService,
				zyAccessControlLoginUsername,
				zyAccessControlLoginIpAddress
         }       
	   STATUS  current
       DESCRIPTION
       "Record login information."
       ::= { zyxelAccessControlNotifications 2 }
	   
	   zyAccessControlLoginFail NOTIFICATION-TYPE
       OBJECTS {
				zyAccessControlLoginService,
				zyAccessControlLoginUsername,
				zyAccessControlLoginIpAddress
         }       
	   STATUS  current
       DESCRIPTION
       "Record login information."
       ::= { zyxelAccessControlNotifications 3 }

       zyAccessControlTimeoutDisconnRecord NOTIFICATION-TYPE
       OBJECTS {
				zyAccessControlLoginService,
				zyAccessControlLoginUsername,
				zyAccessControlLoginIpAddress
         }       
	   STATUS  current
       DESCRIPTION
       "Record login information."
       ::= { zyxelAccessControlNotifications 4 }

END

