blob: 14774c0220255aaa61f0b934fb323210002aaa6f [file] [log] [blame]
Richard Marian Thomaiyar05375b12018-05-24 10:33:27 +05301description: >
2 Provides user management functionality.
3 As communication to this service is done through authenticated
4 & authorized session, there won't be any validation for both.
5
6methods:
7 - name: CreateUser
8 description: >
9 Creates a new user. If the user already exists, then it will throw
10 an error.
11 parameters:
Patrick Williams8da396c2022-03-14 14:21:02 -050012 - name: UserName
13 type: string
14 description: >
15 User name which has to be created.
16 - name: GroupNames
17 type: array[string]
18 description: >
19 List of groups to which the user has to be added.
20 - name: Privilege
21 type: string
22 description: >
23 Privilege of the user to be added.
24 - name: Enabled
25 type: boolean
26 description: >
27 User enabled / disabled.
Richard Marian Thomaiyar05375b12018-05-24 10:33:27 +053028 errors:
Patrick Williams8da396c2022-03-14 14:21:02 -050029 - xyz.openbmc_project.Common.Error.InternalFailure
30 - xyz.openbmc_project.Common.Error.InsufficientPermission
31 - xyz.openbmc_project.Common.Error.InvalidArgument
32 - xyz.openbmc_project.User.Common.Error.UserNameExists
33 - xyz.openbmc_project.User.Common.Error.UserNameGroupFail
34 - xyz.openbmc_project.User.Common.Error.UserNamePrivFail
35 - xyz.openbmc_project.User.Common.Error.NoResource
Richard Marian Thomaiyar05375b12018-05-24 10:33:27 +053036
37 - name: RenameUser
38 description: >
39 Rename's existing user to new one. All other properties of the
40 user will remain same.
41 parameters:
Patrick Williams8da396c2022-03-14 14:21:02 -050042 - name: UserName
43 type: string
44 description: >
45 User name which has to be updated.
46 - name: NewUserName
47 type: string
48 description: >
49 New User name to which user has to be updated.
Richard Marian Thomaiyar05375b12018-05-24 10:33:27 +053050 errors:
Patrick Williams8da396c2022-03-14 14:21:02 -050051 - xyz.openbmc_project.Common.Error.InternalFailure
52 - xyz.openbmc_project.Common.Error.InsufficientPermission
53 - xyz.openbmc_project.Common.Error.InvalidArgument
54 - xyz.openbmc_project.User.Common.Error.UserNameDoesNotExist
55 - xyz.openbmc_project.User.Common.Error.UserNameExists
56 - xyz.openbmc_project.User.Common.Error.UserNameGroupFail
57 - xyz.openbmc_project.User.Common.Error.UserNamePrivFail
58 - xyz.openbmc_project.User.Common.Error.NoResource
Richard Marian Thomaiyar05375b12018-05-24 10:33:27 +053059
raviteja-bac5b6562019-03-01 01:33:42 -060060 - name: GetUserInfo
61 description: >
62 Get user properites.
63 If its local user, method returns
64 -user privilege
65 -user groups
66 -user enabled state
67 -user locked state
Joseph Reynoldse375cad2020-04-10 17:22:06 -050068 -user password expired state
raviteja-bac5b6562019-03-01 01:33:42 -060069 -remote user flag
70 If its ldap user, method returns
71 -user privilege
72 -remote user flag
73 parameters:
Patrick Williams8da396c2022-03-14 14:21:02 -050074 - name: UserName
75 type: string
76 description: >
77 User name whose properties have to be returned.
raviteja-bac5b6562019-03-01 01:33:42 -060078 returns:
Patrick Williams8da396c2022-03-14 14:21:02 -050079 - name: UserInfo
80 type: dict[string,variant[string,array[string],boolean]]
81 description: >
82 Dictionary of user properties.
83 List of key name and data type of properties below.
84 UserPrivilege -> privilege of the user(string)
85 UserGroups -> list of groups user belongs to(array[string])
86 UserEnabled -> user enabled state(boolean)
87 UserLockedForFailedAttempt -> user locked state(boolean)
88 UserPasswordExpired -> user password expired(boolean)
89 RemoteUser -> remote or local user(boolean)
raviteja-bac5b6562019-03-01 01:33:42 -060090
Patrick Williams8da396c2022-03-14 14:21:02 -050091 For detailed documentation of user properties refer
92 Attributes.interface.yaml
93 examples:
94 1.UserInfo["RemoteUser"] returns true for ldap user
95 and false for local user.
96 2.UserInfo["UserGroups"] gets list of groups of user.
raviteja-bac5b6562019-03-01 01:33:42 -060097 errors:
Patrick Williams8da396c2022-03-14 14:21:02 -050098 - xyz.openbmc_project.Common.Error.InternalFailure
99 - xyz.openbmc_project.Common.Error.InsufficientPermission
100 - xyz.openbmc_project.Common.Error.InvalidArgument
101 - xyz.openbmc_project.User.Common.Error.UserNameDoesNotExist
raviteja-bac5b6562019-03-01 01:33:42 -0600102
Nan Zhou1a891d32022-10-24 23:51:41 +0000103 - name: CreateGroup
104 description: >
105 Creates a new groups. If the group already exists, or the
106 group name is not allowed to be created, it throws an error.
107 parameters:
108 - name: GroupName
109 type: string
110 description: >
111 The group to be added to the system.
112 errors:
113 - xyz.openbmc_project.Common.Error.InternalFailure
114 - xyz.openbmc_project.Common.Error.InvalidArgument
115 - xyz.openbmc_project.User.Common.Error.GroupNameExists
116
117 - name: DeleteGroup
118 description: >
119 Deletes an existing groups. If the group doesn't exists, or the
120 group name is not allowed to be deleted, it throws an error.
121 parameters:
122 - name: GroupName
123 type: string
124 description: >
125 The group to be deleted from the system.
126 errors:
127 - xyz.openbmc_project.Common.Error.InternalFailure
128 - xyz.openbmc_project.Common.Error.InvalidArgument
129 - xyz.openbmc_project.User.Common.Error.GroupNameDoesNotExist
130
Richard Marian Thomaiyar05375b12018-05-24 10:33:27 +0530131properties:
132 - name: AllPrivileges
133 type: array[string]
Richard Marian Thomaiyar7aa705a2019-08-31 10:51:25 +0530134 flags:
135 - const
Richard Marian Thomaiyar05375b12018-05-24 10:33:27 +0530136 description: >
137 Lists all available user privileges in the system.
138
139 - name: AllGroups
140 type: array[string]
Richard Marian Thomaiyar7aa705a2019-08-31 10:51:25 +0530141 flags:
142 - const
Richard Marian Thomaiyar05375b12018-05-24 10:33:27 +0530143 description: >
144 Lists all available groups in the system.
145
146signals:
147 - name: UserRenamed
148 description: >
Patrick Williams8da396c2022-03-14 14:21:02 -0500149 Signal indicating user's name is updated.
Richard Marian Thomaiyar05375b12018-05-24 10:33:27 +0530150 properties:
Patrick Williams8da396c2022-03-14 14:21:02 -0500151 - name: UserName
152 type: string
153 description: Name of the user which got renamed.
154 - name: NewUserName
155 type: string
156 description: New name of the user.