COVALENT-LOGGING-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
    Counter32, Unsigned32, enterprises
        FROM SNMPv2-SMI
    DateAndTime, TimeInterval
        FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
        FROM SNMPv2-CONF
    SnmpAdminString
        FROM SNMP-FRAMEWORK-MIB
    applIndex
        FROM NETWORK-SERVICES-MIB;

covalentLoggingMIB MODULE-IDENTITY
    LAST-UPDATED "200204020000Z"
    ORGANIZATION 
        "Copyright (C) Covalent Technologies (2000-2002).  All Rights Reserved."
    CONTACT-INFO 
        "SNMP Engineering
         Covalent Technologies
         postal: 303 Second Street
                 Suite 375 South
                 San Francisco, CA 94107
         tel:    +1-800-444-1935
         email: support@covalent.net"
    DESCRIPTION 
        "This MIB module defines managed objects useful for the
         management and monitoring of the Covalent Logging
         Infrastructure.

         $Id:"
    ::= { enterprises covalent(6100) 14 }

ctLoggingMIBObjects OBJECT IDENTIFIER
    ::= { covalentLoggingMIB 1 }

-- The MIB objects for logging agent administration.
ctLoggingAgent OBJECT IDENTIFIER
    ::= { ctLoggingMIBObjects 1 }

ctLoggingAgentTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CtLoggingAgentEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table which provides the network management information
         of the Covalent Logging Agent.

         The Covalent Logging Agent is an application that consists of
         agent which can initiate or recieve Logging Messages."
    ::= { ctLoggingAgent 1 }

ctLoggingAgentEntry OBJECT-TYPE
    SYNTAX      CtLoggingAgentEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry used to maintain and configure
         the Covalent Logging entity."
    INDEX       { applIndex }
    ::= { ctLoggingAgentTable 1 }

CtLoggingAgentEntry ::= SEQUENCE {
    ctLoggingAgentIndex               Unsigned32,
    ctLoggingAgentType                INTEGER,
    ctLoggingAgentContact             SnmpAdminString,
    ctLoggingAgentStartTime           DateAndTime,
    ctLoggingAgentID                  SnmpAdminString,
    ctLoggingAgentNotifications       INTEGER
}

ctLoggingAgentIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The index that uniquely identifies the Covalent
         Logging Agent.
         The value for the index maybe the PID/applIndex
         and so allow for association with other application
         MIB modules. However, an association table is required
         in that case."
    ::= { ctLoggingAgentEntry 1 }

ctLoggingAgentType OBJECT-TYPE
    SYNTAX      INTEGER { other(1),
                          initiator(2),
                          recipient(3),
                          proxy(4)
                        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The type of a Covalent Logging Agent.
         other(1)    : means no type for the agent is known.
         initiator(2): means the agent transmits only
                       logstreams.
         recipient(3): means the agent is receiving only
                       logstreams.
         proxy(4)    : means the agent is receiving and
                       transmitting logstreams."
    ::= { ctLoggingAgentEntry 2 }

ctLoggingAgentContact OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The textual identification of the contact person for the
         authorization Agent and how to contact this person.
         For instance, this might be a string containing an
         email address, e.g. '<webmaster@domain.name>'."
    ::= { ctLoggingAgentEntry 3 }

ctLoggingAgentStartTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The date and time the Logging Agent started."
    ::= { ctLoggingAgentEntry 4 }

ctLoggingAgentID OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The Identification by which the Agent is uniquely identified
         within the Covalent Logging Network."
    ::= { ctLoggingAgentEntry 5 }

ctLoggingAgentNotifications OBJECT-TYPE
    SYNTAX      INTEGER { enable(1), disable(2) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Indicates whether the SNMP entity is permitted to generate
         the logging notifications. These notifications are:
             ctLoggingAgentColdStart,
             ctLoggingAgentWarmStart,
             ctLoggingAgentShutdown
             ctLoggingStreamReconfig,
             ctLoggingStreamFailure
 
         Note that it is strongly recommended that this object be
         stored in non-volatile memory so that it remains constant
         across re-initializations of the network management
         system and of the Logging agent."
    DEFVAL { disable }
    ::= { ctLoggingAgentEntry 6 }

ctLoggingConfigurationTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CtLoggingConfigurationEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table which provides network management information
         for the configuration manager that has configured the
         associated logging agent."
    ::= { ctLoggingAgent 2 }

ctLoggingConfigurationEntry OBJECT-TYPE
    SYNTAX      CtLoggingConfigurationEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry used to maintain the information of the
         a configuration manager."
    INDEX       { ctLoggingAgentIndex, ctLoggingConfigurationIndex }
    ::= { ctLoggingConfigurationTable 1 }

CtLoggingConfigurationEntry ::= SEQUENCE {
    ctLoggingConfigurationIndex           Unsigned32,
    ctLoggingConfigurationURL             SnmpAdminString
}

ctLoggingConfigurationIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An index to uniquely identify a Configuration Manager
         for the assoicated Covalent Logging Agent."
    ::= { ctLoggingConfigurationEntry 1 }

ctLoggingConfigurationURL OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The FQDN of the Configuration Manager."
    ::= { ctLoggingConfigurationEntry 2 }

ctLoggingStream OBJECT IDENTIFIER
    ::= { ctLoggingMIBObjects 2 }

ctLoggingStreamTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CtLoggingStreamEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table which provides network management information
         for the log message receptors that has configured the
         associated logging agent."
    ::= { ctLoggingStream 1 }

ctLoggingStreamEntry OBJECT-TYPE
    SYNTAX      CtLoggingStreamEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry used to maintain the information of the
         Covalent Logging Stream."
    INDEX       { ctLoggingAgentIndex, ctLoggingStreamIndex }
    ::= { ctLoggingStreamTable 1 }

CtLoggingStreamEntry ::= SEQUENCE {
    ctLoggingStreamIndex           Unsigned32,
    ctLoggingStreamURL             SnmpAdminString,
    ctLoggingStreamConfigID        OCTET STRING,
    ctLoggingStreamInterval        TimeInterval
}

ctLoggingStreamIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An index to uniquely identify a logging receptor
         for the assoicated Covalent Logging Agent."
    ::= { ctLoggingStreamEntry 1 }

ctLoggingStreamURL OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The URL to which the Logging stream has to deliver
         its information.
 
         The protocol usd is HTTP nad the request type is 'POST'."
    ::= { ctLoggingStreamEntry 2 }

ctLoggingStreamConfigID OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The configuration id used for this receptor."
    ::= { ctLoggingStreamEntry 3 }

ctLoggingStreamInterval OBJECT-TYPE
    SYNTAX      TimeInterval
    MAX-ACCESS  read-only -- would be nice when read-write
                          -- but the it should be the complete configuration.
    STATUS      current
    DESCRIPTION
        "The time interval for the transmissions of batches."
    ::= { ctLoggingStreamEntry 4 }
    
ctLoggingStreamFlowTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CtLoggingStreamFlowEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table which provides usage statistics for the
         Agent Logging Network on a per Agent/Receptor basis."
    ::= { ctLoggingStream 2 }

ctLoggingStreamFlowEntry OBJECT-TYPE
    SYNTAX      CtLoggingStreamFlowEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry which maintains the statistics."
    INDEX       { ctLoggingAgentIndex, ctLoggingStreamIndex }
    ::= { ctLoggingStreamFlowTable 1 }

CtLoggingStreamFlowEntry ::= SEQUENCE {
    ctLoggingStreamFlowBatches             Counter32,
    ctLoggingStreamFlowBytes               Counter32,
    ctLoggingStreamFlowLastTime            DateAndTime,
    ctLoggingStreamFlowFailures            Counter32,
    ctLoggingStreamFlowLastFailure         DateAndTime,
    ctLoggingStreamFlowLastReason          SnmpAdminString
}

ctLoggingStreamFlowBatches OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The amount of batches transmitted."
    ::= { ctLoggingStreamFlowEntry 1 }

ctLoggingStreamFlowBytes OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The amount of bytes transmitted."
    ::= { ctLoggingStreamFlowEntry 2 }

ctLoggingStreamFlowLastTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The date and time the last batches was successfully transmitted."
    ::= { ctLoggingStreamFlowEntry 3 }

ctLoggingStreamFlowFailures OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of batches that could not be transmitted at the
         scheduled time regardless the problem."
    ::= { ctLoggingStreamFlowEntry 4 }

ctLoggingStreamFlowLastFailure OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The date and time the last batch had failed during transmission."
    ::= { ctLoggingStreamFlowEntry 5 }

ctLoggingStreamFlowLastReason OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The determinate reason of the last failure during transmission
         of the logging stream."
    ::= { ctLoggingStreamFlowEntry 6 }

ctLoggingNotifications OBJECT IDENTIFIER 
    ::= { covalentLoggingMIB 2 }

ctLoggingAgentColdStart NOTIFICATION-TYPE
    OBJECTS     { ctLoggingAgentType,
                  ctLoggingAgentContact,
                  ctLoggingAgentStartTime,
                  ctLoggingAgentID }
    STATUS      current
    DESCRIPTION 
        "The notification sent when a logging agent boots (starts)."
    ::= { ctLoggingNotifications 1 }

ctLoggingAgentWarmStart NOTIFICATION-TYPE
    OBJECTS     { ctLoggingAgentType,
                  ctLoggingAgentContact,
                  ctLoggingAgentStartTime,
                  ctLoggingAgentID }
    STATUS      current
    DESCRIPTION
        "The notification sent when a logging agent reboots (restarts)."
    ::= { ctLoggingNotifications 2 }

ctLoggingAgentShutdown NOTIFICATION-TYPE
    OBJECTS     { ctLoggingAgentType,
                  ctLoggingAgentContact,
                  ctLoggingAgentStartTime,
                  ctLoggingAgentID }
    STATUS      current
    DESCRIPTION
        "The notification sent when a logging agent terminates (stops)."
    ::= { ctLoggingNotifications 3 }

ctLoggingStreamReconfig NOTIFICATION-TYPE
    OBJECTS     { ctLoggingStreamURL,
                  ctLoggingStreamConfigID,
                  ctLoggingStreamInterval }
    STATUS      current
    DESCRIPTION
        "The notification sent when a logging agent 
         downloads a new configuration for a logging stream."
    ::= { ctLoggingNotifications 4 }

ctLoggingStreamFailure NOTIFICATION-TYPE
    OBJECTS     { ctLoggingStreamConfigID,
                  ctLoggingStreamFlowLastTime,
                  ctLoggingStreamFlowLastReason }
    STATUS      current
    DESCRIPTION
        "The notification for when a transmission of the
         logging stream failed."
    ::= { ctLoggingNotifications 5 }


ctLoggingConformance OBJECT IDENTIFIER
    ::= { covalentLoggingMIB 3 }
ctLoggingMIBCompliances OBJECT IDENTIFIER
    ::= { ctLoggingConformance 1 }
ctLoggingMIBGroups OBJECT IDENTIFIER
    ::= { ctLoggingConformance 2 }

ctLoggingAgentGroup OBJECT-GROUP
    OBJECTS {
        ctLoggingAgentType,
        ctLoggingAgentContact,
        ctLoggingAgentStartTime,
        ctLoggingAgentID,
        ctLoggingAgentNotifications,
        ctLoggingStreamURL,
        ctLoggingStreamConfigID,
        ctLoggingStreamInterval
    }
    STATUS      current
    DESCRIPTION
        "A collection of objects providing information about
         the authorization service known by the SNMP agent."
    ::= { ctLoggingMIBGroups 1 }

ctLoggingConfigurationGroup OBJECT-GROUP
    OBJECTS { ctLoggingConfigurationURL }
    STATUS       current
    DESCRIPTION
        "The objects needed for network management of the
         configuration manager."
    ::= { ctLoggingMIBGroups 2 }

ctLoggingStreamGroup OBJECT-GROUP
    OBJECTS {
        ctLoggingStreamURL,
        ctLoggingStreamConfigID,
        ctLoggingStreamInterval
    }
    STATUS       current
    DESCRIPTION
        "The objects for the stream configuration of the
         logging agent."
    ::= { ctLoggingMIBGroups 3 }

ctLoggingStreamFlowGroup OBJECT-GROUP
    OBJECTS {
        ctLoggingStreamFlowBatches,
        ctLoggingStreamFlowBytes,
        ctLoggingStreamFlowLastTime,
        ctLoggingStreamFlowFailures,
        ctLoggingStreamFlowLastFailure,
        ctLoggingStreamFlowLastReason
    }
    STATUS      current
    DESCRIPTION
        "A collection of objects providing information about
         the acitivty of the logging agents known by the SNMP agent."
    ::= { ctLoggingMIBGroups 4 }

ctLoggingAgentNotificationGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
        ctLoggingAgentColdStart,
        ctLoggingAgentWarmStart,
        ctLoggingAgentShutdown
    }
    STATUS      current
    DESCRIPTION 
        "The notifications for the Logging agent."
    ::= { ctLoggingMIBGroups 5 }

ctLoggingStreamNotificationGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
        ctLoggingStreamReconfig,
        ctLoggingStreamFailure
    }
    STATUS       current
    DESCRIPTION
        "The notifications for the logging streams."
    ::= { ctLoggingMIBGroups 6 }

ctLoggingFullCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The full compliance statement for the COVALENT-LOGGING-MIB."
    MODULE      -- this module
        MANDATORY-GROUPS        {
                ctLoggingAgentGroup,
                ctLoggingConfigurationGroup,
                ctLoggingStreamGroup,
                ctLoggingStreamFlowGroup,
                ctLoggingAgentNotificationGroup,
                ctLoggingStreamNotificationGroup }
    ::= { ctLoggingMIBCompliances 1 }

ctLoggingBasicCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION 
        "The basic compliance statement for the COVALENT-LOGGING-MIB."
    MODULE      -- this module
        MANDATORY-GROUPS        {
                ctLoggingAgentGroup,
                ctLoggingStreamGroup,
                ctLoggingStreamFlowGroup }
    ::= { ctLoggingMIBCompliances 2 }

ctLoggingReadOnlyCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The read-only compliance statement for the COVALENT-LOGGING-MIB."
    MODULE      -- this module
        MANDATORY-GROUPS        {
                ctLoggingAgentGroup,
                ctLoggingConfigurationGroup,
                ctLoggingStreamGroup,
                ctLoggingStreamFlowGroup }
    OBJECT      ctLoggingAgentContact
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not needed"
    OBJECT      ctLoggingConfigurationURL
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not needed"
    OBJECT      ctLoggingAgentID
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not needed"
    OBJECT      ctLoggingAgentNotifications
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not needed"
    OBJECT      ctLoggingStreamURL
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not needed"
    OBJECT      ctLoggingStreamConfigID
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not needed"
    OBJECT      ctLoggingStreamInterval
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not needed"
    ::= { ctLoggingMIBCompliances 3 }

ctLoggingBasicReadOnlyCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The read-only compliance statement for the COVALENT-LOGGING-MIB.
         No network management information for a configuration manager
         is maintained."
    MODULE      -- this module
        MANDATORY-GROUPS        {
                ctLoggingAgentGroup,
                ctLoggingStreamGroup,
                ctLoggingStreamFlowGroup
        }
        OBJECT      ctLoggingAgentContact
        MIN-ACCESS  read-only
        DESCRIPTION
            "Write access is not needed"
        OBJECT      ctLoggingAgentID
        MIN-ACCESS  read-only
        DESCRIPTION
            "Write access is not needed"
        OBJECT      ctLoggingStreamURL
        MIN-ACCESS  read-only
        DESCRIPTION
            "Write access is not needed"
        OBJECT      ctLoggingStreamConfigID
        MIN-ACCESS  read-only
        DESCRIPTION
            "Write access is not needed"
        OBJECT      ctLoggingStreamInterval
        MIN-ACCESS  read-only
        DESCRIPTION
            "Write access is not needed"
    ::= { ctLoggingMIBCompliances 4 }

END
