1 karl 1.1 // ===================================================================
2 // Title: System File Elements
3 // $State: Preliminary $
4 // $Date: 2004/07/21 16:26:26 $
5 // $Source: /home/dmtf2/dotorg/var/cvs/repositories/dev/Schema/MOF/System_FileElements.mof,v $
6 // $Revision: 1.12 $
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 System Model defines system related management
47 // concepts. This file defines the specific concepts to
48 // manage file systems.
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 v2.9 Preliminary Company Review
55 // CR1446 - Deprecate FileSystemSettingData.
56 //
57 // Change Log for v2.9 Preliminary
58 // CR1325 - Definitions needed to support methods to create or modify
59 // a FileSystem using a FileSystemConfigurationService.
60 // CR1326 - Definitions needed to support methods to create or modify
61 // an ExportedFileShare using a FileExportService.
62 // CR1327 - Definitions needed to support methods to create or modify
63 // an ImportedFileShare using a FileImportService.
64 karl 1.1 //
65 // Change Log for v2.8 Final
66 // CR1204 - Removal of Experimental Qualifier for Preliminary to Final
67 // CR1177 - Share to use InstanceID as key vs. propagated keys.
68 //
69 // Change Log for v2.8 Preliminary
70 // CR1056 - Database Storage:
71 // -- modify ResidesOnExtent
72 // -- add PersistenceType and NumberOfFiles to FileSystem
73 // -- add FileSystemCapabilities and FileSystemSettingData
74 // CR883 - Add IsFixedSize and ResizeIncrement properties
75 // to CIM_LogicalFile
76 // CR1128 - Addition of HostedDependency
77 //
78 // Change Log for v2.7 Final
79 // CR969 - Remove Share, NFSShare, CIFSShare, SharedElement,
80 // ImportedShare, and HostedShare so they can remain
81 // experimental in 2.8.
82 //
83 // Change Log for v2.7
84 // CR598 - Add Share, NFSShare, CIFSShare, SharedElement,
85 karl 1.1 // ImportedShare, and HostedShare
86 // CR644 - Modify Share, NFSShare, CIFSShare, and ImportedShare
87 // - Add FileShare
88 // CR748 - Promote HostedFileSystem.GroupComponent from ComputerSystem
89 // to System. Fix the class description and the propagated
90 // key descriptions in FileSystem.
91 // CR757 - Change the subclassing of FileSystem from LogicalElement
92 // to EnabledLogicalElement
93 // CR767 - Add the Compostion qualifer to DirectoryContainsFile,
94 // FileStorage, and HostedFileSystem
95 // ==================================================================
96
97 #pragma locale ("en_US")
98
99
100 // ===================================================================
101 // FileSystem
102 // ===================================================================
103 [Version ( "2.8.1000" ), Description (
104 "A file or dataset store local to a System (such as a "
105 "ComputerSystem or an ApplicationSystem) or remotely mounted "
106 karl 1.1 "from a file server.")]
107 class CIM_FileSystem : CIM_EnabledLogicalElement {
108
109 [Key, Propagated ( "CIM_System.CreationClassName" ),
110 Description (
111 "The scoping System's CreationClassName. Note that this "
112 "class was originally defined in the scope of a "
113 "ComputerSystem, and was later allowed to be scoped by any "
114 "System (for example, a computer or application system). "
115 "Unfortunately, the property name, CSCreationClassName, "
116 "could not be changed (for example, to SystemCreationClass "
117 "Name) without deprecating the class. This change was not "
118 "deemed critical to the semantics and therefore did not "
119 "merit deprecation. So, the property name remains."),
120 MaxLen ( 256 )]
121 string CSCreationClassName;
122
123 [Key, Propagated ( "CIM_System.Name" ), Description (
124 "The scoping System's Name. Note that this class was "
125 "originally defined in the scope of a ComputerSystem, and "
126 "was later allowed to be scoped by any System (for example, "
127 karl 1.1 "a computer or application system). Unfortunately, the "
128 "property name, CSName, could not be changed (for example, "
129 "to SystemName) without deprecating the class. This change "
130 "was not deemed critical to the semantics and therefore did "
131 "not merit deprecation. So, the property name remains."),
132 MaxLen ( 256 )]
133 string CSName;
134
135 [Key, Description (
136 "CreationClassName indicates the name of the class or the "
137 "subclass used in the creation of an instance. When used "
138 "with the other key properties of this class, this property "
139 "allows all instances of this class and its subclasses to be "
140 "uniquely identified."),
141 MaxLen ( 256 )]
142 string CreationClassName;
143
144 [Key, Override ( "Name" ), Description (
145 "The inherited Name serves as key of a FileSystem instance "
146 "within a ComputerSystem."),
147 MaxLen ( 256 )]
148 karl 1.1 string Name;
149
150 [Description (
151 "Path name or other information defining the root of the "
152 "FileSystem."),
153 MappingStrings { "MIB.IETF|HOST-RESOURCES-MIB.hrFSMountPoint",
154 "MIF.DMTF|Host File System|001.2" }]
155 string Root;
156
157 [Description (
158 "FileSystems can read/write data in blocks which are defined "
159 "independently of the underlying StorageExtents. This "
160 "property captures the FileSystem's block size for data "
161 "storage and retrieval."),
162 Units ( "Bytes" )]
163 uint64 BlockSize;
164
165 [Description (
166 "The FileSystemSize property stores the total size of the "
167 "File System in bytes. If unknown, enter 0."),
168 Units ( "Bytes" ),
169 karl 1.1 MappingStrings { "MIF.DMTF|Host File System|001.13" }]
170 uint64 FileSystemSize;
171
172 [Description (
173 "AvailableSpace indicates the total amount of free space for "
174 "the FileSystem, in bytes. If unknown, enter 0."),
175 Units ( "Bytes" ), Gauge,
176 MappingStrings { "MIF.DMTF|Host File System|001.14",
177 "MIF.DMTF|Partition|002.4" }]
178 uint64 AvailableSpace;
179
180 [Description (
181 "Indicates that the FileSystem is designated as read only."),
182 MappingStrings { "MIB.IETF|HOST-RESOURCES-MIB.hrFSAccess",
183 "MIF.DMTF|Host File System|001.5" }]
184 boolean ReadOnly;
185
186 [Description (
187 "A free form string indicating the algorithm or tool used to "
188 "encrypt the FileSystem. If it is not possible or not "
189 "desired to describe the encryption scheme (perhaps for "
190 karl 1.1 "security reasons), recommend using the following words: "
191 "\"Unknown\" to represent that it is not known whether the "
192 "FileSystem is encrypted or not, \"Encrypted\" to represent "
193 "that the File System is encrypted but either its encryption "
194 "scheme is not known or not disclosed, and \"Not Encrypted\" "
195 "to represent that the FileSystem is not encrypted."),
196 MappingStrings { "MIF.DMTF|Partition|002.8" }]
197 string EncryptionMethod;
198
199 [Description (
200 "A free form string indicating the algorithm or tool used to "
201 "compress the FileSystem. If it is not possible or not "
202 "desired to describe the compression scheme (perhaps because "
203 "it is not known), recommend using the following words: "
204 "\"Unknown\" to represent that it is not known whether the "
205 "FileSystem is compressed or not, \"Compressed\" to "
206 "represent that the File System is compressed but either its "
207 "compression scheme is not known or not disclosed, and \"Not "
208 "Compressed\" to represent that the FileSystem is not "
209 "compressed."),
210 MappingStrings { "MIF.DMTF|Partition|002.7" }]
211 karl 1.1 string CompressionMethod;
212
213 [Description (
214 "Indicates that case sensitive file names are supported.")]
215 boolean CaseSensitive;
216
217 [Description (
218 "Indicates that the case of file names are preserved.")]
219 boolean CasePreserved;
220
221 [Description (
222 "Array defining the character sets or encoding supported by "
223 "the FileSystem. For example, the values, \"ASCII\" (2) or "
224 "\"ISO2022\" (4), may be specified."),
225 ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8" },
226 Values { "Unknown", "Other", "ASCII", "Unicode", "ISO2022",
227 "ISO8859", "Extended UNIX Code", "UTF-8", "UCS-2" }]
228 uint16 CodeSet[];
229
230 [Description (
231 "Integer indicating the maximum length of a file name within "
232 karl 1.1 "the FileSystem. 0 indicates that there is no limit on file "
233 "name length.")]
234 uint32 MaxFileNameLength;
235
236 [Description (
237 "The minimum file allocation size (an integral number of "
238 "blocks), imposed by the FileSystem. (The size of a block is "
239 "specified in the BlockSize property for the FileSystem.) "
240 "Minimum allocation size is the smallest amount of storage "
241 "allocated to a LogicalFile by the FileSystem. This is not a "
242 "mandatory minimum allocation for all FileSystems. Under "
243 "stress conditions, some FileSystems may allocate storage in "
244 "amounts smaller than the ClusterSize.")]
245 uint32 ClusterSize;
246
247 [Description (
248 "String describing the type of FileSystem and therefore, its "
249 "conventions. For example, \"NTFS\" or \"S5\" may be listed "
250 "as well as any additional information on the FileSystem's "
251 "implementation. Since various flavors of FileSystems (like "
252 "S5) exist, this property is defined as a string."),
253 karl 1.1 MappingStrings { "MIF.DMTF|Partition|002.6",
254 "MIF.DMTF|Host File System|001.4" }]
255 string FileSystemType;
256
257 [Description (
258 "An enumerated value representing the FileSystem's "
259 "perception of its own persistence characteristics. This "
260 "property would typically be set at the time the FileSystem "
261 "is instantiated and would not be changed by external "
262 "actions. A value of \"Persistent\" indicates that the "
263 "FileSystem is persistent, will be preserved through an "
264 "orderly shutdown and should be protected. A value of "
265 "\"Temporary\" indicates that the FileSystem is "
266 "non-persistent, should not be protected and may not survive "
267 "a shutdown. A value of \"External\" indicates that the "
268 "FileSystem is controlled outside of the scope of the "
269 "operating environment and may need to be protected by "
270 "specialized means. A value of \"Other\" is provided to "
271 "allow for additional persistence types, to be described in "
272 "the OtherPersistenceType attribute, and is expected to be "
273 "rarely, if ever, used. A value of \"Unknown\" indicates "
274 karl 1.1 "that the persistence of the FileSystem can not be "
275 "determined."),
276 ValueMap { "0", "1", "2", "3", "4" },
277 Values { "Unknown", "Other", "Persistent", "Temporary",
278 "External" },
279 ModelCorrespondence { "CIM_FileSystem.OtherPersistenceType" }]
280 uint16 PersistenceType;
281
282 [Description (
283 "A string describing the persistence characteristics when "
284 "PersistenceType is \"Other\"."),
285 ModelCorrespondence { "CIM_FileSystem.PersistenceType" }]
286 string OtherPersistenceType;
287
288 [Description (
289 "The number of files contained in the FileSystem.")]
290 uint64 NumberOfFiles;
291
292 [Experimental, Description (
293 "Indicates whether the File size is fixed at creation time "
294 "(value = 1) - the file size is fixed, (value = 2) - the "
295 karl 1.1 "file is not a fixed size. The default (value = 0) indicates "
296 "that this information is not specified. If the File size is "
297 "not fixed, the ResizeIncrement property should specify the "
298 "growth increment, in bytes."),
299 ValueMap { "0", "1", "2" },
300 Values { "Not Specified", "Fixed Size", "Not Fixed Size" },
301 ModelCorrespondence { "CIM_FileSystem.ResizeIncrement" }]
302 uint16 IsFixedSize = 0;
303
304 [Experimental, Description (
305 "The increment size of a resizable File in bytes. If the "
306 "File is a fixed size, or the resize increment is not "
307 "specified, the value of this property must be 0."),
308 Units ( "Bytes" ),
309 ModelCorrespondence { "CIM_FileSystem.IsFixedSize" }]
310 uint64 ResizeIncrement = 0;
311 };
312
313
314 // ===================================================================
315 // LocalFileSystem
316 karl 1.1 // ===================================================================
317 [Version ( "2.6.0" ), Description (
318 "A class derived from FileSystem that represents the file store "
319 "controlled by a ComputerSystem through local means (e.g., "
320 "direct device driver access). In this case, the file store is "
321 "managed directly by the ComputerSystem without the need for "
322 "another computer to act as a file server. This definition does "
323 "not breakdown in the case of a Clustered File System. In this "
324 "scenario, the FileSystem is a LocalFileSystem, weak to the "
325 "Cluster.")]
326 class CIM_LocalFileSystem : CIM_FileSystem {
327 };
328
329
330 // =====================================================================
331 // RemoteFileSystem
332 // =====================================================================
333 [Deprecated { "CIM_FileShare" }, Version ( "2.8.1000" ),
334 Description (
335 "A class derived from FileSystem that represents access of the "
336 "FileSystem via a network-related service. In this case, the "
337 karl 1.1 "file store is hosted by a computer, acting as a file server. "
338 "For example, the file store for an NFS FileSystem is typically "
339 "NOT on a ComputerSystem's locally controlled media, nor is it "
340 "directly accessed through a device driver. Subclasses of "
341 "RemoteFileSystem contain client-side configuration information "
342 "related to the access of the FileSystem. \n"
343 "This has been deprecated by CIM_FileShare, which works with "
344 "the hosted service model. The HostedShare association will "
345 "specify how the remote entity is imported and the "
346 "ImportedFileShareSetting class provides the resources needed "
347 "for the share to function.")]
348 class CIM_RemoteFileSystem : CIM_FileSystem {
349 };
350
351 // ===================================================================
352 // NFS (NetworkFileSystem)
353 // ===================================================================
354 [Deprecated { "CIM_FileShare" }, Version ( "2.6.0" ), Description (
355 "A class derived from RemoteFileSystem representing that the "
356 "FileSystem is mounted, using the NFS protocol, from a "
357 "ComputerSystem. The properties of the NFS object deal with the "
358 karl 1.1 "operational aspects of the mount and represent the client-side "
359 "configuration for NFS access. The FileSystemType (inherited "
360 "from FileSystem) should be set to indicate the type of this "
361 "FileSystem as it appears to the client. \n"
362 "This has been deprecated by CIM_FileShare, which works with "
363 "the hosted service model. The HostedShare association will "
364 "specify how the remote entity is imported and the "
365 "ImportedFileShareSetting class provides the resources needed "
366 "for the share to function. The properties of "
367 "ImportedFileShareSetting deprecate specific properties of this "
368 "class. All properties except \"Interrupt\" have been "
369 "deprecated - it is not clear what or how this property should "
370 "be deprecated.")]
371 class CIM_NFS : CIM_RemoteFileSystem {
372
373 [Deprecated { "CIM_ImportedFileShareSetting.ImportFailurePolicy"
374 }, Description (
375 "If set to true: Once the FileSystem is mounted, NFS "
376 "requests are retried until the hosting System responds. \n"
377 "If set to false: Once the FileSystem is mounted, an error "
378 "is returned if the hosting System does not respond.")]
379 karl 1.1 boolean HardMount;
380
381 [Deprecated { "CIM_ImportedFileShareSetting.RequestRetryPolicy" },
382 Description (
383 "If set to true: Retries are performed in the foreground. \n"
384 "If set to false: If the first mount attempt fails, retries "
385 "are performed in the background.")]
386 boolean ForegroundMount;
387
388 [Deprecated { "No value" }, Description (
389 "If set to true: Interrupts are permitted for hard mounts. \n"
390 "If set to false: Interrupts are ignored for hard mounts.")]
391 boolean Interrupt;
392
393 [Deprecated { "CIM_ImportedFileShareSetting.ImportRetriesMax" },
394 Description (
395 "Maximum number of mount failure retries allowed.")]
396 uint16 MountFailureRetries;
397
398 [Deprecated {
399 "CIM_ImportedFileShareSetting.TransmissionRetriesMax" },
400 karl 1.1 Description (
401 "Maximum number of NFS retransmissions allowed.")]
402 uint16 RetransmissionAttempts;
403
404 [Deprecated {
405 "CIM_ImportedFileShareSetting.RetransmissionTimeoutMin" },
406 Description (
407 "NFS timeout in tenths of a second."),
408 Units ( "Tenths of Seconds" )]
409 uint32 RetransmissionTimeout;
410
411 [Deprecated { "CIM_ImportedFileShareSetting.ReadBufferSizeMin" },
412 Description (
413 "Read buffer size in bytes."),
414 Units ( "Bytes" )]
415 uint64 ReadBufferSize;
416
417 [Deprecated { "CIM_ImportedFileShareSetting.WriteBufferSizeMin" },
418 Description (
419 "Write buffer size in bytes."),
420 Units ( "Bytes" )]
421 karl 1.1 uint64 WriteBufferSize;
422
423 [Deprecated { "CIM_ImportedFileShareSetting.AccessPoints" },
424 Description (
425 "The remote ComputerSystem's (ie, the NFS File 'Server's) "
426 "UDP port number.")]
427 uint32 ServerCommunicationPort;
428
429 [Deprecated {
430 "CIM_ImportedFileShareSetting.AttributeCachingObjects" },
431 Description (
432 "If set to true: Control attribute caching is enabled. \n"
433 "If set to false: Control attribute caching is disabled.")]
434 boolean AttributeCaching;
435
436 [Deprecated {
437 "CIM_ImportedFileShareSetting.AttributeCachingTimeMin" },
438 Description (
439 "Minimum number of seconds that cached attributes are held "
440 "after file modification."),
441 Units ( "Seconds" )]
442 karl 1.1 uint16 AttributeCachingForRegularFilesMin;
443
444 [Deprecated {
445 "CIM_ImportedFileShareSetting.AttributeCachingTimeMax" },
446 Description (
447 "Maximum number of seconds that cached attributes are held "
448 "after file modification."),
449 Units ( "Seconds" )]
450 uint16 AttributeCachingForRegularFilesMax;
451
452 [Deprecated {
453 "CIM_ImportedFileShareSetting.AttributeCachingTimeMin" },
454 Description (
455 "Minimum number of seconds that cached attributes are held "
456 "after directory update."),
457 Units ( "Seconds" )]
458 uint16 AttributeCachingForDirectoriesMin;
459
460 [Deprecated {
461 "CIM_ImportedFileShareSetting.AttributeCachingTimeMax" },
462 Description (
463 karl 1.1 "Maximum number of seconds that cached attributes are held "
464 "after directory update."),
465 Units ( "Seconds" )]
466 uint16 AttributeCachingForDirectoriesMax;
467 };
468
469 // ===================================================================
470 // FileSystemSettingData
471 // ===================================================================
472 [Deprecated { "CIM_FileSystemSetting",
473 "CIM_FileSystemCapabilities" },
474 Version ( "2.8.1000" ), Description (
475 "This class allows a client to specify the desired persistence "
476 "of a FileSystem. This information is tied to the FileSystem "
477 "using the ElementSettingData association. \n"
478 "This class is being deprecated because the replacing classes "
479 "FileSystemSetting and FileSystemCapabilities will provide "
480 "support for persistence and recoverability.")]
481 class CIM_FileSystemSettingData : CIM_ScopedSettingData {
482
483 [Deprecated { "CIM_FileSystemSetting.PersistenceTypes" }, Write,
484 karl 1.1 Description (
485 "An enumerated value representing the intended persistence "
486 "characteristics of the FileSystem. A value of "
487 "\"Persistent\" indicates that the FileSystem should be "
488 "persistent, should be preserved through an orderly shutdown "
489 "and should be protected. A value of \"Temporary\" indicates "
490 "that the FileSystem should be non-persistent, should not be "
491 "protected and may not survive a shutdown. A value of "
492 "\"External\" indicates that the FileSystem should be "
493 "controlled outside of the operating environment and may "
494 "need to be protected by specialized means. A value of "
495 "\"Other\" is provided to allow for additional persistence "
496 "types, to be described in the OtherPersistenceType "
497 "attribute, and is expected to be rarely, if ever, used."),
498 ValueMap { "1", "2", "3", "4" },
499 Values { "Other", "Persistent", "Temporary", "External" },
500 ModelCorrespondence {
501 "CIM_FileSystemSettingData.OtherPersistenceType",
502 "CIM_FileSystem.PersistenceType" }]
503 uint16 PersistenceType;
504
505 karl 1.1 [Deprecated { "CIM_FileSystemSetting.OtherPersistenceTypes" },
506 Write, Description (
507 "A string describing the persistence characteristics when "
508 "PersistenceType is \"Other\"."),
509 ModelCorrespondence {
510 "CIM_FileSystemSettingData.PersistenceType",
511 "CIM_FileSystem.OtherPersistenceType" }]
512 string OtherPersistenceType;
513 };
514
515 // ===================================================================
516 // LogicalFile
517 // ===================================================================
518 [Version ( "2.6.0" ), Description (
519 "A LogicalFile is a named collection of data or executable "
520 "code, or represents a LogicalDevice or Directory. It is "
521 "located within the context of a FileSystem, on a Storage "
522 "Extent.")]
523 class CIM_LogicalFile : CIM_LogicalElement {
524
525 [Key, Propagated ( "CIM_FileSystem.CSCreationClassName" ),
526 karl 1.1 Description (
527 "The scoping ComputerSystem's CreationClassName."),
528 MaxLen ( 256 )]
529 string CSCreationClassName;
530
531 [Key, Propagated ( "CIM_FileSystem.CSName" ), Description (
532 "The scoping ComputerSystem's Name."),
533 MaxLen ( 256 )]
534 string CSName;
535
536 [Key, Propagated ( "CIM_FileSystem.CreationClassName" ),
537 Description (
538 "The scoping FileSystem's CreationClassName."),
539 MaxLen ( 256 )]
540 string FSCreationClassName;
541
542 [Key, Propagated ( "CIM_FileSystem.Name" ), Description (
543 "The scoping FileSystem's Name."),
544 MaxLen ( 256 )]
545 string FSName;
546
547 karl 1.1 [Key, Description (
548 "CreationClassName indicates the name of the class or the "
549 "subclass used in the creation of an instance. When used "
550 "with the other key properties of this class, this property "
551 "allows all instances of this class and its subclasses to be "
552 "uniquely identified."),
553 MaxLen ( 256 )]
554 string CreationClassName;
555
556 [Key, Override ( "Name" ), Description (
557 "The inherited Name serves as part of the key of a "
558 "LogicalFile instance within a FileSystem. A unique "
559 "identifier (such as a full path name) is required as a Name "
560 "value. Since Files are weak to their FileSystem (and not to "
561 "a Directory which would provide a more granular naming "
562 "algorithm), care must be taken to make LogicalFile's Name "
563 "unique for a given Creation ClassName and FileSystem. A "
564 "full path name is one way to do this."),
565 MaxLen ( 1024 )]
566 string Name;
567
568 karl 1.1 [Description (
569 "Size of the File in bytes."),
570 Units ( "Bytes" ), Gauge]
571 uint64 FileSize;
572
573 [Description (
574 "File's creation date.")]
575 datetime CreationDate;
576
577 [Description (
578 "Time that the File was last modified.")]
579 datetime LastModified;
580
581 [Description (
582 "Time that the File was last accessed.")]
583 datetime LastAccessed;
584
585 [Description (
586 "Boolean indicating that the File can be read.")]
587 boolean Readable;
588
589 karl 1.1 [Description (
590 "Boolean indicating that the File can be written.")]
591 boolean Writeable;
592
593 [Description (
594 "Indicates the file is executable.")]
595 boolean Executable;
596
597 [Description (
598 "A free form string indicating the algorithm or tool used to "
599 "compress the LogicalFile. If it is not possible or not "
600 "desired to describe the compression scheme (perhaps because "
601 "it is not known), recommend using the following words: "
602 "\"Unknown\" to represent that it is not known whether the "
603 "LogicalFile is compressed or not, \"Compressed\" to "
604 "represent that the File is compressed but either its "
605 "compression scheme is not known or not disclosed, and \"Not "
606 "Compressed\" to represent that the LogicalFile is not "
607 "compressed.")]
608 string CompressionMethod;
609
610 karl 1.1 [Description (
611 "A free form string indicating the algorithm or tool used to "
612 "encrypt the LogicalFile. If it is not possible or not "
613 "desired to describe the encryption scheme (perhaps for "
614 "security reasons), recommend using the following words: "
615 "\"Unknown\" to represent that it is not known whether the "
616 "LogicalFile is encrypted or not, \"Encrypted\" to represent "
617 "that the File is encrypted but either its encryption scheme "
618 "is not known or not disclosed, and \"Not Encrypted\" to "
619 "represent that the LogicalFile is not encrypted.")]
620 string EncryptionMethod;
621
622 [Description (
623 "Integer indicating the number of 'file opens' that are "
624 "currently active against the File."),
625 Counter]
626 uint64 InUseCount;
627 };
628
629
630 // ===================================================================
631 karl 1.1 // DataFile
632 // ===================================================================
633 [Version ( "2.6.0" ), Description (
634 "DataFile is a type of LogicalFile that is a named collection "
635 "of data or executable code.")]
636 class CIM_DataFile : CIM_LogicalFile {
637 };
638
639
640 // ===================================================================
641 // Directory
642 // ===================================================================
643 [Version ( "2.6.0" ), Description (
644 "Directory is a type of File that logically groups Files "
645 "'contained' in it, and provides path information for the "
646 "grouped Files.")]
647 class CIM_Directory : CIM_LogicalFile {
648 };
649
650
651 // ===================================================================
652 karl 1.1 // DeviceFile
653 // ===================================================================
654 [Version ( "2.6.0" ), Description (
655 "DeviceFile is a special type of LogicalFile that represents a "
656 "Device. This convention is useful for some operating systems "
657 "that manage devices using a byte stream I/O model. The Logical "
658 "Device that is associated with this file is specified using "
659 "the DeviceAccessedByFile relationship.")]
660 class CIM_DeviceFile : CIM_LogicalFile {
661 };
662
663
664 // ===================================================================
665 // FIFOPipeFile
666 // ===================================================================
667 [Version ( "2.6.0" ), Description (
668 "FIFOPipeFile is a special type of LogicalFile that represents "
669 "an interprocess FIFO (sometimes referred to as a \"named "
670 "pipe\"). Operating systems use this convention to manage "
671 "interprocess communication through processes reading and "
672 "writing the FIFO. The FIFO can be accessed by unrelated "
673 karl 1.1 "processes, in contrast to the more well-known command line "
674 "redirection mechanism (e.g. UNIX's 'ps -eaf | grep foo', also "
675 "known as an \"unnamed pipe\"). An exemplary operating system "
676 "implementation (using the FIFO concept) is the UNIX S_IFIFO "
677 "file type.")]
678 class CIM_FIFOPipeFile : CIM_LogicalFile {
679 };
680
681
682 // ===================================================================
683 // SymbolicLink
684 // ===================================================================
685 [Version ( "2.6.0" ), Description (
686 "This class is a special type of LogicalFile that represents a "
687 "Symbolic Link. This convention is useful for some operating "
688 "systems that want to represent a single file in multiple "
689 "places or a single file that is represented via multiple "
690 "names.")]
691 class CIM_SymbolicLink : CIM_LogicalFile {
692
693 [Required, Description (
694 karl 1.1 "The target file of the symbolic link.")]
695 string TargetFile;
696 };
697
698
699 // ===================================================================
700 // DeviceAccessedByFile
701 // ===================================================================
702 [Association, Version ( "2.6.0" ), Description (
703 "Specifies the LogicalDevice that is associated with, and "
704 "accessed using the referenced DeviceFile.")]
705 class CIM_DeviceAccessedByFile : CIM_Dependency {
706
707 [Override ( "Antecedent" ), Description (
708 "The DeviceFile.")]
709 CIM_DeviceFile REF Antecedent;
710
711 [Override ( "Dependent" ), Max ( 1 ), Description (
712 "The Device that is accessed using the DeviceFile.")]
713 CIM_LogicalDevice REF Dependent;
714 };
715 karl 1.1
716
717 // ===================================================================
718 // DirectoryContainsFile
719 // ===================================================================
720 [Association, Aggregation, Composition, Version ( "2.7.0" ),
721 Description (
722 "Specifies the hierarchical arrangement of LogicalFiles in a "
723 "Directory.")]
724 class CIM_DirectoryContainsFile : CIM_Component {
725
726 [Aggregate, Override ( "GroupComponent" ), Max ( 1 ),
727 Description (
728 "The Directory.")]
729 CIM_Directory REF GroupComponent;
730
731 [Override ( "PartComponent" ), Description (
732 "The LogicalFile 'contained within' the Directory.")]
733 CIM_LogicalFile REF PartComponent;
734 };
735
736 karl 1.1
737 // ===================================================================
738 // Mount
739 // ===================================================================
740 [Association, Version ( "2.6.0" ), Description (
741 "An association between a FileSystem and a Directory which "
742 "indicates that the Directory is being attached to the "
743 "FileSystem. The semantics of this relationship require that "
744 "the mounted Directory be contained by a FileSystem (via the "
745 "FileStorage association) that is different from the FileSystem "
746 "referenced as the Dependent. The Directory's containing "
747 "FileSystem could be either local or remote. For example, a "
748 "LocalFileSystem on a Solaris ComputerSystem can mount a "
749 "Directory from the FileSystem accessed via the machine's CDROM "
750 "drive, i.e., another LocalFile System. On the other hand, in a "
751 "'remote' case, the Directory is first exported by its "
752 "FileSystem, which is hosted on another ComputerSystem acting "
753 "(for example) as a file server. In order to distinguish these "
754 "two types of Mount, it is recommended that a CIM_Export "
755 "association always be defined for the remotely "
756 "accessed/mounted Directories.")]
757 karl 1.1 class CIM_Mount : CIM_Dependency {
758
759 [Override ( "Antecedent" ), Max ( 1 ), Description (
760 "The Directory mounted.")]
761 CIM_Directory REF Antecedent;
762
763 [Override ( "Dependent" ), Description (
764 "The FileSystem the Directory is mounted on.")]
765 CIM_FileSystem REF Dependent;
766 };
767
768
769 // ===================================================================
770 // Export
771 // ===================================================================
772 [Association, Version ( "2.6.0" ), Description (
773 "An association between a LocalFileSystem and its Directories "
774 "indicating that the specified Directories are available for "
775 "mount. When exporting an entire FileSystem, the Directory "
776 "should reference the topmost directory of the FileSystem.")]
777 class CIM_Export {
778 karl 1.1
779 [Key, Max ( 1 ), Description (
780 "The LocalFileSystem.")]
781 CIM_LocalFileSystem REF LocalFS;
782
783 [Key, Description (
784 "The Directory exported for mount.")]
785 CIM_Directory REF Directory;
786
787 [Description (
788 "Name under which the Directory is exported.")]
789 string ExportedDirectoryName;
790 };
791
792
793 // ===================================================================
794 // HostedFileSystem
795 // ===================================================================
796 [Association, Aggregation, Composition, Version ( "2.7.0" ),
797 Description (
798 "A link between the System (such as a Computer or Application "
799 karl 1.1 "System) and the FileSystem that is a part of it.")]
800 class CIM_HostedFileSystem : CIM_SystemComponent {
801
802 [Aggregate, Override ( "GroupComponent" ), Min ( 1 ), Max ( 1 ),
803 Description (
804 "The System that hosts the FileSystem.")]
805 CIM_System REF GroupComponent;
806
807 [Override ( "PartComponent" ), Weak, Description (
808 "The FileSystem that is part of the System and hosted on it.")]
809 CIM_FileSystem REF PartComponent;
810 };
811
812
813 // ===================================================================
814 // FileStorage
815 // ===================================================================
816 [Association, Aggregation, Composition, Version ( "2.7.0" ),
817 Description (
818 "A link between the FileSystem and the LogicalFile(s) addressed "
819 "through this FileSystem.")]
820 karl 1.1 class CIM_FileStorage : CIM_Component {
821
822 [Aggregate, Override ( "GroupComponent" ), Min ( 1 ), Max ( 1 ),
823 Description (
824 "The FileSystem.")]
825 CIM_FileSystem REF GroupComponent;
826
827 [Override ( "PartComponent" ), Weak, Description (
828 "The LogicalFile stored in the context of the FileSystem.")]
829 CIM_LogicalFile REF PartComponent;
830 };
831
832 // ===================================================================
833 // ResidesOnExtent
834 // ===================================================================
835 [Association, Version ( "2.8.0" ), Description (
836 "An association between a LogicalElement and the StorageExtent "
837 "where it is located. Typically, a FileSystem ResidesOn a "
838 "LogicalDisk. However, it is possible for a logical file or "
839 "other internal data store to reside directly on a "
840 "StorageExtent or appropriate subclass.")]
841 karl 1.1 class CIM_ResidesOnExtent : CIM_Dependency {
842
843 [Override ( "Antecedent" ), Description (
844 "The StorageExtent.")]
845 CIM_StorageExtent REF Antecedent;
846
847 [Override ( "Dependent" ), Description (
848 "The LogicalElement that is located on the StorageExtent.")]
849 CIM_LogicalElement REF Dependent;
850 };
851
852
853 // ===================================================================
854 // Share
855 // ===================================================================
856 [Experimental, Abstract, Version ( "2.8.1000" ), Description (
857 "A Share is representative of an object presented for use (or "
858 "shared) across systems. Instances of CIM_Share are associated "
859 "with the shared object on the 'server'-side via the "
860 "CIM_SharedElement association. Shares are mounted on the "
861 "'client'-side (usually into another namespace) via the "
862 karl 1.1 "CIM_Import Share association. CIM_Share is Abstract to force "
863 "subclassing to define the semantics of sharing.")]
864 class CIM_Share : CIM_EnabledLogicalElement {
865
866 [Key, Description (
867 "Within the scope of the instantiating Namespace, InstanceID "
868 "opaquely and uniquely identifies an instance of this class. "
869 "In order to ensure uniqueness within the NameSpace, the "
870 "value of InstanceID SHOULD be constructed using the "
871 "following 'preferred' algorithm: \n"
872 "<OrgID>:<LocalID> \n"
873 "Where <OrgID> and <LocalID> are separated by a colon ':', "
874 "and where <OrgID> MUST include a copyrighted, trademarked "
875 "or otherwise unique name that is owned by the business "
876 "entity creating/defining the InstanceID, or is a registered "
877 "ID that is assigned to the business entity by a recognized "
878 "global authority. (This is similar to the <Schema "
879 "Name>_<Class Name> structure of Schema class names.) In "
880 "addition, to ensure uniqueness <OrgID> MUST NOT contain a "
881 "colon (':'). When using this algorithm, the first colon to "
882 "appear in InstanceID MUST appear between <OrgID> and "
883 karl 1.1 "<LocalID>. \n"
884 "\n"
885 "<LocalID> is chosen by the business entity and SHOULD not "
886 "be re-used to identify different underlying (real-world) "
887 "elements. If the above 'preferred' algorithm is not used, "
888 "the defining entity MUST assure that the resultant "
889 "InstanceID is not re-used across any InstanceIDs produced "
890 "by this or other providers for this instance's NameSpace.")]
891 string InstanceID;
892
893 };
894
895
896 // ===================================================================
897 // FileShare
898 // ===================================================================
899 [Experimental, Abstract, Version ( "2.8.1000" ), Description (
900 "A FileShare is representative of a LogicalFile presented for "
901 "use (or shared) across systems. Instances of FileShare are "
902 "associated with the shared object on the 'server'-side via the "
903 "CIM_SharedElement association. Shares are attached on the "
904 karl 1.1 "'client'-side (usually into another namespace) via the "
905 "CIM_ImportedShare association. FileShare is Abstract to force "
906 "subclassing to define the semantics of the file-sharing "
907 "protocol. FileShare when used for importing deprecates "
908 "RemoteFileSystem.")]
909 class CIM_FileShare : CIM_Share {
910
911 [Description (
912 "Indicates whether a directory or file is presented for use "
913 "(or shared) across systems. A value of true represents a "
914 "directory. A value of false represents a file.")]
915 boolean SharingDirectory;
916 };
917
918
919 // ===================================================================
920 // NFSShare
921 // ===================================================================
922 [Experimental, Version ( "2.8.1000" ), Description (
923 "An NFSShare represents a Directory associated via "
924 "CIM_SharedElement that is made accessible to other systems. On "
925 karl 1.1 "the client-side, the NFSShare is associated with its mount "
926 "point via CIM_ImportedShare.")]
927 class CIM_NFSShare : CIM_FileShare {
928
929 [Override ( "Name" ), Description (
930 "The Name property, inherited from Share, defines the shared "
931 "name by which the shared object is exported. For NFS, this "
932 "will typically be the pathname of the exported directory, "
933 "using forward slashes '/' to precede directory names in the "
934 "path.")]
935 string Name;
936 };
937
938
939 // ===================================================================
940 // CIFSShare
941 // ===================================================================
942 [Experimental, Version ( "2.8.1000" ), Description (
943 "A CIFSShare represents a File, Directory, or Print Queue that "
944 "is made accessible to other systems. If a File or Directory, "
945 "it is associated via CIM_SharedElement. And on the "
946 karl 1.1 "client-side, the CIFSShare representing the File or Directory "
947 "is associated with its mount point via CIM_ImportedShare. "
948 "Other subclasses of LogicalIdentity would make the "
949 "associations for other types of CIFSShare.")]
950 class CIM_CIFSShare : CIM_FileShare {
951
952 [Override ( "Name" ), Description (
953 "The Name property, inherited from Share, defines the shared "
954 "name by which the shared object is exported. For CIFS, this "
955 "will typically be a single-level, user-friendly, "
956 "system-unique name.")]
957 string Name;
958 };
959
960
961 // ===================================================================
962 // SharedElement
963 // ===================================================================
964 [Association, Experimental, Version ( "2.8.1000" ), Description (
965 "SharedElement associates the Share to a LogicalElement that is "
966 "being exported.")]
967 karl 1.1 class CIM_SharedElement : CIM_LogicalIdentity {
968
969 [Override ( "SystemElement" ), Max ( 1 ), Description (
970 "The LogicalElement (or derived subclass) that is exported "
971 "as a Share. In the context of file sharing, the "
972 "LogicalElement will be a LogicalFile (or Directory derived "
973 "from LogicalFile).")]
974 CIM_LogicalElement REF SystemElement;
975
976 [Override ( "SameElement" ), Description (
977 "The Share that exposes the LogicalElement as an exported "
978 "object. In the context of file sharing, the Share will be a "
979 "FileShare (or a derived class).")]
980 CIM_Share REF SameElement;
981 };
982
983 // ===================================================================
984 // AttachedElement
985 // ===================================================================
986 [Association, Experimental, Version ( "2.8.1000" ), Description (
987 "An association between two LogicalElements indicating that the "
988 karl 1.1 "SameElement is being attached to the SystemElement.")]
989 class CIM_AttachedElement : CIM_LogicalIdentity {
990
991 [Override ( "SystemElement" ), Description (
992 "The LogicalElement that the SameElement will be attached to "
993 "and will provide access to the SameElement.")]
994 CIM_LogicalElement REF SystemElement;
995
996 [Override ( "SameElement" ), Max ( 1 ), Description (
997 "The LogicalElement that is being made available using the "
998 "SystemElement as a surrogate.")]
999 CIM_LogicalElement REF SameElement;
1000 };
1001
1002 // ===================================================================
1003 // MountedElement
1004 // ===================================================================
1005 [Association, Experimental, Version ( "2.8.1000" ), Description (
1006 "An association derived from AttachedElement for use in "
1007 "attaching a FileSystem to a LogicalFile (or Directory). The "
1008 "semantics of this relationship require that the SystemElement "
1009 karl 1.1 "LogicalFile be contained by a FileSystem (via the FileStorage "
1010 "association) that is different from the FileSystem referenced "
1011 "as the SameElement. The LogicalFile's containing FileSystem "
1012 "could be either local or remote. For example, a "
1013 "LocalFileSystem on a Solaris ComputerSystem can mount on its "
1014 "LogicalFile a FileSystem accessed via the machine's CDROM "
1015 "drive, i.e., another LocalFileSystem. On the other hand, in a "
1016 "'remote' case, the LogicalFile must be surfaced in the "
1017 "namespace of the local host appropriately.")]
1018 class CIM_MountedElement : CIM_AttachedElement {
1019
1020 [Override ( "SystemElement" ), Description (
1021 "The LogicalFile that the SameElement (a FileSystem) will be "
1022 "attached to and that will provide access to the "
1023 "SameElement.")]
1024 CIM_LogicalElement REF SystemElement;
1025
1026 [Override ( "SameElement" ), Max ( 1 ), Description (
1027 "The FileSystem that is being made available using the "
1028 "SystemElement as a surrogate.")]
1029 CIM_LogicalElement REF SameElement;
1030 karl 1.1 };
1031
1032 // ===================================================================
1033 // ImportedShare
1034 // ===================================================================
1035 [Association, Experimental, Version ( "2.8.1000" ), Description (
1036 "An association derived from MountedElement for attaching an "
1037 "imported FileShare to a LogicalFile (or Directory). The "
1038 "semantics of this relationship require that the SameElement be "
1039 "an imported FileShare.")]
1040 class CIM_ImportedShare : CIM_MountedElement {
1041
1042 [Override ( "SystemElement" ), Description (
1043 "The LogicalFile that the SameElement (a FileShare) will be "
1044 "attached to and that will provide access to the "
1045 "SameElement.")]
1046 CIM_LogicalElement REF SystemElement;
1047
1048 [Override ( "SameElement" ), Max ( 1 ), Description (
1049 "The FileShare that is being made available using the "
1050 "SystemElement (a LogicalFile) as a surrogate.")]
1051 karl 1.1 CIM_LogicalElement REF SameElement;
1052 };
1053
1054 // ===================================================================
1055 // ImportedShareRoot
1056 // ===================================================================
1057 [Association, Experimental, Version ( "2.8.1000" ), Description (
1058 "ImportedShareRoot provides additional information for the "
1059 "ImportedShare association. It requires that the Dependent be a "
1060 "FileShare and that the Antecedent be a LogicalFile.")]
1061 class CIM_ImportedShareRoot : CIM_Dependency {
1062
1063 [Override ( "Antecedent" ), Description (
1064 "The Directory that is the container for the LogicalElement "
1065 "that has a FileShare attached to it with ImportedShare."),
1066 ModelCorrespondence { "CIM_ImportedShare.SystemElement" }]
1067 CIM_LogicalElement REF Antecedent;
1068
1069 [Override ( "Dependent" ), Max ( 1 ), Description (
1070 "The FileShare that is attached to a Directory with "
1071 "ImportedShare."),
1072 karl 1.1 ModelCorrespondence { "CIM_ImportedShare.SameElement" }]
1073 CIM_LogicalElement REF Dependent;
1074 };
1075
1076 // ==================================================================
1077 // HostedShare
1078 // ==================================================================
1079 [Association, Experimental, Version ( "2.8.1000" ), Description (
1080 "CIM_HostedShare is an association between a Share and the "
1081 "System on which the functionality resides. The cardinality of "
1082 "this association is many-to-many but a FileShare must have at "
1083 "least 1 host system, either exporting or importing it. (A "
1084 "System may host many Shares and a Share may be hosted by more "
1085 "than one System, but a Share must have at least one "
1086 "HostedShare). \n"
1087 "Heuristic: For export, a Share is hosted on the System where "
1088 "the LogicalElement that is exported by the Share is located "
1089 "(via SharedElement, derived from LogicalIdentity). For import, "
1090 "a Share is hosted on the System where the LogicalFile (or "
1091 "other namespace element) that provides the mount-point for the "
1092 "share is located (via ImportedShare, derived from "
1093 karl 1.1 "LogicalIdentity).")]
1094 class CIM_HostedShare : CIM_HostedDependency {
1095
1096 [Override ( "Antecedent" ), Min ( 1 ), Description (
1097 "The hosting System.")]
1098 CIM_System REF Antecedent;
1099
1100 [Override ( "Dependent" ), Description (
1101 "The Share hosted on the System.")]
1102 CIM_Share REF Dependent;
1103
1104 [Description (
1105 "A string that uniquely identifies the remote element "
1106 "(expected to be an ExportedFileShare) that the Dependent "
1107 "Share represents if this is an imported Share. This is an "
1108 "opaque, unique identifier that provides an unambiguous name "
1109 "for the remote share -- we expect that it will be a WWN but "
1110 "any other interoperable format (e.g., a URI) would also "
1111 "work.")]
1112 string RemoteShareWWN;
1113 };
1114 karl 1.1
1115 // ===================================================================
1116 // SharedElementRoot
1117 // ===================================================================
1118 [Association, Experimental, Version ( "2.8.1000" ), Description (
1119 "SharedElementRoot associates the Share to a LogicalElement "
1120 "that is the container for an exported element. The exported "
1121 "element will be identified by a relative path rooted at this "
1122 "element.")]
1123 class CIM_SharedElementRoot : CIM_Dependency {
1124
1125 [Override ( "Antecedent" ), Max ( 1 ), Description (
1126 "The LogicalElement that is the container for an exported "
1127 "element that is being shared. In the context of sharing "
1128 "file elements, Antecedent could be a FileSystem, or an "
1129 "imported FileShare, or a LogicalFile.")]
1130 CIM_LogicalElement REF Antecedent;
1131
1132 [Override ( "Dependent" ), Description (
1133 "The Share that references the Antecedent as the root "
1134 "element that provides the shared element. In the context of "
1135 karl 1.1 "sharing file elements, Dependent would be an exported "
1136 "FileShare.")]
1137 CIM_Share REF Dependent;
1138 };
1139
1140 // ===================================================================
1141 // end of file
1142 // ===================================================================
|