Class UserApi

    • Constructor Detail

      • UserApi

        public UserApi​(GitLabApi gitLabApi)
    • Method Detail

      • enableCustomAttributes

        public void enableCustomAttributes()
        Enables custom attributes to be returned when fetching User instances.
      • disableCustomAttributes

        public void disableCustomAttributes()
        Disables custom attributes to be returned when fetching User instances.
      • getUsers

        public java.util.List<User> getUsers()
                                      throws GitLabApiException

        Get a list of users.

        WARNING: Do not use this method to fetch users from https://gitlab.com, gitlab.com has many 1,000,000's of users and it will a long time to fetch all of them. Instead use getUsers(int itemsPerPage) which will return a Pager of Group instances.
        GitLab Endpoint: GET /users
        Returns:
        a list of Users
        Throws:
        GitLabApiException - if any exception occurs
      • getUsers

        public java.util.List<User> getUsers​(int page,
                                             int perPage)
                                      throws GitLabApiException
        Get a list of users using the specified page and per page settings.
        GitLab Endpoint: GET /users
        Parameters:
        page - the page to get
        perPage - the number of users per page
        Returns:
        the list of Users in the specified range
        Throws:
        GitLabApiException - if any exception occurs
      • getUsers

        public Pager<User> getUsers​(int itemsPerPage)
                             throws GitLabApiException
        Get a Pager of users.
        GitLab Endpoint: GET /users
        Parameters:
        itemsPerPage - the number of User instances that will be fetched per page
        Returns:
        a Pager of User
        Throws:
        GitLabApiException - if any exception occurs
      • getUsersStream

        public java.util.stream.Stream<User> getUsersStream()
                                                     throws GitLabApiException
        Get a Stream of users.
        GitLab Endpoint: GET /users
        Returns:
        a Stream of Users.
        Throws:
        GitLabApiException - if any exception occurs
      • getActiveUsers

        public java.util.List<User> getActiveUsers()
                                            throws GitLabApiException
        Get a list of active users
        GitLab Endpoint: GET /users?active=true
        Returns:
        a list of active Users
        Throws:
        GitLabApiException - if any exception occurs
      • getActiveUsers

        public java.util.List<User> getActiveUsers​(int page,
                                                   int perPage)
                                            throws GitLabApiException
        Get a list of active users using the specified page and per page settings.
        GitLab Endpoint: GET /users?active=true
        Parameters:
        page - the page to get
        perPage - the number of users per page
        Returns:
        the list of active Users in the specified range
        Throws:
        GitLabApiException - if any exception occurs
      • getActiveUsers

        public Pager<User> getActiveUsers​(int itemsPerPage)
                                   throws GitLabApiException
        Get a Pager of active users.
        GitLab Endpoint: GET /users?active=true
        Parameters:
        itemsPerPage - the number of active User instances that will be fetched per page
        Returns:
        a Pager of active User
        Throws:
        GitLabApiException - if any exception occurs
      • getActiveUsersStream

        public java.util.stream.Stream<User> getActiveUsersStream()
                                                           throws GitLabApiException
        Get a Stream of active users
        GitLab Endpoint: GET /users?active=true
        Returns:
        a Stream of active Users
        Throws:
        GitLabApiException - if any exception occurs
      • approveUser

        public void approveUser​(java.lang.Long userId)
                         throws GitLabApiException
        Approves the specified user. Available only for admin.
        GitLab Endpoint: POST /users/:id/approve
        Parameters:
        userId - the ID of the user to approve
        Throws:
        GitLabApiException - if any exception occurs
      • rejectUser

        public void rejectUser​(java.lang.Long userId)
                        throws GitLabApiException
        Rejects specified user that is pending approval. Available only for administrators.
        GitLab Endpoint: POST /users/:id/reject
        Parameters:
        userId - the ID of the user to reject
        Throws:
        GitLabApiException - if any exception occurs
      • blockUser

        public void blockUser​(java.lang.Long userId)
                       throws GitLabApiException
        Blocks the specified user. Available only for admin.
        GitLab Endpoint: POST /users/:id/block
        Parameters:
        userId - the ID of the user to block
        Throws:
        GitLabApiException - if any exception occurs
      • unblockUser

        public void unblockUser​(java.lang.Long userId)
                         throws GitLabApiException
        Unblocks the specified user. Available only for admin.
        GitLab Endpoint: POST /users/:id/unblock
        Parameters:
        userId - the ID of the user to unblock
        Throws:
        GitLabApiException - if any exception occurs
      • getBlockedUsers

        public java.util.List<User> getBlockedUsers()
                                             throws GitLabApiException
        Get a list of blocked users.
        GitLab Endpoint: GET /users?blocked=true
        Returns:
        a list of blocked Users
        Throws:
        GitLabApiException - if any exception occurs
      • getblockedUsers

        public java.util.List<User> getblockedUsers​(int page,
                                                    int perPage)
                                             throws GitLabApiException
        Get a list of blocked users using the specified page and per page settings.
        GitLab Endpoint: GET /users?blocked=true
        Parameters:
        page - the page to get
        perPage - the number of users per page
        Returns:
        the list of blocked Users in the specified range
        Throws:
        GitLabApiException - if any exception occurs
      • getBlockedUsers

        public Pager<User> getBlockedUsers​(int itemsPerPage)
                                    throws GitLabApiException
        Get a Pager of blocked users.
        GitLab Endpoint: GET /users?blocked=true
        Parameters:
        itemsPerPage - the number of blocked User instances that will be fetched per page
        Returns:
        a Pager of blocked User
        Throws:
        GitLabApiException - if any exception occurs
      • getBlockedUsersStream

        public java.util.stream.Stream<User> getBlockedUsersStream()
                                                            throws GitLabApiException
        Get a Stream of blocked users.
        GitLab Endpoint: GET /users?blocked=true
        Returns:
        a Stream of blocked Users
        Throws:
        GitLabApiException - if any exception occurs
      • getUser

        public User getUser​(java.lang.Long userId)
                     throws GitLabApiException
        Get a single user.
        GitLab Endpoint: GET /users/:id
        Parameters:
        userId - the ID of the user to get
        Returns:
        the User instance for the specified user ID
        Throws:
        GitLabApiException - if any exception occurs
      • getOptionalUser

        public java.util.Optional<User> getOptionalUser​(java.lang.Long userId)
        Get a single user as an Optional instance.
        GitLab Endpoint: GET /users/:id
        Parameters:
        userId - the ID of the user to get
        Returns:
        the User for the specified user ID as an Optional instance
      • getUser

        public User getUser​(java.lang.String username)
                     throws GitLabApiException
        Lookup a user by username. Returns null if not found.

        NOTE: This is for admin users only.

        GitLab Endpoint: GET /users?username=:username
        Parameters:
        username - the username of the user to get
        Returns:
        the User instance for the specified username, or null if not found
        Throws:
        GitLabApiException - if any exception occurs
      • getOptionalUser

        public java.util.Optional<User> getOptionalUser​(java.lang.String username)
        Lookup a user by username and return an Optional instance.

        NOTE: This is for admin users only.

        GitLab Endpoint: GET /users?username=:username
        Parameters:
        username - the username of the user to get
        Returns:
        the User for the specified username as an Optional instance
      • getUserByEmail

        public User getUserByEmail​(java.lang.String email)
                            throws GitLabApiException
        Lookup a user by email address. Returns null if not found.
        GitLab Endpoint: GET /users?search=:email_or_username
        Parameters:
        email - the email of the user to get
        Returns:
        the User instance for the specified email, or null if not found
        Throws:
        GitLabApiException - if any exception occurs
        java.lang.IllegalArgumentException - if email is not valid
      • getOptionalUserByEmail

        public java.util.Optional<User> getOptionalUserByEmail​(java.lang.String email)
        Lookup a user by email address and returns an Optional with the User instance as the value.
        GitLab Endpoint: GET /users?search=:email_or_username
        Parameters:
        email - the email of the user to get
        Returns:
        the User for the specified email as an Optional instance
      • getUserByExternalUid

        public User getUserByExternalUid​(java.lang.String provider,
                                         java.lang.String externalUid)
                                  throws GitLabApiException
        Lookup a user by external UID. Returns null if not found.

        NOTE: This is for admin users only.

        GitLab Endpoint: GET /users?extern_uid=:externalUid&provider=:provider
        Parameters:
        provider - the provider of the external uid
        externalUid - the external UID of the user
        Returns:
        the User instance for the specified external UID, or null if not found
        Throws:
        GitLabApiException - if any exception occurs
      • getOptionalUserByExternalUid

        public java.util.Optional<User> getOptionalUserByExternalUid​(java.lang.String provider,
                                                                     java.lang.String externalUid)
        Lookup a user by external UID and return an Optional instance.

        NOTE: This is for admin users only.

        GitLab Endpoint: GET /users?extern_uid=:externUid&provider=:provider
        Parameters:
        provider - the provider of the external uid
        externalUid - the external UID of the user
        Returns:
        the User for the specified external UID as an Optional instance
      • findUsers

        public java.util.List<User> findUsers​(java.lang.String emailOrUsername)
                                       throws GitLabApiException
        Search users by Email or username
        GitLab Endpoint: GET /users?search=:email_or_username
        Parameters:
        emailOrUsername - the email or username to search for
        Returns:
        the User List with the email or username like emailOrUsername
        Throws:
        GitLabApiException - if any exception occurs
      • findUsers

        public java.util.List<User> findUsers​(java.lang.String emailOrUsername,
                                              int page,
                                              int perPage)
                                       throws GitLabApiException
        Search users by Email or username in the specified page range.
        GitLab Endpoint: GET /users?search=:email_or_username
        Parameters:
        emailOrUsername - the email or username to search for
        page - the page to get
        perPage - the number of users per page
        Returns:
        the User List with the email or username like emailOrUsername in the specified page range
        Throws:
        GitLabApiException - if any exception occurs
      • findUsers

        public Pager<User> findUsers​(java.lang.String emailOrUsername,
                                     int itemsPerPage)
                              throws GitLabApiException
        Search users by Email or username and return a Pager
        GitLab Endpoint: GET /users?search=:email_or_username
        Parameters:
        emailOrUsername - the email or username to search for
        itemsPerPage - the number of Project instances that will be fetched per page
        Returns:
        the User Pager with the email or username like emailOrUsername
        Throws:
        GitLabApiException - if any exception occurs
      • findUsersStream

        public java.util.stream.Stream<User> findUsersStream​(java.lang.String emailOrUsername)
                                                      throws GitLabApiException
        Search users by Email or username.
        GitLab Endpoint: GET /users?search=:email_or_username
        Parameters:
        emailOrUsername - the email or username to search for
        Returns:
        a Stream of User instances with the email or username like emailOrUsername
        Throws:
        GitLabApiException - if any exception occurs
      • createUser

        @Deprecated
        public User createUser​(User user,
                               java.lang.CharSequence password,
                               java.lang.Integer projectsLimit)
                        throws GitLabApiException
        Deprecated.
        Will be removed in version 6.0, replaced by createUser(User, CharSequence, boolean)

        Creates a new user. Note only administrators can create new users. Either password or reset_password should be specified (reset_password takes priority).

        If both the User object's projectsLimit and the parameter projectsLimit is specified the parameter will take precedence.

        GitLab Endpoint: POST /users

        The following properties of the provided User instance can be set during creation:

         email (required) - Email
         username (required) - Username
         name (required) - Name
         skype (optional) - Skype ID
         linkedin (optional) - LinkedIn
         twitter (optional) - Twitter account
         websiteUrl (optional) - Website URL
         organization (optional) - Organization name
         projectsLimit (optional) - Number of projects user can create
         externUid (optional) - External UID
         provider (optional) - External provider name
         bio (optional) - User's biography
         location (optional) - User's location
         admin (optional) - User is admin - true or false (default)
         canCreateGroup (optional) - User can create groups - true or false
         skipConfirmation (optional) - Skip confirmation - true or false (default)
         external (optional) - Flags the user as external - true or false(default)
         sharedRunnersMinutesLimit (optional) - Pipeline minutes quota for this user
         
        Parameters:
        user - the User instance with the user info to create
        password - the password for the new user
        projectsLimit - the maximum number of project
        Returns:
        created User instance
        Throws:
        GitLabApiException - if any exception occurs
      • createUser

        public User createUser​(User user,
                               java.lang.CharSequence password,
                               boolean resetPassword)
                        throws GitLabApiException

        Creates a new user. Note only administrators can create new users. Either password or resetPassword should be specified (resetPassword takes priority).

        GitLab Endpoint: POST /users

        The following properties of the provided User instance can be set during creation:

         email (required) - Email
         username (required) - Username
         name (required) - Name
         skype (optional) - Skype ID
         linkedin (optional) - LinkedIn
         twitter (optional) - Twitter account
         websiteUrl (optional) - Website URL
         organization (optional) - Organization name
         projectsLimit (optional) - Number of projects user can create
         externUid (optional) - External UID
         provider (optional) - External provider name
         bio (optional) - User's biography
         location (optional) - User's location
         admin (optional) - User is admin - true or false (default)
         canCreateGroup (optional) - User can create groups - true or false
         skipConfirmation (optional) - Skip confirmation - true or false (default)
         external (optional) - Flags the user as external - true or false(default)
         sharedRunnersMinutesLimit (optional) - Pipeline minutes quota for this user
         
        Parameters:
        user - the User instance with the user info to create
        password - the password for the new user
        resetPassword - whether to send a password reset link
        Returns:
        created User instance
        Throws:
        GitLabApiException - if any exception occurs
      • updateUser

        public User updateUser​(User user,
                               java.lang.CharSequence password)
                        throws GitLabApiException

        Modifies an existing user. Only administrators can change attributes of a user.

        GitLab Endpoint: PUT /users

        The following properties of the provided User instance can be set during update:

         email (required) - Email
         username (required) - Username
         name (required) - Name
         skype (optional) - Skype ID
         linkedin (optional) - LinkedIn
         twitter (optional) - Twitter account
         websiteUrl (optional) - Website URL
         organization (optional) - Organization name
         projectsLimit (optional) - Number of projects user can create
         externUid (optional) - External UID
         provider (optional) - External provider name
         bio (optional) - User's biography
         location (optional) - User's location
         admin (optional) - User is admin - true or false (default)
         canCreateGroup (optional) - User can create groups - true or false
         skipConfirmation (optional) - Skip confirmation - true or false (default)
         external (optional) - Flags the user as external - true or false(default)
         sharedRunnersMinutesLimit (optional) - Pipeline minutes quota for this user
         
        Parameters:
        user - the User instance with the user info to modify
        password - the new password for the user
        Returns:
        the modified User instance
        Throws:
        GitLabApiException - if any exception occurs
      • modifyUser

        @Deprecated
        public User modifyUser​(User user,
                               java.lang.CharSequence password,
                               java.lang.Integer projectsLimit)
                        throws GitLabApiException
        Deprecated.
        Will be removed in version 6.0, replaced by updateUser(User, CharSequence)
        Modifies an existing user. Only administrators can change attributes of a user.
        GitLab Endpoint: PUT /users/:id

        The following properties of the provided User instance can be set during update:

         email (required) - Email
         username (required) - Username
         name (required) - Name
         skype (optional) - Skype ID
         linkedin (optional) - LinkedIn
         twitter (optional) - Twitter account
         websiteUrl (optional) - Website URL
         organization (optional) - Organization name
         projectsLimit (optional) - Number of projects user can create
         externUid (optional) - External UID
         provider (optional) - External provider name
         bio (optional) - User's biography
         location (optional) - User's location
         admin (optional) - User is admin - true or false (default)
         canCreateGroup (optional) - User can create groups - true or false
         skipConfirmation (optional) - Skip confirmation - true or false (default)
         external (optional) - Flags the user as external - true or false(default)
         sharedRunnersMinutesLimit (optional) - Pipeline minutes quota for this user
         
        Parameters:
        user - the User instance with the user info to modify
        password - the new password for the user
        projectsLimit - the maximum number of project
        Returns:
        the modified User instance
        Throws:
        GitLabApiException - if any exception occurs
      • deleteUser

        public void deleteUser​(java.lang.Object userIdOrUsername)
                        throws GitLabApiException
        Deletes a user. Available only for administrators.
        GitLab Endpoint: DELETE /users/:id
        Parameters:
        userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
        Throws:
        GitLabApiException - if any exception occurs
      • deleteUser

        public void deleteUser​(java.lang.Object userIdOrUsername,
                               java.lang.Boolean hardDelete)
                        throws GitLabApiException
        Deletes a user. Available only for administrators.
        GitLab Endpoint: DELETE /users/:id
        Parameters:
        userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
        hardDelete - If true, contributions that would usually be moved to the ghost user will be deleted instead, as well as groups owned solely by this user
        Throws:
        GitLabApiException - if any exception occurs
      • getCurrentUser

        public User getCurrentUser()
                            throws GitLabApiException
        Get currently authenticated user.
        GitLab Endpoint: GET /user
        Returns:
        the User instance for the currently authenticated user
        Throws:
        GitLabApiException - if any exception occurs
      • getSshKeys

        public java.util.List<SshKey> getSshKeys()
                                          throws GitLabApiException
        Get a list of currently authenticated user's SSH keys.
        GitLab Endpoint: GET /user/keys
        Returns:
        a list of currently authenticated user's SSH keys
        Throws:
        GitLabApiException - if any exception occurs
      • getSshKeys

        public java.util.List<SshKey> getSshKeys​(java.lang.Long userId)
                                          throws GitLabApiException
        Get a list of a specified user's SSH keys. Available only for admin users.
        GitLab Endpoint: GET /users/:id/keys
        Parameters:
        userId - the user ID to get the SSH keys for
        Returns:
        a list of a specified user's SSH keys
        Throws:
        GitLabApiException - if any exception occurs
      • getSshKey

        public SshKey getSshKey​(java.lang.Long keyId)
                         throws GitLabApiException
        Get a single SSH Key.
        GitLab Endpoint: GET /user/keys/:key_id
        Parameters:
        keyId - the ID of the SSH key.
        Returns:
        an SshKey instance holding the info on the SSH key specified by keyId
        Throws:
        GitLabApiException - if any exception occurs
      • getOptionalSshKey

        public java.util.Optional<SshKey> getOptionalSshKey​(java.lang.Long keyId)
        Get a single SSH Key as an Optional instance.
        GitLab Endpoint: GET /user/keys/:key_id
        Parameters:
        keyId - the ID of the SSH key
        Returns:
        an SshKey as an Optional instance holding the info on the SSH key specified by keyId
      • addSshKey

        public SshKey addSshKey​(java.lang.String title,
                                java.lang.String key)
                         throws GitLabApiException
        Creates a new key owned by the currently authenticated user.
        GitLab Endpoint: POST /user/keys
        Parameters:
        title - the new SSH Key's title
        key - the new SSH key
        Returns:
        an SshKey instance with info on the added SSH key
        Throws:
        GitLabApiException - if any exception occurs
      • addSshKey

        public SshKey addSshKey​(java.lang.Long userId,
                                java.lang.String title,
                                java.lang.String key)
                         throws GitLabApiException
        Create new key owned by specified user. Available only for admin users.
        GitLab Endpoint: POST /users/:id/keys
        Parameters:
        userId - the ID of the user to add the SSH key for
        title - the new SSH Key's title
        key - the new SSH key
        Returns:
        an SshKey instance with info on the added SSH key
        Throws:
        GitLabApiException - if any exception occurs
      • deleteSshKey

        public void deleteSshKey​(java.lang.Long keyId)
                          throws GitLabApiException
        Deletes key owned by currently authenticated user. This is an idempotent function and calling it on a key that is already deleted or not available results in success.
        GitLab Endpoint: DELETE /user/keys/:key_id
        Parameters:
        keyId - the key ID to delete
        Throws:
        GitLabApiException - if any exception occurs
      • deleteSshKey

        public void deleteSshKey​(java.lang.Object userIdOrUsername,
                                 java.lang.Long keyId)
                          throws GitLabApiException
        Deletes key owned by a specified user. Available only for admin users.
        GitLab Endpoint: DELETE /users/:id/keys/:key_id
        Parameters:
        userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
        keyId - the key ID to delete
        Throws:
        GitLabApiException - if any exception occurs
      • getImpersonationTokens

        public java.util.List<ImpersonationToken> getImpersonationTokens​(java.lang.Object userIdOrUsername)
                                                                  throws GitLabApiException
        Get a list of a specified user's impersonation tokens. Available only for admin users.
        GitLab Endpoint: GET /users/:id/impersonation_tokens
        Parameters:
        userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
        Returns:
        a list of a specified user's impersonation tokens
        Throws:
        GitLabApiException - if any exception occurs
      • getImpersonationTokens

        public java.util.List<ImpersonationToken> getImpersonationTokens​(java.lang.Object userIdOrUsername,
                                                                         Constants.ImpersonationState state)
                                                                  throws GitLabApiException
        Get a list of a specified user's impersonation tokens. Available only for admin users.
        GitLab Endpoint: GET /users/:id/impersonation_tokens
        Parameters:
        userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
        state - the state of impersonation tokens to list (ALL, ACTIVE, INACTIVE)
        Returns:
        a list of a specified user's impersonation tokens
        Throws:
        GitLabApiException - if any exception occurs
      • getImpersonationToken

        public ImpersonationToken getImpersonationToken​(java.lang.Object userIdOrUsername,
                                                        java.lang.Long tokenId)
                                                 throws GitLabApiException
        Get an impersonation token of a user. Available only for admin users.
        GitLab Endpoint: GET /users/:user_id/impersonation_tokens/:impersonation_token_id
        Parameters:
        userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
        tokenId - the impersonation token ID to get
        Returns:
        the specified impersonation token
        Throws:
        GitLabApiException - if any exception occurs
      • getOptionalImpersonationToken

        public java.util.Optional<ImpersonationToken> getOptionalImpersonationToken​(java.lang.Object userIdOrUsername,
                                                                                    java.lang.Long tokenId)
        Get an impersonation token of a user as an Optional instance. Available only for admin users.
        GitLab Endpoint: GET /users/:user_id/impersonation_tokens/:impersonation_token_id
        Parameters:
        userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
        tokenId - the impersonation token ID to get
        Returns:
        the specified impersonation token as an Optional instance
      • createImpersonationToken

        public ImpersonationToken createImpersonationToken​(java.lang.Object userIdOrUsername,
                                                           java.lang.String name,
                                                           java.util.Date expiresAt,
                                                           ImpersonationToken.Scope[] scopes)
                                                    throws GitLabApiException
        Create an impersonation token. Available only for admin users.
        GitLab Endpoint: POST /users/:user_id/impersonation_tokens
        Parameters:
        userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
        name - the name of the impersonation token, required
        expiresAt - the expiration date of the impersonation token, optional
        scopes - an array of scopes of the impersonation token
        Returns:
        the created ImpersonationToken instance
        Throws:
        GitLabApiException - if any exception occurs
      • revokeImpersonationToken

        public void revokeImpersonationToken​(java.lang.Object userIdOrUsername,
                                             java.lang.Long tokenId)
                                      throws GitLabApiException
        Revokes an impersonation token. Available only for admin users.
        GitLab Endpoint: DELETE /users/:user_id/impersonation_tokens/:impersonation_token_id
        Parameters:
        userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
        tokenId - the impersonation token ID to revoke
        Throws:
        GitLabApiException - if any exception occurs
      • createPersonalAccessToken

        public ImpersonationToken createPersonalAccessToken​(java.lang.Object userIdOrUsername,
                                                            java.lang.String name,
                                                            java.util.Date expiresAt,
                                                            ImpersonationToken.Scope[] scopes)
                                                     throws GitLabApiException
        Create a personal access token. Available only for admin users.
        GitLab Endpoint: POST /users/:user_id/personal_access_tokens
        Parameters:
        userIdOrUsername - the user in the form of an Integer(ID), String(username), or User instance
        name - the name of the personal access token, required
        expiresAt - the expiration date of the personal access token, optional
        scopes - an array of scopes of the personal access token
        Returns:
        the created PersonalAccessToken instance
        Throws:
        GitLabApiException - if any exception occurs
      • createCustomAttribute

        public CustomAttribute createCustomAttribute​(java.lang.Object userIdOrUsername,
                                                     CustomAttribute customAttribute)
                                              throws GitLabApiException
        Creates custom attribute for the given user
        Parameters:
        userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
        customAttribute - the custom attribute to set
        Returns:
        the created CustomAttribute
        Throws:
        GitLabApiException - on failure while setting customAttributes
      • createCustomAttribute

        public CustomAttribute createCustomAttribute​(java.lang.Object userIdOrUsername,
                                                     java.lang.String key,
                                                     java.lang.String value)
                                              throws GitLabApiException
        Creates custom attribute for the given user
        Parameters:
        userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
        key - for the customAttribute
        value - or the customAttribute
        Returns:
        the created CustomAttribute
        Throws:
        GitLabApiException - on failure while setting customAttributes
      • changeCustomAttribute

        public CustomAttribute changeCustomAttribute​(java.lang.Object userIdOrUsername,
                                                     CustomAttribute customAttribute)
                                              throws GitLabApiException
        Change custom attribute for the given user
        Parameters:
        userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
        customAttribute - the custome attribute to change
        Returns:
        the changed CustomAttribute
        Throws:
        GitLabApiException - on failure while changing customAttributes
      • changeCustomAttribute

        public CustomAttribute changeCustomAttribute​(java.lang.Object userIdOrUsername,
                                                     java.lang.String key,
                                                     java.lang.String value)
                                              throws GitLabApiException
        Changes custom attribute for the given user
        Parameters:
        userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
        key - for the customAttribute
        value - for the customAttribute
        Returns:
        changedCustomAttribute
        Throws:
        GitLabApiException - on failure while changing customAttributes
      • deleteCustomAttribute

        public void deleteCustomAttribute​(java.lang.Object userIdOrUsername,
                                          CustomAttribute customAttribute)
                                   throws GitLabApiException
        Delete a custom attribute for the given user
        Parameters:
        userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
        customAttribute - to remove
        Throws:
        GitLabApiException - on failure while deleting customAttributes
      • deleteCustomAttribute

        public void deleteCustomAttribute​(java.lang.Object userIdOrUsername,
                                          java.lang.String key)
                                   throws GitLabApiException
        Delete a custom attribute for the given user
        Parameters:
        userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
        key - of the customAttribute to remove
        Throws:
        GitLabApiException - on failure while deleting customAttributes
      • setUserAvatar

        public User setUserAvatar​(java.lang.Object userIdOrUsername,
                                  java.io.File avatarFile)
                           throws GitLabApiException
        Uploads and sets the user's avatar for the specified user.
        PUT /users/:id
        Parameters:
        userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
        avatarFile - the File instance of the avatar file to upload
        Returns:
        the updated User instance
        Throws:
        GitLabApiException - if any exception occurs
      • getEmails

        public java.util.List<Email> getEmails()
                                        throws GitLabApiException
        Get a list of emails for the current user.
        GitLab Endpoint: GET /users/emails
        Returns:
        a List of Email instances for the current user
        Throws:
        GitLabApiException - if any exception occurs
      • getEmails

        public java.util.List<Email> getEmails​(java.lang.Object userIdOrUsername)
                                        throws GitLabApiException
        Get a list of a specified user’s emails. Available only for admin users.
        GitLab Endpoint: GET /user/:id/emails
        Parameters:
        userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
        Returns:
        a List of Email instances for the specified user
        Throws:
        GitLabApiException - if any exception occurs
      • addEmail

        public Email addEmail​(java.lang.String email)
                       throws GitLabApiException
        Add an email to the current user's emails.
        GitLab Endpoint: POST /user/:id/emails
        Parameters:
        email - the email address to add
        Returns:
        the Email instance for the added email
        Throws:
        GitLabApiException - if any exception occurs
      • getEmail

        public Email getEmail​(java.lang.Long emailId)
                       throws GitLabApiException
        Get a single Email instance specified by he email ID
        GitLab Endpoint: GET /user/emails/:emailId
        Parameters:
        emailId - the email ID to get
        Returns:
        the Email instance for the provided email ID
        Throws:
        GitLabApiException - if any exception occurs
      • addEmail

        public Email addEmail​(java.lang.Object userIdOrUsername,
                              java.lang.String email,
                              java.lang.Boolean skipConfirmation)
                       throws GitLabApiException
        Add an email to the user's emails.
        GitLab Endpoint: POST /user/:id/emails
        Parameters:
        userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
        email - the email address to add
        skipConfirmation - skip confirmation and assume e-mail is verified - true or false (default)
        Returns:
        the Email instance for the added email
        Throws:
        GitLabApiException - if any exception occurs
      • deleteEmail

        public void deleteEmail​(java.lang.Long emailId)
                         throws GitLabApiException
        Deletes an email belonging to the current user.
        GitLab Endpoint: DELETE /user/emails/:emailId
        Parameters:
        emailId - the email ID to delete
        Throws:
        GitLabApiException - if any exception occurs
      • deleteEmail

        public void deleteEmail​(java.lang.Object userIdOrUsername,
                                java.lang.Long emailId)
                         throws GitLabApiException
        Deletes a user's email
        GitLab Endpoint: DELETE /user/:id/emails/:emailId
        Parameters:
        userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
        emailId - the email ID to delete
        Throws:
        GitLabApiException - if any exception occurs
      • listGpgKeys

        public java.util.List<GpgKey> listGpgKeys()
                                           throws GitLabApiException
        Get all GPG keys for the current user.
        GitLab Endpoint: GET /user/gpg_keys
        Throws:
        GitLabApiException - if any exception occurs
      • addGpgKey

        public GpgKey addGpgKey​(java.lang.String key)
                         throws GitLabApiException
        Add a GPG key for the current user
        GitLab Endpoint: POST /user/gpg_keys
        Parameters:
        key - the ASCII-armored exported public GPG key to add
        Throws:
        GitLabApiException - if any exception occurs
      • deleteGpgKey

        public void deleteGpgKey​(java.lang.Long keyId)
                          throws GitLabApiException
        Remove a specific GPG key for the current user
        GitLab Endpoint: DELETE /user/gpg_keys/:keyId
        Parameters:
        keyId - the key ID in the form if an Long(ID)
        Throws:
        GitLabApiException - if any exception occurs
      • listGpgKeys

        public java.util.List<GpgKey> listGpgKeys​(java.lang.Long userId)
                                           throws GitLabApiException
        Get all GPG keys for a given user.
        GitLab Endpoint: GET /users/:id/gpg_keys
        Parameters:
        userId - the user in the form of an Long(ID)
        Throws:
        GitLabApiException - if any exception occurs
      • addGpgKey

        public GpgKey addGpgKey​(java.lang.Long userId,
                                java.lang.String key)
                         throws GitLabApiException
        Add a GPG key for a specific user
        GitLab Endpoint: POST /users/:id/gpg_keys
        Parameters:
        userId - the user in the form of an Long(ID)
        key - the ASCII-armored exported public GPG key to add
        Throws:
        GitLabApiException - if any exception occurs
      • deleteGpgKey

        public void deleteGpgKey​(java.lang.Long userId,
                                 java.lang.Long keyId)
                          throws GitLabApiException
        Remove a specific GPG key for a specific user
        GitLab Endpoint: DELETE /users/:id/gpg_keys/:keyId
        Parameters:
        userId - the user in the form of an Long(ID)
        keyId - the key ID in the form if an Long(ID)
        Throws:
        GitLabApiException - if any exception occurs
      • getMemberships

        public java.util.List<Membership> getMemberships​(java.lang.Long userId)
                                                  throws GitLabApiException
        Lists all projects and groups a user is a member of. (admin only)
        GitLab Endpoint: GET /users/:id/memberships
        Parameters:
        userId - the ID of the user to get the memberships for
        Returns:
        the list of memberships of the given user
        Throws:
        GitLabApiException - if any exception occurs
        Since:
        GitLab 12.8
      • getMemberships

        public Pager<Membership> getMemberships​(java.lang.Long userId,
                                                int itemsPerPage)
                                         throws GitLabApiException
        Returns a Pager that lists all projects and groups a user is a member of. (admin only) This allows lazy-fetching of huge numbers of memberships.
        GitLab Endpoint: GET /users/:id/memberships
        Parameters:
        userId - the ID of the user to get the memberships for
        itemsPerPage - the number of Membership instances that will be fetched per page
        Returns:
        a Pager of user's memberships
        Throws:
        GitLabApiException - if any exception occurs
        Since:
        GitLab 12.8
      • activateUser

        public void activateUser​(java.lang.Long userId)
                          throws GitLabApiException
        Activates the given user (admin only)
        GitLab Endpoint: POST /users/:id/activate
        Parameters:
        userId - the ID of the user to activate
        Throws:
        GitLabApiException - if any exception occurs.
        Since:
        GitLab 12.4
      • deactivateUser

        public void deactivateUser​(java.lang.Long userId)
                            throws GitLabApiException
        Deactivates the given user (admin only)
        GitLab Endpoint: POST /users/:id/deactivate
        Parameters:
        userId - the ID of the user to deactivate
        Throws:
        GitLabApiException - if any exception occurs.
        Since:
        GitLab 12.4