// Copyright (c) 2005 DMTF.  All rights reserved.
   [Association, Aggregation, Version ( "2.8.0" ), 
    UMLPackagePath ( "CIM::IPsecPolicy" ), 
    Description ( 
       "ContainedTransform associates a proposal with a list of "
       "transforms. If multiple transforms of a given type are "
       "included in a proposal, these transforms are interpreted as "
       "alternatives -- i.e., logically ORed with each other. The "
       "order of preference is dictated by the SequenceNumber "
       "property. Sets of transforms of different types are logically "
       "ANDed. For example, a proposal based on two AH transforms and "
       "three ESP transforms means one of the AH AND one of the ESP "
       "transforms MUST be chosen. Note that at least 1 transform MUST "
       "be aggregated into the proposal." ), 
    MappingStrings { "IPSP Policy Model.IETF|ContainedTransform" }]
class CIM_ContainedTransform : CIM_Component {

      [Aggregate, Override ( "GroupComponent" ), 
       Description ( "The Proposal containing the transforms." ), 
       MappingStrings { 
          "IPSP Policy Model.IETF|ContainedTransform.GroupComponent" }]
   CIM_IPsecProposal REF GroupComponent;

      [Override ( "PartComponent" ), 
       Min ( 1 ), 
       Description ( "Transforms in the proposal." ), 
       MappingStrings { 
          "IPSP Policy Model.IETF|ContainedTransform.PartComponent" }]
   CIM_SATransform REF PartComponent;

      [Description ( 
          "SequenceNumber indicates the order of preference for "
          "SATransforms of the same type. Lower-valued transforms "
          "are preferred over transforms of the same type with "
          "higher values. For ContainedTransforms (of the same "
          "type) that reference the same IPsecProposal, "
          "SequenceNumber values MUST be unique." ), 
       MappingStrings { 
          "IPSP Policy Model.IETF|ContainedTransform.SequenceNumber" }]
   uint16 SequenceNumber;


};
