1description: >
2    Implement this interface to set the privilege of the user based on the
3    group name. The users in the group will inherit the privilege mapping of
4    the group. The Create method on success creates the object which implements
5    xyz.openbmc_project.User.PrivilegeMapperEntry. For example in the case of
6    LDAP, the object path will be
7    /xyz/openbmc_project/user/ldap/privilege_mapper/<id>. The <id> will be
8    a unique number generated by the application. If the privilege mapping
9    already exists then it throws the exception
10    xyz.openbmc_project.User.Common.Error.PrivilegeMappingExists. To modify the
11    privilege for a mapping which already exists, the Privilege property in the
12    xyz.openbmc_project.User.PrivilegeMapperEntry interface needs to be set.
13    Any application consuming the privilege mapping should not cache the object
14    path and use the GetManagedObjects method on the
15    org.freedesktop.DBus.ObjectManager interface to figure out the D-Bus object
16    path associated with the group name.
17
18methods:
19    - name: Create
20      description: >
21          Creates a mapping for the group to the privilege.
22      parameters:
23          - name: GroupName
24            type: string
25            description: >
26                Group Name to which the privilege is to be assigned. In the case
27                of LDAP, the GroupName will be the LDAP group the user is part of.
28          - name: Privilege
29            type: string
30            description: >
31                The privilege associated with the group. The set of available
32                privileges are xyz.openbmc_project.User.Manager.AllPrivileges.
33                xyz.openbmc_project.Common.Error.InvalidArgument exception will
34                be thrown if the privilege is invalid. Additional documentation
35                on privilege is available here.
36                https://github.com/openbmc/docs/blob/master/architecture/user-management.md
37      returns:
38          - name: Path
39            type: path
40            description: >
41                The path for the created privilege mapping object.
42
43      errors:
44          - xyz.openbmc_project.Common.Error.InternalFailure
45          - xyz.openbmc_project.Common.Error.InvalidArgument
46          - xyz.openbmc_project.User.Common.Error.PrivilegeMappingExists
47