// Copyright (c) 2005 DMTF.  All rights reserved.
   [Version ( "2.7.0" ), 
    UMLPackagePath ( "CIM::Network::Filtering" ), 
    Description ( 
       "A FilterList is used by network devices to identify routes by "
       "aggregating a set of FilterEntries into a unit, called a "
       "FilterList. FilterLists can also be used to accept or deny "
       "routing updates. \n"
       "\n"
       "A FilterList is weak to the network device (i.e., the "
       "ComputerSystem) that contains it. Hence, the ComputerSystem "
       "keys are propagated to this class." )]
class CIM_FilterList : CIM_LogicalElement {

      [Key, Description ( 
          "The scoping ComputerSystem\'s CreationClassName." ), 
       MaxLen ( 256 ), 
       Propagated ( "CIM_ComputerSystem.CreationClassName" )]
   string SystemCreationClassName;

      [Key, Description ( "The scoping ComputerSystem\'s Name." ), 
       MaxLen ( 256 ), 
       Propagated ( "CIM_ComputerSystem.Name" )]
   string SystemName;

      [Key, Description ( "The type of class that this instance is." )]
   string CreationClassName;

      [Key, Override ( "Name" ), 
       Description ( "This is the name of the FilterList." ), 
       MaxLen ( 256 )]
   string Name;

      [Description ( 
          "This defines whether the FilterList is used for input, "
          "output, or both input and output filtering. All values "
          "are used with respect to the interface for which the "
          "FilterList applies. \n"
          "\n"
          "\"Not Applicable\" (0) is used when there is no "
          "direction applicable to the FilterList. \"Input\" (1) is "
          "used when the FilterList applies to packets that are "
          "inbound on the related interface. \"Output\" (2) is used "
          "when the FilterList applies to packets that are outbound "
          "on the related interface. \"Both\" (3) is used to "
          "indicate that the direction is immaterial, e.g., to "
          "filter on a source subnet regardless of whether the flow "
          "is inbound or outbound. \"Mirrored\" (4) is also "
          "applicable to both inbound and outbound flow processing, "
          "but indicates that the filter criteria are applied "
          "asymmetrically to traffic in both directions and, thus, "
          "specifies the reversal of source and destination "
          "criteria (as opposed to the equality of these criteria "
          "as indicated by \"Both\"). The match conditions in the "
          "aggregated FilterEntryBase subclass instances are "
          "defined from the perspective of outbound flows and "
          "applied to inbound flows as well by reversing the source "
          "and destination criteria. So, for example, consider a "
          "FilterList with 3 FilterEntries indicating destination "
          "port = 80, and source and destination addresses of a and "
          "b, respectively. Then, for the outbound direction, the "
          "filter entries match as specified and the \'mirror\' "
          "(for the inbound direction) matches on source port = 80 "
          "and source and destination addresses of b and a, "
          "respectively." ), 
       ValueMap { "0", "1", "2", "3", "4" }, 
       Values { "Not Applicable", "Input", "Output", "Both", 
          "Mirrored" }]
   uint16 Direction;


};
