XEROX-SERVICE-MONITORING-MIB DEFINITIONS ::= BEGIN

--  Module: Service Monitoring MIB
--  File:   59svcmon.mib
--  Date:   March 17 2006 - Version 5.502.pub

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE,
        NOTIFICATION-TYPE,
        OBJECT-IDENTITY,
        Integer32, Counter32
            FROM SNMPv2-SMI             -- IETF RFC 1442/1902/2578
    DateAndTime, RowStatus, TruthValue
            FROM SNMPv2-TC              -- IETF RFC 1443/1903/2579
    MODULE-COMPLIANCE, OBJECT-GROUP
            FROM SNMPv2-CONF            -- IETF RFC 1444/1904/2580
    ProductID, hrDeviceIndex
            FROM HOST-RESOURCES-MIB     -- IETF RFC 1514/2790
    xeroxCommonMIB
            FROM XEROX-COMMON-MIB
    Ordinal32, Cardinal32,
        XcmFixedLocaleDisplayString,
        XcmGenSNMPv2ErrorStatus,
        zeroDotZero
            FROM XEROX-GENERAL-TC
    XcmHrDevDetailUnitClass,
        XcmHrDpaAvailability,
        XcmHrDpaConditions,
        XcmHrDpaState
            FROM XEROX-HOST-RESOURCES-EXT-TC
    XcmCommsStackExtProtocol,
        XcmCommsMgmtState,
        XcmCommsMgmtConditions
            FROM XEROX-COMMS-ENGINE-TC
    XcmSvcMonGroupSupport,
        XcmSvcMonServiceMgmtOperation,
        XcmSvcMonServiceMgmtData,
        XcmSvcMonServiceDetailClass,
        XcmSvcMonServiceDetailType,
        XcmSvcMonServiceType 
            FROM XEROX-SERVICE-MONITORING-TC;

xcmSvcMonMIB MODULE-IDENTITY
    LAST-UPDATED "0603170000Z" -- March 17 2006
    ORGANIZATION "Xerox Corporation - XCMI Working Group"
    CONTACT-INFO


        "           XCMI Editors
        Email:      coherence@crt.xerox.com

        "
    DESCRIPTION
        "Version:   5.502.pub

        The MIB module for basic configuration and active management
        of application services for network accessible host systems.

        See:    IETF Network Services Monitoring MIB
                (IETF RFC 1565, January 1994).
        See:    IETF Host Resources MIB
                (IETF RFC 2790, March 2000).
        See:    OSI Reference Model - Part 1:  Basic Reference Model
                (CCITT X.200:1992 | ISO 7498-1:1992).
        See:    OSI Reference Model - Part 4:  Systems Management
                (CCITT X.700:1992 | ISO 7498-4:1992).

        Copyright (C) 1996-2006 Xerox Corporation. All Rights Reserved."
    ::= { xeroxCommonMIB 74 }

xcmSvcMonZeroDummy OBJECT IDENTIFIER ::= { zeroDotZero 74 }

--
--          The Service Monitoring MIB
--

--          General Group (Mandatory)
--
--          Implementation of this group is mandatory for all systems.

xcmSvcMonGeneral        OBJECT IDENTIFIER ::= { xcmSvcMonMIB 1 }

xcmSvcMonGeneralTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF XcmSvcMonGeneralEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of general counters and capabilities for ease of use
        of the XCMI Service Monitoring MIB on this host system.

        Usage:  The ONLY valid row in the 'xcmSvcMonGeneralTable'
        SHALL have an 'xcmSvcMonGeneralIndex' of one ('1')."
    ::= { xcmSvcMonGeneral 2 }

xcmSvcMonGeneralEntry OBJECT-TYPE
    SYNTAX      XcmSvcMonGeneralEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of general counters and capabilities for ease of use
        of the XCMI Service Monitoring MIB on this host system.


        Usage:  The ONLY valid row in the 'xcmSvcMonGeneralTable'
        SHALL have an 'xcmSvcMonGeneralIndex' of one ('1')."
    INDEX       { xcmSvcMonGeneralIndex }
    ::= { xcmSvcMonGeneralTable 1 }

XcmSvcMonGeneralEntry ::= SEQUENCE {
        --  General Info
        xcmSvcMonGeneralIndex           Ordinal32,
        xcmSvcMonGeneralRowStatus       RowStatus,
        xcmSvcMonGeneralVersionID       ProductID,
        xcmSvcMonGeneralVersionDate     DateAndTime,
        xcmSvcMonGeneralGroupSupport    XcmSvcMonGroupSupport,
        xcmSvcMonGeneralCreateSupport   XcmSvcMonGroupSupport,
        xcmSvcMonGeneralUpdateSupport   XcmSvcMonGroupSupport
    }

xcmSvcMonGeneralIndex OBJECT-TYPE
    SYNTAX      Ordinal32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A unique value used by this host system to identify this
        conceptual row in the 'xcmSvcMonGeneralTable'.

        Usage:  The ONLY valid row in the 'xcmSvcMonGeneralTable'
        SHALL have an 'xcmSvcMonGeneralIndex' of one ('1').

        Usage:  'xcmSvcMonGeneralRowStatus' is 'read-only' because
        the ONLY valid conceptual row SHALL NOT be deleted."
    ::= { xcmSvcMonGeneralEntry 1 }

xcmSvcMonGeneralRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to display status of the ONLY valid
        conceptual row in the 'xcmSvcMonGeneralTable'.

        Usage:  'xcmSvcMonGeneralRowStatus' is 'read-only' because
        the ONLY valid conceptual row SHALL NOT be deleted."
    ::= { xcmSvcMonGeneralEntry 2 }

xcmSvcMonGeneralVersionID OBJECT-TYPE
    SYNTAX      ProductID
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The software product ID of the SNMP sub-agent which implements
        the XCMI Service Monitoring MIB on this host system.

        Usage:  This object SHALL specify the software product ID of an
        SNMP sub-agent (possibly also found in a conceptual row in the


        'hrSWRunTable' and/or 'hrSWInstalledTable' in the IETF HR MIB).
        This object SHALL NOT specify a particular release of the XCMI
        Service Monitoring MIB, or the whole host system product.

        Note:   Contrast with 'sysObjectID' for the whole SNMP agent in
        the IETF MIB-II (RFC 1213) and 'hrDeviceID' for the whole device
        (or whole product, in the case of 'xcmHrDevice...') in the IETF
        Host Resources MIB (RFC 2790)."
    REFERENCE
        "See:   'hrSW[Installed|Run]ID' in the Software Installed and
                Software Running groups of the IETF HR MIB (RFC 2790)."
    DEFVAL      { zeroDotZero }   -- no sub-agent version ID
    ::= { xcmSvcMonGeneralEntry 3 }

xcmSvcMonGeneralVersionDate OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The software build date of the SNMP sub-agent which implements
        the XCMI Service Monitoring MIB on this host system.

        Usage:  This object SHALL specify the BUILD date of the SNMP
        sub-agent software (not available elsewhere in IETF/XCMI MIBs).
        This object SHALL NOT specify the INSTALL date of the SNMP
        sub-agent software on this host system, nor the RESET date.

        Note:   Contrast with 'hrSWInstalledDate' in the Software
        Installed group of the IETF Host Resources MIB (RFC 2790), and
        'xcmHrDevInfoResetDate' in the Device Info group of the XCMI
        Host Resources Extensions MIB."
    REFERENCE
        "See:   'hrSW[Installed|Run]ID' in the Software Installed and
                Software Running groups of the IETF HR MIB (RFC 2790)."
    DEFVAL      { '0000000000000000'H } -- no sub-agent version date
    ::= { xcmSvcMonGeneralEntry 4 }

xcmSvcMonGeneralGroupSupport OBJECT-TYPE
    SYNTAX      XcmSvcMonGroupSupport
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The terse conformance statement of ALL mandatory, conditionally
        mandatory, and optional XCMI Service Monitoring MIB groups
        supported by this management agent implementation (ie, version)
        on this host system, specified in a bit-mask.

        Usage:  Conforming management agents SHALL accurately
        report their support for XCMI Service Monitoring MIB groups."
    DEFVAL      { 1 }                   -- mandatory groups supported
    ::= { xcmSvcMonGeneralEntry 5 }

xcmSvcMonGeneralCreateSupport OBJECT-TYPE
    SYNTAX      XcmSvcMonGroupSupport


    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The terse conformance statement of ALL mandatory, conditionally
        mandatory, and optional XCMI Service Monitoring MIB groups
        supported for dynamic row creation (via '...RowStatus')
        by this management agent implementation (ie, version)
        on this host system, specified in a bit-mask.

        Usage:  Conforming management agents SHALL accurately
        report their support for XCMI Service Monitoring MIB groups."
    DEFVAL      { 0 }                   -- no dynamic row create groups
    ::= { xcmSvcMonGeneralEntry 6 }

xcmSvcMonGeneralUpdateSupport OBJECT-TYPE
    SYNTAX      XcmSvcMonGroupSupport
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The terse conformance statement of ALL mandatory, conditionally
        mandatory, and optional XCMI Service Monitoring MIB groups
        supported for existing row update (via SNMP Set-Request PDUs)
        by this management agent implementation (ie, version)
        on this host system, specified in a bit-mask.

        Usage:  Conforming management agents SHALL accurately
        report their support for XCMI Service Monitoring MIB groups."
    DEFVAL      { 0 }                   -- no existing row update groups
    ::= { xcmSvcMonGeneralEntry 7 }

--
--          Associated Queue Group (Cond Mandatory)
--
--          Implementation of this group is conditionally mandatory, ie,
--          mandatory for systems which support external (network) job
--          queues (print/fax/etc), on external print/file servers
--          (remotely) and/or on the managed system itself (locally),
--          and optional for all other systems.
--
--          Note:   'read-only' implementation of this group is allowed,
--          but it prevents the use of this group as a 'shared' resource
--          between cooperating (remote) management stations and (local)
--          management agents.

xcmSvcMonQueue          OBJECT IDENTIFIER ::= { xcmSvcMonMIB 3 }

xcmSvcMonQueueTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF XcmSvcMonQueueEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of the external job queues supported and (possibly)
        active, for some 'physical', 'logical', or 'logicalAndPhysical'
        device on this host system.


        Usage:  These externally visible job queues MAY actually be
        configured on external print/file servers (remote) or on the
        managed system itself (local).

        Usage:  For example, a 'logical printer' might support one or
        more external (network) job queues.

        Note:   The 'xcmJobGenBasicTable' in the XCMI Job Monitoring MIB
        (indexed by 'hrDeviceIndex' from the IETF Host Resources MIB)
        displays the unordered union of all jobs present in the (one or
        more) 'local' queues supported by each 'physical', 'logical', or
        'logicalAndPhysical' device on this host system.

        Note:   The XCMI Comms Engine MIB is indexed by devices of type
        'CPU', while the 'xcmSvcMonQueueTable' is indexed by application
        devices of type 'printer', 'fax', etc.

        Usage:  Throughout this specification, the term 'stable storage'
        refers to storage which is reliable over long durations (years)
        and is NOT destroyed by host system reboot (eg, battery-backed
        DRAM is 'stable storage' - while simple DRAM is NOT 'stable
        storage').  Examples of valid 'stable storage' include:  NVRAM,
        hard disk, EEPROM, etc.

        Usage:  Conforming implementations SHALL preserve active
        queue table objects across management agent power cycles,
        and SHALL implement one of the following two methods:
        1)  The agent SHALL store queue table objects directly in
            'stable storage'; or
        2)  The agent SHALL automatically checkpoint all active queue
            table objects to 'stable storage' with reasonable frequency
            (either due to a write to some queue table object, or upon
            expiration of a product-specific timeout).

        Usage:  Conforming implementations MAY (optionally) support
        one of the following two 'checkpoint protocols':
        1)  A client sends a 'Set' of 'xcmSvcMonQueueRowStatus' to
            'active(1)', to request that a 'checkpoint' be performed;
        2a) An agent which supports 'rapid checkpoint',
            completes the checkpoint to 'stable storage', and
            sends a 'SetResponse' with 'noError(0)';
            <or>
        2b) An agent which supports 'delayed checkpoint',
            changes 'xcmSvcMonQueueRowStatus' to 'notInService(2)',
            sends a 'SetResponse' with 'noError(0)',
            completes the checkpoint to 'stable storage', and
            changes 'xcmSvcMonQueueRowStatus' back to 'active(1)'."
    REFERENCE
        "See:   'xcmSvcMonQueueOnSystem', and
                'xcmSvcMonQueueRoutingIndex'.
        See:    'xcmHrDevInfoRealization' in XCMI Ext to Host Res MIB.
        See:    'xcmJobGenBasicTable' in XCMI Job Monitoring MIB."
    ::= { xcmSvcMonQueue 2 }


xcmSvcMonQueueEntry OBJECT-TYPE
    SYNTAX      XcmSvcMonQueueEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry for an external job queue supported and (possibly)
        active, for some 'physical', 'logical', or 'logicalAndPhysical'
        device on this host system.

        Usage:  This externally visible job queue MAY actually be
        configured on an external print/file server (remote) or on the
        managed system itself (local)."
    REFERENCE
        "See:   'xcmSvcMonQueueOnSystem', and
                'xcmSvcMonQueueRoutingIndex'.
        See:    'xcmHrDevInfoRealization' in XCMI Ext to Host Res MIB.
        See:    'xcmJobGenBasicTable' in XCMI Job Monitoring MIB."
    INDEX       { hrDeviceIndex,
                  xcmSvcMonQueueIndex }
    ::= { xcmSvcMonQueueTable 1 }

XcmSvcMonQueueEntry ::= SEQUENCE {
        --  Associated Queue Info
        xcmSvcMonQueueIndex             Ordinal32,
        xcmSvcMonQueueRowStatus         RowStatus,
        xcmSvcMonQueueDomain            XcmCommsStackExtProtocol,
        xcmSvcMonQueuePath              XcmFixedLocaleDisplayString,
        xcmSvcMonQueueName              XcmFixedLocaleDisplayString,
        xcmSvcMonQueueOnSystem          TruthValue
    }

xcmSvcMonQueueIndex OBJECT-TYPE
    SYNTAX      Ordinal32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A unique value used by this host system to identify this
        conceptual row in the 'xcmSvcMonQueueTable'.

        Usage:  This object SHALL be permanent (ie, preserved
        across all hardware resets)."
    ::= { xcmSvcMonQueueEntry 1 }

xcmSvcMonQueueRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object is used to create and delete individual conceptual
        rows in the 'xcmSvcMonQueueTable' and (optionally) in the
        'xcmSvcMonQueueExtTable' (if implementated on this system).

        Usage:  Conforming implementations which support static rows


        SHALL support 'active' and 'notInService' writes to this
        'xcmSvcMonQueueRowStatus' row status object; and
        SHALL clear the 'svcMonQueueGroup' bit in
        'xcmSvcMonGeneralCreateSupport' in the 'xcmSvcMonGeneralTable'.

        Usage:  Conforming implementations which support dynamic rows
        SHALL support 'createAndGo' and 'destroy' writes to this
        'xcmSvcMonQueueRowStatus' row status object; and
        SHALL set the 'svcMonQueueGroup' bit in
        'xcmSvcMonGeneralCreateSupport' in the 'xcmSvcMonGeneralTable'.

        Usage:  Conforming implementations need NOT support dynamic row
        creation (via 'createAndGo(4)') nor dynamic row deletion (via
        'destroy(6)').

        Usage:  See section 3.4 'Secure Modes of Operation' and section
        3.5 'Secure SNMP Get/Set Requests' in XCMI Security TC, for
        details of secure modes of access to this row status object."
    REFERENCE
        "See:   'xcmSvcMonGeneralCreateSupport' in
                'xcmSvcMonGeneralTable'.
        See:    'RowStatus' in IETF SNMPv2 TC (RFC 1443/1903/2579).
        See:    'xcmHrDevMgmtCommandData' in XCMI HRX MIB and
                'xcmSecUserMgmtData' in XCMI Security MIB."
    ::= { xcmSvcMonQueueEntry 2 }

xcmSvcMonQueueDomain OBJECT-TYPE
    SYNTAX      XcmCommsStackExtProtocol
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The queue namespace domain (directory protocol) for the queue
        path and queue name (eg, 'internetDNS', 'netwareNDS').

        Usage:  This queue namespace domain SHALL be a valid
        directory protocol enumeration from 'XcmCommsStackExtProtocol'
        in the XCMI Comms Engine TC.

        Usage:  When a remote management station (client) creates a row
        in 'xcmSvcMonQueueTable' (via 'xcmSvcMonQueueRowStatus'),
        this queue namespace domain SHALL be specified.

        Note:   For implementation efficiency, this object uses the
        integer 'XcmCommStackExtProtocol' values (from the XCMI Comms
        Engine MIB) rather than the equivalent 'XcmCO...' OID values
        (from the XCMI Comms Config MIB)."
    REFERENCE
        "See:   'xcmSvcMonQueue[Path|Name]'"
    DEFVAL      { unknown }             -- no queue namespace domain
    ::= { xcmSvcMonQueueEntry 3 }

xcmSvcMonQueuePath OBJECT-TYPE
    SYNTAX      XcmFixedLocaleDisplayString (SIZE (0..255))
    MAX-ACCESS  read-create


    STATUS      current
    DESCRIPTION
        "Human-readable queue path, used by system administrators
        and end-users to specify the 'full network path' of a file
        server (eg, Novell Bindery) or directory tree (eg, Novell NDS)
        which, when prefixed to the following 'xcmSvcMonQueueName'
        object, specifies a 'full network queue name' of this queue.

        Usage:  This queue path SHOULD be the one normally used in a
        command shell for control of this queue.

        Usage:  When a remote management station (client) creates a row
        in 'xcmSvcMonQueueTable' (via 'xcmSvcMonQueueRowStatus'),
        this queue path SHALL be specified."
    REFERENCE
        "See:   'xcmSvcMonQueue[Domain|Name]'"
    DEFVAL      { ''H }                 -- no queue path
    ::= { xcmSvcMonQueueEntry 4 }

xcmSvcMonQueueName OBJECT-TYPE
    SYNTAX      XcmFixedLocaleDisplayString (SIZE (0..255))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Human-readable queue name, used by system administrators
        and end-users to specify the 'simple name' of this queue (or in
        the Novell NDS case, the context and simple name concatenated),
        which, when suffixed to the preceding 'xcmSvcMonQueuePath'
        object, specifies a 'full network queue name' of this queue.

        Usage:  This queue name SHOULD be the one normally used in a
        command shell for control of this queue.

        Usage:  When a remote management station (client) creates a row
        in 'xcmSvcMonQueueTable' (via 'xcmSvcMonQueueRowStatus'),
        this queue name SHALL be specified."
    REFERENCE
        "See:   'xcmSvcMonQueue[Domain|Path]'
        See:    'xcmJobGenBasicTable' in XCMI Job Monitoring MIB."
    DEFVAL      { ''H }                 -- no queue name
    ::= { xcmSvcMonQueueEntry 5 }

xcmSvcMonQueueOnSystem OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Specifies whether this queue is present on this host system
        (local) or is on another network system (remote)."
    REFERENCE
        "See:   'xcmSvcMonQueueRoutingIndex'."
    DEFVAL      { true }                -- queue on system (local)
    ::= { xcmSvcMonQueueEntry 6 }


--
--          Associated Queue Ext Group (Cond Mandatory)
--
--          Implementation of this group is conditionally mandatory, ie,
--          mandatory for systems with routing (forwarding), state,
--          conditions, or fault info for external (network) job
--          queues (print/fax/etc), on external print/file servers
--          (remotely) and/or on the managed system itself (locally),
--          and optional for all other systems.
--
--          Note:   'read-only' implementation of this group is allowed,
--          but it prevents the use of this group as a 'shared' resource
--          between cooperating (remote) management stations and (local)
--          management agents.

xcmSvcMonQueueExt       OBJECT IDENTIFIER ::= { xcmSvcMonMIB 4 }

xcmSvcMonQueueExtTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF XcmSvcMonQueueExtEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table which augments 'xcmSvcMonQueueTable', with dynamic
        queue routing (forwarding), state, conditions, fault info,
        create date, lifetime jobs, and last connect date and jobs.

        Usage:  Conforming implementations SHALL preserve active
        queue table objects across management agent power cycles,
        and SHALL implement one of the following two methods:
        1)  The agent SHALL store queue table objects directly in
            'stable storage'; or
        2)  The agent SHALL automatically checkpoint all active queue
            table objects to 'stable storage' with reasonable frequency
            (either due to a write to some queue table object, or upon
            expiration of a product-specific timeout)."
    REFERENCE
        "See:   'xcmSvcMonQueueTable' in this MIB module."
    ::= { xcmSvcMonQueueExt 2 }

xcmSvcMonQueueExtEntry OBJECT-TYPE
    SYNTAX      XcmSvcMonQueueExtEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry which augments 'xcmSvcMonQueueTable', with dynamic
        queue routing (forwarding), state, conditions, and fault info."
    REFERENCE
        "See:   'xcmSvcMonQueueTable' in this MIB module."
    AUGMENTS    { xcmSvcMonQueueEntry }
    ::= { xcmSvcMonQueueExtTable 1 }

XcmSvcMonQueueExtEntry ::= SEQUENCE {
        --  Associated Queue Ext Info


        xcmSvcMonQueueRoutingIndex      Cardinal32,
        xcmSvcMonQueueState             XcmCommsMgmtState,
        xcmSvcMonQueueConditions        XcmCommsMgmtConditions,
        xcmSvcMonQueueFaultCount        Counter32,
        xcmSvcMonQueueFaultCode         Integer32,
        xcmSvcMonQueueFaultString       XcmFixedLocaleDisplayString,
        xcmSvcMonQueueRowCreateDate     DateAndTime,
        xcmSvcMonQueueRowTotalJobs      Counter32,
        xcmSvcMonQueueLastConnectDate   DateAndTime,
        xcmSvcMonQueueLastConnectJobs   Counter32
    }

xcmSvcMonQueueRoutingIndex OBJECT-TYPE
    SYNTAX      Cardinal32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The (optional) routing index of this queue.

        Usage:  This (optional) routing index, for queue indirection
        mapping, specifies 'xcmSvcMonQueueIndex' for the NEXT queue
        closer to (or on) this host system, or zero if none.

        Usage:  It is common for more than one off-system (remote) queue
        to be forwarded to the same on-system (local) queue.  Multiple
        off-system (remote) entries in the 'xcmSvcMonQueueTable' (for a
        given device) MAY forward to the same on-system (local) entry."
    REFERENCE
        "See:   'xcmSvcMonQueueOnSystem'."
    DEFVAL      { 0 }                   -- no queue forward index
    ::= { xcmSvcMonQueueExtEntry 1 }

xcmSvcMonQueueState OBJECT-TYPE
    SYNTAX      XcmCommsMgmtState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current state of this queue.

        Usage:  This queue state specifies the operational state
        of the application service or the network communications path
        to this queue.

        Usage:  This queue state need NOT be reported for a
        'remote' queue (ie, 'xcmSvcMonQueueOnSystem' is 'false'),
        although in some cases (eg, Novell PServer), the state of
        (connectivity to) the 'remote' queue is known (and SHALL
        be reported) on the managed system.

        Usage:  This queue state SHALL be as reported in
        the XCMI Comms Config/Engine MIB objects for this queue."
    REFERENCE
        "See:   'XcmCommsMgmt[State|Conditions]' in XCMI Comms Engine.
        See:    'xcmSvcMonQueueConditions'"


    DEFVAL      { closed }              -- closed queue state
    ::= { xcmSvcMonQueueExtEntry 2 }

xcmSvcMonQueueConditions OBJECT-TYPE
    SYNTAX      XcmCommsMgmtConditions
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current conditions (ie, state reasons) of this queue.

        Usage:  These queue conditions qualify the operational state
        of the application service or the network communications path
        to this queue.

        Usage:  These queue conditions need NOT be reported for a
        'remote' queue (ie, 'xcmSvcMonQueueOnSystem' is 'false'),
        although in some cases (eg, Novell PServer), the state of
        (connectivity to) the 'remote' queue is known (and SHALL
        be reported) on the managed system.

        Usage:  These queue conditions SHALL be as reported in
        the XCMI Comms Config/Engine MIB objects for this queue."
    REFERENCE
        "See:   'XcmCommsMgmt[State|Conditions]' in XCMI Comms Engine.
        See:    'xcmSvcMonQueueState'"
    DEFVAL      { 0 }                   -- no queue conditions
    ::= { xcmSvcMonQueueExtEntry 3 }

xcmSvcMonQueueFaultCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current fault count of this queue.

        Usage:  This queue fault count qualifies the operational state
        of the application service or the network communications path
        to this queue.

        Usage:  This queue fault count need NOT be reported for a
        'remote' queue (ie, 'xcmSvcMonQueueOnSystem' is 'false'),
        although in some cases (eg, Novell PServer), the state of
        (connectivity to) the 'remote' queue is known (and SHALL
        be reported) on the managed system.

        Usage:  This queue fault count SHALL be as reported in
        any relevant device- or service-specific MIB for this queue.

        Usage:  Although no default value ('DEFVAL' clause) is permitted
        (by IETF SMIv2) for this counter, conforming host systems SHALL
        zero this counter upon conceptual row creation."
    REFERENCE
        "See:   'xcmSvcMonQueue[State|Conditions]'"
    ::= { xcmSvcMonQueueExtEntry 4 }


xcmSvcMonQueueFaultCode OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Encoded current fault code of this queue.

        Usage:  This queue fault code qualifies the operational state
        of the application service or the network communications path
        to this queue.

        Usage:  This queue fault code need NOT be reported for a
        'remote' queue (ie, 'xcmSvcMonQueueOnSystem' is 'false'),
        although in some cases (eg, Novell PServer), the state of
        (connectivity to) the 'remote' queue is known (and SHALL
        be reported) on the managed system.

        Usage:  This queue fault code SHALL be as reported in
        any relevant device- or service-specific MIB for this queue."
    REFERENCE
        "See:   'xcmSvcMonQueue[State|Conditions]'"
    DEFVAL      { 0 }                   -- no queue fault code
    ::= { xcmSvcMonQueueExtEntry 5 }

xcmSvcMonQueueFaultString OBJECT-TYPE
    SYNTAX      XcmFixedLocaleDisplayString (SIZE (0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Human-readable current fault string of this queue.

        Usage:  This queue fault string qualifies the operational state
        of the application service or the network communications path
        to this queue.

        Usage:  This queue fault string need NOT be reported for a
        'remote' queue (ie, 'xcmSvcMonQueueOnSystem' is 'false'),
        although in some cases (eg, Novell PServer), the state of
        (connectivity to) the 'remote' queue is known (and SHALL
        be reported) on the managed system.

        Usage:  This queue fault string SHALL be as reported in
        any relevant device- or service-specific MIB for this queue."
    REFERENCE
        "See:   'xcmSvcMonQueue[State|Conditions]'"
    DEFVAL      { ''H }                 -- no queue fault string
    ::= { xcmSvcMonQueueExtEntry 6 }

xcmSvcMonQueueRowCreateDate OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION


        "The date and time of creation of this conceptual row in the
        'xcmSvcMonQueueTable' (and 'xcmSvcMonQueueExtTable')."
    REFERENCE
        "See:   'xcmSvcMonQueueOnSystem'.
        See:    'xcmSvcMonQueueRowTotalJobs'"
    DEFVAL      { '0000000000000000'H } -- no entry create date
    ::= { xcmSvcMonQueueExtEntry 7 }

xcmSvcMonQueueRowTotalJobs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total jobs completed for this remote/local external
        job queue, since 'xcmSvcMonQueueRowCreateDate'.

        Usage:  Although no default value ('DEFVAL' clause) is permitted
        (by IETF SMIv2) for this counter, conforming host systems SHALL
        zero this counter upon conceptual row creation."
    REFERENCE
        "See:   'xcmSvcMonQueueOnSystem'.
        See:    'xcmSvcMonQueueRowTotalJobs'"
    ::= { xcmSvcMonQueueExtEntry 8 }

xcmSvcMonQueueLastConnectDate OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The date and time of last connect (and/or login) to this remote
        or local external job queue."
    REFERENCE
        "See:   'xcmSvcMonQueueOnSystem'.
        See:    'xcmSvcMonQueueLastConnectJobs'"
    DEFVAL      { '0000000000000000'H } -- no last connect date
    ::= { xcmSvcMonQueueExtEntry 9 }

xcmSvcMonQueueLastConnectJobs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total jobs completed for this remote/local external
        job queue, since 'xcmSvcMonQueueLastConnectDate'.

        Usage:  Although no default value ('DEFVAL' clause) is permitted
        (by IETF SMIv2) for this counter, conforming host systems SHALL
        zero this counter upon conceptual row creation."
    REFERENCE
        "See:   'xcmSvcMonQueueOnSystem'.
        See:    'xcmSvcMonQueueRowTotalJobs'"
    ::= { xcmSvcMonQueueExtEntry 10 }


xcmSvcMonQueueExtV1EventOID OBJECT-IDENTITY
    STATUS      current
    DESCRIPTION
        "The value of the enterprise-specific OID in an SNMPv1 trap sent
        whenever 'xcmSvcMonQueue[State|Conditions|FaultCount]' changes.
        See SNMPv2 trap definition 'xcmSvcMonQueueExtV2Event'
        below for 'special semantics'."
    ::= { xcmSvcMonQueueExt 1 }

xcmSvcMonQueueExtV2EventPrefix
    OBJECT IDENTIFIER ::= { xcmSvcMonQueueExtV1EventOID 0 }

xcmSvcMonQueueExtV2Event NOTIFICATION-TYPE
    OBJECTS {
        xcmSvcMonQueueIndex,
        xcmSvcMonQueueOnSystem,
        xcmSvcMonQueueState,
        xcmSvcMonQueueConditions,
        xcmSvcMonQueueFaultCount,
        xcmSvcMonQueueFaultCode,
        xcmSvcMonQueueFaultString
    }
    STATUS      current
    DESCRIPTION
        "This is the definition of the SNMPv2 trap sent whenever
        'xcmSvcMonQueue[State|Conditions|FaultCount]' changes.

        Note:   The variable-bindings of this trap have been chosen to
        specify a complete associated queue status change while keeping
        trap messages reasonably concise (generally a few hundred octets
        at most).

        This notification has the following special semantics:

            o   The queue's 'xcmSvcMonQueueIndex' field
                value SHALL be appended to this trap object ID,
                as a BER binary OID suffix.

        This trap OID qualifier allows service management/monitoring
        applications to limit the alerts they receive to ones generated 
        by associated queues of interest."
    ::= { xcmSvcMonQueueExtV2EventPrefix 1 }

--  Note that the SNMPv2 to SNMPv1 translation rules dictate that the
--  preceding structure will result in SNMPv1 traps of the following
--  form:
--
--  xcmSvcMonQueueExtV1Event TRAP-TYPE
--      ENTERPRISE  xcmSvcMonQueueExtV1EventOID
--      VARIABLES   {
--          xcmSvcMonQueueIndex,
--          xcmSvcMonQueueOnSystem,
--          xcmSvcMonQueueState,
--          xcmSvcMonQueueConditions,


--          xcmSvcMonQueueFaultCount,
--          xcmSvcMonQueueFaultCode,
--          xcmSvcMonQueueFaultString
--      }
--      DESCRIPTION
--          "This is the definition of the SNMPv1 trap sent whenever
--          'xcmSvcMonQueue[State|Conditions|FaultCount]' changes.
--          See SNMPv2 trap definition 'xcmSvcMonQueueExtV2Event'
--          above for 'special semantics'."
--      ::= 1

--
--          Service Group (Cond Mandatory)
--
--          Implementation of this group is conditionally mandatory, ie,
--          mandatory for systems which support service monitoring
--          and optional for all other systems.

xcmSvcMonService        OBJECT IDENTIFIER ::= { xcmSvcMonMIB 5 }

xcmSvcMonServiceTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF XcmSvcMonServiceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of the system and/or end-user services supported and
        (possibly) ready on this host system, and (possibly) associated
        with one or more 'physical', 'logical', or 'logicalAndPhysical'
        devices on this host system presenting job services and one or
        more external devices (for security, accounting, etc), attached
        to this host system."
    REFERENCE
        "See:   'xcmSecServiceTable' in XCMI Security MIB."
    ::= { xcmSvcMonService 2 }

xcmSvcMonServiceEntry OBJECT-TYPE
    SYNTAX      XcmSvcMonServiceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry for a system and/or end-user service supported and
        (possibly) ready on this host system, and (possibly) associated
        with one or more 'physical', 'logical', or 'logicalAndPhysical'
        devices on this host system presenting job services and one or
        more external devices (for security, accounting, etc), attached
        to this host system."
    REFERENCE
        "See:   'xcmSecServiceEntry' in XCMI Security MIB."
    INDEX       { xcmSvcMonServiceIndex }
    ::= { xcmSvcMonServiceTable 1 }

XcmSvcMonServiceEntry ::= SEQUENCE {
        --  Service Info
        xcmSvcMonServiceIndex           Ordinal32,


        xcmSvcMonServiceRowStatus       RowStatus,
        xcmSvcMonServiceName            XcmFixedLocaleDisplayString,
        xcmSvcMonServiceCurrentState    XcmHrDpaState,
        xcmSvcMonServicePreviousState   XcmHrDpaState,
        xcmSvcMonServiceConditions      XcmHrDpaConditions,
        xcmSvcMonServiceAvailability    XcmHrDpaAvailability,
        --  Service Host Resources MIB Info
        xcmSvcMonServicePhysicalDevice  Cardinal32,
        xcmSvcMonServiceLogicalDevice   Cardinal32,
        xcmSvcMonServiceExternalDevice  Cardinal32,
        xcmSvcMonServiceSWRun           Cardinal32,
        xcmSvcMonServiceSWInstalled     Cardinal32,
        xcmSvcMonServiceStorage         Cardinal32,
        --  Service Info Extended
        xcmSvcMonServicePriority        INTEGER (0..100),
        xcmSvcMonServiceType            XcmSvcMonServiceType,
        xcmSvcMonServiceStateDetail     OCTET STRING (SIZE (0..64))
    }

xcmSvcMonServiceIndex OBJECT-TYPE
    SYNTAX      Ordinal32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A unique value used by this host system to identify this
        conceptual row in the 'xcmSvcMonServiceTable'.

        Usage:  Conforming management stations and management agents
        SHALL ensure that 'xcmSvcMonServiceIndex' is equal to
        'xcmSecServiceIndex' for the same service (if the XCMI Security
        MIB is also implemented).

        Usage:  This object SHALL be permanent (ie, preserved
        across all hardware resets)."
    ::= { xcmSvcMonServiceEntry 1 }

xcmSvcMonServiceRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object is used to create and delete individual conceptual
        rows in the 'xcmSvcMonServiceTable' and (optionally) in the
        'xcmSvcMonServiceMgmtTable' (if implemented on this system).

        Usage:  Conforming management stations and management agents
        SHALL ensure that 'xcmSvcMonServiceIndex' is equal to
        'xcmSecServiceIndex' for the same service (if the XCMI Security
        MIB is also implemented).

        Usage:  Conforming implementations which support static rows
        SHALL support 'active' and 'notInService' writes to this
        'xcmSvcMonServiceRowStatus' row status object; and
        SHALL clear the 'svcMonServiceGroup' bit in


        'xcmSvcMonGeneralCreateSupport' in the 'xcmSvcMonGeneralTable'.

        Usage:  Conforming implementations which support dynamic rows
        SHALL support 'createAndGo' and 'destroy' writes to this
        'xcmSvcMonServiceRowStatus' row status object; and
        SHALL set the 'svcMonServiceGroup' bit in
        'xcmSvcMonGeneralCreateSupport' in the 'xcmSvcMonGeneralTable'.

        Usage:  Conforming implementations need NOT support dynamic row
        creation (via 'createAndGo(4)') nor dynamic row deletion (via
        'destroy(6)').

        Usage:  See section 3.4 'Secure Modes of Operation' and section
        3.5 'Secure SNMP Get/Set Requests' in XCMI Security TC, for
        details of secure modes of access to this row status object."
    REFERENCE
        "See:   'xcmSvcMonGeneralCreateSupport' in
                'xcmSvcMonGeneralTable'.
        See:    'RowStatus' in IETF SNMPv2 TC (RFC 1443/1903/2579).
        See:    'xcmHrDevMgmtCommandData' in XCMI HRX MIB and
                'xcmSecUserMgmtData' in XCMI Security MIB."
    ::= { xcmSvcMonServiceEntry 2 }

xcmSvcMonServiceName OBJECT-TYPE
    SYNTAX      XcmFixedLocaleDisplayString (SIZE (0..255))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A human-readable name, used by system administrators
        and end-users to identify this service.

        Usage:  This name SHALL be either:
        a) the name normally used in a command shell for control of
        this service (eg, 'showstopper.sample.com/bin/scan2file'); or
        b) the local user-friendly service name (eg, 'ScanToFile').

        Usage:  Conforming implementations need NOT ensure that each
        'xcmSvcMonServiceEntry' has a non-empty (on the managed system)
        'xcmSvcMonServiceName' (ie, names support is optional), but
        a given 'xcmSvcMonServiceName' SHALL be found via the
        same value of 'xcmSecServiceIndex' on the same managed system
        (ie, service names SHALL be persistent)."
    REFERENCE
        "See:   Section 9.5.1 'Server-name'
                in DPA (ISO/IEC 10175-1 Final Text, March 1996).
        See:    'xcmHrDevInfoName' in XCMI Ext to Host Res MIB."
    DEFVAL      { ''H }                 -- no service name
    ::= { xcmSvcMonServiceEntry 3 }

xcmSvcMonServiceCurrentState OBJECT-TYPE
    SYNTAX      XcmHrDpaState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION


        "The current state of this system and/or end-user service.

        Usage:  The current DPA object generic state of a service."
    REFERENCE
        "See:   Section 9.5.4 'Server-state' and
                section 9.1.6.4 'State' (generic object state)
                in DPA (ISO/IEC 10175-1 Final Text, March 1996).
        See:    Section D.2.3 'Server State Transitions'
                in DPA Mgmt Service (ISO 10175-3 Draft, October 1996).
        See:    'hrDeviceStatus' in IETF Host Resources MIB (RFC 2790).
        See:    'xcmHrDevInfoXStatus' and 'xcmHrDevInfoConditions'
                in XCMI Ext to Host Resources MIB."
    DEFVAL      { unknown }             -- no current service state
    ::= { xcmSvcMonServiceEntry 4 }

xcmSvcMonServicePreviousState OBJECT-TYPE
    SYNTAX      XcmHrDpaState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The previous state of this system and/or end-user service.

        Usage:  The previous DPA object generic state of a service."
    REFERENCE
        "See:   Section 9.5.4 'Server-state' and
                section 9.1.6.4 'State' (generic object state)
                in DPA (ISO/IEC 10175-1 Final Text, March 1996).
        See:    Section D.2.3 'Server State Transitions'
                in DPA Mgmt Service (ISO 10175-3 Draft, October 1996).
        See:    'hrDeviceStatus' in IETF Host Resources MIB (RFC 2790).
        See:    'xcmHrDevInfoXStatus' and 'xcmHrDevInfoConditions'
                in XCMI Ext to Host Resources MIB."
    DEFVAL      { unknown }             -- no previous service state
    ::= { xcmSvcMonServiceEntry 5 }

xcmSvcMonServiceConditions OBJECT-TYPE
    SYNTAX      XcmHrDpaConditions
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current conditions (ie, state reasons) of this system
        and/or end-user service."
    REFERENCE
        "See:   Section 9.5.4 'Server-state' and
                section 9.1.6.4 'State' (generic object state)
                in DPA (ISO/IEC 10175-1 Final Text, March 1996).
        See:    Section D.2.3 'Server State Transitions'
                in DPA Mgmt Service (ISO 10175-3 Draft, October 1996).
        See:    'hrDeviceStatus' in IETF Host Resources MIB (RFC 2790).
        See:    'xcmHrDevInfoXStatus' and 'xcmHrDevInfoConditions'
                in XCMI Ext to Host Resources MIB."
    DEFVAL      { 0 }                   -- no service conditions
    ::= { xcmSvcMonServiceEntry 6 }


xcmSvcMonServiceAvailability OBJECT-TYPE
    SYNTAX      XcmHrDpaAvailability
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The availability of this system and/or end-user service."
    REFERENCE
        "See:   Section 9.1.6.6 '[Generic attribute] Availability' and
                Annex A 'id-val-availability-...'
                in DPA (ISO/IEC 10175-1 Final Text, March 1996)."
    DEFVAL      { unknown }             -- no service availability
    ::= { xcmSvcMonServiceEntry 7 }

xcmSvcMonServicePhysicalDevice OBJECT-TYPE
    SYNTAX      Cardinal32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of 'hrDeviceIndex' corresponding to the first
        associated physical device row in the 'hrDeviceTable' in the
        Host Resources MIB (RFC 2790) and an (optional) associated row
        in 'xcmHrDevInfoTable' of the XCMI Ext to Host Resources MIB,
        or zero if none.

        Usage:  Conforming implementations SHALL ensure that
        physical devices underlying services are 'visible'."
    REFERENCE
        "See:   'hrDeviceIndex' in the Device group of
                IETF Host Resources MIB (RFC 2790).
        See:    'xcmHrDevInfoRealization' in the Device Info group of
                XCMI Ext to Host Resources MIB.
        See:    Section 9.4 (pages 181 to 184) of DPA (Document Printing
        Application) ISO/IEC 10175 (Final Text, March 1996) for a
        discussion of 'printer realizations' of 'physical', 'logical',
        and 'logical-and-physical' types (the latter peculiar to DPA)."
    DEFVAL      { 0 }                   -- no 'service' physical device
    ::= { xcmSvcMonServiceEntry 8 }

xcmSvcMonServiceLogicalDevice OBJECT-TYPE
    SYNTAX      Cardinal32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of 'hrDeviceIndex' corresponding to the first
        associated logical device row in the 'hrDeviceTable' in the
        Host Resources MIB (RFC 2790) and an (optional) associated row
        in 'xcmHrDevInfoTable' of the XCMI Ext to Host Resources MIB,
        or zero if none.

        Usage:  Conforming implementations SHALL ensure that
        logical devices presenting services are 'visible'."
    REFERENCE
        "See:   'xcmSvcMonServicePhysicalDevice' above."


    DEFVAL      { 0 }                   -- no 'service' logical device
    ::= { xcmSvcMonServiceEntry 9 }

xcmSvcMonServiceExternalDevice OBJECT-TYPE
    SYNTAX      Cardinal32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of 'hrDeviceIndex' corresponding to the first
        associated external device row in the 'hrDeviceTable' in the
        Host Resources MIB (RFC 2790) and an (optional) associated row
        in 'xcmHrDevInfoTable' of the XCMI Ext to Host Resources MIB,
        or zero if none.

        Usage:  Such an external device is termed a 'foreign attachment'
        and SHALL have 'xcmHrDevInfoRealization' of 'physical' in the
        Device Info group of the XCMI Ext to Host Resources MIB - such
        a device performs some security processing (any authentication,
        authorization, or accounting), job processing, job finishing, or
        other off-system activity, on behalf of this service."
    REFERENCE
        "See:   'hrDeviceIndex' in the Device group of
                IETF Host Resources MIB (RFC 2790)."
    DEFVAL      { 0 }                   -- no 'service' external device
    ::= { xcmSvcMonServiceEntry 10 }

xcmSvcMonServiceSWRun OBJECT-TYPE
    SYNTAX      Cardinal32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of 'hrSWRunIndex' corresponding to the first
        associated conceptual row in the 'hrSWRunTable' of the
        Host Resources MIB (RFC 2790) and an (optional) associated row
        in 'xcmHrSWRunTable' of the XCMI Ext to Host Resources MIB,
        or zero if none.

        Usage:  A 'chain' of one or more Software Running entries in
        the Host Resources MIB MAY be associated with this service.
        By convention, the FIRST of these entries SHALL represent
        the security functional unit of this service."
    REFERENCE
        "See:   'hrSWRunIndex' in the Software Running group of
                IETF Host Resources MIB (RFC 2790).
        See:    Software Running Extensions group of
                XCMI Ext to Host Resources MIB."
    DEFVAL      { 0 }                   -- no 'service' s/w running
    ::= { xcmSvcMonServiceEntry 11 }

xcmSvcMonServiceSWInstalled OBJECT-TYPE
    SYNTAX      Cardinal32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION


        "The value of 'hrSWInstalledIndex' corresponding to the first
        associated conceptual row in the 'hrSWInstalledTable' of the
        Host Resources MIB (RFC 2790) and an (optional) associated row
        in 'xcmHrSWInstalledTable' in XCMI Ext to Host Resources MIB,
        or zero if none.

        Usage:  A 'chain' of one or more Software Installed entries in
        the Host Resources MIB MAY be associated with a service.
        By convention, the FIRST of these entries SHALL represent
        the security functional unit of a service."
    REFERENCE
        "See:   'hrSWInstalledIndex' in the Software Installed group of
                IETF Host Resources MIB (RFC 2790).
        See:    Software Installed Extensions group of
                XCMI Ext to Host Resources MIB."
    DEFVAL      { 0 }                   -- no 'service' s/w installed
    ::= { xcmSvcMonServiceEntry 12 }

xcmSvcMonServiceStorage OBJECT-TYPE
    SYNTAX      Cardinal32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of 'hrStorageIndex' corresponding to the first
        associated conceptual row in the 'hrStorageTable' of the
        Host Resources MIB (RFC 2790) and an (optional) associated row
        in 'xcmHrStorageTable' of the XCMI Ext to Host Resources MIB,
        or zero if none.

        Usage:  A 'chain' of one or more Storage entries in
        the Host Resources MIB MAY be associated with a service."
    REFERENCE
        "See:   'hrStorageIndex' in the Storage group of
                IETF Host Resources MIB (RFC 2790).
        See:    Storage Extensions group of
                XCMI Ext to Host Resources MIB."
    DEFVAL      { 0 }                   -- no 'service' storage
    ::= { xcmSvcMonServiceEntry 13 }

xcmSvcMonServicePriority OBJECT-TYPE
    SYNTAX      INTEGER (0..100)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The current priority of this system and/or end-user service.

        Usage:  The scheduling priority of this service, where '0'
        is unspecified (default), '1' is lowest, and '100' is highest."
    REFERENCE
        "See:   'xcmHrDevInfoPriority' in
                XCMI Ext to Host Resources MIB."
    DEFVAL      { 0 }                   -- unspecified service priority
    ::= { xcmSvcMonServiceEntry 14 }


xcmSvcMonServiceType OBJECT-TYPE
    SYNTAX      XcmSvcMonServiceType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The explicit type of this system and/or end-user service."
    DEFVAL      { unknown }             -- unspecified service type
    ::= { xcmSvcMonServiceEntry 15 }

xcmSvcMonServiceStateDetail OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..64))   -- 512 details
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object represents additional status details to further
         describe the current state of the service.
        Usage:  This bit-array is constructed from the set of
        supported values from 'XcmSvcMonServiceStateDetail', used as 
        powers of 2 with big-endian rules - the high-order bit of the
        first octet corresponds to a service state detail '0' (reserved)
        - the low-order bit of the first octet corresponds to a
        service state detail of '7'.

        Similar to the BITS pseudotype defined in IETF SMIv2
        (RFC 2578), which has the same bit ordering rules but
        requires definitions for contiguous enumerated bits."
        REFERENCE
                "See:   'XcmSvcMonServiceStateDetail' in XCMI Service
                          Monitor MIB TC;
                        Section 7.1.4 'The BITS construct' in the IETF 
                          Coexistence between Version 1, Version 2, and 
                          Version 3 of the Internet-standard Network
                          Management Framework SMIv2 (RFC 2578)"
     DEFVAL      { ''H }                 -- no service state detail
        ::= { xcmSvcMonServiceEntry 16 }

xcmSvcMonServiceV1EventOID OBJECT-IDENTITY
    STATUS      current
    DESCRIPTION
        "The value of the enterprise-specific OID in an SNMPv1 trap sent
        whenever a service status changes.
        See SNMPv2 trap definition 'xcmSvcMonServiceV2Event'
        below for 'special semantics'."
    ::= { xcmSvcMonService 1 }

xcmSvcMonServiceV2EventPrefix
    OBJECT IDENTIFIER ::= { xcmSvcMonServiceV1EventOID 0 }

xcmSvcMonServiceV2Event NOTIFICATION-TYPE
    OBJECTS {
        xcmSvcMonServiceIndex,
        xcmSvcMonServiceCurrentState,
        xcmSvcMonServicePreviousState,


        xcmSvcMonServiceConditions
    }
    STATUS      current
    DESCRIPTION
        "This trap is sent whenever
        'XcmSvcMonService[CurrentState|Conditions]' changes.

        Note:   The variable-bindings of this trap have been chosen to
        specify a complete service status change while keeping
        trap messages reasonably concise (generally a few hundred octets
        at most).

        This notification has the following special semantics:

            o   The service's 'xcmSvcMonServiceIndex' field
                value SHALL be appended to this trap object ID,
                as a BER binary OID suffix.

        This trap OID qualifier allows service management/monitoring
        applications to limit the alerts they receive to ones generated 
        by services of interest."
    ::= { xcmSvcMonServiceV2EventPrefix 1 }

--  Note that the SNMPv2 to SNMPv1 translation rules dictate that the
--  preceding structure will result in SNMPv1 traps of the following
--  form:
--
--  xcmSvcMonServiceV1Event TRAP-TYPE
--      ENTERPRISE  xcmSvcMonServiceV1EventOID
--      VARIABLES   {
--          xcmSvcMonServiceIndex,
--          xcmSvcMonServiceCurrentState,
--          xcmSvcMonServicePreviousState,
--          xcmSvcMonServiceConditions
--      }
--      DESCRIPTION
--          "This trap is sent whenever
--          'XcmSvcMonService[CurrentState|Conditions]' changes.
--          See SNMPv2 trap definition 'xcmSvcMonServiceV2Event'
--          above for 'special semantics'."
--      ::= 1

--          Service Detail Group (Cond Mandatory)
--
--          Implementation of this group is conditionally mandatory, ie,
--          mandatory for systems which support service details
--          and optional for all other systems.
--
--          Note:   Systems implementing 'xcmSvcMonServiceDetailGroup'
--                  SHALL implement the 'xcmSvcMonServiceGroup'.

xcmSvcMonServiceDetail  OBJECT IDENTIFIER ::= { xcmSvcMonMIB 6 }

xcmSvcMonServiceDetailTable OBJECT-TYPE


    SYNTAX      SEQUENCE OF XcmSvcMonServiceDetailEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A 'sparse' table containing service detail information for
        installed and (possibly) active services on this host system,
        augmenting the basic entries in the 'xcmSvcMonServiceTable'
        of the XCMI Service Monitoring MIB.

        Usage:  UNLIKE the 'xcmGenOptionTable' in the XCMI General MIB
        (which is a unique exception), this table of 'dictionary-based'
        service details is used with DIRECT create/update operations."
    ::= { xcmSvcMonServiceDetail 2 }

xcmSvcMonServiceDetailEntry OBJECT-TYPE
    SYNTAX      XcmSvcMonServiceDetailEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A 'sparse' entry containing service detail information for
        an installed and (possibly) active service on this host system,
        augmenting a basic entry in the 'xcmSvcMonServiceTable'
        of the XCMI Service Monitoring MIB."
    INDEX       { xcmSvcMonServiceIndex,
                  xcmSvcMonServiceDetailClass,
                  xcmSvcMonServiceDetailType,
                  xcmSvcMonServiceDetailIndex }
    ::= { xcmSvcMonServiceDetailTable 1 }

XcmSvcMonServiceDetailEntry ::= SEQUENCE {
        --  Service Detail Info
        xcmSvcMonServiceDetailClass     XcmSvcMonServiceDetailClass,
        xcmSvcMonServiceDetailType      XcmSvcMonServiceDetailType,
        xcmSvcMonServiceDetailIndex     Ordinal32,
        xcmSvcMonServiceDetailRowStatus RowStatus,
        xcmSvcMonServiceDetailUnitClass XcmHrDevDetailUnitClass,
        xcmSvcMonServiceDetailUnit      Cardinal32,
        xcmSvcMonServiceDetailInteger   Integer32,
        xcmSvcMonServiceDetailOID       OBJECT IDENTIFIER,
        xcmSvcMonServiceDetailString    OCTET STRING
    }

xcmSvcMonServiceDetailClass OBJECT-TYPE
    SYNTAX      XcmSvcMonServiceDetailClass
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A service detail class,
        used by system administrators and end users to specify
        the correct class for this service detail."
    ::= { xcmSvcMonServiceDetailEntry 1 }

xcmSvcMonServiceDetailType OBJECT-TYPE
    SYNTAX      XcmSvcMonServiceDetailType


    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A service detail type,
        used by system administrators and end users to specify
        the correct type for this service detail."
    ::= { xcmSvcMonServiceDetailEntry 2 }

xcmSvcMonServiceDetailIndex OBJECT-TYPE
    SYNTAX      Ordinal32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A unique value used by this host system to identify this
        conceptual row in the 'xcmSvcMonServiceDetailTable', OR a common
        value shared across a set of related conceptual rows (with
        different values of 'xcmSvcMonServiceDetailType'.

        Usage:  For service detail types which are single-valued, this
        index SHALL be used to correlate related single-valued details.

        Usage:  For service detail types which are multi-valued, this
        index SHALL be used to enumerate lists of multi-valued details."
    ::= { xcmSvcMonServiceDetailEntry 3 }

xcmSvcMonServiceDetailRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object is used to create and delete individual conceptual
        rows in the 'xcmSvcMonServiceDetailTable'.

        Usage:  Conforming implementations which support static rows
        SHALL support 'active' and 'notInService' writes to this
        'xcmSvcMonServiceDetailRowStatus' row status object; and
        SHALL clear the 'svcMonServiceDetailGroup' bit in
        'xcmSvcMonGeneralCreateSupport' in the 'xcmSvcMonGeneralTable'.

        Usage:  Conforming implementations which support dynamic rows
        SHALL support 'createAndGo' and 'destroy' writes to this
        'xcmSvcMonServiceDetailRowStatus' row status object; and
        SHALL set the 'svcMonServiceDetailGroup' bit in
        'xcmSvcMonGeneralCreateSupport' in the 'xcmSvcMonGeneralTable'.

        Usage:  Conforming implementations need NOT support dynamic row
        creation (via 'createAndGo(4)') nor dynamic row deletion (via
        'destroy(6)').

        Usage:  See section 3.4 'Secure Modes of Operation' and section
        3.5 'Secure SNMP Get/Set Requests' in XCMI Security TC, for
        details of secure modes of access to this row status object."
    REFERENCE
        "See:   'xcmSvcMonGeneralCreateSupport' in


                'xcmSvcMonGeneralTable'.
        See:    'RowStatus' in IETF SNMPv2 TC (RFC 1443/1903/2579).
        See:    'xcmHrDevMgmtCommandData' in XCMI HRX MIB and
                'xcmSecUserMgmtData' in XCMI Security MIB."
    ::= { xcmSvcMonServiceDetailEntry 4 }

xcmSvcMonServiceDetailUnitClass OBJECT-TYPE
    SYNTAX      XcmHrDevDetailUnitClass
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value unit class of the detail information specified
        in this conceptual row in the 'xcmSvcMonServiceDetailTable'.

        Usage:  Used to select a textual convention for specifying the
        value unit of this service detail.

        Usage:  The 'xcmSvcMonServiceDetail[UnitClass|Class]' objects
        are used to specify the value syntax AND the value unit of the
        'xcmSvcMonServiceDetail[Integer|OID|String]' value objects."
    REFERENCE
        "See:   'xcmSvcMonServiceDetailUnit'"
    DEFVAL      { unknown }             -- no detail value unit class
    ::= { xcmSvcMonServiceDetailEntry 5 }

xcmSvcMonServiceDetailUnit OBJECT-TYPE
    SYNTAX      Cardinal32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value unit of the detail information specified
        in this conceptual row in the 'xcmSvcMonServiceDetailTable'.

        Usage:  Used to select an enumerated choice from a textual
        convention to specify the value unit of this service detail.

        Usage:  The 'xcmSvcMonServiceDetail[UnitClass|Class]' objects
        are used to specify the value syntax AND the value unit of the
        'xcmSvcMonServiceDetail[Integer|OID|String]' value objects."
    REFERENCE
        "See:   'xcmSvcMonServiceDetailUnitClass'"
    DEFVAL      { 0 }                   -- no detail value unit
    ::= { xcmSvcMonServiceDetailEntry 6 }

xcmSvcMonServiceDetailInteger OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A service detail value integer,
        used by system administrators and end users to specify
        the current value for a service detail
        with a base value syntax of 'INTEGER'."
    REFERENCE


        "See:   'xcmSvcMonServiceDetailOID' and
                'xcmSvcMonServiceDetailString'
        See:    'xcmSvcMonServiceDetailUnitClass' and
                'xcmSvcMonServiceDetailUnit' for syntax of detail value"
    DEFVAL      { 0 }                   -- no detail value integer
    ::= { xcmSvcMonServiceDetailEntry 7 }

xcmSvcMonServiceDetailOID OBJECT-TYPE
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A service detail value OID (object identifier),
        used by system administrators and end users to specify
        the current value for a service detail
        with a base value syntax of 'OBJECT IDENTIFIER'."
    REFERENCE
        "See:   'xcmSvcMonServiceDetailInteger' and
                'xcmSvcMonServiceDetailString'
        See:    'xcmSvcMonServiceDetailUnitClass' and
                'xcmSvcMonServiceDetailUnit' for syntax of detail value"
    DEFVAL      { zeroDotZero }   -- no detail value OID
    ::= { xcmSvcMonServiceDetailEntry 8 }

xcmSvcMonServiceDetailString OBJECT-TYPE
--  SYNTAX      XcmFixedLocaleDisplayString (SIZE (0..255))
    SYNTAX      OCTET STRING (SIZE (0..255))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A service detail value string,
        used by system administrators and end users to specify
        the current value for a service detail
        with a base value syntax of 'OCTET STRING'.

        Usage:  This object is of type 'XcmFixedLocaleDisplayString'.

        Usage:  Conformant implementations MUST encrypt passwords, keys,
        and other security information stored in this string object."
    REFERENCE
        "See:   'xcmSvcMonServiceDetailInteger' and
                'xcmSvcMonServiceDetailOID'
        See:    'xcmSvcMonServiceDetailUnitClass' and
                'xcmSvcMonServiceDetailUnit' for syntax of detail value"
    DEFVAL      { ''H }                 -- no detail value string
    ::= { xcmSvcMonServiceDetailEntry 9 }

--          Service Mgmt Group (Cond Mandatory)
--
--          Implementation of this group is conditionally mandatory, ie,
--          mandatory for systems which support service management
--          and optional for all other systems.

xcmSvcMonServiceMgmt    OBJECT IDENTIFIER ::= { xcmSvcMonMIB 7 }


xcmSvcMonServiceMgmtTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF XcmSvcMonServiceMgmtEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table containing service management requests for control
        of system and/or end-user services on this host system."
    ::= { xcmSvcMonServiceMgmt 2 }

xcmSvcMonServiceMgmtEntry OBJECT-TYPE
    SYNTAX      XcmSvcMonServiceMgmtEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing a service management request for control
        of a system and/or end-user service on this host system."
    AUGMENTS    { xcmSvcMonServiceEntry }
    ::= { xcmSvcMonServiceMgmtTable 1 }

XcmSvcMonServiceMgmtEntry ::= SEQUENCE {
        --  Service Mgmt Info
   xcmSvcMonServiceMgmtOperation        XcmSvcMonServiceMgmtOperation,
   xcmSvcMonServiceMgmtData             XcmSvcMonServiceMgmtData,
   xcmSvcMonServiceMgmtStatus           XcmGenSNMPv2ErrorStatus,
   xcmSvcMonServiceMgmtInProgress       TruthValue,
   xcmSvcMonServiceMgmtRowStatus        RowStatus,
   xcmSvcMonServiceMgmtUserPassword     OCTET STRING,
   xcmSvcMonServiceMgmtOperatorPassword OCTET STRING,
   xcmSvcMonServiceMgmtAdminPassword    OCTET STRING
    }

xcmSvcMonServiceMgmtOperation OBJECT-TYPE
    SYNTAX      XcmSvcMonServiceMgmtOperation
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The most recent service management operation specified for
        this conceptual row in the 'xcmSvcMonServiceMgmtTable'.

        Usage:  Conforming management agents SHALL 'reject' any
        SNMP Set-Request to 'xcmSvcMonServiceMgmt[Operation|Data]'
        while another management operation is already in progress
        (ie, while 'xcmSvcMonServiceMgmtInProgress' is 'true'),
        with 'badValue' (SNMPv1) or 'inconsistentValue' (SNMPv2/v3).

        Usage:  Conforming management stations SHALL set
        'xcmSvcMonServiceMgmtOperation' (mgmt operation) and
        'xcmSvcMonServiceMgmtData' (mgmt arguments)
        SIMULTANEOUSLY (in the same SNMP Set-Request PDU)."
    REFERENCE
        "See:   Section 4 'Print Utilities' (pages 71 to 212) of
                POSIX Sys Admin (IEEE 1387.4 / Draft 8, October 1994).
        See:    OBJECT clause in MODULE-COMPLIANCE macro of


                XCMI Service Monitoring MIB, for compliance info."
--  DEFVAL      { none }                -  no service mgmt operation
    ::= { xcmSvcMonServiceMgmtEntry 1 }

xcmSvcMonServiceMgmtData OBJECT-TYPE
    SYNTAX      XcmSvcMonServiceMgmtData (SIZE (0..255))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The most recent service management data specified for
        this conceptual row in the 'xcmSvcMonServiceMgmtTable'.

        Usage:  Conforming management agents SHALL 'reject' any
        SNMP Set-Request to 'xcmSvcMonServiceMgmt[Operation|Data]'
        while another management operation is already in progress
        (ie, while 'xcmSvcMonServiceMgmtInProgress' is 'true')
        with 'badValue' (SNMPv1) or 'inconsistentValue' (SNMPv2/v3).

        Usage:  Conforming management stations SHALL set
        'xcmSvcMonServiceMgmtOperation' (mgmt operation) and
        'xcmSvcMonServiceMgmtData' (mgmt arguments)
        SIMULTANEOUSLY (in the same SNMP Set-Request PDU).

        Usage:  Conformant implementations MUST encrypt passwords, 
        keys, and other security information stored in this string 
        object.

        Usage:  Management strings will be formatted as specified
        in the 'XcmHrDevMgmtCommandDataTag' textual convention. This
        means that the 'TT=value:' string format will be used with all
        management strings.

        Usage:  Strings that have been specified by XCMI are provided
        in the 'XcmSvcMonServiceMgmtData'."
    REFERENCE
        "See:   Section 4 'Print Utilities' (pages 71 to 212) of
                POSIX Sys Admin (IEEE 1387.4 / Draft 8, October 1994).
        See:    OBJECT clause in MODULE-COMPLIANCE macro of
                XCMI Service Monitoring MIB, for compliance info.
        See:    'XcmHrDevMgmtCommandDataTag' textual convention,
                Section 3.4 'XCMI Standard Tagged Management Data', and
                Section 3.5 'Simple Device Management Requests' in
                XCMI Ext to Host Resources TC.
        See:    Section 3.5.3 'Secure Simple Device Mgmt Requests' in
                XCMI Security TC."

    DEFVAL      { ''H }                 -- no service mgmt data
    ::= { xcmSvcMonServiceMgmtEntry 2 }

xcmSvcMonServiceMgmtStatus OBJECT-TYPE
    SYNTAX      XcmGenSNMPv2ErrorStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION


        "The service management error status associated with
        this conceptual row in 'xcmSvcMonServiceMgmtTable'.

        Usage:  Conforming management agents SHALL set this
        object to the value returned in an SNMP Set-Response PDU when
        a service management operation is 'accepted', ie, when
        'xcmSvcMonServiceMgmtInProgress' goes from 'false' to 'true'.

        Usage:  Conforming management agents SHALL set this
        object to the value of the completion status of the (possibly
        deferred) service management operation, when
        'xcmSvcMonServiceMgmtInProgress' goes from 'true' to 'false'."
    REFERENCE
        "See:   'xcmSvcMonServiceMgmt[Operation|Data|InProgress]'"
--  DEFVAL      { noError }             -  no service mgmt error status
    ::= { xcmSvcMonServiceMgmtEntry 3 }

xcmSvcMonServiceMgmtInProgress OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The service management in progress status associated with
        this conceptual row in 'xcmSvcMonServiceMgmtTable'.

        Usage:  Conforming management agents SHALL 'reject' any
        SNMP Set-Request to 'xcmSvcMonServiceMgmt[Operation|Data]'
        while another management operation is already in progress
        (ie, while 'xcmSvcMonServiceMgmtInProgress' is 'true'),
        with 'badValue' (SNMPv1) or 'inconsistentValue' (SNMPv2/v3)."
    REFERENCE
        "See:   'xcmSvcMonServiceMgmt[Operation|Data|Status]'"
    DEFVAL      { false }               -- no job mgmt in progress
    ::= { xcmSvcMonServiceMgmtEntry 4 }

  xcmSvcMonServiceMgmtRowStatus OBJECT-TYPE
      SYNTAX      RowStatus
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION
          "This object manages the row status of this conceptual row in
          the 'xcmSvcMonServiceMgmtTable'.

          Usage:  Conforming implementations which support static rows
          SHALL support 'active' and 'notInService' writes to this
          'xcmSvcMonServiceMgmtRowStatus' row status object; and
          SHALL clear the 'xcmSvcMonServiceMgmtGroup' bit in
          'xcmSvcMonGeneralCreateSupport' in the 
          'xcmSvcMonServiceGeneralTable'.

          Usage:  Conforming implementations which support dynamic rows
          SHALL support 'createAndGo' and 'destroy' writes to this
          'xcmSvcMonServiceMgmtRowStatus' row status object; and
          SHALL set the 'xcmSvcMonServiceMgmtGroup' bit in


          'xcmSvcMonGeneralCreateSupport' in the 
          'xcmSvcMonServiceGeneralTable'.

          Usage:  Conforming implementations need NOT support dynamic 
          row creation (via 'createAndGo(4)') nor dynamic row deletion 
          (via 'destroy(6)').

          Usage:  See section 3.4 'Secure Modes of Operation' and 
          section 3.5 'Secure SNMP Get/Set Requests' in XCMI Security 
          TC, for details of secure modes of access to this row status 
          object."
      REFERENCE
          "See: xcmSvcMonGeneralCreateSupport in the 
                xcmSvcMonServiceGeneralTable.
           See: RowStatus in IETF SNMPv2 TC (RFC 1443/1903/2579).
           See: xcmSvcMonServiceMgmtData in XCMI Service 
                Monitoring MIB."
      ::= { xcmSvcMonServiceMgmtEntry 5 }

xcmSvcMonServiceMgmtUserPassword OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..255))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A protected end user password for this device.

        Usage:  Conformant implementations MUST encrypt passwords, keys,
        and other security information stored in this string object.

        Usage:  When changing the [User|Operator|Admin] Password,
        conformant implementations MUST encrypt the NEW password that is
        submitted in 'xcmSvcMonServiceMgmtData'.

        Usage:  All XCMI conforming management agents: a) SHOULD always
        return a zero length string in response to an SNMP GetRequest of
        this object; b) SHALL NOT return the contents of this object in
        cleartext (ie, unencrypted) in response to an SNMP GetRequest;
        c) SHOULD support (ie, accept) an authenticated SNMP SetRequest
        changing the system 'end user password' that is used in this 
        object."

    REFERENCE
        "See:   'xcmSvcMonServiceMgmt[Operator|Admin]Password'
         See:    Section 3.5.2 'Secure Password Change Requests' in
                XCMI Security TC.

         See:    'xcmSysAdminRequestTable' in XCMI System Admin MIB and
                'xcmSecUserTable' in XCMI Security MIB."

    DEFVAL      { ''H }                 -- no end user password
    ::= { xcmSvcMonServiceMgmtEntry 6 }

xcmSvcMonServiceMgmtOperatorPassword OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..255))


    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A protected system operator password for this device.

        Usage:  Conformant implementations MUST encrypt passwords, keys,
        and other security information stored in this string object.

        Usage:  When changing the [User|Operator|Admin] Password,
        conformant implementations MUST encrypt the NEW password that is
        submitted in 'xcmSvcMonServiceMgmtData'.

        Usage:  All XCMI conforming management agents: a) SHOULD always
        return a zero length string in response to an SNMP GetRequest of
        this object; b) SHALL NOT return the contents of this object in
        cleartext (ie, unencrypted) in response to an SNMP GetRequest;
        c) SHOULD support (ie, accept) an authenticated SNMP SetRequest
        changing the system 'operator password' that is used in this 
        object."

    REFERENCE
        "See:   'xcmSvcMonServiceMgmt[User|Admin]Password'
         See:    Section 3.5.2 'Secure Password Change Requests' in
                XCMI Security TC.
         See:    'xcmSysAdminRequestTable' in XCMI System Admin MIB and
                'xcmSecUserTable' in XCMI Security MIB."
    DEFVAL      { ''H }                 -- no system operator password
    ::= { xcmSvcMonServiceMgmtEntry 7 }

xcmSvcMonServiceMgmtAdminPassword OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..255))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A protected system administrator password for this device.

        Usage:  Conformant implementations MUST encrypt passwords, keys,
        and other security information stored in this string object.

        Usage:  When changing the [User|Operator|Admin] Password,
        conformant implementations MUST encrypt the NEW password that is
        submitted in 'xcmSvcMonServiceMgmtData'.

        Usage:  All XCMI conforming management agents: a) SHOULD always
        return a zero length string in response to an SNMP GetRequest of
        this object; b) SHALL NOT return the contents of this object in
        cleartext (ie, unencrypted) in response to an SNMP GetRequest;
        c) SHOULD support (ie, accept) an authenticated SNMP SetRequest
        changing the system 'administrator password' that is used in 
        this object."

    REFERENCE
        "See:   'xcmSvcMonServiceMgmt[User|Operator]Password'
         See:    Section 3.5.2 'Secure Password Change Requests' in


                XCMI Security TC.
         See:    'xcmSysAdminRequestTable' in XCMI System Admin MIB and
                'xcmSecUserTable' in XCMI Security MIB."
    DEFVAL      { ''H }                 -- no system admin password
    ::= { xcmSvcMonServiceMgmtEntry 8 }

xcmSvcMonServiceMgmtV1EventOID OBJECT-IDENTITY
    STATUS      current
    DESCRIPTION
        "The value of the enterprise-specific OID in an SNMPv1 trap sent
        whenever an 'xcmSvcMonServiceMgmtOperation' completes.
        See SNMPv2 trap definition 'xcmSvcMonServiceMgmtV2Event'
        below for 'special semantics'."
    ::= { xcmSvcMonServiceMgmt 1 }

xcmSvcMonServiceMgmtV2EventPrefix
    OBJECT IDENTIFIER ::= { xcmSvcMonServiceMgmtV1EventOID 0 }

xcmSvcMonServiceMgmtV2Event NOTIFICATION-TYPE
    OBJECTS {
        xcmSvcMonServiceIndex,
        xcmSvcMonServiceMgmtOperation,
        xcmSvcMonServiceMgmtStatus
    }
    STATUS      current
    DESCRIPTION
        "This trap is sent whenever an 'XcmSvcMonServiceMgmtOperation'
        completes, ie, when 'xcmSvcMonServiceMgmtStatus' becomes the
        completed operation status and 'XcmSvcMonServiceMgmtInProgress'
        goes from 'true' to 'false'.

        Note:   The variable-bindings of this trap have been chosen to
        specify a complete management operation result while keeping
        trap messages reasonably concise (generally a few hundred octets
        at most).

        This notification has the following special semantics:

            o   The service's 'xcmSvcMonServiceIndex' field
                value SHALL be appended to this trap object ID,
                as a BER binary OID suffix.

        This trap OID qualifier allows service management/monitoring
        applications to limit the alerts they receive to ones generated 
        by requests they have submitted."
    ::= { xcmSvcMonServiceMgmtV2EventPrefix 1 }

--  Note that the SNMPv2 to SNMPv1 translation rules dictate that the
--  preceding structure will result in SNMPv1 traps of the following
--  form:
--
--  xcmSvcMonServiceMgmtV1Event TRAP-TYPE
--      ENTERPRISE  xcmSvcMonServiceMgmtV1EventOID


--      VARIABLES   {
--          xcmSvcMonServiceIndex,
--          xcmSvcMonServiceMgmtOperation,
--          xcmSvcMonServiceMgmtStatus
--      }
--      DESCRIPTION
--          "This trap is sent when an 'XcmSvcMonServiceMgmtOperation'
--          completes.
--          See SNMPv2 trap definition 'xcmSvcMonServiceMgmtV2Event'
--          above for 'special semantics'."
--      ::= 1

--
--          The Service Monitoring MIB Conformance Info
--
--          With Mandatory and Optional Conformance Groups

xcmSvcMonMIBConformance
    OBJECT IDENTIFIER ::= { xcmSvcMonMIB 2 }
xcmSvcMonMIBGroups
    OBJECT IDENTIFIER ::= { xcmSvcMonMIBConformance 2 }

--
--          Compliance Statements
--

xcmSvcMonMIBCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The compliance statements for SNMP management agents that
        implement the Service Monitoring MIB."
    MODULE -- this module
    MANDATORY-GROUPS {
        xcmSvcMonGeneralGroup
    }

    GROUP       xcmSvcMonQueueGroup
    DESCRIPTION
        "Implementation of this group is conditionally mandatory, ie,
        mandatory for systems which support external (network) job
        queues (print/fax/etc), on external print/file servers
        (remotely) and/or on the managed system itself (locally),
        and optional for all other systems.

        Note:   'read-only' implementation of this group is allowed,
        but it prevents the use of this group as a 'shared' resource
        between cooperating (remote) management stations and (local)
        management agents."

    GROUP       xcmSvcMonQueueExtGroup
    DESCRIPTION
        "Implementation of this group is conditionally mandatory, ie,
        mandatory for systems with routing (forwarding), state,
        conditions, or fault info for external (network) job


        queues (print/fax/etc), on external print/file servers
        (remotely) and/or on the managed system itself (locally),
        and optional for all other systems.

        Note:   'read-only' implementation of this group is allowed,
        but it prevents the use of this group as a 'shared' resource
        between cooperating (remote) management stations and (local)
        management agents."

    GROUP       xcmSvcMonServiceGroup
    DESCRIPTION
        "Implementation of this group is conditionally mandatory, ie,
        mandatory for systems which support service monitoring
        and optional for all other systems."

    GROUP       xcmSvcMonServiceDetailGroup
    DESCRIPTION
        "Implementation of this group is conditionally mandatory, ie,
        mandatory for systems which support service details
        and optional for all other systems.

        Note:   Systems implementing 'xcmSvcMonServiceDetailGroup'
                SHALL implement the 'xcmSvcMonServiceGroup'."

    GROUP       xcmSvcMonServiceMgmtGroup
    DESCRIPTION
        "Implementation of this group is conditionally mandatory, ie,
        mandatory for systems which support service management
        and optional for all other systems."

    OBJECT      xcmSvcMonQueueRowStatus
    SYNTAX      INTEGER { active(1) }   -- subset of RowStatus
    MIN-ACCESS  read-only
    DESCRIPTION
        "It is conformant to implement this object as read-only, and
        only one of the enumerated values for the 'RowStatus' textual
        convention need be supported, specifically:  active(1)."

    OBJECT      xcmSvcMonQueueDomain
    MIN-ACCESS  read-only
    DESCRIPTION
        "It is conformant to implement this object as read-only."

    OBJECT      xcmSvcMonQueuePath
    SYNTAX      XcmFixedLocaleDisplayString (SIZE (0..32))
    MIN-ACCESS  read-only
    DESCRIPTION
        "It is conformant to implement this object as read-only, and
        only 32 octets maximum string length need be supported."

    OBJECT      xcmSvcMonQueueName
    SYNTAX      XcmFixedLocaleDisplayString (SIZE (0..32))
    MIN-ACCESS  read-only
    DESCRIPTION


        "It is conformant to implement this object as read-only, and
        only 32 octets maximum string length need be supported."

    OBJECT      xcmSvcMonQueueOnSystem
    MIN-ACCESS  read-only
    DESCRIPTION
        "It is conformant to implement this object as read-only."

    OBJECT      xcmSvcMonQueueRoutingIndex
    MIN-ACCESS  read-only
    DESCRIPTION
        "It is conformant to implement this object as read-only."

    OBJECT      xcmSvcMonQueueFaultString
    SYNTAX      XcmFixedLocaleDisplayString (SIZE (0..1))
    DESCRIPTION
        "It is conformant to implement this object as read-only, and
        only 1 octet maximum string length need be supported."

    OBJECT      xcmSvcMonServiceRowStatus
    SYNTAX      INTEGER { active(1) }   -- subset of RowStatus
    MIN-ACCESS  read-only
    DESCRIPTION
        "It is conformant to implement this object as read-only, and
        only one of the enumerated values for the 'RowStatus' textual
        convention need be supported, specifically:  active(1)."

    OBJECT      xcmSvcMonServiceName
    SYNTAX      XcmFixedLocaleDisplayString (SIZE (0..32))
    MIN-ACCESS  read-only
    DESCRIPTION
        "It is conformant to implement this object as read-only, and
        only 32 octets maximum string length need be supported."

    OBJECT      xcmSvcMonServicePhysicalDevice
    MIN-ACCESS  read-only
    DESCRIPTION
        "It is conformant to implement this object as read-only."

    OBJECT      xcmSvcMonServiceLogicalDevice
    MIN-ACCESS  read-only
    DESCRIPTION
        "It is conformant to implement this object as read-only."

    OBJECT      xcmSvcMonServiceExternalDevice
    MIN-ACCESS  read-only
    DESCRIPTION
        "It is conformant to implement this object as read-only."

    OBJECT      xcmSvcMonServiceSWRun
    MIN-ACCESS  read-only
    DESCRIPTION
        "It is conformant to implement this object as read-only."


    OBJECT      xcmSvcMonServiceSWInstalled
    MIN-ACCESS  read-only
    DESCRIPTION
        "It is conformant to implement this object as read-only."

    OBJECT      xcmSvcMonServiceStorage
    MIN-ACCESS  read-only
    DESCRIPTION
        "It is conformant to implement this object as read-only."

    OBJECT      xcmSvcMonServiceDetailRowStatus
    SYNTAX      INTEGER { active(1) }   -- subset of RowStatus
    MIN-ACCESS  read-only
    DESCRIPTION
        "It is conformant to implement this object as read-only, and
        only one of the enumerated values for the 'RowStatus' textual
        convention need be supported, specifically:  active(1)."

    OBJECT      xcmSvcMonServiceDetailUnitClass
    MIN-ACCESS  read-only
    DESCRIPTION
        "It is conformant to implement this object as read-only."

    OBJECT      xcmSvcMonServiceDetailUnit
    MIN-ACCESS  read-only
    DESCRIPTION
        "It is conformant to implement this object as read-only."

    OBJECT      xcmSvcMonServiceDetailInteger
    MIN-ACCESS  read-only
    DESCRIPTION
        "It is conformant to implement this object as read-only."

    OBJECT      xcmSvcMonServiceDetailOID
    MIN-ACCESS  read-only
    DESCRIPTION
        "It is conformant to implement this object as read-only."

    OBJECT      xcmSvcMonServiceDetailString
    SYNTAX      OCTET STRING (SIZE (0..1))
    MIN-ACCESS  read-only
    DESCRIPTION
        "It is conformant to implement this object as read-only, and
        only 1 octet maximum string length need be supported.

        Usage:  Conformant implementations MUST encrypt passwords, keys,
        and other security information stored in this string object."

    OBJECT      xcmSvcMonServiceMgmtOperation
    SYNTAX      INTEGER {
        none(0),                        -- No operation
        other(1),                       -- Other operation
        unknown(2),                     -- Unknown operation


        --  POSIX - Service level operations (on host system)
    --  serviceCreate(1201),            -  'pdcreate' (create service)
    --  serviceDelete(1202),            -  'pddelete' (delete service)
    --  serviceList(1203),              -  'pdls' (list svc attributes)
    --  serviceSet(1204),               -  'pdset' (set svc attributes)
    --  serviceClean(1205),             -  'pdclean' (remove all jobs)
        serviceDisable(1206),           -- 'pddisable' (stop new jobs)
        serviceEnable(1207),            -- 'pdenable' (allow new jobs)
        servicePause(1208),             -- 'pdpause' (pause service)
        serviceResume(1209)             -- 'pdresume' (resume service)
    --  serviceShutdown(1210),          -  'pdshutdown' (end service)
        --  XCMI - Service level extensions (on host system)
    --  serviceManage(2201),            -  manage service object(s)
    --  serviceRestart(2202),           -  restart service
    --  serviceInstall(2221),           -  install service object(s)
    --  serviceUpgrade(2222),           -  upgrade service object(s)
    --  serviceBackup(2223),            -  backup service object(s)
    --  serviceRestore(2224),           -  restore service object(s)
    --  serviceConfigure(2225),         -  configure service object(s)
    --  serviceDiagnose(2226),          -  diagnose service object(s)
    --  serviceResetCounters(2231),     -  reset service counters
    --  serviceResetWarm(2232),         -  warm reset (no power cycle)
    --  serviceResetCold(2233),         -  cold reset (w/ power cycle)
    --  serviceResetFactory(2234),      -  factory defaults reset
    --  serviceLogin(2241),             -  login w/ authentication
    --  serviceLogout(2242)             -  logout w/ authentication
    }
    DESCRIPTION
        "It is conformant to implement this object as follows:
        only the above subset of operations need be supported."

    OBJECT      xcmSvcMonServiceMgmtData
    SYNTAX      XcmSvcMonServiceMgmtData (SIZE (0..1))
    DESCRIPTION
        "It is conformant to implement this object as follows:
        only 1 octet maximum string length need be supported.

        Usage:  Conformant implementations MUST encrypt passwords, keys,
        and other security information stored in this string object."

    ::= { xcmSvcMonMIBConformance 3 }

--
--          Conformance Groups
--
--          With Required Objects for all Implementations

xcmSvcMonGeneralGroup OBJECT-GROUP
    OBJECTS {
        --  General Info
        xcmSvcMonGeneralRowStatus,
        xcmSvcMonGeneralVersionID,
        xcmSvcMonGeneralVersionDate,
        xcmSvcMonGeneralGroupSupport,


        xcmSvcMonGeneralCreateSupport,
        xcmSvcMonGeneralUpdateSupport
    }
    STATUS      current
    DESCRIPTION
        "The Service Monitoring General Group."
    ::= { xcmSvcMonMIBGroups 1 }

xcmSvcMonQueueGroup OBJECT-GROUP
    OBJECTS {
        --  Associated Queue Info
        xcmSvcMonQueueIndex,
        xcmSvcMonQueueRowStatus,
        xcmSvcMonQueueDomain,
        xcmSvcMonQueuePath,
        xcmSvcMonQueueName,
        xcmSvcMonQueueOnSystem
    }
    STATUS      current
    DESCRIPTION
        "The Service Monitoring Associated Queue Group."
    ::= { xcmSvcMonMIBGroups 3 }

xcmSvcMonQueueExtGroup OBJECT-GROUP
    OBJECTS {
        --  Associated Queue Ext Info
        xcmSvcMonQueueRoutingIndex,
        xcmSvcMonQueueState,
        xcmSvcMonQueueConditions,
        xcmSvcMonQueueFaultCount,
        xcmSvcMonQueueFaultCode,
        xcmSvcMonQueueFaultString,
        xcmSvcMonQueueRowCreateDate,
        xcmSvcMonQueueRowTotalJobs,
        xcmSvcMonQueueLastConnectDate,
        xcmSvcMonQueueLastConnectJobs
    }
    STATUS      current
    DESCRIPTION
        "The Service Monitoring Associated Queue Ext Group."
    ::= { xcmSvcMonMIBGroups 4 }

xcmSvcMonServiceGroup OBJECT-GROUP
    OBJECTS {
        --  Service Info
        xcmSvcMonServiceIndex,
        xcmSvcMonServiceRowStatus,
        xcmSvcMonServiceName,
        xcmSvcMonServiceCurrentState,
        xcmSvcMonServicePreviousState,
        xcmSvcMonServiceConditions,
        xcmSvcMonServiceAvailability,
        --  Service Host Resources MIB Info
        xcmSvcMonServicePhysicalDevice,


        xcmSvcMonServiceLogicalDevice,
        xcmSvcMonServiceExternalDevice,
        xcmSvcMonServiceSWRun,
        xcmSvcMonServiceSWInstalled,
        xcmSvcMonServiceStorage,
        --  Service Info Extended
        xcmSvcMonServicePriority,
        xcmSvcMonServiceType,
        xcmSvcMonServiceStateDetail    
    }
    STATUS      current
    DESCRIPTION
        "The Service Monitoring Service Group."
    ::= { xcmSvcMonMIBGroups 5 }

xcmSvcMonServiceDetailGroup OBJECT-GROUP
    OBJECTS {
        --  Service Detail Info
        xcmSvcMonServiceDetailRowStatus,
        xcmSvcMonServiceDetailUnitClass,
        xcmSvcMonServiceDetailUnit,
        xcmSvcMonServiceDetailInteger,
        xcmSvcMonServiceDetailOID,
        xcmSvcMonServiceDetailString
    }
    STATUS      current
    DESCRIPTION
        "The Service Monitoring Service Detail Group."
    ::= { xcmSvcMonMIBGroups 6 }

xcmSvcMonServiceMgmtGroup OBJECT-GROUP
    OBJECTS {
        --  Service Mgmt Info
        xcmSvcMonServiceMgmtOperation,
        xcmSvcMonServiceMgmtData,
        xcmSvcMonServiceMgmtStatus,
        xcmSvcMonServiceMgmtInProgress
    }
    STATUS      current
    DESCRIPTION
        "The Service Monitoring Service Mgmt Group."
    ::= { xcmSvcMonMIBGroups 7 }

END
