// Copyright (c) 2005 DMTF.  All rights reserved.
   [Version ( "2.7.0" ), 
    UMLPackagePath ( "CIM::Network::BGP" ), 
    Description ( 
       "A BGP Peer Group is a set of BGP neighbors that share the same "
       "update policies. This enables an administrator to assign "
       "policies to the peer group, instead of individually. This "
       "enables the routers in the Peer Group to optimize UPDATE "
       "messages. Consequently, Peer Groups have a set of restrictions "
       "that must be followed in order to work correctly with external "
       "BGP peers. Otherwise, loss of routing information could occur. \n"
       "\n"
       "A BGPPeerGroup is weak to the AutonomousSystem that contains "
       "it. Therefore, the keys from System must be propagated to it." )]
class CIM_BGPPeerGroup : CIM_CollectionOfMSEs {

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

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

      [Key, 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, Description ( "This is the name of the BGP Peer Group." ), 
       MaxLen ( 256 )]
   string Name;

      [Description ( 
          "This defines the time interval, in seconds, for the "
          "ConnectRetry timer for the endpoints of the routers in "
          "the PeerGroup. The suggested value is 120 seconds." ), 
       Units ( "Seconds" ), 
       MappingStrings { "MIB.IETF|BGP4-MIB.bgpConnectRetryInterval" }]
   uint32 ConnectRetryInterval = 120;

      [Description ( 
          "This defines the time interval in seconds for the Hold "
          "TimeConfigured property of the endpoints of the routers "
          "in the PeerGroup. This value must not be less than three "
          "seconds. The suggested value for this timer is 90 "
          "seconds." ), 
       Units ( "Seconds" ), 
       MappingStrings { "MIB.IETF|BGP4-MIB.bgpPeerHoldTimeConfigured" }]
   uint16 HoldTimeConfigured = 90;

      [Description ( 
          "This defines the time interval in seconds for the "
          "KeepAliveConfigured timer for the endpoints of the "
          "routers in the PeerGroup. The suggested value for this "
          "property is 30 seconds. The maximum value of this "
          "property is 21845 seconds." ), 
       Units ( "Seconds" ), 
       MappingStrings { 
          "MIB.IETF|BGP4-MIB.bgpPeerKeepAliveConfigured" }]
   uint16 KeepAliveConfigured = 30;

      [Description ( 
          "This defines the time interval in seconds for the "
          "MinASOriginationInterval timer for the endpoints of the "
          "routers in the PeerGroup. The suggested value for this "
          "property is 15 seconds." ), 
       Units ( "Seconds" ), 
       MappingStrings { 
          "MIB.IETF|BGP4-MIB.bgpPeerMinASOriginationInterval" }]
   uint16 MinASOriginationInterval = 15;

      [Description ( 
          "This defines the time interval in seconds for the "
          "MinRouteAdvertisementInterval timer for the endpoints of "
          "the routers in the PeerGroup. The suggested value for "
          "this property is 30 seconds." ), 
       Units ( "Seconds" ), 
       MappingStrings { 
          "MIB.IETF|BGP4-MIB.bgpPeerMinRouteAdvertisementInterval" }]
   uint16 MinRouteAdvertisementInterval = 30;


};
