-- ****************************************************************************
-- ****************************************************************************
--             Copyright(c) 2004 Mediatrix Telecom, Inc.
--  NOTICE:
--   This document contains information that is confidential and proprietary
--   to Mediatrix Telecom, Inc.
--   Mediatrix Telecom, Inc. reserves all rights to this document as well as
--   to the Intellectual Property of the document and the technology and
--   know-how that it includes and represents.
--   This publication cannot be reproduced, neither in whole nor in part in
--   any form whatsoever without written prior approval by
--   Mediatrix Telecom, Inc.
--   Mediatrix Telecom, Inc. reserves the right to revise this publication
--   and make changes at any time and without the obligation to notify any
--   person and/or entity of such revisions and/or changes.
-- ****************************************************************************
-- ****************************************************************************

MX-SCM-MIB
DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        Unsigned32,
        Integer32
    FROM SNMPv2-SMI
        MODULE-COMPLIANCE,
        OBJECT-GROUP
    FROM SNMPv2-CONF
        MxEnableState,
        MxActivationState,
        MxIpHostName,
        MxIpAddress,
        MxIpPort,
        MxAdvancedIpPort,
        MxIpSubnetMask,
        MxDigitMap
    FROM MX-TC
        MxUInt64,
        MxFloat32,
        MxIpHostNamePort,
        MxIpAddr,
        MxIpAddrPort,
        MxIpAddrMask,
        MxUri,
        MxUrl
    FROM MX-TC2
        mediatrixServices
    FROM MX-SMI2;

scmMIB MODULE-IDENTITY
 LAST-UPDATED   "1910210000Z"
 ORGANIZATION " Mediatrix Telecom, Inc. "
 CONTACT-INFO " Mediatrix Telecom, Inc.
                4229, Garlock Street
                Sherbrooke (Quebec)
                Canada
                Phone: (819) 829-8749
                "
 DESCRIPTION  " Service Controller Manager

                The Service Controller Manager (SCM) service allows the
                administrator to enable or disable services.
                "
 ::= { mediatrixServices 400 }

scmMIBObjects OBJECT IDENTIFIER ::= { scmMIB 1 }

-- *****************************************************************************

-- Table:Services

-- *****************************************************************************

servicesInfoTable OBJECT-TYPE
 SYNTAX        SEQUENCE OF ServicesInfoEntry
 MAX-ACCESS    not-accessible
 STATUS        current
 DESCRIPTION " Services

               This table contains information about each service within the
               system.
               "
 ::= { scmMIBObjects 100 }
 servicesInfoEntry OBJECT-TYPE
  SYNTAX        ServicesInfoEntry
  MAX-ACCESS    not-accessible
  STATUS        current
  DESCRIPTION " A row in table Services. "
  INDEX         {
                  servicesInfoName
                }

  ::= { servicesInfoTable 1 }

 ServicesInfoEntry ::= SEQUENCE
 {
   servicesInfoName        OCTET STRING,
   servicesInfoId          Unsigned32,
   servicesInfoClass       INTEGER,
   servicesInfoStartupType INTEGER,
   servicesInfoExecState   INTEGER,
   servicesInfoComment     OCTET STRING
 }

 -- Index:Name

 servicesInfoName OBJECT-TYPE
  SYNTAX        OCTET STRING
  MAX-ACCESS    read-only
  STATUS        current
  DESCRIPTION " Name

                Displays the service name.
                "
  ::= { servicesInfoEntry 100 }

 -- Columnar:Identifier

 servicesInfoId OBJECT-TYPE
  SYNTAX        Unsigned32
  MAX-ACCESS    read-only
  STATUS        current
  DESCRIPTION " Identifier

                Shows the service identifier.
                "
  ::= { servicesInfoEntry 200 }

 -- Columnar:Class

 servicesInfoClass OBJECT-TYPE
  SYNTAX        INTEGER { system(100) , user(200) }
  MAX-ACCESS    read-only
  STATUS        current
  DESCRIPTION " Class

                Shows the service class.

                  * System: A system service is a core element of the system.
                    It cannot be managed by the administrator.
                  * User: A user service is an element that can be managed by
                    the administrator. This type of service is not essential to
                    the system execution.

                "
  ::= { servicesInfoEntry 400 }

 -- Columnar:Startup Type

 servicesInfoStartupType OBJECT-TYPE
  SYNTAX        INTEGER { auto(100) , manual(200) }
  MAX-ACCESS    read-only
  STATUS        current
  DESCRIPTION " Startup Type

                Shows the service startup type.

                  * Auto: The service is automatically started when the system
                    restarts.
                  * Manual: The administrator manually starts the service.

                "
  ::= { servicesInfoEntry 500 }

 -- Columnar:Execution State

 servicesInfoExecState OBJECT-TYPE
  SYNTAX        INTEGER { started(100) , starting(200) , stopped(300) ,
                stopping(400) , notResponding(65000) }
  MAX-ACCESS    read-only
  STATUS        current
  DESCRIPTION " Execution State

                Shows the execution state of the service.

                  * Started: Service started and executing normally.
                  * Starting: Service is being started.
                  * Stopped: Service has stopped its execution.
                  * Stopping: Service has been requested to stop and is freeing
                    resource.
                  * NotResponding: Service has been requested to start or stop
                    and has not responded within the allowed delay.

                "
  ::= { servicesInfoEntry 600 }

 -- Columnar:Comment

 servicesInfoComment OBJECT-TYPE
  SYNTAX        OCTET STRING ( SIZE(0..255) )
  MAX-ACCESS    read-only
  STATUS        current
  DESCRIPTION " Comment

                Displays comments on the service's current state.
                "
  ::= { servicesInfoEntry 700 }

-- End of table:Services

-- ***************************************************************************

-- Table:Service Commands

-- ***************************************************************************

serviceCommandsTable OBJECT-TYPE
 SYNTAX        SEQUENCE OF ServiceCommandsEntry
 MAX-ACCESS    not-accessible
 STATUS        current
 DESCRIPTION " Service Commands

               This table contains commands that can be executed on services.
               "
 ::= { scmMIBObjects 200 }
 serviceCommandsEntry OBJECT-TYPE
  SYNTAX        ServiceCommandsEntry
  MAX-ACCESS    not-accessible
  STATUS        current
  DESCRIPTION " A row in table Service Commands. "
  INDEX         {
                  serviceCommandsName
                }

  ::= { serviceCommandsTable 1 }

 ServiceCommandsEntry ::= SEQUENCE
 {
   serviceCommandsName    OCTET STRING,
   serviceCommandsRestart INTEGER,
   serviceCommandsStop    INTEGER,
   serviceCommandsStart   INTEGER
 }

 -- Index:Name

 serviceCommandsName OBJECT-TYPE
  SYNTAX        OCTET STRING
  MAX-ACCESS    read-only
  STATUS        current
  DESCRIPTION " Name

                Displays the service name.
                "
  ::= { serviceCommandsEntry 100 }

 -- Row command:Restart

 serviceCommandsRestart OBJECT-TYPE
  SYNTAX        INTEGER { noOp(0), restart(10) }
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION " Restart

                Restarts the service.
                "
  DEFVAL        { noOp }
  ::= { serviceCommandsEntry 200 }

 -- Row command:Stop

 serviceCommandsStop OBJECT-TYPE
  SYNTAX        INTEGER { noOp(0), stop(10) }
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION " Stop

                Stops the service.
                "
  DEFVAL        { noOp }
  ::= { serviceCommandsEntry 300 }

 -- Row command:Start

 serviceCommandsStart OBJECT-TYPE
  SYNTAX        INTEGER { noOp(0), start(10) }
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION " Start

                Starts the service.
                "
  DEFVAL        { noOp }
  ::= { serviceCommandsEntry 400 }

-- End of table:Service Commands

-- *****************************************************************************

-- Table:ServicesConfig

-- *****************************************************************************

servicesConfigTable OBJECT-TYPE
 SYNTAX         SEQUENCE OF ServicesConfigEntry
 MAX-ACCESS     not-accessible
 STATUS         current
 DESCRIPTION  " ServicesConfig

                This table configures each service within the system.
                "
 ::= { scmMIBObjects 400 }
 servicesConfigEntry OBJECT-TYPE
  SYNTAX        ServicesConfigEntry
  MAX-ACCESS    not-accessible
  STATUS        current
  DESCRIPTION " A row in table ServicesConfig. "
  INDEX         {
                  servicesConfigName
                }

  ::= { servicesConfigTable 1 }

 ServicesConfigEntry ::= SEQUENCE
 {
   servicesConfigName        OCTET STRING,
   servicesConfigStartupType INTEGER
 }

 -- Index:Name

 servicesConfigName OBJECT-TYPE
  SYNTAX        OCTET STRING
  MAX-ACCESS    read-only
  STATUS        current
  DESCRIPTION " Name

                Displays the service name.
                "
  ::= { servicesConfigEntry 100 }

 -- Columnar:Startup Type

 servicesConfigStartupType OBJECT-TYPE
  SYNTAX        INTEGER { auto(100) , manual(200) }
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION " Startup Type

                Selects the service startup type.

                  * Auto: The service is automatically started when the system
                    starts.
                  * Manual: The administrator must manually start the service.

                "
  DEFVAL        { auto }
  ::= { servicesConfigEntry 200 }

-- End of table:ServicesConfig

-- ****************************************************************************

-- Group:Notification Messages Configuration

-- ****************************************************************************

notificationsGroup OBJECT IDENTIFIER
 ::= { scmMIBObjects 60010 }
 -- Scalar:Minimal Severity of Notification

 minSeverity OBJECT-TYPE
  SYNTAX        INTEGER { disable(0) , debug(100) , info(200) , warning(300) ,
                error(400) , critical (500) }
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION " Minimal Severity of Notification

                Sets the minimal severity to issue a notification message
                incoming from this service.

                  * Disable: No notification is issued.
                  * Debug: All notification messages are issued.
                  * Info: Notification messages with a 'Informational' and
                    higher severity are issued.
                  * Warning: Notification messages with a 'Warning' and higher
                    severity are issued.
                  * Error: Notification messages with an 'Error' and higher
                    severity are issued.
                  * Critical: Notification messages with a 'Critical' severity
                    are issued.

                "
  DEFVAL        { warning }
  ::= { notificationsGroup 100 }

-- End of group:Notification Messages Configuration

-- ****************************************************************************

-- Group:Configuration Settings

-- ****************************************************************************

configurationGroup OBJECT IDENTIFIER
 ::= { scmMIBObjects 60020 }
 -- Scalar:Need Restart

 needRestartInfo OBJECT-TYPE
  SYNTAX        INTEGER { no(0) , yes(100) }
  MAX-ACCESS    read-only
  STATUS        current
  DESCRIPTION " Need Restart

                Indicates if the service needs to be restarted for the
                configuration to fully take effect.

                  * Yes: Service needs to be restarted.
                  * No: Service does not need to be restarted.

                Services can be restarted by using the
                Scm.ServiceCommands.Restart command.

                "
  ::= { configurationGroup 100 }

-- End of group:Configuration Settings

END
