blob: 4cc0ab0beefd65e0cdc35d23b0a1f44cbcf2a070 [file] [log] [blame]
description: >
Provides user management functionality. As communication to this service is
done through authenticated & authorized session, there won't be any
validation for both.
methods:
- name: CreateUser
description: >
Creates a new user. If the user already exists, then it will throw an
error.
parameters:
- name: UserName
type: string
description: >
User name which has to be created.
- name: GroupNames
type: array[string]
description: >
List of groups to which the user has to be added.
- name: Privilege
type: string
description: >
Privilege of the user to be added.
- name: Enabled
type: boolean
description: >
User enabled / disabled.
errors:
- xyz.openbmc_project.Common.Error.InternalFailure
- xyz.openbmc_project.Common.Error.InsufficientPermission
- xyz.openbmc_project.Common.Error.InvalidArgument
- xyz.openbmc_project.User.Common.Error.UserNameExists
- xyz.openbmc_project.User.Common.Error.UserNameGroupFail
- xyz.openbmc_project.User.Common.Error.UserNamePrivFail
- xyz.openbmc_project.User.Common.Error.NoResource
- name: RenameUser
description: >
Rename's existing user to new one. All other properties of the user
will remain same.
parameters:
- name: UserName
type: string
description: >
User name which has to be updated.
- name: NewUserName
type: string
description: >
New User name to which user has to be updated.
errors:
- xyz.openbmc_project.Common.Error.InternalFailure
- xyz.openbmc_project.Common.Error.InsufficientPermission
- xyz.openbmc_project.Common.Error.InvalidArgument
- xyz.openbmc_project.User.Common.Error.UserNameDoesNotExist
- xyz.openbmc_project.User.Common.Error.UserNameExists
- xyz.openbmc_project.User.Common.Error.UserNameGroupFail
- xyz.openbmc_project.User.Common.Error.UserNamePrivFail
- xyz.openbmc_project.User.Common.Error.NoResource
- name: GetUserInfo
description: >
Get user properites. If its local user, method returns
-user privilege
-user groups
-user enabled state
-user locked state
-user password expired state
-remote user flag
If its ldap user, method returns
-user privilege
-remote user flag
parameters:
- name: UserName
type: string
description: >
User name whose properties have to be returned.
returns:
- name: UserInfo
type: dict[string,variant[string,array[string],boolean]]
description: >
Dictionary of user properties. List of key name and data type of
properties below. UserPrivilege -> privilege of the user(string)
UserGroups -> list of groups user belongs to(array[string])
UserEnabled -> user enabled state(boolean)
UserLockedForFailedAttempt -> user locked state(boolean)
UserPasswordExpired -> user password expired(boolean)
RemoteUser -> remote or local user(boolean)
For detailed documentation of user properties refer
Attributes.interface.yaml examples:
1.UserInfo["RemoteUser"] returns true for ldap user
and false for local user.
2.UserInfo["UserGroups"] gets list of groups of user.
errors:
- xyz.openbmc_project.Common.Error.InternalFailure
- xyz.openbmc_project.Common.Error.InsufficientPermission
- xyz.openbmc_project.Common.Error.InvalidArgument
- xyz.openbmc_project.User.Common.Error.UserNameDoesNotExist
- name: CreateGroup
description: >
Creates a new groups. If the group already exists, or the group name
is not allowed to be created, it throws an error.
parameters:
- name: GroupName
type: string
description: >
The group to be added to the system.
errors:
- xyz.openbmc_project.Common.Error.InternalFailure
- xyz.openbmc_project.Common.Error.InvalidArgument
- xyz.openbmc_project.User.Common.Error.GroupNameExists
- name: DeleteGroup
description: >
Deletes an existing groups. If the group doesn't exists, or the group
name is not allowed to be deleted, it throws an error.
parameters:
- name: GroupName
type: string
description: >
The group to be deleted from the system.
errors:
- xyz.openbmc_project.Common.Error.InternalFailure
- xyz.openbmc_project.Common.Error.InvalidArgument
- xyz.openbmc_project.User.Common.Error.GroupNameDoesNotExist
properties:
- name: AllPrivileges
type: array[string]
flags:
- const
description: >
Lists all available user privileges in the system.
- name: AllGroups
type: array[string]
flags:
- const
description: >
Lists all available groups in the system.
signals:
- name: UserRenamed
description: >
Signal indicating user's name is updated.
properties:
- name: UserName
type: string
description: Name of the user which got renamed.
- name: NewUserName
type: string
description: New name of the user.