/*							-- DO NOT EDIT --
 * Generated by smidump version 0.4.8:
 *   smidump -f corba SNMPv2-MIB
 *
 * Derived from SNMPv2-MIB:
 *   The MIB module for SNMP entities.
 *   
 *   Copyright (C) The Internet Society (2002). This
 *   version of this MIB module is part of RFC 3418;
 *   see the RFC itself for full legal notices.
 *
 * Revision 2002-10-16 00:00:
 *   This revision of this MIB module was published as
 *   RFC 3418.
 *
 * Revision 1995-11-09 00:00:
 *   This revision of this MIB module was published as
 *   RFC 1907.
 *
 * Revision 1993-04-01 00:00:
 *   The initial revision of this MIB module was published
 *   as RFC 1450.
 *
 * $Id: SNMPv2_MIB.idl 8090 2008-04-18 12:56:29Z strauss $
 */

#ifndef _SNMPv2_MIB_IDL_
#define _SNMPv2_MIB_IDL_

#include <ASN1Types.idl>
#include <SNMPMgmt.idl>
#include <SNMPv2_SMI.idl>
#include <SNMPv2_TC.idl>

module SNMPv2_MIB {

    typedef SNMPv2_SMI::Counter32Type Counter32Type;
    typedef SNMPv2_SMI::Integer32Type Integer32Type;
    typedef SNMPv2_SMI::TimeTicksType TimeTicksType;
    typedef SNMPv2_TC::DisplayStringType DisplayStringType;
    typedef SNMPv2_TC::TestAndIncrType TestAndIncrType;
    typedef SNMPv2_TC::TimeStampType TimeStampType;

    const string moduleIdentity = "snmpMIB";
    const ASN1_ObjectIdentifier snmpMIB = "::SNMPv2_MIB::snmpMIB";

    /*
             The MIB module for SNMP entities.
             
             Copyright (C) The Internet Society (2002). This
             version of this MIB module is part of RFC 3418;
             see the RFC itself for full legal notices.

    LAST-UPDATED:   200210160000Z

    ORGANIZATION:
            "IETF SNMPv3 Working Group"

    CONTACT-INFO:
            "WG-EMail:   snmpv3@lists.tislabs.com
             Subscribe:  snmpv3-request@lists.tislabs.com
             
             Co-Chair:   Russ Mundy
                         Network Associates Laboratories
             postal:     15204 Omega Drive, Suite 300
                         Rockville, MD 20850-4601
                         USA
             EMail:      mundy@tislabs.com
             phone:      +1 301 947-7107
             
             Co-Chair:   David Harrington
                         Enterasys Networks
             postal:     35 Industrial Way
                         P. O. Box 5005
                         Rochester, NH 03866-5005
                         USA
             EMail:      dbh@enterasys.com
             phone:      +1 603 337-2614
             
             Editor:     Randy Presuhn
                         BMC Software, Inc.
             postal:     2141 North First Street
                         San Jose, CA 95131
                         USA
             EMail:      randy_presuhn@bmc.com
             phone:      +1 408 546-1006"

    REVISION:       "200210160000Z"
    REVISION-DESCRIPTION:
            "This revision of this MIB module was published as
             RFC 3418."

    REVISION:       "199511090000Z"
    REVISION-DESCRIPTION:
            "This revision of this MIB module was published as
             RFC 1907."

    REVISION:       "199304010000Z"
    REVISION-DESCRIPTION:
            "The initial revision of this MIB module was published
             as RFC 1450."

    */

    typedef ASN1_OctetString SysDescrType; 

    typedef ASN1_OctetString SysContactType; 

    typedef ASN1_OctetString SysNameType; 

    typedef ASN1_OctetString SysLocationType; 

    typedef ASN1_Integer SysServicesType; 

    typedef ASN1_Integer SysORIndexType; 

    typedef ASN1_Integer SnmpEnableAuthenTrapsType; 
    const SnmpEnableAuthenTrapsType SnmpEnableAuthenTrapsType_enabled = 1;
    const SnmpEnableAuthenTrapsType SnmpEnableAuthenTrapsType_disabled = 2;
    const string SnmpEnableAuthenTrapsType_NameNumberList = "enabled (1) , disabled (2)";

    interface system : SNMPMgmt::SmiEntry {

        /*
             A textual description of the entity.  This value should
             include the full name and version identification of
             the system's hardware type, software operating-system,
             and networking software.
        */
        readonly attribute SysDescrType sysDescr;

        /*
             The vendor's authoritative identification of the
             network management subsystem contained in the entity.
             This value is allocated within the SMI enterprises
             subtree (1.3.6.1.4.1) and provides an easy and
             unambiguous means for determining `what kind of box' is
             being managed.  For example, if vendor `Flintstones,
             Inc.' was assigned the subtree 1.3.6.1.4.1.424242,
             it could assign the identifier 1.3.6.1.4.1.424242.1.1
             to its `Fred Router'.
        */
        readonly attribute ASN1_ObjectIdentifier sysObjectID;

        /*
             The time (in hundredths of a second) since the
             network management portion of the system was last
             re-initialized.
        */
        readonly attribute TimeTicksType sysUpTime;

        /*
             The textual identification of the contact person for
             this managed node, together with information on how
             to contact this person.  If no contact information is
             known, the value is the zero-length string.
        */
        attribute SysContactType sysContact;

        /*
             An administratively-assigned name for this managed
             node.  By convention, this is the node's fully-qualified
             domain name.  If the name is unknown, the value is
             the zero-length string.
        */
        attribute SysNameType sysName;

        /*
             The physical location of this node (e.g., 'telephone
             closet, 3rd floor').  If the location is unknown, the
             value is the zero-length string.
        */
        attribute SysLocationType sysLocation;

        /*
             A value which indicates the set of services that this
             entity may potentially offer.  The value is a sum.
             
             
             
             This sum initially takes the value zero. Then, for
             each layer, L, in the range 1 through 7, that this node
             performs transactions for, 2 raised to (L - 1) is added
             to the sum.  For example, a node which performs only
             routing functions would have a value of 4 (2^(3-1)).
             In contrast, a node which is a host offering application
             services would have a value of 72 (2^(4-1) + 2^(7-1)).
             Note that in the context of the Internet suite of
             protocols, values should be calculated accordingly:
             
                  layer      functionality
                    1        physical (e.g., repeaters)
                    2        datalink/subnetwork (e.g., bridges)
                    3        internet (e.g., supports the IP)
                    4        end-to-end  (e.g., supports the TCP)
                    7        applications (e.g., supports the SMTP)
             
             For systems including OSI protocols, layers 5 and 6
             may also be counted.
        */
        readonly attribute SysServicesType sysServices;

        /*
             The value of sysUpTime at the time of the most recent
             change in state or value of any instance of sysORID.
        */
        readonly attribute TimeStampType sysORLastChange;

        /*
             The (conceptual) table listing the capabilities of
             the local SNMP application acting as a command
             responder with respect to various MIB modules.
             SNMP entities having dynamically-configurable support
             of MIB modules will have a dynamically-varying number
             of conceptual rows.
        */
        SNMPMgmt::SmiTableIterator get_sysORTable();
    };


    /*
             An entry (conceptual row) in the sysORTable.
    */
    interface sysOREntry : SNMPMgmt::SmiEntry {

        const string IndexVarList = "sysORIndex";

        /*
             An authoritative identification of a capabilities
             statement with respect to various MIB modules supported
             by the local SNMP application acting as a command
             responder.
        */
        readonly attribute ASN1_ObjectIdentifier sysORID;

        /*
             A textual description of the capabilities identified
             by the corresponding instance of sysORID.
        */
        readonly attribute DisplayStringType sysORDescr;

        /*
             The value of sysUpTime at the time this conceptual
             row was last instantiated.
        */
        readonly attribute TimeStampType sysORUpTime;
    };

    interface snmp : SNMPMgmt::SmiEntry {

        /*
             The total number of messages delivered to the SNMP
             entity from the transport service.
        */
        readonly attribute Counter32Type snmpInPkts;

        /*
             The total number of SNMP messages which were delivered
             to the SNMP entity and were for an unsupported SNMP
             version.
        */
        readonly attribute Counter32Type snmpInBadVersions;

        /*
             The total number of community-based SNMP messages (for
             example,  SNMPv1) delivered to the SNMP entity which
             used an SNMP community name not known to said entity.
             Also, implementations which authenticate community-based
             SNMP messages using check(s) in addition to matching
             the community name (for example, by also checking
             whether the message originated from a transport address
             allowed to use a specified community name) MAY include
             in this value the number of messages which failed the
             additional check(s).  It is strongly RECOMMENDED that
             
             
             
             the documentation for any security model which is used
             to authenticate community-based SNMP messages specify
             the precise conditions that contribute to this value.
        */
        readonly attribute Counter32Type snmpInBadCommunityNames;

        /*
             The total number of community-based SNMP messages (for
             example, SNMPv1) delivered to the SNMP entity which
             represented an SNMP operation that was not allowed for
             the SNMP community named in the message.  The precise
             conditions under which this counter is incremented
             (if at all) depend on how the SNMP entity implements
             its access control mechanism and how its applications
             interact with that access control mechanism.  It is
             strongly RECOMMENDED that the documentation for any
             access control mechanism which is used to control access
             to and visibility of MIB instrumentation specify the
             precise conditions that contribute to this value.
        */
        readonly attribute Counter32Type snmpInBadCommunityUses;

        /*
             The total number of ASN.1 or BER errors encountered by
             the SNMP entity when decoding received SNMP messages.
        */
        readonly attribute Counter32Type snmpInASNParseErrs;

        /*
             Indicates whether the SNMP entity is permitted to
             generate authenticationFailure traps.  The value of this
             object overrides any configuration information; as such,
             it provides a means whereby all authenticationFailure
             traps may be disabled.
             
             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.
        */
        attribute SnmpEnableAuthenTrapsType snmpEnableAuthenTraps;

        /*
             The total number of Confirmed Class PDUs (such as
             GetRequest-PDUs, GetNextRequest-PDUs,
             GetBulkRequest-PDUs, SetRequest-PDUs, and
             InformRequest-PDUs) delivered to the SNMP entity which
             were silently dropped because the size of a reply
             containing an alternate Response Class PDU (such as a
             Response-PDU) with an empty variable-bindings field
             was greater than either a local constraint or the
             maximum message size associated with the originator of
             the request.
        */
        readonly attribute Counter32Type snmpSilentDrops;

        /*
             The total number of Confirmed Class PDUs
             (such as GetRequest-PDUs, GetNextRequest-PDUs,
             GetBulkRequest-PDUs, SetRequest-PDUs, and
             InformRequest-PDUs) delivered to the SNMP entity which
             were silently dropped because the transmission of
             the (possibly translated) message to a proxy target
             failed in a manner (other than a time-out) such that
             no Response Class PDU (such as a Response-PDU) could
             be returned.
        */
        readonly attribute Counter32Type snmpProxyDrops;
    };

    interface snmpTrap : SNMPMgmt::SmiEntry {
    };

    interface snmpSet : SNMPMgmt::SmiEntry {

        /*
             An advisory lock used to allow several cooperating
             command generator applications to coordinate their
             use of the SNMP set operation.
             
             This object is used for coarse-grain coordination.
             To achieve fine-grain coordination, one or more similar
             objects might be defined within each MIB group, as
             appropriate.
        */
        attribute TestAndIncrType snmpSetSerialNo;
    };

    /* typed push event communication */
    interface Notifications : SNMPMgmt::Notifications {

        /*
             A coldStart trap signifies that the SNMP entity,
             supporting a notification originator application, is
             reinitializing itself and that its configuration may
             have been altered.
        */
        void coldStart (
            in CosNaming::Name src_entry_name,
            in CORBA::ScopedName event_type,
            in ASN1_GeneralizedTime event_time
        );

        /*
             A warmStart trap signifies that the SNMP entity,
             supporting a notification originator application,
             is reinitializing itself such that its configuration
             is unaltered.
        */
        void warmStart (
            in CosNaming::Name src_entry_name,
            in CORBA::ScopedName event_type,
            in ASN1_GeneralizedTime event_time
        );

        /*
             An authenticationFailure trap signifies that the SNMP
             entity has received a protocol message that is not
             properly authenticated.  While all implementations
             of SNMP entities MAY be capable of generating this
             trap, the snmpEnableAuthenTraps object indicates
             whether this trap will be generated.
        */
        void authenticationFailure (
            in CosNaming::Name src_entry_name,
            in CORBA::ScopedName event_type,
            in ASN1_GeneralizedTime event_time
        );
    };

    /* typed pull event communication */
    interface PullNotifications : SNMPMgmt::PullNotifications {

        /*
             A coldStart trap signifies that the SNMP entity,
             supporting a notification originator application, is
             reinitializing itself and that its configuration may
             have been altered.
        */
        void pull_coldStart (
            out CosNaming::Name src_entry_name,
            out CORBA::ScopedName event_type,
            out ASN1_GeneralizedTime event_time
        );
        boolean try_coldStart (
            out CosNaming::Name src_entry_name,
            out CORBA::ScopedName event_type,
            out ASN1_GeneralizedTime event_time
        );

        /*
             A warmStart trap signifies that the SNMP entity,
             supporting a notification originator application,
             is reinitializing itself such that its configuration
             is unaltered.
        */
        void pull_warmStart (
            out CosNaming::Name src_entry_name,
            out CORBA::ScopedName event_type,
            out ASN1_GeneralizedTime event_time
        );
        boolean try_warmStart (
            out CosNaming::Name src_entry_name,
            out CORBA::ScopedName event_type,
            out ASN1_GeneralizedTime event_time
        );

        /*
             An authenticationFailure trap signifies that the SNMP
             entity has received a protocol message that is not
             properly authenticated.  While all implementations
             of SNMP entities MAY be capable of generating this
             trap, the snmpEnableAuthenTraps object indicates
             whether this trap will be generated.
        */
        void pull_authenticationFailure (
            out CosNaming::Name src_entry_name,
            out CORBA::ScopedName event_type,
            out ASN1_GeneralizedTime event_time
        );
        boolean try_authenticationFailure (
            out CosNaming::Name src_entry_name,
            out CORBA::ScopedName event_type,
            out ASN1_GeneralizedTime event_time
        );
    };

    interface SmiEntryFactory : SNMPMgmt::GenericFactory {

        system create_system (
            in SysContactType sysContact,
            in SysNameType sysName,
            in SysLocationType sysLocation
        ) raises (
            SNMPMgmt::AlreadyExists,
            CosLifeCycle::InvalidCriteria,
            CosLifeCycle::CannotMeetCriteria
        );

        snmp create_snmp (
            in SnmpEnableAuthenTrapsType snmpEnableAuthenTraps
        ) raises (
            SNMPMgmt::AlreadyExists,
            CosLifeCycle::InvalidCriteria,
            CosLifeCycle::CannotMeetCriteria
        );

        snmpSet create_snmpSet (
            in TestAndIncrType snmpSetSerialNo
        ) raises (
            SNMPMgmt::AlreadyExists,
            CosLifeCycle::InvalidCriteria,
            CosLifeCycle::CannotMeetCriteria
        );
    };

};

#endif /* !_SNMPv2_MIB_IDL_ */
