Andrzej Szeszo
2013-06-04 453bf5a3004107204e1858532a38b3e703e32995
commit | author | age
c4768d 1 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
DL 2 <!--
05f426 3  Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
c4768d 4
DL 5  CDDL HEADER START
6
7   The contents of this file are subject to the terms of the
8   Common Development and Distribution License (the "License").
9   You may not use this file except in compliance with the License.
10  
11   You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12   or http://www.opensolaris.org/os/licensing.
13   See the License for the specific language governing permissions
14   and limitations under the License.
15  
16   When distributing Covered Code, include this CDDL HEADER in each
17   file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18   If applicable, add the following below this CDDL HEADER, with the
19   fields enclosed by brackets "[]" replaced with your own identifying
20   information: Portions Copyright [yyyy] [name of copyright owner]
21
22  CDDL HEADER END
23 -->
24
25 <api xmlns="http://xmlns.oracle.com/radadr" 
26   name="com.oracle.solaris.rad.usermgr">
27
28     <struct name="Group">
29         <summary>
30             describes a Solaris group
31         </summary>
32         <doc>
33             Fully describes a Solaris group, contains
34             group name, group id, group members.
35         </doc>
36         <field type="string" name="groupName">
37             <summary> Specifies the group name.</summary>
38         </field>
39         <field type="uinteger" name="groupID">
40             <summary> Specifies the Gid of the group.</summary>
41         </field>
42         <field name="groupMembers">
43             <summary> Specifies the members of the group.</summary>
44             <list type="string"/>
45         </field>
46     </struct>
47
48     <struct name="User">
49         <summary>
50             describes a Solaris user
51         </summary>
52         <doc>
53             Fully describes a Solaris user, contains
54             account, home directory and security attributes
55             associated with a user. See man passwd(4),
56             shadow(4), userattr(4) for more info on fields.
57         </doc>
58         <field type="string" name="username" nullable="false">
59             <summary> username for the account. </summary>
60         </field>
61         <field type="uinteger" name="userID">
62             <summary> UID for the account. </summary>
63         </field>
64         <field type="uinteger" name="groupID">
65             <summary> GID for the account. </summary>
66         </field>
67         <field type="string" name="description" nullable="true">
68             <summary> gecos info for the account. </summary>
69         </field>
70         <field type="string" name="homeDirectory" nullable="true">
71             <summary> homedirectory location for the account. </summary>
72         </field>
73         <field type="string" name="defaultShell" nullable="true">
74             <summary> default shell for the account. </summary>
75         </field>
76         <field type="integer" name="inactive">
77             <summary> Number of inactivity days allowed for the account.
78             </summary>
79         </field>
80         <field type="integer" name="min">
81             <summary> Minimum number of days between password changes
82                  for the account.
83             </summary>
84         </field>
85         <field type="integer" name="max"> 
86             <summary> Maximum cemunber of days the password is valid for
87                  the account.
88             </summary>
89         </field>
90         <field type="integer" name="warn">
91             <summary> Number of days before password expires the user 
92                  is warned.
93             </summary>
94         </field>
95         <field type="string" name="expire" nullable="true">
96             <summary> The date after which login will not be allowed for
97                  the account. The date format is %y-%m-%d %H:%M:%S.
98             </summary>
99         </field>
100         <field type="string" name="lockAfterRetries" nullable="true">
101             <summary> Specifies whether the account is locked
102                  after failed logins execeeds the allowable
103                  limit.
104             </summary>
105         </field>
106         <field type="string" name="alwaysAuditFlags" nullable="true">
107             <summary> Specifies per-user always audit pre-selection 
108                 flags.
109             </summary>
110         </field>
111         <field type="string" name="neverAuditFlags" nullable="true">
112             <summary> Specifies per-user never-audit
113                  pre-selection flags.
114             </summary>
115         </field>
116         <field type="string" name="type" nullable="true">
117             <summary> specifies whether account is role or user. </summary>
118         </field>
119         <field type="string" name="defaultProj" nullable="true">
120             <summary> specifies the default project for the account. </summary>
121         </field>
122         <field type="string" name="clearance" nullable="true">
123             <summary> Specifies the max label at which the user can
124                  operate.
125              </summary>
126         </field>
127         <field type="string" name="minLabel" nullable="true">
128             <summary> Specifies the min labelthat the user can login .</summary>
129         </field>
130         <field type="string" name="roleAuth" nullable="true">
131             <summary> Specifies whether the account user role or user
132                  password for role authentication.
133             </summary>
134         </field>
135         <field type="string" name="idleCmd" nullable="true">
136             <summary> Specifies when the desktop session for the user gets
137                 locked.
138              </summary>
139         </field>
140         <field type="string" name="idleTime" nullable="true">
141             <summary> Specifies the idle time before the idlecmd is 
142                  executed.
143             </summary>
144         </field>
145         <field type="string" name="accountStatus" nullable="true">
146             <summary> Specifies the status of the account.</summary>
147         </field>
148         <field name="roles" nullable="true">
149             <summary> Specifies the roles that have been assigned to the
150                  account.
151             </summary>
152             <list type="string"/>
153         </field>
154         <field name="profiles" nullable="true">
155             <summary> Specifies the profiles that have been assigned to the
156                  account.
157             </summary>
158             <list type="string"/>
159         </field>
05f426 160         <field name="authProfiles" nullable="true">
LD 161             <summary> Specifies the authenticated profiles that have been
162                 assigned to the account.
163             </summary>
164             <list type="string"/>
165         </field>
c4768d 166         <field name="auths" nullable="true">
DL 167             <summary> Specifies the authorizations that have been assigned
168                  to the account.
169             </summary>
170             <list type="string"/>
171         </field>
172         <field name="defaultPriv" nullable="true">
173             <summary> Specifies the default set of privileges assigned to
174                  user at login.
175             </summary>
176             <list type="string"/>
177         </field>
178         <field name="limitPriv" nullable="true">
179             <summary> Specifies the maximum  set of privileges the user or
180                  process started by the user can obtain.
181             </summary>
182             <list type="string"/>
183         </field>
184         <field name="groups" nullable="true">
185             <summary> Specifies the supplemental groups that have been
186                  assigned to the account.
187             </summary>
188             <list type="string"/>
189         </field>
190     </struct>
191
192     <struct name="UserChangeFields">
193         <summary>
194             Keeps track of all the fields that have been
195             changed in the user object.
196         </summary>
197         <doc>
198             Keeps track of all the fields that have been
199             changed in the user object. For every field
200             that has been changed in the User object the
201             respective changeField will be set to true.
202         </doc>
203         <field type="boolean" name="gidChanged"/>
204         <field type="boolean" name="descChanged"/>
205         <field type="boolean" name="homedirChanged"/>
206         <field type="boolean" name="defShellChanged"/>
207         <field type="boolean" name="profilesChanged"/>
05f426 208         <field type="boolean" name="authProfilesChanged"/>
c4768d 209         <field type="boolean" name="rolesChanged"/>
DL 210         <field type="boolean" name="authsChanged"/>
211         <field type="boolean" name="limitPrivChanged"/>
212         <field type="boolean" name="groupsChanged"/>
213         <field type="boolean" name="lockAfterRetriesChanged"/>
214         <field type="boolean" name="alwaysAuditChanged"/>
215         <field type="boolean" name="neverAuditChanged"/>
216         <field type="boolean" name="typeChanged"/>
217         <field type="boolean" name="defaultProjChanged"/>
218         <field type="boolean" name="minLabelChanged"/>
219         <field type="boolean" name="roleAuthChanged"/>
220         <field type="boolean" name="idleCmdChanged"/>
221         <field type="boolean" name="idleTimeChanged"/>
222         <field type="boolean" name="expireChanged"/>
223         <field type="boolean" name="minChanged"/>
224         <field type="boolean" name="maxChanged"/>
225         <field type="boolean" name="warnChanged"/>
226         <field type="boolean" name="uidChanged"/>
227     </struct>
228
229     <enum name="UserMgrErrorType">
230         <summary>User Manager api error types</summary>
231         <value name="INVALIDDATA"/>
232         <value name="USEREXISTS"/>
233         <value name="PERMDENIED"/>
234         <value name="READERROR"/>
235         <value name="LASTADMIN"/>
236         <value name="ROOTADMIN"/>
237         <value name="PASSERROR"/>
238     </enum>
239
240     <enum name="ScopeType">
241         <summary>Name service scope types</summary>
242         <value name="FILES"/>
243         <value name="LDAP"/>
244     </enum>
245
246     <struct name="UserMgrError">
247         <field typeref="UserMgrErrorType" name="errorCode"/>
248     </struct>
249
250     <enum name="UserType">
251         <value name="NORMAL"/>
252         <value name="ROLE"/>
253     </enum>
254
255     <interface name="UserMgr">
256         <summary>
257             Set of operations that can be performed on
258             users and roles.
259         </summary>
260         <version major="0" minor="1" stability="private"/>
261
262         <property name="users" access="ro">
263             <summary>
264                 Lists users.
265             </summary>
266             <doc>
267                 Lists the users present in the selected
268                 scope based on the filter options.
269             </doc>
270             <list typeref="User"/>
271             <error typeref="UserMgrError">
272                 <doc>
273                         <list>
274                     <item>
275                         <code>READERROR</code>  - when unable to read user after
276                              </item> 
277                     </list>
278                 </doc>
279             </error>
280         </property>
281
282         <property name="groups" access="ro">
283             <summary>
284                 Lists groups.
285             </summary>
286             <doc>
287                 Lists the groups present in the selected
288                 scope.
289             </doc>
290             <list typeref="Group"/>
291             <error typeref="UserMgrError">
292                 <doc>
293                         <list>
294                     <item>
295                         <code>READERROR</code>  - when unable to read the groups database.
296                              </item> 
297                     </list>
298                 </doc>
299             </error>
300         </property>
301
302         <property name="shells" access="ro">
303             <summary>
304                 Lists shells.
305             </summary>
306             <doc>
307                 Lists the set of available shells
308                 that can be set as default shell for users.
309             </doc>
310             <list type="string"/>
311             <error typeref="UserMgrError">
312                 <doc>
313                         <list>
314                     <item>
315                         <code>READERROR</code>  - when unable to read the default shells.
316                              </item> 
317                     </list>
318                 </doc>
319             </error>
320         </property>
321
322         <property name="defaultUser" typeref="User" access="ro">
323             <summary>
324                 Lists user defaults.
325             </summary>
326             <doc>
327                 Lists the default values for groups, basedir,
328                 project, shell, skel, inactive, expire,
329                 auths, profiles, roles, limitPriv,
330                 defaultPriv, lockAfterRetries used  for
331                 creation of users and roles.
332             </doc>
333             <error typeref="UserMgrError">
334                 <doc>
335                         <list>
336                     <item>
337                         <code>READERROR</code>  - when unable to read default user properties.
338                              </item> 
339                     </list>
340                 </doc>
341             </error>
342         </property>
343
344         <property name="scopes" access="ro">
345             <summary>
346                 Lists scopes.
347             </summary>
348             <doc>
349                 Lists the set of name service repositories
350                 that can be administered.
351             </doc>
352             <list type="string"/>
353             <error typeref="UserMgrError">
354                 <doc>
355                         <list>
356                     <item>
357                         <code>READERROR</code>  - when unable to read the name services that can be managed.
358                              </item> 
359                     </list>
360                 </doc>
361             </error>
362         </property>
363
364
365         <property name="roles" access="ro">
366             <summary>
367                 Lists assigned roles.
368             </summary>
369             <doc>
370                 Lists the roles assigned to a user.
371             </doc>
372             <list type="string"/>
373             <error typeref="UserMgrError">
374                 <doc>
375                         <list>
376                     <item>
377                         <code>READERROR</code>  - when unable to read user roles
378                              </item> 
379                     </list>
380                 </doc>
381             </error>
382         </property>
383
384         <property name="profiles" access="ro">
385             <summary>
386                 Lists assigned profiles.
387             </summary>
388             <doc>
389                 Lists the profiles assigned to a user.
390             </doc>
391             <list type="string"/>
392             <error typeref="UserMgrError">
393                 <doc>
394                         <list>
395                     <item>
396                         <code>READERROR</code>  - when unable to read user profiles.
397                              </item> 
398                     </list>
399                 </doc>
400             </error>
401         </property>
402
403         <property name="auths" access="ro">
404             <summary>
405                 Lists assigned authorizations.
406             </summary>
407             <doc>
408                 Lists the authorizations assigned to a user.
409             </doc>
410             <list type="string"/>
411             <error typeref="UserMgrError">
412                 <doc>
413                         <list>
414                     <item>
415                         <code>READERROR</code>  - when unable to read user authorizations.
416                              </item> 
417                     </list>
418                 </doc>
419             </error>
420         </property>
421
422         <property name="defaultPrivs" access="ro">
423             <summary>
424                 Lists default privileges.
425             </summary>
426             <doc>
427                 Lists the default privileges assigned to a user.
428             </doc>
429             <list type="string"/>
430             <error typeref="UserMgrError">
431                 <doc>
432                         <list>
433                     <item>
434                         <code>READERROR</code>  - when unable to read user's default privileges.
435                              </item> 
436                     </list>
437                 </doc>
438             </error>
439         </property>
440
441         <property name="limitPrivs" access="ro">
442             <summary>
443                 Lists limit privileges.
444             </summary>
445             <doc>
446                 Lists the limit privileges assigned to a user.
447             </doc>
448             <list type="string"/>
449             <error typeref="UserMgrError">
450                 <doc>
451                         <list>
452                     <item>
453                         <code>READERROR</code>  - when unable to read user's limit privileges.
454                              </item> 
455                     </list>
456                 </doc>
457             </error>
458         </property>
459
460         <property name="supplGroups" access="ro">
461             <summary>
462                 Lists supplemental groups.
463             </summary>
464             <doc>
465                 Lists the supplemental groups that the user
466                 is a member of.
467             </doc>
468             <list type="string"/>
469             <error typeref="UserMgrError">
470                 <doc>
471                         <list>
472                     <item>
473                         <code>READERROR</code>  - when unable to read user's supplemental groups.
474                              </item> 
475                     </list>
476                 </doc>
477             </error>
478         </property>
479
480         <property name="auditClasses" access="ro">
481             <summary>
482                 Lists Assigned Audit Classes.
483             </summary>
484             <doc>
485                 Lists the audit classes that are assigned to 
486                 the user.
487             </doc>
488             <list type="string"/>
489             <error typeref="UserMgrError">
490                 <doc>
491                         <list>
492                     <item>
493                         <code>READERROR</code>  - when unable to read user's assigned audit classes.
494                              </item> 
495                     </list>
496                 </doc>
497             </error>
498         </property>
499
500         <property name="pamUserConfFiles" access="ro">
501             <summary>
502                 Lists users PAM configuration files.
503             </summary>
504             <doc>
505                 Lists the per-user PAM configuration files.
506             </doc>
507             <list type="string"/>
508             <error typeref="UserMgrError">
509                 <doc>
510                         <list>
511                     <item>
512                         <code>READERROR</code>  - when unable to read user specific PAM configuration files.
513                              </item> 
514                     </list>
515                 </doc>
516             </error>
517         </property>
518
519         <method name="getUser">
520             <summary>
521                 gets User information for a given username.
522             </summary>
523             <doc>
524                 Gets the user information for a given username from 
525                 the name service repository based on the filter
526                 options.
527             </doc>
528             <result typeref="User"/>
529             <error typeref="UserMgrError">
530                 <doc>
531                         <list>
532                     <item>
533                         <code>READERROR</code>  - when unable to read user
534                              </item> 
535                     </list>
536                 </doc>
537             </error>
538             <argument type="string" name="username">
539                 <summary> Specifies the username for which the
540                     account information is to be retrieved.
541                 </summary>
542             </argument>    
543         </method>
544
545         <method name="addUser">
546             <summary>
547                 Add user or role.
548             </summary>
549             <doc>
550                 Adds a user or role to the selected name
551                 service repository based on the filter
552                 options. Applies the properties set in 
553                 the user object as the account, password,
554                 security attributes.
555                 Sets INVALIDDATA error when arguments are not valid.
556                 Sets PASSERROR error when password update fails.
557                 Sets READERROR error when unable to read user after
558                 successful addition of new user.
559                 Sets USEREXISTS error user already exists with same
560                 username.
561             </doc>
562             <result typeref="User"/>
563             <error typeref="UserMgrError">
564                 <doc>
565                         <list>
566                     <item>
567                         <code>INVALIDDATA</code>  - when arguments are not valid.
568                              </item> 
569                     <item>
570                         <code>INVALIDDATA</code>  - when arguments are not valid.
571                              </item> 
572                     <item>
573                         <code>READERROR</code>  - when unable to read user after adding new user.
574                              </item> 
575                     </list>
576                 </doc>
577             </error>
578             <argument typeref="User" name="user">
579                 <summary> user object which contains attributes of new
580                     user account to be created.
581                 </summary>
582             </argument>    
583             <argument type="secret" name="password">
584                 <summary> password to be set for the new user account.
585                 </summary>
586             </argument>
587         </method>
588
589         <method name="modifyUser">
590             <summary>
591                 Modify user or role.
592             </summary>
593             <doc>
594                 Modifies users or roles present in the selected
595                 scope based on the filter options.
596                 Applies the changed fields in the user object
597                 to the user or role attributes.    
598                 Sets INVALIDDATA error when arguments are not valid.
599                 Sets PASSERROR error when password update fails.
600                 Sets READERROR error when unable to read user after
601                 successful modification of user.
602             </doc>
603             <result typeref="User"/>
604             <error typeref="UserMgrError">
605                 <doc>
606                         <list>
607                     <item>
608                         <code>INVALIDDATA</code>  - when arguments are not valid.
609                              </item> 
610                     <item>
611                         <code>INVALIDDATA</code>  - when arguments are not valid.
612                              </item> 
613                     <item>
614                         <code>READERROR</code>  - when unable to read user after adding new user.
615                              </item> 
616                     </list>
617                 </doc>
618             </error>
619             <argument typeref="User" name="user">
620                 <summary> user object which contains user attributes
621                     to be modified.
622                 </summary>
623             </argument>
624             <argument type="secret" name="password" nullable="true">
625                 <summary> password to be set for the new user account.
626                 </summary>
627             </argument>
628             <argument typeref="UserChangeFields" name="changeFields">
629                 <summary> Indicates which fields have been modified
630                     in the user object by the client.
631                 </summary>
632             </argument>
633         </method>
634
635         <method name="deleteUser">
636             <summary>
637                 Delete user.
638             </summary>
639             <doc>
640                 Deletes user or role based on username 
641                 present in the selected scope based on the
642                 filter options.
643                 Sets READERROR error on failure.
644             </doc>
645             <error typeref="UserMgrError">
646                 <doc>
647                         <list>
648                     <item>
649                         <code>READERROR</code>  - when unable to read user
650                              </item> 
651                     </list>
652                 </doc>
653             </error>
654             <argument type="string" name="username">
655                 <summary> username of account that needs to be deleted.                    </summary>
656             </argument>
657         </method>
658
47baea 659         <method name="selectScope">
c4768d 660             <summary>
DL 661                 sets the name-service repository scope.
662             </summary>
663             <doc>
664                 Sets the name-service repository scope.
665                 All subsequent operations will use the specified                scope.
666             </doc>
667             <argument name="scope" typeref="ScopeType">
668                 <summary> Specifies the name-service scope to
669                     be used for managing users.
670                 </summary>
671             </argument>
672         </method>
673
674         <method name="setFilter">
675             <summary>
676                 Sets the filter options.
677             </summary>
678             <doc>
679                 Sets the filter options which are used for
680                 all the subsequent operations. The options
05f426 681                 are user or role and search string. The
LD 682                 default search string is empty string ("").
c4768d 683             </doc>
DL 684             <argument name="usertype" typeref="UserType">
685                 <summary> Specifies if users or roles 
686                     will be managed.
687                 </summary>
688             </argument>
689             <argument name="searchstring" type="string">
690                 <summary> Specifies the string to match
691                      against user or role names to be managed.
692                 </summary>
693             </argument>
694         </method>
695
696         <method name="isSystemLabeled">
697             <summary>Checks if System is Labeled.
698             </summary>
699             <doc>
700                 Checks if the Trusted Extensions feature is
701                 enabled on the system.
702                 Returns true if successful and sets
703                 Sets READERROR error on failure.
704             </doc>
705             <result type="boolean" />
706             <error typeref="UserMgrError">
707                 <doc>
708                         <list>
709                     <item>
710                         <code>READERROR</code>  - when checking if Trusted Extensions is enabled fails.
711                              </item> 
712                     </list>
713                 </doc>
714             </error>
715         </method>
716
717         <method name="getUserType">
718             <summary>Gets the user type.
719             </summary>
720             <doc>
721                 Checks if the user is role or normal user.
722                 Returns UserType set to role or normal user.
723                 Sets READERROR error on failure.
724             </doc>
725             <result typeref="UserType"/>
726             <error typeref="UserMgrError">
727                 <doc>
728                         <list>
729                     <item>
730                         <code>READERROR</code>  - when checking if Trusted Extensions is enabled fails.
731                              </item> 
732                     </list>
733                 </doc>
734             </error>
735             <argument name="username" type="string">
736                 <summary> Specifies user name to check for user or role.
737                 </summary>
738             </argument>
739         </method>
740     </interface>
741 </api>