DISMAN-SCHEDULE-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        NOTIFICATION-TYPE,
        Integer32,
        Unsigned32,
        Counter32,
        mib-2
                FROM SNMPv2-SMI
        TEXTUAL-CONVENTION,
        DateAndTime,
        RowStatus,
        StorageType,
        VariablePointer
                FROM SNMPv2-TC
        MODULE-COMPLIANCE,
        OBJECT-GROUP,
        NOTIFICATION-GROUP
                FROM SNMPv2-CONF
        SnmpAdminString
                FROM SNMP-FRAMEWORK-MIB;

schedMIB MODULE-IDENTITY
        LAST-UPDATED "9811171800Z"      -- Nov 17, 1998 6:00:00 PM
        ORGANIZATION "IETF Distributed Management Working Group"
        CONTACT-INFO
                "David B. Levi
                Nortel Networks
                4401 Great America Parkway
                Santa Clara, CA 95052-8185
                U.S.A.
                Tel: +1 423 686 0432
                E-mail: dlevi@nortelnetworks.com

                Juergen Schoenwaelder
                TU Braunschweig
                Bueltenweg 74/75
                38106 Braunschweig
                Germany
                Tel: +49 531 391-3283
                E-mail: schoenw@ibr.cs.tu-bs.de"
        DESCRIPTION
                "This MIB module defines a MIB which provides mechanisms
                to schedule SNMP set operations periodically or at
                specific points in time."
 -- 1.3.6.1.2.1.63 --  ::= { mib-2 63 }


--
-- The various groups defined within this MIB definition:
--

schedObjects OBJECT IDENTIFIER 
 -- 1.3.6.1.2.1.63.1 --  ::= { schedMIB 1 }

schedNotifications OBJECT IDENTIFIER 
 -- 1.3.6.1.2.1.63.2 --  ::= { schedMIB 2 }

schedConformance OBJECT IDENTIFIER 
 -- 1.3.6.1.2.1.63.3 --  ::= { schedMIB 3 }

--
-- Textual Conventions:
--

SnmpPduErrorStatus ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
                "This TC enumerates the SNMPv1 and SNMPv2 PDU error status
                codes as defined in RFC 1157 and RFC 1905. It also adds a
                pseudo error status code `noResponse' which indicates a
                timeout condition."
        SYNTAX INTEGER {
                        noResponse(-1),
                        noError(0),
                        tooBig(1),
                        noSuchName(2),
                        badValue(3),
                        readOnly(4),
                        genErr(5),
                        noAccess(6),
                        wrongType(7),
                        wrongLength(8),
                        wrongEncoding(9),
                        wrongValue(10),
                        noCreation(11),
                        inconsistentValue(12),
                        resourceUnavailable(13),
                        commitFailed(14),
                        undoFailed(15),
                        authorizationError(16),
                        notWritable(17),
                        inconsistentName(18) }


--
-- Some scalars which provide information about the local time
-- zone.
--

schedLocalTime OBJECT-TYPE
        SYNTAX  DateAndTime (SIZE (11))
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
                "The local time used by the scheduler. Schedules which
                refer to calendar time will use the local time indicated
                by this object. An implementation MUST return all 11 bytes
                of the DateAndTime textual-convention so that a manager
                may retrieve the offset from GMT time."
 -- 1.3.6.1.2.1.63.1.1 --  ::= { schedObjects 1 }


--
-- The schedule table which controls the scheduler.
--

schedTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SchedEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
                "This table defines scheduled actions triggered by
                SNMP set operations."
 -- 1.3.6.1.2.1.63.1.2 --  ::= { schedObjects 2 }


schedEntry OBJECT-TYPE
        SYNTAX  SchedEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
                "An entry describing a particular scheduled action."
        INDEX {
                schedOwner,
                schedName }
 -- 1.3.6.1.2.1.63.1.2.1 --  ::= { schedTable 1 }


SchedEntry ::= SEQUENCE {

        schedOwner       SnmpAdminString,
        schedName        SnmpAdminString,
        schedDescr       SnmpAdminString,
        schedInterval    Unsigned32,
        schedWeekDay     BITS,
        schedMonth       BITS,
        schedDay         BITS,
        schedHour        BITS,
        schedMinute      BITS,
        schedContextName SnmpAdminString,
        schedVariable    VariablePointer,
        schedValue       Integer32,
        schedType        INTEGER,
        schedAdminStatus INTEGER,
        schedOperStatus  INTEGER,
        schedFailures    Counter32,
        schedLastFailure SnmpPduErrorStatus,
        schedLastFailed  DateAndTime,
        schedStorageType StorageType,
        schedRowStatus   RowStatus }


schedOwner OBJECT-TYPE
        SYNTAX  SnmpAdminString (SIZE (0..32))
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
                "The owner of this scheduling entry. The exact semantics of
                this string are subject to the security policy defined by
                the security administrator."
 -- 1.3.6.1.2.1.63.1.2.1.1 --  ::= { schedEntry 1 }


schedName OBJECT-TYPE
        SYNTAX  SnmpAdminString (SIZE (1..32))
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
                "The locally-unique, administratively assigned name for this
                scheduling entry. This object allows a schedOwner to have
                multiple entries in the schedTable."
 -- 1.3.6.1.2.1.63.1.2.1.2 --  ::= { schedEntry 2 }


schedDescr OBJECT-TYPE
        SYNTAX  SnmpAdminString
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
                "The human readable description of the purpose of this
                scheduling entry."
        DEFVAL { ''H }
 -- 1.3.6.1.2.1.63.1.2.1.3 --  ::= { schedEntry 3 }


schedInterval OBJECT-TYPE
        SYNTAX  Unsigned32
        UNITS
                "seconds"
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
                "The number of seconds between two action invocations of
                a periodic scheduler. Implementations must guarantee
                that action invocations will not occur before at least
                schedInterval seconds have passed.

                The scheduler must ignore all periodic schedules that
                have a schedInterval value of 0. A periodic schedule
                with a scheduling interval of 0 seconds will therefore
                never invoke an action.

                Implementations may be forced to delay invocations in the
                face of local constraints. A scheduled management function
                should therefore not rely on the accuracy provided by the
                scheduler implementation."
        DEFVAL { 0 }
 -- 1.3.6.1.2.1.63.1.2.1.4 --  ::= { schedEntry 4 }


schedWeekDay OBJECT-TYPE
        SYNTAX  BITS {
                        sunday(0),
                        monday(1),
                        tuesday(2),
                        wednesday(3),
                        thursday(4),
                        friday(5),
                        saturday(6) }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
                "The set of weekdays on which the scheduled action should
                take place. Setting multiple bits will include several
                weekdays in the set of possible weekdays for this schedule.
                Setting all bits will cause the scheduler to ignore the
                weekday."
        DEFVAL { {} }
 -- 1.3.6.1.2.1.63.1.2.1.5 --  ::= { schedEntry 5 }


schedMonth OBJECT-TYPE
        SYNTAX  BITS {
                        january(0),
                        february(1),
                        march(2),
                        april(3),
                        may(4),
                        june(5),
                        july(6),
                        august(7),
                        september(8),
                        october(9),
                        november(10),
                        december(11) }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
                "The set of months during which the scheduled action should
                take place. Setting multiple bits will include several
                months in the set of possible months for this schedule.
                Setting all bits will cause the scheduler to ignore the
                month."
        DEFVAL { {} }
 -- 1.3.6.1.2.1.63.1.2.1.6 --  ::= { schedEntry 6 }


schedDay OBJECT-TYPE
        SYNTAX  BITS {
                        d1(0),
                        d2(1),
                        d3(2),
                        d4(3),
                        d5(4),
                        d6(5),
                        d7(6),
                        d8(7),
                        d9(8),
                        d10(9),
                        d11(10),
                        d12(11),
                        d13(12),
                        d14(13),
                        d15(14),
                        d16(15),
                        d17(16),
                        d18(17),
                        d19(18),
                        d20(19),
                        d21(20),
                        d22(21),
                        d23(22),
                        d24(23),
                        d25(24),
                        d26(25),
                        d27(26),
                        d28(27),
                        d29(28),
                        d30(29),
                        d31(30),
                        r1(31),
                        r2(32),
                        r3(33),
                        r4(34),
                        r5(35),
                        r6(36),
                        r7(37),
                        r8(38),
                        r9(39),
                        r10(40),
                        r11(41),
                        r12(42),
                        r13(43),
                        r14(44),
                        r15(45),
                        r16(46),
                        r17(47),
                        r18(48),
                        r19(49),
                        r20(50),
                        r21(51),
                        r22(52),
                        r23(53),
                        r24(54),
                        r25(55),
                        r26(56),
                        r27(57),
                        r28(58),
                        r29(59),
                        r30(60),
                        r31(61) }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
                "The set of days in a month on which a scheduled action
                should take place. There are two sets of bits one can
                use to define the day within a month:

                Enumerations starting with the letter 'd' indicate a
                day in a month relative to the first day of a month.
                The first day of the month can therefore be specified
                by setting the bit d1(0) and d31(30) means the last
                day of a month with 31 days.

                Enumerations starting with the letter 'r' indicate a
                day in a month in reverse order, relative to the last
                day of a month. The last day in the month can therefore
                be specified by setting the bit r1(31) and r31(61) means
                the first day of a month with 31 days.

                Setting multiple bits will include several days in the set
                of possible days for this schedule. Setting all bits will
                cause the scheduler to ignore the day within a month.
                Setting all bits starting with the letter 'd' or the
                letter 'r' will also cause the scheduler to ignore the
                day within a month."
        DEFVAL { {} }
 -- 1.3.6.1.2.1.63.1.2.1.7 --  ::= { schedEntry 7 }


schedHour OBJECT-TYPE
        SYNTAX  BITS {
                        h0(0),
                        h1(1),
                        h2(2),
                        h3(3),
                        h4(4),
                        h5(5),
                        h6(6),
                        h7(7),
                        h8(8),
                        h9(9),
                        h10(10),
                        h11(11),
                        h12(12),
                        h13(13),
                        h14(14),
                        h15(15),
                        h16(16),
                        h17(17),
                        h18(18),
                        h19(19),
                        h20(20),
                        h21(21),
                        h22(22),
                        h23(23) }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
                "The set of hours within a day during which the scheduled
                action should take place."
        DEFVAL { {} }
 -- 1.3.6.1.2.1.63.1.2.1.8 --  ::= { schedEntry 8 }


schedMinute OBJECT-TYPE
        SYNTAX  BITS {
                        m0(0),
                        m1(1),
                        m2(2),
                        m3(3),
                        m4(4),
                        m5(5),
                        m6(6),
                        m7(7),
                        m8(8),
                        m9(9),
                        m10(10),
                        m11(11),
                        m12(12),
                        m13(13),
                        m14(14),
                        m15(15),
                        m16(16),
                        m17(17),
                        m18(18),
                        m19(19),
                        m20(20),
                        m21(21),
                        m22(22),
                        m23(23),
                        m24(24),
                        m25(25),
                        m26(26),
                        m27(27),
                        m28(28),
                        m29(29),
                        m30(30),
                        m31(31),
                        m32(32),
                        m33(33),
                        m34(34),
                        m35(35),
                        m36(36),
                        m37(37),
                        m38(38),
                        m39(39),
                        m40(40),
                        m41(41),
                        m42(42),
                        m43(43),
                        m44(44),
                        m45(45),
                        m46(46),
                        m47(47),
                        m48(48),
                        m49(49),
                        m50(50),
                        m51(51),
                        m52(52),
                        m53(53),
                        m54(54),
                        m55(55),
                        m56(56),
                        m57(57),
                        m58(58),
                        m59(59) }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
                "The set of minutes within an hour when the scheduled action
                should take place."
        DEFVAL { {} }
 -- 1.3.6.1.2.1.63.1.2.1.9 --  ::= { schedEntry 9 }


schedContextName OBJECT-TYPE
        SYNTAX  SnmpAdminString (SIZE (0..32))
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
                "The context which contains the local MIB variable pointed
                to by schedVariable."
 -- 1.3.6.1.2.1.63.1.2.1.10 --  ::= { schedEntry 10 }


schedVariable OBJECT-TYPE
        SYNTAX  VariablePointer
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
                "An object identifier pointing to a local MIB variable
                which resolves to an ASN.1 primitive type of INTEGER."
 -- 1.3.6.1.2.1.63.1.2.1.11 --  ::= { schedEntry 11 }


schedValue OBJECT-TYPE
        SYNTAX  Integer32
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
                "The value which is written to the MIB object pointed to by
                schedVariable when the scheduler invokes an action. The
                implementation shall enforce the use of access control
                rules when performing the set operation on schedVariable.
                This is accomplished by calling the isAccessAllowed abstract
                service interface as defined in RFC 2271."
 -- 1.3.6.1.2.1.63.1.2.1.12 --  ::= { schedEntry 12 }


schedType OBJECT-TYPE
        SYNTAX  INTEGER {
                        periodic(1),
                        calendar(2),
                        oneshot(3) }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
                "The type of this schedule. The value periodic(1) indicates
                that this entry specifies a periodic schedule. A periodic
                schedule is defined by the value of schedInterval. The
                values of schedWeekDay, schedMonth, schedDay, schedHour
                and schedMinute are ignored.

                The value calendar(2) indicates that this entry describes a
                calendar schedule. A calendar schedule is defined by the
                values of schedWeekDay, schedMonth, schedDay, schedHour and
                schedMinute. The value of schedInterval is ignored. A
                calendar schedule will trigger on all local times that
                satisfy the bits set in schedWeekDay, schedMonth, schedDay,
                schedHour and schedMinute.

                The value oneshot(3) indicates that this entry describes a
                one-shot schedule. A one-shot schedule is similar to a
                calendar schedule with the additional feature that it
                disables itself by changing in the `finished'
                schedOperStatus once the schedule triggers an action.

                Changing a schedule's type is equivalent to deleting the
                old-type schedule and creating a new-type one."
        DEFVAL { periodic }
 -- 1.3.6.1.2.1.63.1.2.1.13 --  ::= { schedEntry 13 }


schedAdminStatus OBJECT-TYPE
        SYNTAX  INTEGER {
                        enabled(1),
                        disabled(2) }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
                "The desired state of the schedule."
        DEFVAL { disabled }
 -- 1.3.6.1.2.1.63.1.2.1.14 --  ::= { schedEntry 14 }


schedOperStatus OBJECT-TYPE
        SYNTAX  INTEGER {
                        enabled(1),
                        disabled(2),
                        finished(3) }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
                "The current operational state of this schedule. The state
                enabled(1) indicates this entry is active and that the
                scheduler will invoke actions at appropriate times. The
                disabled(2) state indicates that this entry is currently
                inactive and ignored by the scheduler. The finished(3)
                state indicates that the schedule has ended. Schedules
                in the finished(3) state are ignored by the scheduler.
                A one-shot schedule enters the finished(3) state when it
                deactivates itself."
 -- 1.3.6.1.2.1.63.1.2.1.15 --  ::= { schedEntry 15 }


schedFailures OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
                "This variable counts the number of failures while invoking
                the scheduled action."
 -- 1.3.6.1.2.1.63.1.2.1.16 --  ::= { schedEntry 16 }


schedLastFailure OBJECT-TYPE
        SYNTAX  SnmpPduErrorStatus
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
                "The most recent error that occured during the invocation of
                a scheduled action. The value noError(0) is returned
                if no errors have occurred yet."
        DEFVAL { noError }
 -- 1.3.6.1.2.1.63.1.2.1.17 --  ::= { schedEntry 17 }


schedLastFailed OBJECT-TYPE
        SYNTAX  DateAndTime
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
                "The date and time when the most recent failure occured. The
                value '0000000000000000'H is returned if no failure occured
                since the last re-initialization of the scheduler."
        DEFVAL { '0000000000000000'H }
 -- 1.3.6.1.2.1.63.1.2.1.18 --  ::= { schedEntry 18 }


schedStorageType OBJECT-TYPE
        SYNTAX  StorageType
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
                "This object defines whether this scheduled action is kept
                in volatile storage and lost upon reboot or if this row is
                backed up by non-volatile or permanent storage.
                Conceptual rows having the value `permanent' must allow
                write access to the columnar objects schedDescr,
                schedInterval, schedContextName, schedVariable, schedValue,
                and schedAdminStatus. If an implementation supports the
                schedCalendarGroup, write access must be also allowed to
                the columnar objects schedWeekDay, schedMonth, schedDay,
                schedHour, schedMinute."
        DEFVAL { volatile }
 -- 1.3.6.1.2.1.63.1.2.1.19 --  ::= { schedEntry 19 }


schedRowStatus OBJECT-TYPE
        SYNTAX  RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
                "The status of this scheduled action. A control that allows
                entries to be added and removed from this table.

                The miminum number of objects that need to be set during
                row creation before a row can be set to `active' are
                schedContextName, schedVariable and schedValue."
 -- 1.3.6.1.2.1.63.1.2.1.20 --  ::= { schedEntry 20 }


--
-- Notifications that are emitted to indicate failures. The
-- definition of schedTraps makes notification registrations
-- reversible (see STD 58, RFC 2578).
--

schedTraps OBJECT IDENTIFIER 
 -- 1.3.6.1.2.1.63.2.0 --  ::= { schedNotifications 0 }


schedActionFailure NOTIFICATION-TYPE
        OBJECTS {
                schedLastFailure,
                schedLastFailed}
        STATUS current
        DESCRIPTION
                "This notification is generated whenever the invocation of a
                scheduled action fails."
 -- 1.3.6.1.2.1.63.2.0.1 --  ::= { schedTraps 1 }

-- conformance information

schedCompliances OBJECT IDENTIFIER 
 -- 1.3.6.1.2.1.63.3.1 --  ::= { schedConformance 1 }

schedGroups OBJECT IDENTIFIER 
 -- 1.3.6.1.2.1.63.3.2 --  ::= { schedConformance 2 }


-- compliance statements

schedCompliance MODULE-COMPLIANCE
        STATUS current
        DESCRIPTION
                "The compliance statement for SNMP entities which implement
                the scheduling MIB."

        MODULE 
        MANDATORY-GROUPS {
                        schedGroup,
                        schedNotificationsGroup }

        GROUP schedCalendarGroup
          DESCRIPTION
                "The schedCalendarGroup is mandatory only for those
                implementations that support calendar based schedules."
        OBJECT schedType
          DESCRIPTION 
                "The values calendar(2) or oneshot(3) are not valid for
                implementations that do not implement the
                schedCalendarGroup. Such an implementation must return
                inconsistentValue error responses for attempts to set
                schedAdminStatus to calendar(2) or oneshot(3)."
 -- 1.3.6.1.2.1.63.3.1.1 --  ::= { schedCompliances 1 }

schedGroup OBJECT-GROUP
        OBJECTS {
                schedDescr,
                schedInterval,
                schedContextName,
                schedVariable,
                schedValue,
                schedType,
                schedAdminStatus,
                schedOperStatus,
                schedFailures,
                schedLastFailure,
                schedLastFailed,
                schedStorageType,
                schedRowStatus }
        STATUS current
        DESCRIPTION
                "A collection of objects providing scheduling capabilities."
 -- 1.3.6.1.2.1.63.3.2.1 --  ::= { schedGroups 1 }

schedCalendarGroup OBJECT-GROUP
        OBJECTS {
                schedLocalTime,
                schedWeekDay,
                schedMonth,
                schedDay,
                schedHour,
                schedMinute }
        STATUS current
        DESCRIPTION
                "A collection of objects providing calendar based schedules."
 -- 1.3.6.1.2.1.63.3.2.2 --  ::= { schedGroups 2 }

schedNotificationsGroup NOTIFICATION-GROUP
        NOTIFICATIONS {
                schedActionFailure }
        STATUS current
        DESCRIPTION
                "The notifications emitted by the scheduler."
 -- 1.3.6.1.2.1.63.3.2.3 --  ::= { schedGroups 3 }

END