1 marek 1.1 // Copyright (c) 2005 DMTF. All rights reserved.
2 // <change cr="ArchCR00066.004" type="add">Add UmlPackagePath
3 // qualifier values to CIM Schema.</change>
4 // ==================================================================
5 // CIM_UnixFile
6 // ==================================================================
7 [Version ( "2.6.0" ),
8 UMLPackagePath ( "CIM::System::Unix" ),
9 Description (
10 "The UnixFile class holds properties that are valid for various "
11 "subclasses of LogicalFile, in a Unix environment. This is "
12 "defined as a separate and unique class since it is applicable "
13 "to Unix files, directories, etc. It is associated via a "
14 "FileIdentity relationship to these subclasses of LogicalFile. "
15 "Unless this approach of creating and associating a separate "
16 "class is used, it is necessary to subclass each of the "
17 "inheritance hierarchies under LogicalFile, duplicating the "
18 "properties in this class. The referenced _PC* and _POSIX* "
19 "constants are defined in unistd.h. Some properties indicate "
20 "whether the UNIX implementation support a feature such as "
21 "asynchronous I/O or priority I/O. If supported, sysconf "
22 marek 1.1 "returns the value as defined in the appropriate header file "
23 "such as unistd.h. If a feature is not supported, then pathconf "
24 "returns a -1. In this case, the corresponding property should "
25 "be returned without any value." )]
26 class CIM_UnixFile : CIM_LogicalElement {
27
28 [Key, Description (
29 "The scoping ComputerSystem\'s CreationClassName." ),
30 MaxLen ( 256 ),
31 Propagated ( "CIM_LogicalFile.CSCreationClassName" )]
32 string CSCreationClassName;
33
34 [Key, Description ( "The scoping ComputerSystem\'s Name." ),
35 MaxLen ( 256 ),
36 Propagated ( "CIM_LogicalFile.CSName" )]
37 string CSName;
38
39 [Key, Description (
40 "The scoping FileSystem\'s CreationClassName." ),
41 MaxLen ( 256 ),
42 Propagated ( "CIM_LogicalFile.FSCreationClassName" )]
43 marek 1.1 string FSCreationClassName;
44
45 [Key, Description ( "The scoping FileSystem\'s Name." ),
46 MaxLen ( 256 ),
47 Propagated ( "CIM_LogicalFile.FSName" )]
48 string FSName;
49
50 [Key, Description (
51 "The scoping LogicalFile\'s CreationClassName." ),
52 MaxLen ( 256 ),
53 Propagated ( "CIM_LogicalFile.CreationClassName" )]
54 string LFCreationClassName;
55
56 [Key, Description ( "The scoping LogicalFile\'s Name." ),
57 MaxLen ( 1024 ),
58 Propagated ( "CIM_LogicalFile.Name" )]
59 string LFName;
60
61 [Required, Description (
62 "An Identifer that uniquely describes the owner of this file."
63 )]
64 marek 1.1 string UserID;
65
66 [Required, Description (
67 "An identifier that describes the group that owns this file."
68 )]
69 string GroupID;
70
71 [Description (
72 "Indicates restricted deletion for directories, or "
73 "possible implementation defined properties for "
74 "executable files. For directories this is known as the "
75 "sticky bit." )]
76 boolean SaveText;
77
78 [Description ( "Count of the number of names for this file." ),
79 Counter]
80 uint64 LinkCount;
81
82 [Description ( "File Inode number, as printed by \"ls -i\"." ),
83 MappingStrings { "UNIX.TOG|ls -i" }]
84 string FileInodeNumber;
85 marek 1.1
86 [Description (
87 "Indicates whether the associated file has setuid permissions."
88 )]
89 boolean SetUid;
90
91 [Description (
92 "Indicates whether the associated file has setgid permissions."
93 )]
94 boolean SetGid;
95
96 [Description (
97 "The time that the Inode was last modified. This includes "
98 "the Inode creation time, state modification, and etc." )]
99 datetime LastModifiedInode;
100
101 [Description ( "Maximum number of links to a single file." ),
102 MinValue ( 8 ),
103 MappingStrings { "POSIX.TOG|pathconf|_PC_LINK_MAX" }]
104 uint64 LinkMax;
105
106 marek 1.1 [Description (
107 "Maximum number of bytes in a filename, not including "
108 "terminating null." ),
109 Units ( "Bytes" ),
110 MinValue ( 14 ),
111 MappingStrings { "POSIX.TOG|pathconf|_POSIX_NAME_MAX" }]
112 uint64 NameMax;
113
114 [Description (
115 "Maximum number of bytes in a pathname, including the "
116 "terminating null character." ),
117 Units ( "Bytes" ),
118 MinValue ( 255 ),
119 MappingStrings { "POSIX.TOG|pathconf|_POSIX_PATH_MAX" }]
120 uint64 PathMax;
121
122 [Description (
123 "The use of chown() is restricted to a process with "
124 "appropriate privileges. chown() is used to change the "
125 "group ID of a file. The group ID can be changed to the "
126 "effective group ID or one of its supplementary group "
127 marek 1.1 "IDs." ),
128 MappingStrings { "POSIX.TOG|pathconf|_PC_CHOWN_RESTRICTED" }]
129 uint64 PosixChownRestricted;
130
131 [Description (
132 "Indicates whether pathname components longer than "
133 "NameMax generate an error." ),
134 MappingStrings { "POSIX.TOG|pathconf|_PC_NO_TRUNC" },
135 ModelCorrespondence { "CIM_UnixFile.NameMax" }]
136 uint64 PosixNoTrunc;
137
138 [Description (
139 "Indicates whether asynchronous input or output "
140 "operations may be performed for the associated file." ),
141 MappingStrings { "POSIX.TOG|pathconf|_PC_ASYNC_IO" }]
142 uint64 PosixAsyncIo;
143
144 [Description (
145 "Indicates whether prioritized input or output operations "
146 "may be performed for the associated file." ),
147 MappingStrings { "POSIX.TOG|pathconf|_PC_PRIO_IO" }]
148 marek 1.1 uint64 PosixPrioIo;
149
150 [Description (
151 "Indicates whether synchronised input or output "
152 "operations may be performed for the associated file." ),
153 MappingStrings { "POSIX.TOG|pathconf|_PC_SYNC_IO" }]
154 uint64 PosixSyncIo;
155
156
157 };
|