blob: 4cc0ab0beefd65e0cdc35d23b0a1f44cbcf2a070 [file] [log] [blame]
Richard Marian Thomaiyar05375b12018-05-24 10:33:27 +05301description: >
Patrick Williamsa1347412022-12-06 10:56:22 -06002 Provides user management functionality. As communication to this service is
3 done through authenticated & authorized session, there won't be any
4 validation for both.
Richard Marian Thomaiyar05375b12018-05-24 10:33:27 +05305
6methods:
7 - name: CreateUser
8 description: >
Patrick Williamsa1347412022-12-06 10:56:22 -06009 Creates a new user. If the user already exists, then it will throw an
10 error.
Richard Marian Thomaiyar05375b12018-05-24 10:33:27 +053011 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: >
Patrick Williamsa1347412022-12-06 10:56:22 -060039 Rename's existing user to new one. All other properties of the user
40 will remain same.
Richard Marian Thomaiyar05375b12018-05-24 10:33:27 +053041 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: >
Patrick Williamsa1347412022-12-06 10:56:22 -060062 Get user properites. If its local user, method returns
raviteja-bac5b6562019-03-01 01:33:42 -060063 -user privilege
64 -user groups
65 -user enabled state
66 -user locked state
Joseph Reynoldse375cad2020-04-10 17:22:06 -050067 -user password expired state
raviteja-bac5b6562019-03-01 01:33:42 -060068 -remote user flag
69 If its ldap user, method returns
70 -user privilege
71 -remote user flag
72 parameters:
Patrick Williams8da396c2022-03-14 14:21:02 -050073 - name: UserName
74 type: string
75 description: >
76 User name whose properties have to be returned.
raviteja-bac5b6562019-03-01 01:33:42 -060077 returns:
Patrick Williams8da396c2022-03-14 14:21:02 -050078 - name: UserInfo
79 type: dict[string,variant[string,array[string],boolean]]
80 description: >
Patrick Williamsa1347412022-12-06 10:56:22 -060081 Dictionary of user properties. List of key name and data type of
82 properties below. UserPrivilege -> privilege of the user(string)
Patrick Williams8da396c2022-03-14 14:21:02 -050083 UserGroups -> list of groups user belongs to(array[string])
84 UserEnabled -> user enabled state(boolean)
85 UserLockedForFailedAttempt -> user locked state(boolean)
86 UserPasswordExpired -> user password expired(boolean)
87 RemoteUser -> remote or local user(boolean)
raviteja-bac5b6562019-03-01 01:33:42 -060088
Patrick Williams8da396c2022-03-14 14:21:02 -050089 For detailed documentation of user properties refer
Patrick Williamsa1347412022-12-06 10:56:22 -060090 Attributes.interface.yaml examples:
Patrick Williams8da396c2022-03-14 14:21:02 -050091 1.UserInfo["RemoteUser"] returns true for ldap user
92 and false for local user.
93 2.UserInfo["UserGroups"] gets list of groups of user.
raviteja-bac5b6562019-03-01 01:33:42 -060094 errors:
Patrick Williams8da396c2022-03-14 14:21:02 -050095 - xyz.openbmc_project.Common.Error.InternalFailure
96 - xyz.openbmc_project.Common.Error.InsufficientPermission
97 - xyz.openbmc_project.Common.Error.InvalidArgument
98 - xyz.openbmc_project.User.Common.Error.UserNameDoesNotExist
raviteja-bac5b6562019-03-01 01:33:42 -060099
Nan Zhou1a891d32022-10-24 23:51:41 +0000100 - name: CreateGroup
101 description: >
Patrick Williamsa1347412022-12-06 10:56:22 -0600102 Creates a new groups. If the group already exists, or the group name
103 is not allowed to be created, it throws an error.
Nan Zhou1a891d32022-10-24 23:51:41 +0000104 parameters:
105 - name: GroupName
106 type: string
107 description: >
108 The group to be added to the system.
109 errors:
110 - xyz.openbmc_project.Common.Error.InternalFailure
111 - xyz.openbmc_project.Common.Error.InvalidArgument
112 - xyz.openbmc_project.User.Common.Error.GroupNameExists
113
114 - name: DeleteGroup
115 description: >
Patrick Williamsa1347412022-12-06 10:56:22 -0600116 Deletes an existing groups. If the group doesn't exists, or the group
117 name is not allowed to be deleted, it throws an error.
Nan Zhou1a891d32022-10-24 23:51:41 +0000118 parameters:
119 - name: GroupName
120 type: string
121 description: >
122 The group to be deleted from the system.
123 errors:
124 - xyz.openbmc_project.Common.Error.InternalFailure
125 - xyz.openbmc_project.Common.Error.InvalidArgument
126 - xyz.openbmc_project.User.Common.Error.GroupNameDoesNotExist
127
Richard Marian Thomaiyar05375b12018-05-24 10:33:27 +0530128properties:
129 - name: AllPrivileges
130 type: array[string]
Richard Marian Thomaiyar7aa705a2019-08-31 10:51:25 +0530131 flags:
132 - const
Richard Marian Thomaiyar05375b12018-05-24 10:33:27 +0530133 description: >
134 Lists all available user privileges in the system.
135
136 - name: AllGroups
137 type: array[string]
Richard Marian Thomaiyar7aa705a2019-08-31 10:51:25 +0530138 flags:
139 - const
Richard Marian Thomaiyar05375b12018-05-24 10:33:27 +0530140 description: >
141 Lists all available groups in the system.
142
143signals:
144 - name: UserRenamed
145 description: >
Patrick Williams8da396c2022-03-14 14:21:02 -0500146 Signal indicating user's name is updated.
Richard Marian Thomaiyar05375b12018-05-24 10:33:27 +0530147 properties:
Patrick Williams8da396c2022-03-14 14:21:02 -0500148 - name: UserName
149 type: string
150 description: Name of the user which got renamed.
151 - name: NewUserName
152 type: string
153 description: New name of the user.