-- 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.

-- $Log: ZYXEL-TIME-RANGE-MIB.mib $ 
-- Revision 1.3  2014/12/12 03:02:53  jasper 
-- "zyTimeRangePeriodicWeekDayList"  directly use Bits type. 
-- Revision 1.2  2014/02/27 02:47:37  chchao 
-- fix bug. 

ZYXEL-TIME-RANGE-MIB DEFINITIONS ::= BEGIN

    IMPORTS
	enterprises		FROM RFC1155-SMI                                
	
	OBJECT-TYPE
		FROM SNMPv2-SMI			-- RFC2578	
	RowStatus, DateAndTime, TruthValue, StorageType, MacAddress
		FROM SNMPv2-TC			-- RFC2579
	DisplayString                                          
	  	FROM RFC1213-MIB
	EnabledStatus
		FROM  P-BRIDGE-MIB
	PortList
		FROM  Q-BRIDGE-MIB
	dot1dBasePort
       	FROM BRIDGE-MIB
	InterfaceIndexOrZero			-- RFC2863
		FROM IF-MIB
	esMgmt			
		FROM ZYXEL-ES-SMI;

	zyxelTimeRange MODULE-IDENTITY
		LAST-UPDATED	"201312130000Z"    
		ORGANIZATION "Enterprise Solution ZyXEL"     
		CONTACT-INFO
			""	   
		DESCRIPTION
			"The subtree for time range"
		::= { esMgmt 98 }

	zyxelTimeRangeSetup    OBJECT IDENTIFIER ::= { zyxelTimeRange 1 }
  
-- *******************************************************************
-- *
-- * zyxelTimeRangeSetup
-- *
-- *******************************************************************
     
        zyTimeRangeMaxNumberOfProfiles OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
        "The maximum number of time range entries that can be created."
        ::= { zyxelTimeRangeSetup 1 }                                 

		zyxelTimeRangeTable OBJECT-TYPE
		SYNTAX SEQUENCE OF ZyxelTimeRangeEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"The table contains time range configurations."
        ::= { zyxelTimeRangeSetup 2 }       
			
		zyxelTimeRangeEntry OBJECT-TYPE
		SYNTAX	ZyxelTimeRangeEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"An entry contains time range configurations."
		INDEX {
		 	zyTimeRangeName, 
		 	zyTimeRangeType
		}
        ::= { zyxelTimeRangeTable 1 }    
          
		ZyxelTimeRangeEntry ::=
		SEQUENCE {
			zyTimeRangeName								DisplayString,
			zyTimeRangeType								INTEGER,           
			zyTimeRangeRowStatus						INTEGER
		}      
		
		zyTimeRangeName OBJECT-TYPE
        SYNTAX  DisplayString
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "The name of time range is used for identifying purposes."
        ::= { zyxelTimeRangeEntry 1 }
		
		zyTimeRangeType OBJECT-TYPE
        SYNTAX  INTEGER{
 	        absolute(1),
 	        periodic(2)         
 	    }         
 	    MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "The type of time range is used for identifying purposes.
		 The type of time range profile are absolute and periodic.
		 absolute time range : allows to configure a time range begins on a specific hour, minute, day, month and year.
		 					   And ends on  a specific hour, minute, day, month and year.
		 periodic time range : allows to configure a time range begins on a day in a week and end on another day in a week.
		                       And allows to configure a time range in multiple days in a week. Begins on a specific hour
		                       and minute and ends on specific hour and minute at those days."
        ::= { zyxelTimeRangeEntry 2 }    
        
        zyTimeRangeRowStatus OBJECT-TYPE
        SYNTAX  RowStatus
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
        "This object allow time range entry to be created and deleted."
        ::= { zyxelTimeRangeEntry 3 } 
   
        zyxelTimeRangeAbsoluteTable OBJECT-TYPE
		SYNTAX SEQUENCE OF ZyxelTimeRangeAbsoluteEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"The table contains absolute time range configurations."
        ::= { zyxelTimeRangeSetup 3 }
           
        zyxelTimeRangeAbsoluteEntry OBJECT-TYPE
		SYNTAX	ZyxelTimeRangeAbsoluteEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"An entry contains absolute time range configurations."
		INDEX {
		 	zyTimeRangeName, 
		 	zyTimeRangeType
		}        		
        ::= { zyxelTimeRangeAbsoluteTable 1 }    
        
        ZyxelTimeRangeAbsoluteEntry ::=
		SEQUENCE {
			zyTimeRangeAbsoluteStartYear		INTEGER,
			zyTimeRangeAbsoluteStartMonth       INTEGER,
			zyTimeRangeAbsoluteStartDate        INTEGER,
			zyTimeRangeAbsoluteStartHour        INTEGER,
			zyTimeRangeAbsoluteStartMinute      INTEGER,
			zyTimeRangeAbsoluteEndYear          INTEGER,
			zyTimeRangeAbsoluteEndMonth         INTEGER,
			zyTimeRangeAbsoluteEndDate          INTEGER,
			zyTimeRangeAbsoluteEndHour          INTEGER,
			zyTimeRangeAbsoluteEndMinute        INTEGER	
		}  
		
		zyTimeRangeAbsoluteStartYear OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "The start year of absolute time range."
        ::= { zyxelTimeRangeAbsoluteEntry 1 }
        
        zyTimeRangeAbsoluteStartMonth OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "The start month of absolute time range."
        ::= { zyxelTimeRangeAbsoluteEntry 2 }
        
        zyTimeRangeAbsoluteStartDate OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "The start date of absolute time range."
        ::= { zyxelTimeRangeAbsoluteEntry 3 }
        
        zyTimeRangeAbsoluteStartHour OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "The start hour of absolute time range."
        ::= { zyxelTimeRangeAbsoluteEntry 4 }
        
        zyTimeRangeAbsoluteStartMinute OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "The start minute of absolute time range."
        ::= { zyxelTimeRangeAbsoluteEntry 5 }
        
        zyTimeRangeAbsoluteEndYear OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "The end year of absolute time range."
        ::= { zyxelTimeRangeAbsoluteEntry 6 }
        
        zyTimeRangeAbsoluteEndMonth OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "The end month of absolute time range."
        ::= { zyxelTimeRangeAbsoluteEntry 7 }    
        
        zyTimeRangeAbsoluteEndDate OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "The end date of absolute time range."
        ::= { zyxelTimeRangeAbsoluteEntry 8 }

		zyTimeRangeAbsoluteEndHour OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "The end hour of absolute time range."
        ::= { zyxelTimeRangeAbsoluteEntry 9 }   
        
        zyTimeRangeAbsoluteEndMinute OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "The end minute of absolute time range."
        ::= { zyxelTimeRangeAbsoluteEntry 10 }  
   
		ZyTimeRangeWeekDayList  ::= TEXTUAL-CONVENTION
	    STATUS     current
	    DESCRIPTION  "Bitmap that includes days of week.
	                 Each bit in the bitmap associated with corresponding day of the week."
	    SYNTAX      BITS {
	            monday(0),
	            tuesday(1),
	            wednesday(2),
	            thursday(3),
	            friday(4),
	            saturday(5),
	            sunday(6)
		}
		
		zyxelTimeRangePeriodicTable OBJECT-TYPE
		SYNTAX SEQUENCE OF ZyxelTimeRangePeriodicEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"The table contains periodic time range configurations."
        ::= { zyxelTimeRangeSetup 4 }
           
        zyxelTimeRangePeriodicEntry OBJECT-TYPE
		SYNTAX	ZyxelTimeRangePeriodicEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"An entry contains periodic time range configurations."
		INDEX {
		 	zyTimeRangeName, 
		 	zyTimeRangeType
		}        		
        ::= { zyxelTimeRangePeriodicTable 1 } 
        
        ZyxelTimeRangePeriodicEntry ::=
		SEQUENCE {
			zyTimeRangePeriodicWeekDayList 		BITS,
			zyTimeRangePeriodicStartWeekDay   	INTEGER,
			zyTimeRangePeriodicStartHour		INTEGER,
			zyTimeRangePeriodicStartMinute		INTEGER,
			zyTimeRangePeriodicEndWeekDay		INTEGER,			
			zyTimeRangePeriodicEndHour   		INTEGER,
			zyTimeRangePeriodicEndMinute     	INTEGER
		}      
		    
		zyTimeRangePeriodicWeekDayList OBJECT-TYPE
        SYNTAX  BITS {
	            monday(0),
	            tuesday(1),
	            wednesday(2),
	            thursday(3),
	            friday(4),
	            saturday(5),
	            sunday(6)
		}
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "The weekday bitmap allows user to configure multiple weekdays in a week.
         This entry conflicts with zyTimeRangePeriodicStartWeekDay and zyTimeRangePeriodicEndWeekDay."
        ::= { zyxelTimeRangePeriodicEntry 1 }
        
        zyTimeRangePeriodicStartWeekDay OBJECT-TYPE
        SYNTAX  INTEGER{
        		none(0),
	            monday(1),
	            tuesday(2),
	            wednesday(3),
	            thursday(4),
	            friday(5),
	            saturday(6),
	            sunday(7)
		}
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "The start day of a week of periodic time range.
		 This entry conflicts with zyTimeRangePeriodicWeekDayList."
        ::= { zyxelTimeRangePeriodicEntry 2 }
        
        zyTimeRangePeriodicStartHour OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "The start hour of periodic time range."
        ::= { zyxelTimeRangePeriodicEntry 3 }
        
        zyTimeRangePeriodicStartMinute OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "The start minute of periodic time range."
        ::= { zyxelTimeRangePeriodicEntry 4 }
        
        zyTimeRangePeriodicEndWeekDay OBJECT-TYPE
        SYNTAX  INTEGER{
        		none(0),
	            monday(1),
	            tuesday(2),
	            wednesday(3),
	            thursday(4),
	            friday(5),
	            saturday(6),
	            sunday(7)
		}
		MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "The end day of a week of periodic time range.
		 This entry conflicts with zyTimeRangePeriodicWeekDayList."
        ::= { zyxelTimeRangePeriodicEntry 5 }
        
        zyTimeRangePeriodicEndHour OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "The end hour of periodic time range."
        ::= { zyxelTimeRangePeriodicEntry 6 }
        
        zyTimeRangePeriodicEndMinute OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "The end minute of periodic time range."
        ::= { zyxelTimeRangePeriodicEntry 7 } 
END		
