/*
Title:       Solaris SNMP mof specification 1.0
Description  Solaris SNMP schema.
Date        09/29/00
Version     1.0 
Copyright (c) 2000 Sun Microsystems, Inc. All Rights Reserved.
*/

#pragma namespace("root/snmp")

Qualifier Abstract : boolean = false, Scope(class, association, 
        indication), Flavor(DisableOverride, Restricted);
Qualifier Association : boolean = false, Scope(class, association), 
        Flavor(DisableOverride);
Qualifier Key : boolean = false, Scope(property, reference), 
        Flavor(DisableOverride);
Qualifier Override : string = null, Scope(property, method, 
        reference);
Qualifier Description : string = null, Scope(any), 
        Flavor(Translatable);
Qualifier MappingType : string = null, Scope(any), 
        Flavor(Translatable);
Qualifier Mappingstring : string = null, Scope(any), 
        Flavor(Translatable);
Qualifier Expensive : boolean = false, 
        Scope(property, reference, method, class, association);
Qualifier In : boolean = true, Scope(parameter);
Qualifier Propagated : string = null, Scope(property),
        Flavor(DisableOverride);
Qualifier Write : boolean = false, Scope(property, reference), 
        Flavor(DisableOverride);
Qualifier Provider : string = null, Scope(any);
Qualifier ValueMap : string[], Scope(property, method, parameter);
Qualifier Values : string[], Scope(property, method, parameter),
        Flavor(Translatable);
Qualifier Weak : boolean = false, Scope(reference),
        Flavor(DisableOverride, ToSubclass);

	[Description("This class is used to support the Associator Provider"
		     "interface for the SNMP Provider.  The SystemName" 
		     "property can be set and passed in to specify the system"
		     "on which the desired SNMP agent is running.")]
class Solaris_SNMPSystem
{
	[Key,
	Description("Name of the class that instantiated this instance.")]
    string SystemCreationClassName;
	[Key,
	Description("SystemName contains the name of the system on which"
		    "to try to contact the SNMP agent.")]
    string SystemName;
};

	[Description("This class is used to support configuration capability"
		     "in the SNMP Provider.  The provider requests of CIMOM an"
		     "instance of this class that matches the system name"
		     "passed in.  If a match is found, the SNMP session is"
		     "established using the SNMP parameters described by the"
		     "defined properties.  This class is the more general"
		     "configuration class, the provider first attempts to find"
		     "an instance of Solaris_SNMPGroupConf.")]
class Solaris_SNMPSystemConf {

	[Key,
	Description("Name of the class that instantiated this instance.")]
    string SystemCreationClassName;
	[Key,
	Description("SystemName contains the name of the system on which"
		    "to try to contact the SNMP agent.")]
    string SystemName;
	[Description("PortNumber contains the port number on which to try to"
		     "contact the SNMP agent.")]
    uint32 PortNumber;
	[Description("RequestTimeout contains the number of milliseconds to"
		     "wait for a response to an SNMP request.")] 
    uint32 RequestTimeout; 
	[Description("ReadCommunity contains the community string to pass to"
		     "the SNMP agent for read access.")]
    string ReadCommunity;
	[Description("WriteCommunity contains the community string to pass to"
		     "the SNMP agent for write access.")]
    string WriteCommunity;

};

	[Description("This class is used to support configuration capability"
		     "in the SNMP Provider.  The provider requests of CIMOM an"
		     "instance of this class that matches the system name and"
		     "group name passed in.  If a match is found, the SNMP"
		     "session is established using the SNMP parameters"
		     "described by the defined properties.  This class is the"
		     "more specific configuration class, the provider first"
		     "attempts to find an instance of this class and then"
		     "Solaris_SNMPSystemConf.")]
class Solaris_SNMPGroupConf {

	[Key,
	Description("Name of the class that instantiated this instance.")]
    string SystemCreationClassName;
	[Key,
	Description("SystemName contains the name of the system on which"
		    "the desired SNMP agent is running.")]
    string SystemName;
	[Key,
	Description("GroupName is used to restrict usage of an instance of"
		    "this class to a particular MOF.  It is a String that"
		    "contains the name of a group (i.e. a CIM Class generated"
		    "from an SNMP group).")]
    string GroupName;
	[Description("PortNumber contains the port number on which to try to"
		     "contact the SNMP agent.")]
    uint32 PortNumber;
	[Description("RequestTimeout contains the number of milliseconds to"
		     "wait for a response to an SNMP request.")] 
    uint32 RequestTimeout; 
	[Description("ReadCommunity contains the community string to pass to"
		     "the SNMP agent for read access.")]
    string ReadCommunity;
	[Description("WriteCommunity contains the community string to pass to"
		     "the SNMP agent for write access.")]
    string WriteCommunity;

};

