RC-RESTCONF-MIB DEFINITIONS ::= BEGIN

IMPORTS 
    MODULE-IDENTITY, OBJECT-TYPE, Integer32
        FROM SNMPv2-SMI
    DisplayString, TruthValue 
        FROM SNMPv2-TC
    IpAddress 
        FROM RFC1155-SMI 
    rcMgmt
        FROM RAPID-CITY;

rcRestConf MODULE-IDENTITY
       LAST-UPDATED "201901180000Z"
       ORGANIZATION "Extreme Networks"
       CONTACT-INFO "Marty Lok
                     Postal:  
                     email:   mlok@extremenetworks.com"
       DESCRIPTION      "Enterprise MIB for the VOSS product family."

       REVISION "201901180000Z" -- 18 Jan 2019
       DESCRIPTION "Version 6: Removed the comma after Integer32 on line 4,
	   		       as it was causing a compile error for BOSS
			       MIBS archive (azmeu - change pushed by Prem)"

       REVISION "201901080000Z" -- 8 Jan 2019
       DESCRIPTION "Version 5: Modified the range of rcRestConfTcpPort
	   		       from 1..65535 to 1..49151
	   		       VOSS 8.0 (Prem)"

       REVISION "201809180000Z" -- 18 Sept 2018
       DESCRIPTION "Version 4: Modified rcRestConfCertificateAction with
	   		       install and uninstall options"

       REVISION "201808150000Z" -- 15 August 2018
       DESCRIPTION "Version 3: Changed the range (0..65535) to (1..65535) for 
	                       object rcRestConfTcpPort (Prem)"

       REVISION "201805090000Z" -- 09 May 2018
       DESCRIPTION "Version 2: Changed the range (1..128) to (0..128) for 
	                       object rcRestConfCertificateFilename"
			   
       REVISION "201805020000Z" -- 02 May 2018
       DESCRIPTION "Version 1: Initial VOSS RESTConf mib file"
       ::= { rcMgmt 227 }
		   
-- RestConf : Support for the RestConf Protocol

rcRestConfObjects   		OBJECT IDENTIFIER ::= { rcRestConf 1 }
rcRestConfScalars  		OBJECT IDENTIFIER ::= { rcRestConfObjects 1 }
rcRestConfNotificationObjects   OBJECT IDENTIFIER ::= { rcRestConfObjects 2 }

rcRestConfGlobalEnable OBJECT-TYPE
	SYNTAX	      TruthValue
        MAX-ACCESS    read-write
        STATUS        current
	DESCRIPTION   "Enable or Disable the ability to use the RestConf 
	    protocol to communicate to the device."
	DEFVAL        { false } 
	::= { rcRestConfScalars 1 }

rcRestConfTcpPort OBJECT-TYPE
	SYNTAX	      Integer32(1..49151)
        MAX-ACCESS    read-write
        STATUS        current
	DESCRIPTION   "Specifies the TCP Port to use for RestConf Server."
	DEFVAL        { 8080 } 
	::= { rcRestConfScalars 2 }

rcRestConfTlsEnable OBJECT-TYPE
	SYNTAX	      TruthValue
        MAX-ACCESS    read-write
        STATUS        current
	DESCRIPTION   "Indicates whether TLS/SSL is enabled or disabled for
	    the RestConf Server."
	DEFVAL        { false } 
	::= { rcRestConfScalars 3 }

rcRestConfCertificateFilename OBJECT-TYPE
	SYNTAX	      DisplayString(SIZE(0..128))
        MAX-ACCESS    read-write
        STATUS        current
	DESCRIPTION   "The certificate file for the RestConf Server to be
	    installed or uninstalled.  It requires the 
	    rcRestConfCertificateAction to be installed, uninstalled"
	::= { rcRestConfScalars 4 }

rcRestConfCertificateAction OBJECT-TYPE
	SYNTAX	      INTEGER  {
                           install(1),
                           uninstall(2) }
        MAX-ACCESS    read-write
        STATUS        current
	DESCRIPTION   "Action to install or uninstall the certificate file
	               for the RestConf Server.  It requires the 
	               rcRestConfCertificateFilename with a valid certification 
                       file. It also inidcates the current certificate file 
		       install status"
      DEFVAL          { uninstall }
	::= { rcRestConfScalars 5 }

rcRestConfNotificationEnable OBJECT-TYPE
	SYNTAX	      TruthValue
        MAX-ACCESS    read-write
        STATUS        current
	DESCRIPTION   "Enable/disable the notification when the RestConf 
	    protocol support is not available."
      DEFVAL          { true }
	::= { rcRestConfScalars 6 }

rcRestConfOperStatus OBJECT-TYPE
	SYNTAX	      INTEGER {
                       up(1),
                       down(2)
                      }	     
        MAX-ACCESS    read-only
        STATUS        current		      
	DESCRIPTION   "Indicates the operational status of the RestConf Server."
	::= { rcRestConfScalars 7 }

rcRestConfAddress OBJECT-TYPE
	SYNTAX	      IpAddress
        MAX-ACCESS    read-write
        STATUS        current		      
	DESCRIPTION   "Allows the user to override the default IP value and 
		      to specify a specific IP address to use for RESTCONF."
	::= { rcRestConfScalars 8 }

rcRestConfWebServerVersion OBJECT-TYPE
	SYNTAX	      DisplayString (SIZE (0..80))
        MAX-ACCESS    read-only
        STATUS        current
	DESCRIPTION   "RestConf web server version is running on the device. 
                       It is empty when RestConf is not enabled"
	::= { rcRestConfScalars 9 }

rcRestConfRestConfServerVersion OBJECT-TYPE
	SYNTAX	      DisplayString (SIZE (0..80))
        MAX-ACCESS    read-only
        STATUS        current
	DESCRIPTION   "RestConf server version is running on the device. 
                       It is empty when RestConf is not enabled"
	::= { rcRestConfScalars 10 }

rcRestConfServerOperationStatus OBJECT-TYPE
        SYNTAX        INTEGER {
	                  startSuccess(1),
                          startFail(2),
                          stop(3)
                      }
        MAX-ACCESS    accessible-for-notify
        STATUS        current
        DESCRIPTION   "It indicates the operational status of the RestConf server:
                       startSuccess(1), startFail(2), stop(3)."
        ::= { rcRestConfNotificationObjects 1 }

-- End of RestConf

END
