// Copyright (c) 2005 DMTF.  All rights reserved.
   [Association, Deprecated { "CIM_MemberOfCollection" }, 
    Aggregation, Version ( "2.8.0" ), 
    UMLPackagePath ( "CIM::User::Org" ), 
    Description ( 
       "CIM_MemberPrincipal is an aggregation used to establish "
       "membership of principals (i.e., users) in a Collection. That "
       "membership can be established either directly or indirectly as "
       "indicated in the UsersAccessBy property. For example, a user "
       "may be identified directly by their userid (i.e., Account "
       "object instance) or the user may be identified indirectly by "
       "realm from which a ticket was issued (i.e., "
       "CredentialManagementService object instance). \n"
       "\n"
       "This association is deprecated in lieu of its superclass. "
       "Usage feedback on the class has indicated confusion regarding "
       "defining the members of the collection. Also, the UsersAccess "
       "aspects of this association have been deprecated." )]
class CIM_MemberPrincipal : CIM_MemberOfCollection {

      [Deprecated { "CIM_MemberOfCollection.Collection" }, 
       Aggregate, Override ( "Collection" )]
   CIM_Collection REF Collection;

      [Deprecated { "CIM_MemberOfCollection.Member" }, 
       Override ( "Member" )]
   CIM_ManagedElement REF Member;

      [Deprecated { "No value" }, 
       Description ( 
          "A MemberPrincipal may be identifed in several ways that "
          "may be either direct or indirect membership in the "
          "collection. \n"
          "-A \'UsersAccess\' membership directly identifies the "
          "user by the UsersAccess object instance. \n"
          "- An \'Account\' membership directly identifies the user "
          "by the Account object class instance. \n"
          "- A \'UsingElement\' membership indirectly identifies "
          "the user by the ManagedElement object instance that has "
          "ElementAsUser associations to UsersAccess object "
          "instances. Hence, all UsersAccess instances are "
          "indirectly included in the collection." ), 
       ValueMap { "1", "2", "3", "4" }, 
       Values { "UsersAccess", "Account", "UsingElement", 
          "CredentialManagementService" }]
   uint16 UserAccessBy;


};
