1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License").  You may not use this file except in compliance
7 * with the License.
8 *
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 *
20 * CDDL HEADER END
21 */
22/*
23 * ident	"%Z%%M%	%I%	%E% SMI"
24 * Title       Solaris Network File System (NFS) MOF specification 1.3
25 * Description Solaris Network File System model.
26 * Date        03/21/2003
27 * Version     1.3
28 * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
29 * Use is subject to license terms.
30 */
31
32#pragma namespace("root/cimv2")
33#pragma Locale ("en_US")
34
35// ===================================================================
36//   Objects
37// ===================================================================
38
39#pragma namespace("__create")
40
41[Provider("jni:libWBEMnfs.so"),
42 Version("1.3.0"),
43 Description (
44     "A class that represents a local NFS shared object on the "
45     "server side that is made accessible to other systems.")
46]
47class Solaris_NFSShare : CIM_NFSShare
48{
49    [Description("If set to true: maximal  access  is  given  to all "
50    		 "clients. Valid for NFS version 2 only.  Corresponds "
51                 "to the 'aclok' share_nfs option (Solaris 9)."),
52     ModelCorrespondence{"Solaris_NFSMount.Version"}]
53    boolean AllowAccessControl = false;
54
55    [Description("Sets the the effective user ID of unknown users. By "
56		 "default, unknown users are given the effective user "
57		 "ID UID_NOBODY. UID_NOBODY is usually set to 60001 but "
58		 "because an administrator can change this we don't set "
59		 "it to this by default.  Corresponds to the "
60		 "'anon=' share_nfs option (Solaris 9)."),
61     Required,
62     Units("Bytes")]
63    Uint32 EffectiveUID;
64
65    [Description("If set to true: causes  the  server  file system to "
66                 "silently ignore any attempt to  enable the setuid or "
67                 "setgid mode bits.  Corresponds to the 'nosuid' "
68                 "share_nfs option (Solaris 9).")]
69    boolean IgnoreSetId = false;
70
71    [Description("Enables NFS server logging for the specified file "
72                 "system. The optional tag determines the location of "
73                 "the related log files. The tag is defined in "
74                 "etc/nfs/nfslog.conf. The default value is the global "
75                 "tag.  The log file tag is only applicable when logging is "
76                 "turned on.  Corresponds to the 'log=' share_nfs option "
77                 "(Solaris 9)."),
78     MappingStrings{"SOLARIS9.SUN|/etc/nfs/nfslog.conf"}]
79    String LogFileTag;
80
81    [Description("If set to true: the share is to be persistent across "
82    		 "reboots.")]
83    boolean Persistent = false;
84
85    [Description(
86        "A value of true prevents clients from mounting subdirectories "
87        "of shared directories.  Corresponds to the 'nosub' share_nfs "
88        "option (Solaris 9).")]
89    boolean PreventSubDirMount = false;
90
91    [Description("If set to true: the public file handle is moved from "
92                 "root (/) to the exported directory.  Corresponds to "
93                 "the 'public' share_nfs option (Solaris 9).")]
94    boolean Public = false;
95
96    [Description("This attribute is only used upon creation of a share.  "
97    		 "Security information should be retrieved from "
98    		 "Solaris_NFSShareSecurity and Solaris_NFSShareSecurityModes."
99    		 "This attribute stores the security options for a share.  "
100    		 "Each element of the array is a string starting with "
101    		 "sec=<mode> and including all options, such as access lists, "
102    		 "pertaining to that security mode.")]
103    String SecurityOptions[];
104
105    [Description("A string of share options for the shared file system as found"
106    		 "in /etc/dfs/sharetab.")]
107    String ShareOptions;
108
109    [Description("An attribute that is only used at the time of creation of "
110    		 "a Solaris_NFSShare instance.  If it is set to true, the "
111    		 "the NFS server daemons (nfsd and mountd) will be started "
112    		 "with the default settings, if and only if, nfsd and mountd "
113    		 "aren't already running on the host.  The daemons will NOT "
114    		 "be stopped and restarted.  As a side effect of starting the "
115    		 "NFS server daemons the share being created will be placed "
116    		 "as an entry in /etc/dfs/dfstab since the starting of the "
117    		 "daemon relies on entries here."),
118      MappingStrings{"SOLARIS9.SUN|/etc/init.d/nfs.server start"}]
119     boolean StartDaemons = false;
120};
121
122[Provider(
123     "jni:libWBEMnfs.so"),
124 Version("1.3.0"),
125 Description (
126     "A class used to represent the NFS share security mode and "
127     "associated options for a Solaris_NFSShare object.")
128]
129class Solaris_NFSShareSecurity : CIM_Setting
130{
131
132    [Description("Sets the maximum life time (in seconds) of the "
133                 "RPC request's credential, that the NFS server "
134                 "will allow. Valid for NFS sec mode of diffie "
135                 "helman (dh) only.  Corresponds to the 'window=' "
136                 "share_nfs option (Solaris 9)."
137                 "If the security mode is not Diffie Helman, this "
138                 "property will not be set."),
139        ModelCorrespondence{"Solaris_NFSShareSecurity.Mode"},
140        Units("seconds")]
141    uint32 MaxLife = 30000;
142
143    [Key,
144    Description (
145        "Security mode used. Can be either sys, dh, krb5, krb5i, "
146        "krb5p.  Unknown and other default to the default security "
147        "mode of AUTH_SYS (sys).  Corresponds to the 'sec=' share_nfs "
148        "option (Solaris 9)."),
149      Required,
150      ValueMap {"Unknown", "Other", "sys", "dh", "krb5", "krb5i", "krb5p"}]
151    String Mode;
152
153    [Description (
154        "If true: Access will be read-only for all clients in this "
155        "security mode. else: access will be read-write.  Corresponds "
156        "to the 'ro' share_nfs option (Solaris 9).")]
157    boolean ReadOnly;
158
159    [Description (
160        "The list of clients whose access will be read-only. "
161        "Corresponds to the 'ro=' share_nfs option (Solaris 9).")]
162    string ReadOnlyList[];
163
164    [Description (
165        "The list of clients whose access will be read-write. "
166        "Corresponds to the 'rw=' share_nfs option (Solaris 9).")]
167    string ReadWriteList[];
168
169    [Description (
170        "The list of hosts with root access. Only root users from the "
171        "hosts specified will have root access.  Corresponds to the "
172        "'root=' share_nfs option (Solaris 9).")]
173    string RootServers[];
174
175    [Override("SettingId"),
176     Key,
177     Description("The path name of the share."),
178     Required]
179    String SettingId;
180};
181
182#pragma namespace("__modify")
183
184[Provider(
185     "jni:libWBEMnfs.so"),
186 Version("1.3.0"),
187 Description (
188     "The options used to mount a Solaris NFS file system.")]
189class Solaris_NFS : CIM_NFS
190{
191    [Deprecated {
192        "This is not replaced with anything.  Global doesn't apply to NFS file "
193        "system mounts."},
194     Description("If set to true: the filesystem is mounted 'globally' on all "
195                 "nodes of a cluster. "
196                 "If set to false (default): the filesystem is not mounted on "
197                 "all nodes of a cluster. "
198                 "Ignored for non-clustered systems.")]
199    boolean Global = false;
200
201    [Deprecated {
202        "Solaris_NFSMount.GroupId"},
203     Description("If set to true: use BSD style group id semantics. "
204                 "If set to false (default): use System V style group "
205                 "id semantics.")]
206    boolean GrpId = false;
207
208//    [Override("Name"),
209//     Description("The Name property is populated with the following string:  "
210//     		 "resource:=<resource> devid:=<devid>  "
211//     		 "Upon creation of an instance of Solaris_NFS, Name must be "
212//     		 "populated with just the file system resource "
213//     		 "(ex: /dev/dsk/c0t0d0s6 or pogo:/export) since the devid/file "
214//     		 "system id is not yet known.")]
215//    string Name;
216
217    [Deprecated {
218        "Solaris_Mount.NoMnttabEntry"},
219     Description("If set to true: the mount entry is not added to /etc/mnttab. "
220                 " If set to false (default): the mount is recorded in "
221                 "/etc/mnttab.")]
222    boolean NoMnttabEntry = false;
223
224    [Deprecated {
225        "Solaris_Mount.NoSuid"},
226     Description("If set to true: don't allow allow setuid execution. "
227                "If set to false (default): allow setuid execution.")]
228    boolean NoSuid = false;
229
230    [Deprecated {
231        "Solaris_Mount.Overlay"},
232     Description("If set to true: the file system is mounted over an existing "
233                 "mounted filesystem.  "
234                 "If set to false (default): the filesystem is not mounted over "
235                 "an existing mounted filesystem.")]
236    boolean Overlay = false;
237
238    [Deprecated {
239        "Solaris_NFSMount.Posix"},
240     Description("If set to true: use POSIX.1 semantics for filesystem. "
241                 "If set to false (default): do not use POSIX.1 semantics.")]
242    boolean Posix = false;
243
244    [Deprecated {
245        "Solaris_NFSMount.Protocol"},
246     Description("A string specifying the transport protocol used for the "
247                 "NFS mount. It is the value of the network_id field from "
248                 "/etc/netconfig.")]
249    String Proto;
250
251    [Deprecated {
252        "Solaris_NFSMount.Public"},
253     Description("If set to true: use the public file handle. "
254                 "If set to false (default): do not use the public "
255                 "file handle.")]
256    boolean Public = false;
257
258    [Deprecated {
259        "Solaris_NFSMount.EnableQuotaChecking"},
260     Description("If set to true: enable quota checking. "
261                 "If set to false (default): disable quota checking.")]
262    boolean Quota = false;
263
264    [Deprecated {
265        "The same effect can be achieved by setting Solaris_Mount.ReadOnly "
266        "to false which resets the mount option to read-write. Then remount "
267        "the filesystem."},
268     Description("If set to true: remount a read-only file system with "
269		 "read-write options. "
270		 "If set to false (default): the filsystem is mounted with "
271	         "the specified mount options.")]
272    boolean Remount = false;
273
274    [Deprecated {
275    	"Solaris_NFSMount.SecurityMode"},
276     Description("A string describing the security mode for NFS transactions. "
277                 "Available modes is listed in /etc/nfssec.conf.")]
278    String SecurityMode;
279
280    [Deprecated {
281        "Calculate from CIM_FileSystem.FileSystemSize and "
282        "CIM_FileSystem.AvailableSpace.  "
283        "UsedSpace = CIM_FileSystem.FileSystemSize - "
284        "CIM_FileSystem.AvailableSpace. "
285        "Note: CIM_FileSystem.AvailableSpace now contains "
286        "the correct value with respect to the space "
287        "reserved only for superuser."},
288     Description("Indicates the total amount of used space on the "
289        	 "File System in bytes. Note that this is not the "
290        	 "FileSystemSize minus AvailableSpace due to the space "
291        	 "reserved only for superuser."),
292     Units("Bytes")]
293    uint64 UsedSpace;
294
295    [Deprecated {
296        "Solaris_NFSMount.Version"},
297     Description ("Version number of NFS protocol to use."),
298     ValueMap {"2", "3", "4", "highest"}]
299    String Version = "highest";
300
301    // Methods
302    [Deprecated {
303        "Solaris_NFSMount.getNetCfgList"},
304     Description("Method to obtain the list of network IDs from "
305                 "the /etc/netconfig file.")]
306    sint32 getNetCfgList([OUT, IN(false)]string ids[]);
307
308    [Deprecated {
309        "Solaris_NFSMount.getNfsSecList"},
310     Description("Method to obtain the list of nfs security modes from "
311                 "the /etc/nfssec.conf file.")]
312    sint32 getNfsSecList([OUT, IN(false)]string secmodes[]);
313
314    [Deprecated {
315        "Solaris_NFSMount.getDefaultNfsSecMode"},
316     Description("Method to obtain the the default nfs security mode from "
317                 "the /etc/nfssec.conf file.")]
318    sint32 getDefaultNfsSecMode([OUT, IN(false)]string secmode);
319};
320
321#pragma namespace("__create")
322
323[Provider(
324     "jni:libWBEMnfs.so"),
325 Version("1.3.0"),
326 Description (
327     "This class represents a share that is to be persistent across reboots.  "
328     "There is a possiblity depending on the persistance mechanism "
329     "(ex: /etc/dfs/dfstab) that there are multiple shares that are to be "
330     "persistent which have the same path.  If this occurs, a Key Not Unique "
331     "type of error will be set when calling intrinsic methods getInstance, "
332     "deleteInstance, addInstance and editInstance and no instance will be "
333     "returned.")]
334class Solaris_PersistentShare : CIM_SystemSetting
335{
336
337    [Description(
338         "String representing the share command entry in /etc/dfs/dfstab.")]
339    String Command;
340
341    [Override ("SettingID"),
342     Description("The path of the persistent share.")]
343    string SettingID;
344
345    //Methods
346    [Description("Method to be used to clear up conflicts in the "
347     	"/etc/dfs/dfstab file.  Conflicts are defined as any entries that have "
348     	"the same path to be shared.  All entries with the same path as passed "
349     	"in with the <path> parameter will be deleted.  The method returns 1 "
350     	"if it succeded, 0 if a failure occurred.")]
351    sint32 deleteAllWithDuplicatePath([IN]String path);
352};
353
354[Experimental,
355 Version("1.3.0"),
356 Description("The Solaris_MountSetting object contains attributes that "
357             "are commonly used to configure a file system mount on a "
358             "Solaris system.  Attributes which have the potential of "
359             "operating at a different value than what was configured "
360             "will also be on the Solaris_Mount object.")]
361class Solaris_MountSetting : CIM_SettingData {
362
363    [Description ("The underlying file system type the mount is to be "
364                  "configured for."),
365     ValueMap {"Unknown", "Other", "ufs", "nfs", "hsfs", "cachefs", "pcfs",
366             "procfs", "tmpfs", "VxFS", "SAMQFS", "devfs", "udfs", "sockfs",
367             "autofs", "specfs", "fifofs"},
368     ModelCorrespondence {"CIM_FileSystem.FileSystemType"},
369     MappingStrings {"SOLARIS9.SUN|mount -F <FStype>"}]
370    string FsType;
371
372    [Description ("A string of file system mount options specified when "
373                  "mounting the file system.  This property is also present on "
374                  "the Solaris_Mount class.  The Solaris_Mount.MountOptions "
375                  "property represents the actual operational value of the "
376                  "mount options string as reported in /etc/mnttab.  "
377                  "Therefore, the properties may have different values."),
378     MappingStrings {"SOLARIS9.SUN|mount -o <mount options, comma delimited>"}]
379    string MountOptions;
380
381    [Description("If set to true: the mount entry is added to /etc/mnttab."
382                 "If set to false (default): the mount is not recorded in "
383                 "/etc/mnttab."),
384     MappingStrings {"SOLARIS9.SUN|mount -m"}]
385    boolean NoMnttabEntry = false;
386
387    [Description("If set to true: don't allow allow setuid execution.  "
388                 "If set to false (default): allow setuid execution."),
389     MappingStrings {"SOLARIS9.SUN|mount -o suid | nosuid"}]
390    boolean NoSuid = false;
391
392    [Description("If set to true: the filesystem is mounted over an "
393                 "existing mounted filesystem.  If set to false (default): "
394                 " the filesystem is not mounted over an existing mounted "
395                 "filesystem."),
396     MappingStrings {"SOLARIS9.SUN|mount -O"}]
397    boolean Overlay = false;
398
399    [Description("If set to true: the filesystem is mounted as a read only "
400                 "filesystem.  If set to false (default): the "
401                 "filesystem is mounted as a read/write "
402                 "filesystem."),
403     MappingStrings {"SOLARIS9.SUN|mount -o rw | ro"}]
404    boolean ReadOnly = false;
405
406    [Description("If set to true, the file system will have a corresponding "
407                 "device to mount/mount point entry in /etc/vfstab.  This "
408                 "property is also present on the Solaris_Mount class.  The "
409                 "Solaris_Mount.VfstabEntry property represents the actual "
410                 "operational value of whether or not the mount has and entry "
411                 "in /etc/vfstab.  Therefore, the properties may have "
412                 "different values."),
413     MappingStrings {"SOLARIS9.SUN|vfstab"}]
414
415    boolean VfstabEntry;
416
417};
418
419[Experimental,
420 Version("1.3.0"),
421 Description ("The Solaris_NFSMountSetting object contains attributes "
422              "that are commonly used to configure an NFS mount "
423              "on a Solaris system.  Attributes which have the "
424              "potential of operating at a different value than what "
425              "was configured will also be on the Solaris_NFSMount object.") ]
426class Solaris_NFSMountSetting : Solaris_MountSetting
427{
428
429    [Description (
430        "If set to true, allow data and attribute caching.  If set to "
431        "false, suppress data and attribute caching.  Corresponds to "
432        "the 'noac' mount_nfs option (Solaris 9).") ]
433    boolean AttributeCaching = true;
434
435    [Description (
436        "Maximum number of seconds that cached attributes are held "
437        "after directory update.  Corresponds to the 'acdirmax=' "
438        "mount_nfs option (Solaris 9)."),
439       Units("Seconds") ]
440    uint16 AttributeCachingForDirectoriesMax = 60;
441
442    [Description (
443        "Minimum number of seconds that cached attributes are held "
444        "after directory update.  Corresponds to the 'acdirmin=' "
445        "mount_nfs option (Solaris 9)."),
446       Units("Seconds") ]
447    uint16 AttributeCachingForDirectoriesMin = 30;
448
449    [Description (
450        "Maximum number of seconds that cached attributes are held "
451        "after file modification.  Corresponds to the 'acregmax=' "
452        "mount_nfs option (Solaris 9)."),
453       Units("Seconds") ]
454    uint16 AttributeCachingForRegularFilesMax = 60;
455
456    [Description (
457        "Minimum number of seconds that cached attributes are held "
458        "after file modification.  Corresponds to the 'acregmin=' "
459        "mount_nfs option (Solaris 9)."),
460       Units("Seconds") ]
461    uint16 AttributeCachingForRegularFilesMin = 3;
462
463    [Description("If set to true: enable quota checking.  If set to "
464                 "false (default): disable quota checking. "
465                 "Corresponds to the 'quota/noquota' mount_nfs "
466                 "options (Solaris 9).")]
467    boolean EnableQuotaChecking = false;
468
469    [Description (
470        "The list of resources to be used for failover. Each "
471        "resource must be of the form host:/pathname, NFS URL or a "
472        "list of hosts, if the exported directory name is the same.")]
473    string FailoverList[];
474
475    [Description("If true, data is transferred directly between "
476                 "client and server, with no buffering on the client. "
477                 "If false: Data is buffered on the client. "
478                 "The default is false.  Corresponds to the "
479                 "'forcedirectio/noforcedirectio' mount_nfs options "
480                 "(Solaris 9).")]
481    boolean ForceDirectIO = false;
482
483    [Description("If set to true: use BSD style group id semantics. "
484                 "If set to false (default): use System V style group "
485                 "id semantics.  Corresponds to the 'grpid' mount_nfs "
486                 "option (Solaris 9).")]
487    boolean GroupId = false;
488
489    [Description (
490        "If set to true, once the FileSystem is mounted, NFS requests "
491        "are retried until the hosting System responds.  "
492        "If set to false, once the FileSystem is mounted, an error "
493        "is returned if the hosting System does not respond. "
494        "Corresponds to the 'hard/soft' mount_nfs options (Solaris 9).")]
495    boolean HardMount = true;
496
497    [Description (
498        "If set to true, keyboard interrupts are permitted to kill a "
499        "process that is hung while waiting for a response on a hard- "
500        "mounted file system.  If set to false, keyboard interrupts "
501        "are ignored.  Corresponds to the 'intr/nointr' mount_nfs "
502        "options (Solaris 9).") ]
503    boolean Interrupt = true;
504
505    [Description ("Maximum number of NFS retransmissions allowed. "
506        "Corresponds to the 'retrans=' mount_nfs option (Solaris 9).") ]
507    uint16 MaxRetransmissionAttempts = 5;
508
509    [Description ("Maximum number of mount failure retries allowed.  The "
510    	"default for the mount command is 10000.  The default for the "
511    	"automounter is 0.  "
512        "Corresponds to the 'retry=' mount_nfs option (Solaris 9).  "
513        "This value is only valid upon creation of an instance of "
514	"instance of Solaris_NFSMount.  This is actually a mount _process_ "
515	"option and not a mount option.") ]
516    uint16 MountFailureRetries;
517
518    [Description("If true, do not perform the normal close-to-open "
519                 "consistency. The client will not perform the flush "
520                 "on close and the request for validation, allowing "
521                 "the possiblity of differences among copies of the "
522                 "same file as stored on multiple clients.  This can "
523                 "be used where it can be guaranteed that accesses to "
524                 "a specified file system will be made from only one "
525                 "client and only that client.  The default is false. "
526                 "Corresponds to the 'nocto' mount_nfs option (Solaris 9).")]
527    boolean NoCloseToOpenConsistency = false;
528
529    [Description("If set to true: use POSIX.1 semantics for filesystem. "
530                 "If set to false (default): do not use POSIX.1 "
531                 "semantics.  Corresponds to the 'posix' mount_nfs "
532                 "option (Solaris 9).")]
533    boolean Posix = false;
534
535    [Description("A string specifying the transport protocol used for the "
536                 "NFS mount. It is the value of the network_id field from "
537                 "/etc/netconfig.  Corresponds to the 'proto=' "
538                 "mount_nfs option (Solaris 9)."),
539     MappingStrings{"SOLARIS9.SUN|/etc/netconfig"} ]
540    String Protocol;
541
542    [Description("If set to true: use the public file handle. "
543                 "If set to false (default): do not use the public "
544                 "file handle.  Corresponds to the 'public' mount_nfs "
545                 "option (Solaris 9).")]
546    boolean Public = false;
547
548    [Description ("Read buffer size in bytes.  The default is 32768 for "
549    	"version 3 and 8192 for version 2.  Corresponds to the "
550        "'rsize=' mount_nfs option (Solaris 9)."),
551       Units("Bytes") ]
552    uint64 ReadBufferSize;
553
554    [Description ("NFS timeout in tenths of a second.  The default is 11 "
555    	"tenths of a second for connectionless transports and 600 "
556    	"tenths of a second for connection oriented transports.  "
557    	"Corresponds to the 'timeo=' mount_nfs option (Solaris 9)."),
558       Units ("Tenths of Seconds") ]
559    uint32 RetransmissionTimeout;
560
561    [Description (
562        "If set to true, if the first mount attempt fails, retries are "
563        "performed in the foreground.  If set to false, retries are "
564        "performed in the background.  Corresponds to the 'bg/fg' "
565        "mount_nfs options (Solaris 9).  "
566        "This value is only valid upon creation of an instance of "
567	"instance of Solaris_NFSMount.  This is actually a mount _process_ "
568	"option and not a mount option.") ]
569    boolean RetryInForeground = true;
570
571    [Description("A string describing the security mode for NFS transactions. "
572                 "Available modes is listed in /etc/nfssec.conf. "
573                 "Corresponds to the 'sec=' mount_nfs option (Solaris 9)."),
574     MappingStrings{"SOLARIS9.SUN|/etc/nfssec.conf"} ]
575    String SecurityMode;
576
577    [Description (
578        "The NFS Server IP port number.  Default is NFS_PORT which is defined "
579        "in /usr/include/nfs/nfs.h.  Corresponds to the 'port=' mount_nfs "
580        "option (Solaris 9).") ]
581    uint32 ServerCommunicationPort;
582
583    [Description("The name of the NFS server.")]
584    String ServerName;
585
586    [Description("The path of the NFS resource on the server.")]
587    String ServerPath;
588
589    [Description (
590        "Version number of NFS protocol to use.  Corresponds to the "
591        "'vers=' mount_nfs option (Solaris 9)."),
592     ValueMap {"2", "3", "4", "highest"} ]
593    String Version = "highest";
594
595    [Description ("Write buffer size in bytes.  The default is 32768 for "
596    	"version 3 and 8192 for version 2.  Corresponds to the "
597        "'wsize=' mount_nfs option (Solaris 9)."),
598       Units("Bytes") ]
599    uint64 WriteBufferSize;
600
601
602    [Description(
603      "Allows the creation and manipulation of extended attributes. "
604      "Corresponds to the 'xattr/noxattr' mount_nfs options (Solaris 9). ")]
605    boolean Xattr = true;
606};
607
608    [Experimental,
609     Version("1.3.0"),
610     Description("The Solaris_ShareSetting object contains attributes that "
611                 "are commonly used to configure the sharing of a resource "
612                 "on a Solaris system.")]
613class Solaris_ShareSetting : CIM_SettingData {
614};
615
616[Experimental,
617 Version("1.3.0"),
618 Description (
619     "A class that contains attributes for a local NFS shared object "
620     "on the server side that is made accessible to other systems. "
621     "Attributes which have the potential of operating at a different "
622     "value than what was configured will also be on the Solaris_Mount "
623     "object.")
624]
625class Solaris_NFSShareSetting : Solaris_ShareSetting
626{
627
628    [Description("If set to true: maximal  access  is  given  to all "
629                 "clients. Valid for NFS version 2 only.  Corresponds "
630                 "to the 'aclok' share_nfs option (Solaris 9)."),
631        ModelCorrespondence{"Solaris_NFSMount.Version"}]
632    boolean AllowAccessControl;
633
634    [Description("Sets the the effective user ID of unknown users. By "
635                 "default, unknown users are given the effective user "
636                 "ID UID_NOBODY. UID_NOBODY is usually set to 60001 but "
637                 "because an administrator can change this we don't set "
638                 "it to this by default.  Corresponds to the "
639                 "'anon=' share_nfs option (Solaris 9)."),
640        Required,
641        Units("Bytes")]
642    Uint32 EffectiveUID;
643
644    [Description("If set to true: causes  the  server  file system to "
645                 "silently ignore any attempt to  enable the setuid or "
646                 "setgid mode bits.  Corresponds to the 'nosuid' "
647                 "share_nfs option (Solaris 9).")]
648    boolean IgnoreSetId;
649
650    [Description("Enables NFS server logging for the specified file "
651                 "system. The optional tag determines the location of "
652                 "the related log files. The tag is defined in "
653                 "etc/nfs/nfslog.conf. The default value is the global "
654                 "tag.  Corresponds to the 'log=' share_nfs option (Solaris 9)."),
655        MappingStrings{"SOLARIS9.SUN|/etc/nfs/nfslog.conf"}]
656    String LogFileTag = "global";
657
658    [Description("If set to true: the public file handle is moved from "
659                 "root (/) to the exported directory.  Corresponds to "
660                 "the 'public' share_nfs option (Solaris 9).")]
661    boolean Public;
662
663    [Description (
664        "A value of true prevents clients from mounting subdirectories "
665        "of shared directories.  Corresponds to the 'nosub' share_nfs "
666        "option (Solaris 9).")]
667    boolean PreventSubDirMount;
668
669    [Description("An attribute that is only used at the time of creation of "
670    		 "a NFS Share instance.  If it is set to true, the "
671    		 "the NFS server daemons (nfsd and mountd) will be started "
672    		 "with the default settings, if and only if, nfsd and mountd "
673    		 "aren't already running on the host.  The daemons will NOT "
674    		 "be stopped and restarted.  As a side effect of starting the "
675    		 "NFS server daemons the share being created will be placed "
676    		 "as an entry in /etc/dfs/dfstab since the starting of the "
677    		 "daemon relies on entries here."),
678      MappingStrings{"SOLARIS9.SUN|/etc/init.d/nfs.server start"}]
679     boolean StartDaemons;
680};
681
682
683    [Provider("jni:libWBEMnfs.so"),
684     Version("1.3.0"),
685     Description("A logical element that contains the information necessary "
686     		 "to represent and manage the functionality provided by "
687     		 "shares in Solaris.")]
688
689class Solaris_ShareService : CIM_Service {
690
691    //Methods
692    [Description("Method which shares all resources listed in the file "
693    		 "specified with the file parameter.   The specified file "
694    		 "should contain a list of share command lines.  "
695    		 "If no file is specified /etc/dfs/dfstab is used.  "
696    		 "Resources may be shared by specific file system types by "
697    		 "specifying the file system type (or types in a comma "
698    		 "delimited list) as input parameter, fstype.  The method "
699    		 "returns 1 if it succeded, 0 if a failure occurred.  "
700    		 "Corresponds to /usr/sbin/shareall (Solaris 9)")]
701    sint32 shareall([IN]String fstype, [IN]String file);
702
703    [Description("Method which unshares all currently shared resources.  "
704    		 "If a fstype (or fstypes in a comma delimited list) is not "
705    		 "specified in the fstype parameter, all distributed file "
706    		 "system type resources will be unshared.  The method "
707    		 "returns 1 if it succeded, 0 if a failure occurred.  "
708    		 "Corresponds to /usr/sbin/unshareall (Solaris 9)")]
709    sint32 unshareall([IN]String fstype);
710};
711
712
713
714    [Provider("jni:libWBEMnfs.so"),
715     Version("1.3.0"),
716     Description("A logical element that contains the information necessary "
717     		 "to represent and manage the functionality provided by "
718     		 "file system mounts in Solaris.")]
719
720class Solaris_MountService : CIM_Service {
721
722    //Methods
723    [Description("Method which mounts file systems listed in the file system "
724    		 "table as specified with the fstable parameter."
725    		 "The specified file system table (file) must be in the vfstab "
726    		 "format.  If no file system table is specified (an empty "
727    		 "string is passed in) /etc/vfstab is used.  Only the file "
728    		 "systems having the mount at boot field set to yes in the "
729    		 "table will be mounted.  "
730    		 "The fstype parameter can be used to specify the file "
731    		 "system type of the file systems to be mounted.  The "
732    		 "onlyLocalFileSystems and onlyRemoteFileSystems parameters "
733    		 "are mutually exclusive.  If onlyLocalFileSystems is true, "
734    		 "the mountall action will be limited to local file systems.  "
735    		 "If onlyRemoteFileSystems is true, the mountall action will "
736    		 "be limited to remote file system types.  The method "
737    		 "returns 1 if it succeded, 0 if a failure occurred.  "
738    		 "Corresponds to /usr/sbin/mountall (Solaris 9)")]
739    sint32 mountall([IN]String fstype, [IN]Boolean onlyLocalFileSystems,
740    		    [IN]Boolean onlyRemoteFileSystems, [IN]String fstable);
741
742    [Description("Method used to unmount all file systems except root, /usr, "
743    		 "/var, /var/adm, /var/run, /proc, and /dev/fd.  There is no "
744    		 "guarantee that this function will unmount busy file "
745    		 "systems.  "
746    		 "The fstype parameter can be used to specify the fstype of "
747    		 "the file systems to be unmounted.  The host parameter "
748    		 "can be used to unmount all file systems listed in "
749    		 "/etc/mnttab that are remote-mounted from the host specified."
750    		 "  If onlyLocalFileSystems is true, limit the unmounting to "
751    		 "local file systems.  If onlyRemoteFileSystems is true, the "
752    		 "mounting will be limited to remote file system types.  "
753    		 "If killProcesses is true, a SIGKILL signal is sent to each "
754    		 "process using the file and this spawns kills for those"
755    		 "processes.  If unmountInParallel is true, the umount "
756    		 "operation will be performed in parallel.  "
757    		 "The onlyLocalFileSystems and onlyRemoteFileSystems "
758    		 "parameters are mutually exclusive and cannot be used when "
759    		 "a host is defined.  The fstype and host parameters are also "
760    		 "mutually exclusive.  The method returns 1 if it succeded, 0 "
761    		 "if a failure occurred.  Corresponds to /usr/sbin/umountall "
762    		 "(Solaris 9)")]
763    sint32 unmountall([IN]String fstype,
764    		      [IN]String host,
765    		      [IN]Boolean onlyLocalFileSystems,
766    		      [IN]Boolean onlyRemoteFileSystems,
767    		      [IN]Boolean killProcesses,
768    		      [IN]Boolean umountInParallel);
769};
770
771// ===================================================================
772//   Associations
773// ===================================================================
774#pragma namespace("__modify")
775
776[Association,
777 Provider(
778     "jni:libWBEMnfs.so"),
779 Version("1.3.0"),
780 Description (
781     "An association between a remote directory that can be mounted "
782     "and the NFS mounted file system.") ]
783class Solaris_NFSMount : Solaris_Mount
784{
785   [Description (
786        "If set to true, allow data and attribute caching.  If set to "
787        "false, suppress data and attribute caching.  Corresponds to "
788        "the 'noac' mount_nfs option (Solaris 9).") ]
789    boolean AttributeCaching = true;
790
791    [Description (
792        "Maximum number of seconds that cached attributes are held "
793        "after directory update.  Corresponds to the 'acdirmax=' "
794        "mount_nfs option (Solaris 9)."),
795       Units("Seconds") ]
796    uint16 AttributeCachingForDirectoriesMax = 60;
797
798    [Description (
799        "Minimum number of seconds that cached attributes are held "
800        "after directory update.  Corresponds to the 'acdirmin=' "
801        "mount_nfs option (Solaris 9)."),
802       Units("Seconds") ]
803    uint16 AttributeCachingForDirectoriesMin = 30;
804
805    [Description (
806        "Maximum number of seconds that cached attributes are held "
807        "after file modification.  Corresponds to the 'acregmax=' "
808        "mount_nfs option (Solaris 9)."),
809       Units("Seconds") ]
810    uint16 AttributeCachingForRegularFilesMax = 60;
811
812    [Description (
813        "Minimum number of seconds that cached attributes are held "
814        "after file modification.  Corresponds to the 'acregmin=' "
815        "mount_nfs option (Solaris 9)."),
816       Units("Seconds") ]
817    uint16 AttributeCachingForRegularFilesMin = 3;
818
819    [Override ("Dependent"),
820     Description ("The file system mounted via NFS. "
821        "It is also referred to as the resource to mount.") ]
822    Solaris_NFS REF Dependent;
823
824    [Description("If set to true: enable quota checking.  If set to "
825                 "false (default): disable quota checking. "
826                 "Corresponds to the 'quota/noquota' mount_nfs "
827                 "options (Solaris 9).")]
828    boolean EnableQuotaChecking = false;
829
830    [Description("If true, data is transferred directly between "
831                 "client and server, with no buffering on the client. "
832                 "If false: Data is buffered on the client. "
833                 "The default is false.  Corresponds to the "
834                 "'forcedirectio/noforcedirectio' mount_nfs options "
835                 "(Solaris 9).")]
836    boolean ForceDirectIO = false;
837
838    [Description (
839        "The list of resources to be used for failover. Each "
840        "resource must be of the form host:/pathname, NFS URL or a "
841        "list of hosts, if the exported directory name is the same.")]
842    string FailoverList[];
843
844    [Description("If set to true: use BSD style group id semantics. "
845                 "If set to false (default): use System V style group "
846                 "id semantics.  Corresponds to the 'grpid' mount_nfs "
847                 "option (Solaris 9).")]
848    boolean GroupId = false;
849
850    [Description (
851        "If set to true, once the FileSystem is mounted, NFS requests "
852        "are retried until the hosting System responds.  "
853        "If set to false, once the FileSystem is mounted, an error "
854        "is returned if the hosting System does not respond. "
855        "Corresponds to the 'hard/soft' mount_nfs options (Solaris 9).")]
856    boolean HardMount = true;
857
858    [Description (
859        "If set to true, keyboard interrupts are permitted to kill a "
860        "process that is hung while waiting for a response on a hard- "
861        "mounted file system.  If set to false, keyboard interrupts "
862        "are ignored.  Corresponds to the 'intr/nointr' mount_nfs "
863        "options (Solaris 9).")]
864    boolean Interrupt = true;
865
866    [Description ("Maximum number of NFS retransmissions allowed. "
867        "Corresponds to the 'retrans=' mount_nfs option (Solaris 9).") ]
868    uint16 MaxRetransmissionAttempts = 5;
869
870    [Description ("Maximum number of mount failure retries allowed.  The "
871    	"default for the mount command is 10000.  The default for the "
872    	"automounter is 0.  "
873        "Corresponds to the 'retry=' mount_nfs option (Solaris 9).  "
874        "This value is only valid upon creation of an instance of "
875	"instance of Solaris_NFSMount.  This is actually a mount _process_ "
876	"option and not a mount option.") ]
877    uint16 MountFailureRetries;
878
879    [Description("If true, do not perform the normal close-to-open "
880                 "consistency. The client will not perform the flush "
881                 "on close and the request for validation, allowing "
882                 "the possiblity of differences among copies of the "
883                 "same file as stored on multiple clients.  This can "
884                 "be used where it can be guaranteed that accesses to "
885                 "a specified file system will be made from only one "
886                 "client and only that client.  The default is false. "
887                 "Corresponds to the 'nocto' mount_nfs option (Solaris 9).")]
888    boolean NoCloseToOpenConsistency = false;
889
890    [Description("If set to true: use POSIX.1 semantics for filesystem. "
891                 "If set to false (default): do not use POSIX.1 "
892                 "semantics.  Corresponds to the 'posix' mount_nfs "
893                 "option (Solaris 9).")]
894    boolean Posix = false;
895
896    [Description("A string specifying the transport protocol used for the "
897                 "NFS mount. It is the value of the network_id field from "
898                 "/etc/netconfig.  Corresponds to the 'proto=' "
899                 "mount_nfs option (Solaris 9)."),
900        MappingStrings{"SOLARIS9.SUN|/etc/netconfig"}]
901    String Protocol;
902
903    [Description("If set to true: use the public file handle. "
904                 "If set to false (default): do not use the public "
905                 "file handle.  Corresponds to the 'public' mount_nfs "
906                 "option (Solaris 9).")]
907    boolean Public = false;
908
909    [Description ("Read buffer size in bytes.  The default is 32768 for "
910    	"version 3 and 8192 for version 2.  Corresponds to the "
911        "'rsize=' mount_nfs option (Solaris 9)."),
912       Units("Bytes") ]
913    uint64 ReadBufferSize;
914
915    [Deprecated {
916        "Solaris_NFSMount.FailoverList"},
917     Description (
918        "Array of replicated resources to be used for failover. Each "
919        "resource must be of the form host:/pathname, NFS URL or a "
920        "list of hosts, if the exported directory name is the same.") ]
921    string ReplicatedResources[];
922
923    [Description ("NFS timeout in tenths of a second.  The default is 11 "
924    	"tenths of a second for connectionless transports and 600 "
925    	"tenths of a second for connection oriented transports.  "
926    	"Corresponds to the 'timeo=' mount_nfs option (Solaris 9)."),
927       Units ("Tenths of Seconds")]
928    uint32 RetransmissionTimeout;
929
930    [Description (
931        "If set to true, if the first mount attempt fails, retries are "
932        "performed in the foreground.  If set to false, retries are "
933        "performed in the background.  Corresponds to the 'bg/fg' "
934        "mount_nfs options (Solaris 9).  "
935        "This value is only valid upon creation of an instance of "
936	"instance of Solaris_NFSMount.  This is actually a mount _process_ "
937	"option and not a mount option.")]
938    boolean RetryInForeground = true;
939
940    [Description("A string describing the security mode for NFS transactions. "
941                 "Available modes are listed in /etc/nfssec.conf. "
942                 "Corresponds to the 'sec=' mount_nfs option (Solaris 9)."),
943        MappingStrings{"SOLARIS9.SUN|/etc/nfssec.conf"}]
944    String SecurityMode;
945
946    [Description (
947        "The NFS Server IP port number.  Default is NFS_PORT which is defined "
948        "defined in /usr/include/nfs/nfs.h.  Corresponds to the "
949        "'port=' mount_nfs option (Solaris 9).") ]
950    uint32 ServerCommunicationPort;
951
952    [Description("The name of the NFS server.")]
953    String ServerName;
954
955    [Description("The path of the NFS resource on the server.")]
956    String ServerPath;
957
958    [Description (
959        "Version number of NFS protocol to use.  Corresponds to the "
960        "'vers=' mount_nfs option (Solaris 9)."),
961     ValueMap {"2", "3", "4", "highest"} ]
962    String Version = "highest";
963
964
965    [Description ("Write buffer size in bytes.  The default is 32768 for "
966    	"version 3 and 8192 for version 2.  Corresponds to the "
967        "'wsize=' mount_nfs option (Solaris 9)."),
968       Units("Bytes") ]
969    uint64 WriteBufferSize;
970
971    [Description(
972      "Allows the creation and manipulation of extended attributes. "
973      "Corresponds to the 'xattr/noxattr' mount_nfs options (Solaris 9). ")]
974    boolean Xattr = true;
975
976    // Methods
977    [Description("Method to obtain the list of network IDs from "
978                 "the /etc/netconfig file.  Returns 1 if method completed "
979                 "successfully, 0 if an error occurred.  Corresponds to the "
980                 "data stored in /etc/netconfig (Solaris 9).")]
981    sint32 getNetCfgList([OUT, IN(false)]string ids[]);
982
983    [Description("Method to obtain the list of nfs security modes from "
984                 "the /etc/nfssec.conf file.  Returns 1 if method completed "
985                 "successfully, 0 if an error occurred.  Corresponds to the "
986                 "data stored in /etc/nfssec.conf (Solaris 9).")]
987    sint32 getNfsSecList([OUT, IN(false)]string secmodes[]);
988
989    [Description("Method to obtain the the default nfs security mode from "
990                 "the /etc/nfssec.conf file.  Returns 1 if method completed "
991                 "successfully, 0 if an error occurred.  Corresponds to the "
992                 "data stored in /etc/nfssec.conf (Solaris9).")]
993    sint32 getDefaultNfsSecMode([OUT, IN(false)]string secmode);
994};
995
996#pragma namespace("__create")
997
998[Association,
999 Provider(
1000     "jni:libWBEMnfs.so"),
1001 Version("1.3.0"),
1002 Description (
1003     "This association represents the relationship between an NFS "
1004     "share and its security modes.")
1005]
1006class Solaris_NFSShareSecurityModes : CIM_ElementSetting
1007{
1008       [Override ("Element"),
1009        Description ("The share the mode is for.")]
1010    Solaris_NFSShare REF Element;
1011
1012       [Override("Setting"), Description (
1013        "The Setting that can be applied") ]
1014    Solaris_NFSShareSecurity REF Setting;
1015
1016};
1017
1018[Association,
1019 Version("1.3.0"),
1020 Description ("Class represents the relationship between an NFS "
1021              "Share object and its default setting. The default "
1022              "setting of AUTH_SYS for the security mode will be "
1023              "set in the provider.")
1024]
1025class Solaris_NFSShareDefSecurityMode : CIM_DefaultSetting
1026{
1027    [Override ("Element"),
1028        Description ("The share the mode is for.")]
1029    Solaris_NFSShare REF Element;
1030
1031    [Override("Setting"),
1032        Description ("The Setting that can be applied to ") ]
1033    Solaris_NFSShareSecurity REF Setting;
1034
1035};
1036
1037
1038
1039[Association,
1040 Provider(
1041     "jni:libWBEMnfs.so"),
1042 Version("1.3.0"),
1043 Description ("Class that represents the association between the "
1044               "share and its host.")
1045]
1046class Solaris_HostedShare : CIM_HostedShare
1047{
1048    [Override ("Antecedent"),
1049        Description ("The host of the NFS shared file system.")]
1050    Solaris_ComputerSystem REF Antecedent;
1051
1052    [Override ("Dependent"),
1053        Description ("The NFS shared directory.")]
1054    Solaris_NFSShare REF Dependent;
1055};
1056
1057[Association,
1058 Aggregation,
1059 Version("1.3.0"),
1060 Description(
1061     "An association that represents the aggregation of all of "
1062     "the Solaris_PersistentShare objects and ties them to a "
1063     "Solaris_SystemConfiguration object.")]
1064class Solaris_PersistentShareConfiguration : CIM_SystemSettingContext
1065{
1066
1067};
1068
1069[Association,
1070 Provider(
1071     "jni:libWBEMnfs.so"),
1072 Version("1.3.0"),
1073 Description(
1074    "This class ties an individual Solaris_PersistentShare to its "
1075    "owning system.")]
1076class Solaris_PersistentShareForSystem : CIM_SettingForSystem
1077{
1078
1079    [Override ("Antecedent"),
1080       Description ("The Solaris Hosting System.")]
1081    Solaris_ComputerSystem REF Antecedent;
1082
1083    [Override ("Dependent"),
1084        Description ("The dfstab entry for the system.")]
1085    Solaris_PersistentShare REF Dependent;
1086};
1087
1088
1089[Association,
1090 Provider(
1091     "jni:libWBEMnfs.so"),
1092 Version("1.3.0"),
1093 Description(
1094     "This class ties an individual Solaris_PersistentShare to a "
1095     "Solaris_NFSShare.")]
1096class Solaris_NFSShareEntry : CIM_ElementSetting
1097{
1098    [Override ("Setting"),
1099        Description ("The persistent share setting")]
1100    Solaris_PersistentShare REF Setting;
1101
1102};
1103
1104[Association,
1105 Version("1.3.0"),
1106 Description ("associates the Share to a LogicalElement that is "
1107              "being exported.") ]
1108class Solaris_SharedElement : CIM_SharedElement
1109{
1110};
1111
1112#pragma namespace("__modify")
1113
1114[Association,
1115 Provider("java:com.sun.wbem.solarisprovider.fsmgr.share.Solaris_NFSExport"),
1116 Deprecated {
1117    "Solaris_SharedFileSystem"},
1118 Description ("Solaris_NFSExport inherited from CIM_Export")]
1119class Solaris_NFSExport : CIM_Export
1120{
1121
1122        [Description (
1123                "If set to true: give maximum access to NFS v2 clients.  "
1124                "If set to false (default): give minimum access to NFS v2 "
1125                "clients.") ]
1126        boolean AclOk = false;
1127
1128        [Description (
1129                "The effective UID of unknown users. The default value is "
1130                "UID_NOBODY (60001).") ]
1131        sint32 AnonUid;
1132
1133        [Description ("Share description.") ]
1134        string Description;
1135
1136        [Description (
1137                "Index file to use when accessing a Web-NFS directory.") ]
1138        string IndexFile;
1139
1140        [Description (
1141                "If set to true: prevents clients from mounting "
1142                "subdirectories of the exported directory.  "
1143                "If set to false (default): allows clients to mount "
1144                "subdirectories.") ]
1145        boolean NoSub = false;
1146
1147        [Description (
1148                "If set to true: don't allow allow setuid execution.  "
1149                "If set to false (default): allow setuid execution.") ]
1150        boolean NoSuid = false;
1151
1152        [Description (
1153                "If set to true: use exported directory as the location of "
1154                "the public file handle for Web-NFS.  "
1155                "If set to false (default): exported directory is not the "
1156                "location of the public file handle.") ]
1157        boolean Public = false;
1158
1159        [Description (
1160                "If set to true: grant read-only access to all clients.  "
1161                "If set to false (default):do not grant read-only access "
1162                "to all clients.") ]
1163        boolean ReadOnly = false;
1164
1165        [Description (
1166                "If set to true (default): grant read-write access to all "
1167                "clients.  "
1168                "If set to false: do not grant read-write access to all "
1169                "clients.") ]
1170        boolean ReadWrite = true;
1171
1172        [Description ("Array of clients granted read-only access.") ]
1173        string ROAccessList[];
1174
1175        [Description (
1176                "Array of hosts from which root users can gain "
1177                "root access.") ]
1178        string RootAccessList[];
1179
1180        [Description ("Array of clients granted read-write access.") ]
1181        string RWAccessList[];
1182
1183        [Description (
1184                "If set to true: the filesystem is shared at boot.  "
1185                "If set to false (default): the resource is not shared at "
1186                "boot.") ]
1187        boolean ShareAtBootEntry = false;
1188
1189        [Description (
1190                "Array of security modes to be used to NFS transactions. "
1191                "Available modes is listed in /etc/nfssec.conf.") ]
1192        string SecurityModes[];
1193
1194        [Description ("Share options.") ]
1195        string ShareOptions;
1196
1197        [Description (
1198                "Maximum lifetime of a request allowed by the NFS server "
1199                "(in seconds) when using Diffie-Hellman or Kerberos security.  "
1200                "Default value is 30000 seconds (8.3 hours).") ]
1201        uint32 Window = 30000;
1202
1203
1204	//Methods
1205        [Description("Method to delete a dfstab entry.")]
1206        sint32 deleteDfstabEntry([IN]string pathName);
1207
1208};
1209
1210#pragma namespace("__create")
1211
1212[Association,
1213 Version("1.3.0"),
1214 Provider(
1215     "jni:libWBEMnfs.so"),
1216 Description ("Class that represents the association between the local "
1217              "filesystem and the Solaris_NFSShare on the server.")
1218]
1219class Solaris_SharedFileSystem : Solaris_SharedElement
1220{
1221    [Override("SystemElement"), Key, MAX(1),
1222           Description ("The Directory that is Shared.") ]
1223    CIM_LogicalElement REF SystemElement;
1224
1225    [Override("SameElement"), Key, Description (
1226           "The Shared view of the Directory.") ]
1227    CIM_Share REF SameElement;
1228
1229};
1230