// Copyright (c) 2005 DMTF.  All rights reserved.
   [Association, Aggregation, Composition, Version ( "2.7.0" ), 
    UMLPackagePath ( "CIM::Network::Pipes" ), 
    Description ( 
       "NetworkPipeComposition describes the makeup a pipe, based on "
       "lower-level ones. If the pipe is not composed of lower-level "
       "entities (i.e., its AggregationBehavior property is set to 2), "
       "then no instances of this association should be defined where "
       "the pipe has the role of GroupComponent. \n"
       "\n"
       "In the context of M.3100, this semantic is modeled as a Trail "
       "that is made up of one or more Connections. Both Trails and "
       "Connections are subclasses of M.3100\'s Pipe. Because of the "
       "flexibility of the NetworkPipeComposition association, there "
       "is no need to subclass NetworkPipe, as was done in M.3100, but "
       "merely to instantiate this association to describe the "
       "bundling of the lower-level pipes (connections), or the "
       "sequencing of them. How the lower-level pipes are aggregated "
       "is described by the property, AggregationBehavior, of "
       "NetworkPipe. If the pipes are combined in a sequence, the "
       "ordering is conveyed via the property, AggregationSequence, on "
       "this association." ), 
    MappingStrings { 
       "Recommendation.ITU|M3100.TrailR1.serverConnectionListPackage", 
       "Recommendation.ITU|M3100.TrailR1.clientConnectionListPackage" }]
class CIM_NetworkPipeComposition : CIM_Component {

      [Aggregate, Override ( "GroupComponent" ), 
       Description ( 
          "The higher level pipe that is composed of lower-level parts/pipes."
           )]
   CIM_NetworkPipe REF GroupComponent;

      [Override ( "PartComponent" ), 
       Description ( "A pipe which is a part of a higher-level one." )]
   CIM_NetworkPipe REF PartComponent;

      [Description ( 
          "Indicates the ordering of the PartComponent pipes in the "
          "GroupComponent. If the AggregationBehavior property of "
          "the GroupComponent pipe is set to 0 or 3 (\"Unknown\" or "
          "\"Combined In Parallel\"), then this property MUST be "
          "set to 0. If the AggregationBehavior is set to 4 "
          "(\"Combined In Sequence\"), then this property SHOULD "
          "indicate the ordering of the component pipes. Ordering "
          "starts with 1 and larger numbers indicate subsequent "
          "pipes. The numbering does not have to be in sequence. "
          "The word SHOULD is used in this Description, since the "
          "specific ordering of all the component pipes may not be "
          "known. In these cases, a value of 0 would be placed in "
          "AggregationSequence to indicate that ordering "
          "information is not available." )]
   uint16 AggregationSequence;


};
