1 karl 1.1 // ===================================================================
2 // Title: Core Collections
3 // $State: Preliminary $
4 // $Date: 2004/06/25 16:11:06 $
5 // $Source: /home/dmtf2/dotorg/var/cvs/repositories/dev/Schema/MOF/Core_Collection.mof,v $
6 // $Revision: 1.5 $
7 // ===================================================================
8 //#pragma inLine ("Includes/copyright.inc")
9 // Copyright 1998-2004 Distributed Management Task Force, Inc. (DMTF).
10 // All rights reserved.
11 // DMTF is a not-for-profit association of industry members dedicated
12 // to promoting enterprise and systems management and interoperability.
13 // DMTF specifications and documents may be reproduced for uses
14 // consistent with this purpose by members and non-members,
15 // provided that correct attribution is given.
16 // As DMTF specifications may be revised from time to time,
17 // the particular version and release date should always be noted.
18 //
19 // Implementation of certain elements of this standard or proposed
20 // standard may be subject to third party patent rights, including
21 // provisional patent rights (herein "patent rights"). DMTF makes
22 karl 1.1 // no representations to users of the standard as to the existence
23 // of such rights, and is not responsible to recognize, disclose, or
24 // identify any or all such third party patent right, owners or
25 // claimants, nor for any incomplete or inaccurate identification or
26 // disclosure of such rights, owners or claimants. DMTF shall have no
27 // liability to any party, in any manner or circumstance, under any
28 // legal theory whatsoever, for failure to recognize, disclose, or
29 // identify any such third party patent rights, or for such party's
30 // reliance on the standard or incorporation thereof in its product,
31 // protocols or testing procedures. DMTF shall have no liability to
32 // any party implementing such standard, whether such implementation
33 // is foreseeable or not, nor to any patent owner or claimant, and shall
34 // have no liability or responsibility for costs or losses incurred if
35 // a standard is withdrawn or modified after publication, and shall be
36 // indemnified and held harmless by any party implementing the
37 // standard from any and all claims of infringement by a patent owner
38 // for such implementations.
39 //
40 // For information about patents held by third-parties which have
41 // notified the DMTF that, in their opinion, such patent may relate to
42 // or impact implementations of DMTF standards, visit
43 karl 1.1 // http://www.dmtf.org/about/policies/disclosures.php.
44 //#pragma inLine
45 // ===================================================================
46 // Description: The Core Model defines basic management concepts.
47 // This file defines the concepts and classes in support
48 // of Collections.
49 //
50 // The object classes below are listed in an order that
51 // avoids forward references. Required objects, defined
52 // by other working groups, are omitted.
53 // ==================================================================
54 // Change Log for 2.9 Preliminary
55 // CR1300 - Add OwningJobElement for GGF
56 //
57 // Change Log for v2.8 Final
58 // CR1210 - Removal of experimental qualifiers for core.
59 //
60 // Change Log for v2.8 Preliminary
61 // 1136 - Add ConcreteCollection
62 //
63 // Change Log for v2.7
64 karl 1.1 // CR968 - Remove the Experimental qualifier
65 // - Keep RedundancySet, SparedSet, IsSpare, StorageRedundancySet,
66 // and ExtraCapacitySet experimental for 2.8
67 // CR994 - Update description for InstanceID
68 // CR1019 - CIM Versioning for 2.8 Preliminary
69 // CR1128 - Addition of HostedDependency
70 //
71 // Change Log for v2.7
72 // CR684 - Add SystemSpecificCollection and HostedCollection
73 // CR760 - Add OrderedMemberOfCollection
74 // ==================================================================
75
76 #pragma locale ("en_US")
77
78
79 // ==================================================================
80 // Collection
81 // ==================================================================
82 [Abstract, Version ( "2.6.0" ), Description (
83 "Collection is an abstract class that provides a common "
84 "superclass for data elements that represent collections of "
85 karl 1.1 "ManagedElements and its subclasses.")]
86 class CIM_Collection : CIM_ManagedElement {
87 };
88
89
90 // ==================================================================
91 // MemberOfCollection
92 // ==================================================================
93 [Association, Aggregation, Version ( "2.6.0" ), Description (
94 "CIM_MemberOfCollection is an aggregation used to establish "
95 "membership of ManagedElements in a Collection.")]
96 class CIM_MemberOfCollection {
97
98 [Key, Aggregate, Description (
99 "The Collection that aggregates members.")]
100 CIM_Collection REF Collection;
101
102 [Key, Description (
103 "The aggregated member of the Collection.")]
104 CIM_ManagedElement REF Member;
105 };
106 karl 1.1
107
108 // ==============================================================
109 // OrderedMemberOfCollection
110 // ==============================================================
111 [Association, Aggregation, Version ( "2.7.0" ), Description (
112 "CIM_OrderedMemberOfCollection is an aggregation used to "
113 "establish an ordered membership of ManagedElements in a "
114 "Collection.")]
115 class CIM_OrderedMemberOfCollection : CIM_MemberOfCollection {
116
117 [Description (
118 "AssignedSequence is an unsigned integer 'n' that indicates "
119 "the relative position of members within a Collection. When "
120 "'n' is a positive integer, it indicates a place in the "
121 "sequence of members, with smaller integers indicating "
122 "earlier positions in the sequence. The special value '0' "
123 "indicates 'don't care'. If two or more members have the "
124 "same non-zero sequence number, then the ordering between "
125 "those members is irrelavent, but they must all be ordered "
126 "at the appropriate place in the overall sequence. \n"
127 karl 1.1 "\n"
128 "A series of examples will make ordering of members clearer: "
129 "\nIf all members have the same sequence number, \n"
130 "regardless of whether it is '0' or non-zero, any \n"
131 "order is acceptable. \n"
132 "o The values: \n"
133 "1:MEMBER A \n"
134 "2:MEMBER B \n"
135 "1:MEMBER C \n"
136 "3:MEMBER D \n"
137 "indicate two acceptable orders: A,C,B,D or C,A,B,D, \n"
138 "since A and C can be ordered in either sequence, but \n"
139 "only at the '1' position. \n"
140 "\n"
141 "Note that the non-zero sequence numbers need not start with "
142 "'1', and they need not be consecutive. All that matters is "
143 "their relative magnitude.")]
144 uint64 AssignedSequence;
145 };
146
147
148 karl 1.1 // ==================================================================
149 // SystemSpecificCollection
150 // ==================================================================
151 [Version ( "2.7.0" ), Description (
152 "SystemSpecificCollection represents the general concept of a "
153 "collection which is scoped (or contained) by a System. It "
154 "represents a Collection that only has meaning in the context "
155 "of a System, and/or whose elements are restricted by the "
156 "definition of the System. This is explicitly described by the "
157 "(required) association, HostedCollection. \n"
158 "An example of a SystemSpecificCollection is a Fibre Channel "
159 "zone that collects network ports, port groupings and aliases "
160 "(as required by a customer) in the context of an AdminDomain. "
161 "The Collection is not a part of the domain, but merely an "
162 "arbitrary grouping of the devices and other Collections in the "
163 "domain. In other words, the context of the Collection is "
164 "restricted to the domain, and its members are also limited by "
165 "the domain.")]
166 class CIM_SystemSpecificCollection : CIM_Collection {
167
168 [Key, Description (
169 karl 1.1 "Within the scope of the instantiating Namespace, InstanceID "
170 "opaquely and uniquely identifies an instance of this class. "
171 "In order to ensure uniqueness within the NameSpace, the "
172 "value of InstanceID SHOULD be constructed using the "
173 "following 'preferred' algorithm: \n"
174 "<OrgID>:<LocalID> \n"
175 "Where <OrgID> and <LocalID> are separated by a colon ':', "
176 "and where <OrgID> MUST include a copyrighted, trademarked "
177 "or otherwise unique name that is owned by the business "
178 "entity creating/defining the InstanceID, or is a registered "
179 "ID that is assigned to the business entity by a recognized "
180 "global authority (This is similar to the <Schema "
181 "Name>_<Class Name> structure of Schema class names.) In "
182 "addition, to ensure uniqueness <OrgID> MUST NOT contain a "
183 "colon (':'). When using this algorithm, the first colon to "
184 "appear in InstanceID MUST appear between <OrgID> and "
185 "<LocalID>. \n"
186 "<LocalID> is chosen by the business entity and SHOULD not "
187 "be re-used to identify different underlying (real-world) "
188 "elements. If the above 'preferred' algorithm is not used, "
189 "the defining entity MUST assure that the resultant "
190 karl 1.1 "InstanceID is not re-used across any InstanceIDs produced "
191 "by this or other providers for this instance's NameSpace. \n"
192 "For DMTF defined instances, the 'preferred' algorithm MUST "
193 "be used with the <OrgID> set to 'CIM'.")]
194 string InstanceID;
195 };
196
197
198 // ===================================================================
199 // ConcreteCollection
200 // ===================================================================
201 [Version ( "2.8.0" ), Description (
202 "A concrete version of Collection. This class represents a "
203 "generic and instantiable collection, such as a group of "
204 "ComputerSystems (e.g., a pool of hosts available for executing "
205 "Jobs). It is defined as a concrete subclass of the abstract "
206 "CIM_Collection class, to be used in place of many specific "
207 "subclasses that add no semantics. Note that when defining "
208 "additional semantics for Collection that this class MUST NOT "
209 "be subclassed. Specific semantics continue to be defined as "
210 "subclasses of the abstract CIM_Collection. ConcreteCollection "
211 karl 1.1 "is limited in its use as a concrete form of a general "
212 "collection or bag. It was deemed more prudent to create this "
213 "concrete subclass than to change Collection from an abstract "
214 "to a concrete class.")]
215 class CIM_ConcreteCollection : CIM_Collection {
216
217 [Key, Description (
218 "Within the scope of the instantiating Namespace, InstanceID "
219 "opaquely and uniquely identifies an instance of this class. "
220 "In order to ensure uniqueness within the NameSpace, the "
221 "value of InstanceID SHOULD be constructed using the "
222 "following 'preferred' algorithm: \n"
223 "<OrgID>:<LocalID> \n"
224 "Where <OrgID> and <LocalID> are separated by a colon ':', "
225 "and where <OrgID> MUST include a copyrighted, trademarked "
226 "or otherwise unique name that is owned by the business "
227 "entity creating/defining the InstanceID, or is a registered "
228 "ID that is assigned to the business entity by a recognized "
229 "global authority. (This is similar to the <Schema "
230 "Name>_<Class Name> structure of Schema class names.) In "
231 "addition, to ensure uniqueness <OrgID> MUST NOT contain a "
232 karl 1.1 "colon (':'). When using this algorithm, the first colon to "
233 "appear in InstanceID MUST appear between <OrgID> and "
234 "<LocalID>. \n"
235 "\n"
236 "<LocalID> is chosen by the business entity and SHOULD not "
237 "be re-used to identify different underlying (real-world) "
238 "elements. If the above 'preferred' algorithm is not used, "
239 "the defining entity MUST assure that the resultant "
240 "InstanceID is not re-used across any InstanceIDs produced "
241 "by this or other providers for this instance's NameSpace.")]
242 string InstanceID;
243 };
244
245
246 // ==================================================================
247 // HostedCollection
248 // ==================================================================
249 [Association, Version ( "2.7.0" ), Description (
250 "HostedCollection defines a SystemSpecificCollection in the "
251 "context of a scoping System. It represents a Collection that "
252 "only has meaning in the context of a System, and/or whose "
253 karl 1.1 "elements are restricted by the definition of the System.")]
254 class CIM_HostedCollection : CIM_HostedDependency {
255
256 [Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
257 "The scoping system.")]
258 CIM_System REF Antecedent;
259
260 [Override ( "Dependent" ), Description (
261 "The collection defined in the context of a system.")]
262 CIM_SystemSpecificCollection REF Dependent;
263 };
264
265
266 // ===================================================================
267 // CollectionOfMSEs
268 // ===================================================================
269 [Abstract, Version ( "2.6.0" ), Description (
270 "The CollectionOfMSEs object allows the grouping of Managed "
271 "SystemElements for various identification purposes and to "
272 "reduce the complexity of associating Settings and "
273 "Configurations. It is abstract to require further definition "
274 karl 1.1 "and semantic refinement in subclasses. The CollectionOfMSEs "
275 "object does not carry any state or status information, but "
276 "only represents a grouping or 'bag' of Elements. For this "
277 "reason, it is incorrect to subclass groups that have state/ "
278 "status from CollectionOfMSEs - an example is CIM_Redundancy "
279 "Group (which is subclassed from LogicalElement). \n"
280 "Collections typically aggregate 'like'objects, but are not "
281 "required to do so. They simply identify 'bags' and may "
282 "represent an optimization. This is especially true with "
283 "respect to their association to Settings and Configurations. "
284 "Without Collections, one is forced to define individual "
285 "ElementSetting andElementConfiguration associations, to tie "
286 "Settings and Configuration objects to individual "
287 "ManagedSystemElements. There may be much duplication in "
288 "assigning the same Setting to multiple objects. In addition, "
289 "using the Collection object allows the determination that the "
290 "Setting and Configuration associations are indeed the same for "
291 "the Collection's members. This information would otherwise be "
292 "obtained by defining the Collection in a proprietary manner, "
293 "and then querying the ElementSetting and ElementConfiguration "
294 "associations to determine ifthe Collection set is completely "
295 karl 1.1 "covered.")]
296 class CIM_CollectionOfMSEs : CIM_Collection {
297
298 [Description (
299 "The identification of the Collection object. When "
300 "subclassed, the CollectionID property can be overridden to "
301 "be a Key property."),
302 MaxLen ( 256 )]
303 string CollectionID;
304 };
305
306
307 // ==================================================================
308 // CollectedCollections
309 // ==================================================================
310 [Association, Aggregation, Version ( "2.6.0" ), Description (
311 "CIM_CollectedCollections is an aggregation association "
312 "representing that a CollectionOfMSEs may itself be contained "
313 "in a CollectionOfMSEs.")]
314 class CIM_CollectedCollections {
315
316 karl 1.1 [Key, Aggregate, Description (
317 "The 'higher level' or parent element in the aggregation.")]
318 CIM_CollectionOfMSEs REF Collection;
319
320 [Key, Description (
321 "The 'collected' Collection.")]
322 CIM_CollectionOfMSEs REF CollectionInCollection;
323 };
324
325
326 // ==================================================================
327 // CollectedMSEs
328 // ==================================================================
329 [Association, Aggregation, Version ( "2.6.0" ), Description (
330 "CIM_CollectedMSEs is a generic association used to establish "
331 "the members of the grouping object, CollectionOf MSEs.")]
332 class CIM_CollectedMSEs : CIM_MemberOfCollection {
333
334 [Aggregate, Override ( "Collection" ), Description (
335 "The grouping or 'bag' object that represents the "
336 "Collection.")]
337 karl 1.1 CIM_CollectionOfMSEs REF Collection;
338
339 [Override ( "Member" ), Description (
340 "The members of the Collection.")]
341 CIM_ManagedSystemElement REF Member;
342 };
343
344 // ===================================================================
345 // OwningCollectionElement
346 // ===================================================================
347 [Association, Experimental, Version ( "2.8.1000" ), Description (
348 "OwningCollectionElement represents an association between a "
349 "Collection and the ManagedElement responsible for the control/ "
350 "ownership of the Collection.")]
351 class CIM_OwningCollectionElement {
352
353 [Key, Max ( 1 ), Description (
354 "The ManagedElement acting as the 'owner'/responsible for "
355 "the control of the Collection.")]
356 CIM_ManagedElement REF OwningElement;
357
358 karl 1.1 [Key, Description (
359 "The Collection owned/controlled by the ManagedElement.")]
360 CIM_Collection REF OwnedElement;
361 };
362
363 // ===================================================================
364 // end of file
365 // ===================================================================
|