description: >
    Provides user objects, their properties. As communication to this service is
    done through authenticated & authorized session, there won't be any
    validation for the both.

properties:
    - name: UserGroups
      type: array[string]
      description: >
          Groups to which the user belong.
      errors:
          - xyz.openbmc_project.Common.Error.InternalFailure

    - name: UserPrivilege
      type: string
      description: >
          Privilege of the user. Acceptable values of the system are listed
          under AllPrivileges property under User.Manager interface.
      errors:
          - xyz.openbmc_project.Common.Error.InternalFailure
          - xyz.openbmc_project.Common.Error.InvalidArgument

    - name: UserEnabled
      type: boolean
      description: >
          Enabled or disabled state of the user.
      errors:
          - xyz.openbmc_project.Common.Error.InternalFailure

    - name: UserLockedForFailedAttempt
      type: boolean
      description: >
          Locked or unlocked state of the user. After repeated failed login
          attempt (configured through MaxLoginAttemptBeforeLockout), locked out
          user can be unlocked manually by setting false to this property. This
          property will return true if user is locked out user.
          AccountUnlockTimeout property can be configured to unlock the user
          after a timeout.
      errors:
          - xyz.openbmc_project.Common.Error.InternalFailure

    - name: RemoteUser
      type: boolean
      flags:
          - const
      description: >
          False for local users.
      errors:
          - xyz.openbmc_project.Common.Error.InternalFailure

    - name: UserPasswordExpired
      type: boolean
      flags:
          - const
      description: >
          True when the user's password must be changed before access should be
          granted.
      errors:
          - xyz.openbmc_project.Common.Error.InternalFailure
