/*
 * This CORBA IDL file has been generated by smidump 0.2.17. Do not edit.
 */

#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 SNMPv2 entities.

    LAST-UPDATED:   199511090000Z

    ORGANIZATION:
            "IETF SNMPv2 Working Group"

    CONTACT-INFO:
            "        Marshall T. Rose
             
             Postal: Dover Beach Consulting, Inc.
                     420 Whisman Court
                     Mountain View, CA  94043-2186
                     US
             
                Tel: +1 415 968 1052
             
             E-mail: mrose@dbc.mtview.ca.us"

    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.4242, it could assign the identifier
             1.3.6.1.4.1.4242.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 offers.  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 SNMPv2 entity acting in an agent role with respect to
             various MIB modules.  SNMPv2 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
             SNMPv2 entity acting in an agent role.
        */
        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 instanciated.
        */
        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 SNMP messages delivered to the SNMP
             entity which used a SNMP community name not known to said
             entity.
        */
        readonly attribute Counter32Type snmpInBadCommunityNames;

        /*
             The total number of SNMP messages delivered to the SNMP
             entity which represented an SNMP operation which was not
             allowed by the SNMP community named in the message.
        */
        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 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-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 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-PDU could be returned.
        */
        readonly attribute Counter32Type snmpProxyDrops;
    };

    interface snmpTrap : SNMPMgmt::SmiEntry {
    };

    interface snmpSet : SNMPMgmt::SmiEntry {

        /*
             An advisory lock used to allow several cooperating SNMPv2
             entities, all acting in a manager role, to coordinate their
             use of the SNMPv2 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 SNMPv2 entity, acting
             in an agent role, 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 SNMPv2 entity, acting
             in an agent role, 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 SNMPv2
             entity, acting in an agent role, has received a protocol
             message that is not properly authenticated.  While all
             implementations of the SNMPv2 must 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 SNMPv2 entity, acting
             in an agent role, 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 SNMPv2 entity, acting
             in an agent role, 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 SNMPv2
             entity, acting in an agent role, has received a protocol
             message that is not properly authenticated.  While all
             implementations of the SNMPv2 must 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_ */
