description: >
    Implement this interface to set the privilege of the user based on the
    group name. The users in the group will inherit the privilege mapping of
    the group. The Create method on success creates the object which implements
    xyz.openbmc_project.User.PrivilegeMapperEntry. For example in the case of
    LDAP, the object path will be
    /xyz/openbmc_project/user/ldap/privilege_mapper/<id>. The <id> will be
    a unique number generated by the application. If the privilege mapping
    already exists then it throws the exception
    xyz.openbmc_project.User.Common.Error.PrivilegeMappingExists. To modify the
    privilege for a mapping which already exists, the Privilege property in the
    xyz.openbmc_project.User.PrivilegeMapperEntry interface needs to be set.
    Any application consuming the privilege mapping should not cache the object
    path and use the GetManagedObjects method on the
    org.freedesktop.DBus.ObjectManager interface to figure out the D-Bus object
    path associated with the group name.

methods:
    - name: Create
      description: >
          Creates a mapping for the group to the privilege.
      parameters:
          - name: GroupName
            type: string
            description: >
                Group Name to which the privilege is to be assigned. In the case
                of LDAP, the GroupName will be the LDAP group the user is part of.
          - name: Privilege
            type: string
            description: >
                The privilege associated with the group. The set of available
                privileges are xyz.openbmc_project.User.Manager.AllPrivileges.
                xyz.openbmc_project.Common.Error.InvalidArgument exception will
                be thrown if the privilege is invalid. Additional documentation
                on privilege is available here.
                https://github.com/openbmc/docs/blob/master/architecture/user-management.md
      returns:
          - name: Path
            type: object_path
            description: >
                The path for the created privilege mapping object.

      errors:
          - xyz.openbmc_project.Common.Error.InternalFailure
          - xyz.openbmc_project.Common.Error.InvalidArgument
          - xyz.openbmc_project.User.Common.Error.PrivilegeMappingExists
