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