// ===================================================================
// Title:       Network Collections 2.7
// Filename:    Network27_Collections.mof
// Version:     2.7.0
// Status:      Final
// Date:        April 15, 2003
// ===================================================================
// Copyright 1998-2003 Distributed Management Task Force, Inc. (DMTF).
// All rights reserved.  
// DMTF is a not-for-profit association of industry members dedicated 
// to promoting enterprise and systems management and interoperability. 
// DMTF specifications and documents may be reproduced for uses
// consistent with this purpose by members and non-members, 
// provided that correct attribution is given. 
// As DMTF specifications may be revised from time to time, 
// the particular version and release date should always be noted.
//
// Implementation of certain elements of this standard or proposed 
// standard may be subject to third party patent rights, including 
// provisional patent rights (herein "patent rights"). DMTF makes 
// no representations to users of the standard as to the existence 
// of such rights, and is not responsible to recognize, disclose, or
// identify any or all such third party patent right, owners or 
// claimants, nor for any incomplete or inaccurate identification or 
// disclosure of such rights, owners or claimants. DMTF shall have no 
// liability to any party, in any manner or circumstance, under any 
// legal theory whatsoever, for failure to recognize, disclose, or 
// identify any such third party patent rights, or for such party's
// reliance on the standard or incorporation thereof in its product, 
// protocols or testing procedures. DMTF shall have no liability to 
// any party implementing such standard, whether such implementation 
// is foreseeable or not, nor to any patent owner or claimant, and shall 
// have no liability or responsibility for costs or losses incurred if 
// a standard is withdrawn or modified after publication, and shall be
// indemnified and held harmless by any party implementing the 
// standard from any and all claims of infringement by a patent owner 
// for such implementations.
//
// For information about patents held by third-parties which have 
// notified the DMTF that, in their opinion, such patent may relate to 
// or impact implementations of DMTF standards, visit 
// http://www.dmtf.org/about/policies/disclosures.php.
// ===================================================================
// Description: The Network Model extends the management concepts to
//              represent protocol interfaces and network/protocol 
//              services.  This file defines network "collections" such
//              as logical networks (collections of protocol endpoints)
//              and IP address ranges (an implicit collection).
//
//              The object classes below are listed in an order that
//              avoids forward references. Required objects, defined 
//              by other working groups, are omitted.
// ==================================================================
// Change Log for v2.7
// CR803 - Deprecate IPAddressRange and add RangeOfIPAddresses  
// CR804 - Update description for IBSubnet.SubnetMask and add 
//         .PrefixLength   
// CR920 - Add missing parenthesis to the Description for IPSubnet.
//         PrefixLength
// CR958 - Deprecation of LogicalNetwork in lieu of ConnectivityCollection
// CR976 - Addition of the NamedAddressCollection class
// CR982 - Removal of Experimental for preliminary to final
// CR983 - Deprecations for v2.7 made final
// ===================================================================
 
#pragma Locale ("en_US")


// ==================================================================
// LogicalNetwork
// ==================================================================
    [Deprecated {"CIM_ConnectivityCollection"}, Version ("2.7.0"), 
      Description (
      "A LogicalNetwork groups together a set of "
      "ProtocolEndpoints of a given type which are able to "
      "communicate with each other directly. It is used for "
      "describing the characteristics of the grouping "
      "and/or its associated medium. A LogicalNetwork "
      "represents the ability to send and/or receive data "
      "over a network. \n"
      "\n"
      "This class is deprecated in lieu of ConnectivityCollection. "
      "The latter better defines that a LogicalNetwork 'collects' "
      "ProtocolEndpoints and other related entities, and is hosted "
      "within an AdminDomain.") ]
class CIM_LogicalNetwork : CIM_CollectionOfMSEs {
 
        [Key, Deprecated {"No value"}, 
         Propagated ("CIM_AdminDomain.CreationClassName"),  
         MaxLen (256), Description (
         "The scoping AdminDomain's CreationClassName.") ] 
    string SystemCreationClassName;
 
        [Key, Deprecated {"No value"}, 
         Propagated ("CIM_AdminDomain.Name"), MaxLen (256),
         Description ("The scoping AdminDomain's Name.") ] 
    string SystemName;
 
        [Key, Deprecated {"No value"}, 
         MaxLen (256), Description (
         "CreationClassName indicates the name of the class or the "
         "subclass used in the creation of an instance. When used "
         "with the other key properties of this class, this property "
         "allows all instances of this class and its subclasses to "
         "be uniquely identified.") ]
    string CreationClassName;
 
        [Key, Deprecated {"CIM_ConnectivityCollection.InstanceID"}, 
         MaxLen (256), Description (
         "The Name property defines the label by which the object is "
         "known.") ] 
    string Name;
 
        [Deprecated {"CIM_ConnectivityCollection.ConnectivityType"}, 
         Description (
         "Type is an enumeration that provides additional "
         "information that can be used to help categorize and "
         "classify different instances of this class. \n"
         "\n"
         "Subclasses should ensure that they are of the "
         "appropriate type defined in the Type enumeration. "
         "That is, the IPSubnet subclass should define its "
         "property as either IPv4 or IPv6, as opposed to, "
         "for example, ATM."),
         ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
            "10", "11", "12", "13", "14", "15", "16", "17", "18"},
         Values {"Unknown", "Other", "IPv4", "IPv6",
            "IPX", "AppleTalk", "DECnet", "SNA", "CONP",
            "CLNP", "VINES", "XNS", "ATM", "Frame Relay",
            "Ethernet", "TokenRing", "FDDI", "Infiniband", 
            "Fibre Channel"},
         ModelCorrespondence {
            "CIM_LogicalNetwork.OtherTypeDescription"} ]
   uint16 NetworkType;
 
        [Deprecated {"CIM_ConnectivityCollection.OtherTypeDescription"}, 
         MaxLen(64), Description (
         "A string describing the type of protocol that is "
         "being run by this LogicalNetwork, when the value of "
         "the Type property (or any of its subclasses) "
         "is set to 1 (i.e., \"Other\"). This property "
         "should be set to NULL when the Type property is "
         "any value other than 1."),
         ModelCorrespondence {"CIM_LogicalNetwork.NetworkType"} ]
   string OtherTypeDescription;
};


// ==================================================================
// NetworksInAdminDomain
// ==================================================================
    [Association, Version ("2.7.0"), 
    Deprecated {"CIM_HostedCollection"}, 
    Description (
      "This association is used to define the set of Logical"
      "Networks contained in an AdminDomain. This has the implied "
      "semantics that this set of LogicalNetworks are all "
      "managed by the same network administrator that manages "
      "the domain. \n"
      "\n"
      "Since the LogicalNetwork class is deprecated in lieu of "
      "ConnectivityCollection, this association is no longer "
      "necessary. It is deprecated to the HostedCollection "
      "association, that is inherited by ConnectivityCollection "
      "from its superclass, SystemSpecificCollection.") ]
class CIM_NetworksInAdminDomain {
 
        [Key, Deprecated {"CIM_HostedCollection.Antecedent"}, 
         Min (1), Max (1), Description (
         "The AdminDomain that hosts the various LogicalNetworks.") ] 
    CIM_AdminDomain REF Domain;
 
        [Weak, Key, Deprecated {"CIM_HostedCollection.Dependent"}, 
         Description (
         "The LogicalNetworks that are hosted by the AdminDomain.") ] 
    CIM_LogicalNetwork REF Network;
};


// ==================================================================
// IPSubnet
// ==================================================================
   [Deprecated {"CIM_IPConnectivitySubnet"}, Version ("2.7.0"), 
    Description (
      "An IPSubnet represents a group of related "
      "IPProtocolEndpoints that can communicate with each other "
      "directly using IP. It is used for describing the "
      "characteristics of the grouping. \n"
      "\n"
      "Since this class' superclass (LogicalNetwork) has been "
      "deprecated (in order to define more consistent 'collection' "
      "semantics), this class is also deprecated.") ]
class CIM_IPSubnet : CIM_LogicalNetwork {
 
        [Deprecated {"CIM_IPConnectivitySubnet.SubnetNumber"},
         Description (
         "The IP address of the entire subnet, formatted according "
         "to the appropriate convention as defined in the AddressType "
         "property of this class.") ]
    string SubnetNumber;
 
        [Deprecated {"CIM_IPConnectivitySubnet.SubnetMask"},
         Description (
         "The mask for the starting IPv4 address of the IPSubnet, "
         "if needed (i.e., if the AddressType property is 1, "
         "\"IPv4\").") ] 
    string SubnetMask;
 
        [Deprecated {"CIM_IPConnectivitySubnet.PrefixLength"},
         Description (
         "The prefix length for IPv6 addresses in the IPSubnet, "
         "if needed (i.e., if the AddressType property is 2, "
         "\"IPv6\").") ]
    uint8 PrefixLength;
 
        [Deprecated {"CIM_IPConnectivitySubnet.AddressType"},
         Description (
         "An enumeration that describes the format of the address "
         "properties in IPSubnet."),  
         ValueMap {"0", "1", "2"},
         Values {"Unknown", "IPv4", "IPv6"} ]
    uint16 AddressType;
};


// ==================================================================
// LANSegment
// ==================================================================
   [Deprecated {"CIM_LANConnectivitySegment"}, Version ("2.7.0"), 
    Description (
      "A collection of LAN Endpoints of a particular type "
      "that are able to intercommunicate directly without "
      "the assistance of bridging or routing services. \n"
      "\n"
      "Since this class' superclass (LogicalNetwork) has been "
      "deprecated (in order to define more consistent 'collection' "
      "semantics), this class is also deprecated.") ]
class CIM_LANSegment : CIM_LogicalNetwork {
 
        [Deprecated {"CIM_LANConnectivitySegment.LANID"},
         MaxLen(64), Description (
         "A label or identifier for the LAN Segment."),
         ModelCorrespondence {"CIM_LANEndpoint.LANID"} ]
    string LANID;
 
        [Deprecated {"CIM_LANConnectivitySegment.ConnectivityType"},
         Description (
         "An indication of the kind of technology used on the LAN."), 
         ValueMap {"0", "1", "2", "3", "4"},
         Values {"Unknown", "Other", "Ethernet", "TokenRing", "FDDI"},
         ModelCorrespondence {"CIM_LANEndpoint.LANType"} ]
    uint16 LANType;
 
        [Deprecated {"CIM_LANConnectivitySegment.OtherTypeDescription"},
         MaxLen(64), Description (
         "A string describing the type of technology used on the LAN "
         "when the value of the LANType property of this class (or "
         "any of its subclasses) is set to 1 (i.e., \"Other\"). The "
         "format of the string inserted in this property should be "
         "similar in format to the values defined for the LANType "
         "property. This property should be set to NULL when the "
         "LANType property is any value other than 1."),
         ModelCorrespondence {"CIM_LANSegment.LANType"} ]
   string OtherLANType;
};


// ==================================================================
// IPXNetwork
// ==================================================================
  [Deprecated {"CIM_IPXConnectivityNetwork"}, Version ("2.7.0"), 
    Description (
      "A network or subnet that uses the IPX protocol. Since "
      "this class' superclass (LogicalNetwork) has been "
      "deprecated (in order to define more consistent 'collection' "
      "semantics), this class is also deprecated.") ]
class CIM_IPXNetwork : CIM_LogicalNetwork {
 
        [Deprecated {"CIM_IPXConnectivityNetwork.NetworkNumber"}, 
         Description (
         "An IPX network number formatted as eight hexadecimal "
         "digits (e.g., \"00112233\").") ]
    string NetworkNumber;
};


// ==================================================================
// InLogicalNetwork
// ==================================================================
  [Association, Aggregation, Deprecated {"CIM_MemberOfCollection"}, 
    Version ("2.7.0"), Description (
      "This association defines a ProtocolEndpoint as a member of "
      "a specific LogicalNetwork. \n"
      "\n"
      "Since the LogicalNetwork class is deprecated in lieu of "
      "ConnectivityCollection, this association is no longer "
      "necessary. It is deprecated to the MemberOfCollection "
      "association, that is inherited by ConnectivityCollection "
      "from its superclass, Collection.") ]
class CIM_InLogicalNetwork : CIM_CollectedMSEs {
 
        [Deprecated {"CIM_MemberOfCollection.Collection"},
         Override ("Collection"), Aggregate, 
         Description (
         "The LogicalNetwork that groups the ProtocolEndpoint "
         "instances.") ]
    CIM_LogicalNetwork REF Collection;
 
        [Deprecated {"CIM_MemberOfCollection.Member"},
         Override ("Member"), Description (
         "The child ProtocolEndpoints that are components of the "
         "LogicalNetwork.") ]
    CIM_ProtocolEndpoint REF Member;
};


// ==================================================================
// RangeOfIPAddresses
// ==================================================================
   [Version ("2.7.0"), Description (
     "The class RangeOfIPAddresses represents an implicit grouping "
     "(or 'pool') of IP addresses specified by the properties, "
     "Start and EndAddress. It is defined as scoped/contained by "
     "a system such as an individual network element or an "
     "admin domain.") ]
class CIM_RangeOfIPAddresses : CIM_SystemSpecificCollection {

      [Description (
       "The starting IP address of the AddressRange, formatted "
       "according to the appropriate convention as defined in the "
       "AddressType property of this class (e.g., 171.79.6.40)."),
       ModelCorrespondence {"CIM_RangeOfIPAddresses.AddressType"} ]
    string StartAddress;

      [Description (
       "The ending IP address of the AddressRange, formatted "
       "according to the appropriate convention as defined in the "
       "AddressType property of this class (e.g., 171.79.6.40)."),
       ModelCorrespondence {"CIM_RangeOfIPAddresses.AddressType"} ]
    string EndAddress;
 
     [Description (
      "An enumeration that defines how the address and mask "
      "properties are formatted."),
      ValueMap {"0", "1", "2"}, 
      Values {"Unknown", "IPv4", "IPv6"} ]
    uint16 AddressType;
};


// ==================================================================
// IPAddressRange
// ==================================================================
   [Abstract, Version ("2.7.0"), 
    Deprecated {"CIM_RangeOfIPAddresses"}, Description (
      "IPAddressRange represents a grouping of specific addresses, "
      "and provides additional semantics for this group if "
      "appropriate. The class is deprecated in lieu of the "
      "concrete class RangeOfIPAddresses since there is "
      "sufficient information for the class to be instantiated. "
      "In addition, an address range should be defined in the "
      "context of a System (for example, a network element or an "
      "admin domain). These semantics are incorporated in the "
      "RangeOfIPAddresses class.") ]
class CIM_IPAddressRange : CIM_CollectionOfMSEs {

        [Deprecated {"CIM_RangeOfIPAddresses.StartAddress"}, 
         Description (
         "The starting IP address of the AddressRange, formatted "
         "according to the appropriate convention as defined in the "
         "AddressType property of this class (e.g., 171.79.6.40).") ] 
    string StartAddress;

        [Deprecated {"CIM_RangeOfIPAddresses.EndAddress"}, 
         Description (
         "The ending IP address of the AddressRange, formatted "
         "according to the appropriate convention as defined in the "
         "AddressType property of this class (e.g., 171.79.6.40).") ] 
    string EndAddress;

        [Deprecated {"CIM_RangeOfIPAddresses.AddressType"}, 
         Description (
         "An enumeration that defines how to format the address and "
         "mask of the address range that defines this IPSubnet. \n" 
         "\n"
         "Whenever possible, IPv4-compatible addresses should "
         "be used instead of IPv6 addresses (see RFC 2373, "
         "section 2.5.4). In order to have a consistent format "
         "for IPv4 addresses in a mixed IPv4/v6 environment, all "
         "IPv4 addresses and both IPv4-compatible IPv6 addresses "
         "and IPv4-mapped IPv6 addresses, per RFC 2373, section "
         "2.5.4, should be formatted in standard IPv4 format."),
         ValueMap {"0", "1", "2"},
         Values {"Unknown", "IPv4", "IPv6"} ]
    uint16 TypeOfAddress;

        [Deprecated {"No value"}, Description (
         "This attribute defines the region that addresses can be "
         "allocated to."),
         ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8"},
         Values {"Unknown",
            "Multiregional: 192.0.0.0 to 193.255.255.255",
            "Europe: 194.0.0.0 to 195.255.255.255",
            "Others: 196.0.0.0 to 197.255.255.255",
            "North America: 198.0.0.0 to 199.255.255.255",
            "Central & South America: 200.0.0.0 to 201.255.255.255",
            "Pacific Rim: 202.0.0.0 to 203.255.255.255",
            "Others: 204.0.0.0 to 205.255.255.255",
            "Others: 206.0.0.0 to 207.255.255.255"} ]
    uint16 AllocationRegion;
};


// ==================================================================
// NamedAddressCollection
// ==================================================================
   [Version ("2.7.0"), Description (
      "A NamedAddressCollection groups ProtocolEndpoints/addresses "
      "and other network identifiers for the purposes of assigning "
      "a single name (i.e., an alias). It is a subclass of "
      "SystemSpecificCollection to force the definition of the "
      "'named collection' in the context of a System (for example, "
      "either a ComputerSystem or an AdminDomain hosting a naming "
      "alias).") ]
class CIM_NamedAddressCollection : CIM_SystemSpecificCollection { 

        [Required, Write, Description (
         "A name (alias) for the NamedAddressCollection which is unique "
         "in the context of the hosting System.") ]
   string CollectionAlias; 
};


// ==================================================================
// ConnectivityCollection
// ==================================================================
   [Version ("2.7.0"), Description (
      "A ConnectivityCollection groups together a set of "
      "ProtocolEndpoints of the same 'type' (i.e., class) which are "
      "able to communicate with each other. It may also group "
      "related Systems, users or other ManagedElements. A "
      "ConnectivityCollection represents the ability to send "
      "and/or receive data over a set of ProtocolEndpoints. The "
      "collection is defined in the context of an AdminDomain or "
      "scoping ComputerSystem. This is mandated by the Hosted"
      "Collection association on the SystemSpecificCollection "
      "superclass. Note that the entities aggregated into the "
      "Collection are specified using the association, "
      "MemberOfCollection.") ]
class CIM_ConnectivityCollection : CIM_SystemSpecificCollection {
 
        [Description (
         "An enumeration describing the current or potential "
         "connectivity between endpoints in this collection. "
         "Connectivity may be provided or not, or may be in "
         "a degraded/partitioned state if one or more endpoints or "
         "links have failed. The latter would prevent full "
         "connectivity between all elements in the Collection, "
         "but would permit connectivity between subsets."),
         ValueMap {"0", "2", "3", "4"},
         Values {"Unknown", "Connectivity/Up", 
            "No Connectivity/Down", "Partitioned"} ]
   uint16 ConnectivityStatus;
};
 
 
// ==================================================================
// IPConnectivitySubnet
// ==================================================================
   [Version ("2.7.0"), Description (
      "An IPConnectivitySubnet represents a group of related "
      "IPProtocolEndpoints that can communicate with each other, "
      "as members of a subnet. The class describes the "
      "characteristics of the subnet.") ]
class CIM_IPConnectivitySubnet : CIM_ConnectivityCollection {
 
        [Description (
         "The IP address of the entire subnet, formatted according "
         "to the appropriate convention as defined in the AddressType "
         "property of this class."), 
         ModelCorrespondence {"CIM_IPConnectivitySubnet.AddressType"} ]
    string SubnetNumber;
 
        [Description (
         "The mask for the starting IPv4 address of the IP subnet, "
         "if needed (i.e., if the AddressType property is 1, "
         "\"IPv4\").") ] 
    string SubnetMask;
 
        [Description (
         "The prefix length for IPv6 addresses in the IP subnet, "
         "if needed (i.e., if the AddressType property is 2, "
         "\"IPv6\").") ]
    uint8 PrefixLength;
 
        [Description (
         "An enumeration that describes the format of the address "
         "properties in IPConnectivitySubnet."),  
         ValueMap {"0", "1", "2"},
         Values {"Unknown", "IPv4", "IPv6"} ]
    uint16 AddressType;
};
 
 
// ==================================================================
// LANConnectivitySegment
// ==================================================================
   [Version ("2.7.0"), Description (
      "A collection of LAN Endpoints of a particular type (i.e., "
      "Ethernet or Token Ring), that are able to intercommunicate "
      "without the assistance of bridging or routing services. ") ]
class CIM_LANConnectivitySegment : CIM_ConnectivityCollection {
 
        [MaxLen(64), Description (
         "A label or identifier for the LAN segment."),
         ModelCorrespondence {"CIM_LANEndpoint.LANID"} ]
    string LANID;
 
        [Description (
         "An enumeration that categorizes and classifies instances "
         "of this class. Instances SHOULD aggregate entities of "
         "the appropriate 'type', as  defined by the value of "
         "this enumeration."),
         ValueMap {"0", "1", "2", "3", "4"}, 
         Values {"Unknown", "Other", "Ethernet", "TokenRing", "FDDI"}, 
         ModelCorrespondence {
            "CIM_LANConnectivitySegment.OtherTypeDescription"} ]
   uint16 ConnectivityType;
 
        [Description (
         "A string describing the type of connectivity that is "
         "supported by this Collection, when the value of "
         "the Type property is set to 1 (i.e., \"Other\"). This "
         "property should be set to NULL when the Type property "
         "is any value other than 1."),
         ModelCorrespondence {
            "CIM_LANConnectivitySegment.ConnectivityType"} ]
   string OtherTypeDescription;
 
};
 
 
// ==================================================================
// IPXConnectivityNetwork
// ==================================================================
   [Version ("2.7.0"), Description (
      "A network or subnet that uses the IPX protocol.") ]
class CIM_IPXConnectivityNetwork : CIM_ConnectivityCollection {
 
        [Description (
         "An IPX network number formatted as eight hexadecimal "
         "digits (e.g., \"00112233\").") ]
    string NetworkNumber;
};


// ===================================================================
// end of file
// ===================================================================
