Class GroupApi

    • Constructor Detail

      • GroupApi

        public GroupApi​(GitLabApi gitLabApi)
    • Method Detail

      • getGroups

        public java.util.List<Group> getGroups()
                                        throws GitLabApiException

        Get a list of groups. (As user: my groups, as admin: all groups)

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

        public java.util.List<Group> getGroups​(int page,
                                               int perPage)
                                        throws GitLabApiException
        Get a list of groups (As user: my groups, as admin: all groups) and in the specified page range.
        GitLab Endpoint: GET /groups
        Parameters:
        page - the page to get
        perPage - the number of Group instances per page
        Returns:
        the list of groups viewable by the authenticated userin the specified page range
        Throws:
        GitLabApiException - if any exception occurs
      • getGroups

        public Pager<Group> getGroups​(int itemsPerPage)
                               throws GitLabApiException
        Get a Pager of groups. (As user: my groups, as admin: all groups)
        GitLab Endpoint: GET /groups
        Parameters:
        itemsPerPage - the number of Group instances that will be fetched per page
        Returns:
        the list of groups viewable by the authenticated user
        Throws:
        GitLabApiException - if any exception occurs
      • getGroupsStream

        public java.util.stream.Stream<Group> getGroupsStream()
                                                       throws GitLabApiException
        Get a Stream of groups. (As user: my groups, as admin: all groups)
        GitLab Endpoint: GET /groups
        Returns:
        a Stream of groups viewable by the authenticated user
        Throws:
        GitLabApiException - if any exception occurs
      • getGroups

        public java.util.List<Group> getGroups​(java.lang.String search)
                                        throws GitLabApiException
        Get all groups that match your string in their name or path.
        Parameters:
        search - the group name or path search criteria
        Returns:
        a List containing matching Group instances
        Throws:
        GitLabApiException - if any exception occurs
      • getGroups

        public java.util.List<Group> getGroups​(java.lang.String search,
                                               int page,
                                               int perPage)
                                        throws GitLabApiException
        Get all groups that match your string in their name or path.
        Parameters:
        search - the group name or path search criteria
        page - the page to get
        perPage - the number of Group instances per page
        Returns:
        a List containing matching Group instances
        Throws:
        GitLabApiException - if any exception occurs
      • getGroups

        public Pager<Group> getGroups​(java.lang.String search,
                                      int itemsPerPage)
                               throws GitLabApiException
        Get all groups that match your string in their name or path.
        Parameters:
        search - the group name or path search criteria
        itemsPerPage - the number of Group instances that will be fetched per page
        Returns:
        a Pager containing matching Group instances
        Throws:
        GitLabApiException - if any exception occurs
      • getGroupsStream

        public java.util.stream.Stream<Group> getGroupsStream​(java.lang.String search)
                                                       throws GitLabApiException
        Get all groups that match your string in their name or path as a Stream.
        Parameters:
        search - the group name or path search criteria
        Returns:
        a Stream containing matching Group instances
        Throws:
        GitLabApiException - if any exception occurs
      • getGroups

        public java.util.List<Group> getGroups​(GroupFilter filter)
                                        throws GitLabApiException
        Get a list of visible groups for the authenticated user using the provided filter.
        GitLab Endpoint: GET /groups
        Parameters:
        filter - the GroupFilter to match against
        Returns:
        a List<Group> of the matching groups
        Throws:
        GitLabApiException - if any exception occurs
      • getGroups

        public Pager<Group> getGroups​(GroupFilter filter,
                                      int itemsPerPage)
                               throws GitLabApiException
        Get a Pager of visible groups for the authenticated user using the provided filter.
        GitLab Endpoint: GET /groups
        Parameters:
        filter - the GroupFilter to match against
        itemsPerPage - the number of Group instances that will be fetched per page
        Returns:
        a Pager containing matching Group instances
        Throws:
        GitLabApiException - if any exception occurs
      • getGroupsStream

        public java.util.stream.Stream<Group> getGroupsStream​(GroupFilter filter)
                                                       throws GitLabApiException
        Get a Stream of visible groups for the authenticated user using the provided filter.
        GitLab Endpoint: GET /groups
        Parameters:
        filter - the GroupFilter to match against
        Returns:
        a Stream<Group> of the matching groups
        Throws:
        GitLabApiException - if any exception occurs
      • getSubGroups

        public java.util.List<Group> getSubGroups​(java.lang.Object groupIdOrPath)
                                           throws GitLabApiException
        Get a list of visible direct subgroups in this group.
        GitLab Endpoint: GET /groups/:id/subgroups
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path, required
        Returns:
        a List<Group> containing the group's sub-groups
        Throws:
        GitLabApiException - if any exception occurs
        Since:
        GitLab 10.3.0
      • getSubGroups

        public Pager<Group> getSubGroups​(java.lang.Object groupIdOrPath,
                                         int itemsPerPage)
                                  throws GitLabApiException
        Get a Pager of visible direct subgroups in this group.
        GitLab Endpoint: GET /groups/:id/subgroups
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path, required
        itemsPerPage - the number of Group instances that will be fetched per page
        Returns:
        a Pager containing matching Group instances
        Throws:
        GitLabApiException - if any exception occurs
        Since:
        GitLab 10.3.0
      • getSubGroupsStream

        public java.util.stream.Stream<Group> getSubGroupsStream​(java.lang.Object groupIdOrPath)
                                                          throws GitLabApiException
        Get a Stream of visible direct subgroups in this group.
        GitLab Endpoint: GET /groups/:id/subgroups
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path, required
        Returns:
        a Stream<Group> containing the group's sub-groups
        Throws:
        GitLabApiException - if any exception occurs
        Since:
        GitLab 10.3.0
      • getSubGroups

        public java.util.List<Group> getSubGroups​(java.lang.Object groupIdOrPath,
                                                  java.util.List<java.lang.Integer> skipGroups,
                                                  java.lang.Boolean allAvailable,
                                                  java.lang.String search,
                                                  Constants.GroupOrderBy orderBy,
                                                  Constants.SortOrder sortOrder,
                                                  java.lang.Boolean statistics,
                                                  java.lang.Boolean owned)
                                           throws GitLabApiException
        Get a list of visible direct subgroups in this group.
        GitLab Endpoint: GET /groups/:id/subgroups
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path, required
        skipGroups - skip the group IDs passed
        allAvailable - show all the groups you have access to (defaults to false for authenticated users)
        search - return the list of authorized groups matching the search criteria
        orderBy - order groups by NAME or PATH. Default is NAME
        sortOrder - order groups in ASC or DESC order. Default is ASC
        statistics - include group statistics (admins only)
        owned - limit to groups owned by the current user
        Returns:
        a List<Group> of the matching subgroups
        Throws:
        GitLabApiException - if any exception occurs
        Since:
        GitLab 10.3.0
      • getSubGroups

        public java.util.List<Group> getSubGroups​(java.lang.Object groupIdOrPath,
                                                  java.util.List<java.lang.Integer> skipGroups,
                                                  java.lang.Boolean allAvailable,
                                                  java.lang.String search,
                                                  Constants.GroupOrderBy orderBy,
                                                  Constants.SortOrder sortOrder,
                                                  java.lang.Boolean statistics,
                                                  java.lang.Boolean owned,
                                                  int page,
                                                  int perPage)
                                           throws GitLabApiException
        Get a list of visible direct subgroups in this group.
        GitLab Endpoint: GET /groups/:id/subgroups
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path, required
        skipGroups - skip the group IDs passed
        allAvailable - show all the groups you have access to (defaults to false for authenticated users)
        search - return the list of authorized groups matching the search criteria
        orderBy - order groups by NAME or PATH. Default is NAME
        sortOrder - order groups in ASC or DESC order. Default is ASC
        statistics - include group statistics (admins only)
        owned - limit to groups owned by the current user
        page - the page to get
        perPage - the number of Group instances per page
        Returns:
        a List<Group> of the matching subgroups
        Throws:
        GitLabApiException - if any exception occurs
        Since:
        GitLab 10.3.0
      • getSubGroups

        public Pager<Group> getSubGroups​(java.lang.Object groupIdOrPath,
                                         java.util.List<java.lang.Integer> skipGroups,
                                         java.lang.Boolean allAvailable,
                                         java.lang.String search,
                                         Constants.GroupOrderBy orderBy,
                                         Constants.SortOrder sortOrder,
                                         java.lang.Boolean statistics,
                                         java.lang.Boolean owned,
                                         int itemsPerPage)
                                  throws GitLabApiException
        Get a Pager of visible direct subgroups in this group.
        GitLab Endpoint: GET /groups/:id/subgroups
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path, required
        skipGroups - skip the group IDs passed
        allAvailable - show all the groups you have access to (defaults to false for authenticated users)
        search - return the list of authorized groups matching the search criteria
        orderBy - order groups by NAME or PATH. Default is NAME
        sortOrder - order groups in ASC or DESC order. Default is ASC
        statistics - include group statistics (admins only)
        owned - limit to groups owned by the current user
        itemsPerPage - the number of Group instances that will be fetched per page
        Returns:
        a Pager containing matching Group instances
        Throws:
        GitLabApiException - if any exception occurs
        Since:
        GitLab 10.3.0
      • getSubGroupsStream

        public java.util.stream.Stream<Group> getSubGroupsStream​(java.lang.Object groupIdOrPath,
                                                                 java.util.List<java.lang.Integer> skipGroups,
                                                                 java.lang.Boolean allAvailable,
                                                                 java.lang.String search,
                                                                 Constants.GroupOrderBy orderBy,
                                                                 Constants.SortOrder sortOrder,
                                                                 java.lang.Boolean statistics,
                                                                 java.lang.Boolean owned)
                                                          throws GitLabApiException
        Get a Stream of visible direct subgroups in this group.
        GitLab Endpoint: GET /groups/:id/subgroups
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path, required
        skipGroups - skip the group IDs passed
        allAvailable - show all the groups you have access to (defaults to false for authenticated users)
        search - return the list of authorized groups matching the search criteria
        orderBy - order groups by NAME or PATH. Default is NAME
        sortOrder - order groups in ASC or DESC order. Default is ASC
        statistics - include group statistics (admins only)
        owned - limit to groups owned by the current user
        Returns:
        a Stream<Group> of the matching subgroups
        Throws:
        GitLabApiException - if any exception occurs
        Since:
        GitLab 10.3.0
      • getDescendantGroups

        public java.util.List<Group> getDescendantGroups​(java.lang.Object groupIdOrPath,
                                                         GroupFilter filter)
                                                  throws GitLabApiException
        Get a list of visible descendant groups of a given group for the authenticated user using the provided filter.
        GitLab Endpoint: GET /groups/:id/descendant_groups
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path, required
        filter - the GroupFilter to match against
        Returns:
        a List<Group> of the matching groups
        Throws:
        GitLabApiException - if any exception occurs
      • getDescendantGroups

        public Pager<Group> getDescendantGroups​(java.lang.Object groupIdOrPath,
                                                GroupFilter filter,
                                                int itemsPerPage)
                                         throws GitLabApiException
        Get a Pager of visible descendant groups of a given group for the authenticated user using the provided filter.
        GitLab Endpoint: GET /groups/:id/descendant_groups
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path, required
        filter - the GroupFilter to match against
        itemsPerPage - the number of Group instances that will be fetched per page
        Returns:
        a Pager containing matching Group instances
        Throws:
        GitLabApiException - if any exception occurs
      • getDescendantGroupsStream

        public java.util.stream.Stream<Group> getDescendantGroupsStream​(java.lang.Object groupIdOrPath,
                                                                        GroupFilter filter)
                                                                 throws GitLabApiException
        Get a Stream of visible descendant groups of a given group for the authenticated user using the provided filter.
        GitLab Endpoint: GET /groups/:id/descendant_groups
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path, required
        filter - the GroupFilter to match against
        Returns:
        a Stream<Group> of the matching groups
        Throws:
        GitLabApiException - if any exception occurs
      • getProjects

        public java.util.List<Project> getProjects​(java.lang.Object groupIdOrPath,
                                                   GroupProjectsFilter filter)
                                            throws GitLabApiException
        Get a list of projects belonging to the specified group ID and filter.
        GitLab Endpoint: GET /groups/:id/projects
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        filter - the GroupProjectsFilter instance holding the filter values for the query
        Returns:
        a List containing Project instances that belong to the group and match the provided filter
        Throws:
        GitLabApiException - if any exception occurs
      • getProjects

        public Pager<Project> getProjects​(java.lang.Object groupIdOrPath,
                                          GroupProjectsFilter filter,
                                          int itemsPerPage)
                                   throws GitLabApiException
        Get a Pager of projects belonging to the specified group ID and filter.
        GitLab Endpoint: GET /groups/:id/projects
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        filter - the GroupProjectsFilter instance holding the filter values for the query
        itemsPerPage - the number of Project instances that will be fetched per page
        Returns:
        a Pager containing Project instances that belong to the group and match the provided filter
        Throws:
        GitLabApiException - if any exception occurs
      • getProjectsStream

        public java.util.stream.Stream<Project> getProjectsStream​(java.lang.Object groupIdOrPath,
                                                                  GroupProjectsFilter filter)
                                                           throws GitLabApiException
        Get a Stream of projects belonging to the specified group ID and filter.
        GitLab Endpoint: GET /groups/:id/projects
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        filter - the GroupProjectsFilter instance holding the filter values for the query
        Returns:
        a Stream containing Project instances that belong to the group and match the provided filter
        Throws:
        GitLabApiException - if any exception occurs
      • getProjects

        public java.util.List<Project> getProjects​(java.lang.Object groupIdOrPath)
                                            throws GitLabApiException
        Get a list of projects belonging to the specified group ID.
        GitLab Endpoint: GET /groups/:id/projects
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        Returns:
        a list of projects belonging to the specified group ID
        Throws:
        GitLabApiException - if any exception occurs
      • getProjects

        public java.util.List<Project> getProjects​(java.lang.Object groupIdOrPath,
                                                   int page,
                                                   int perPage)
                                            throws GitLabApiException
        Get a list of projects belonging to the specified group ID in the specified page range.
        GitLab Endpoint: GET /groups/:id/projects
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        page - the page to get
        perPage - the number of Project instances per page
        Returns:
        a list of projects belonging to the specified group ID in the specified page range
        Throws:
        GitLabApiException - if any exception occurs
      • getProjects

        public Pager<Project> getProjects​(java.lang.Object groupIdOrPath,
                                          int itemsPerPage)
                                   throws GitLabApiException
        Get a Pager of projects belonging to the specified group ID.
        GitLab Endpoint: GET /groups/:id/projects
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        itemsPerPage - the number of Project instances that will be fetched per page
        Returns:
        a Pager of projects belonging to the specified group ID
        Throws:
        GitLabApiException - if any exception occurs
      • getProjectsStream

        public java.util.stream.Stream<Project> getProjectsStream​(java.lang.Object groupIdOrPath)
                                                           throws GitLabApiException
        Get a Stream of projects belonging to the specified group ID.
        GitLab Endpoint: GET /groups/:id/projects
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        Returns:
        a Stream of projects belonging to the specified group ID
        Throws:
        GitLabApiException - if any exception occurs
      • getGroup

        public Group getGroup​(java.lang.Object groupIdOrPath)
                       throws GitLabApiException
        Get all details of a group.
        GitLab Endpoint: GET /groups/:id
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        Returns:
        the Group instance for the specified group path
        Throws:
        GitLabApiException - if any exception occurs
      • getOptionalGroup

        public java.util.Optional<Group> getOptionalGroup​(java.lang.Object groupIdOrPath)
        Get all details of a group as an Optional instance.
        GitLab Endpoint: GET /groups/:id
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        Returns:
        the Group for the specified group path as an Optional instance
      • createGroup

        public Group createGroup​(GroupParams params)
                          throws GitLabApiException
        Creates a new project group. Available only for users who can create groups.
        GitLab Endpoint: POST /groups
        Parameters:
        params - a GroupParams instance holding the parameters for the group creation
        Returns:
        the created Group instance
        Throws:
        GitLabApiException - if any exception occurs
      • updateGroup

        public Group updateGroup​(java.lang.Object groupIdOrPath,
                                 GroupParams params)
                          throws GitLabApiException
        Updates the project group. Only available to group owners and administrators.
        GitLab Endpoint: PUT /groups
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        params - the GroupParams instance holding the properties to update
        Returns:
        updated Group instance
        Throws:
        GitLabApiException - at any exception
      • addGroup

        public Group addGroup​(java.lang.String name,
                              java.lang.String path)
                       throws GitLabApiException
        Creates a new project group. Available only for users who can create groups.
        GitLab Endpoint: POST /groups
        Parameters:
        name - the name of the group to add
        path - the path for the group
        Returns:
        the created Group instance
        Throws:
        GitLabApiException - if any exception occurs
      • addGroup

        public Group addGroup​(java.lang.String name,
                              java.lang.String path,
                              java.lang.String description,
                              Visibility visibility,
                              java.lang.Boolean lfsEnabled,
                              java.lang.Boolean requestAccessEnabled,
                              java.lang.Long parentId)
                       throws GitLabApiException
        Creates a new project group. Available only for users who can create groups.
        GitLab Endpoint: POST /groups
        Parameters:
        name - the name of the group to add
        path - the path for the group
        description - (optional) - The group's description
        visibility - (optional) - The group's visibility. Can be private, internal, or public.
        lfsEnabled - (optional) - Enable/disable Large File Storage (LFS) for the projects in this group
        requestAccessEnabled - (optional) - Allow users to request member access
        parentId - (optional) - The parent group id for creating nested group
        Returns:
        the created Group instance
        Throws:
        GitLabApiException - if any exception occurs
      • updateGroup

        public Group updateGroup​(Group group)
                          throws GitLabApiException
        Updates a project group. Available only for users who can create groups.
        GitLab Endpoint: PUT /groups
        Parameters:
        group - to update
        Returns:
        updated group instance
        Throws:
        GitLabApiException - at any exception
      • updateGroup

        public Group updateGroup​(java.lang.Object groupIdOrPath,
                                 java.lang.String name,
                                 java.lang.String path,
                                 java.lang.String description,
                                 Visibility visibility,
                                 java.lang.Boolean lfsEnabled,
                                 java.lang.Boolean requestAccessEnabled,
                                 java.lang.Long parentId)
                          throws GitLabApiException
        Updates a project group. Available only for users who can create groups.
        GitLab Endpoint: PUT /groups
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        name - the name of the group to add
        path - the path for the group
        description - (optional) - The group's description
        visibility - (optional) - The group's visibility. Can be private, internal, or public.
        lfsEnabled - (optional) - Enable/disable Large File Storage (LFS) for the projects in this group
        requestAccessEnabled - (optional) - Allow users to request member access
        parentId - (optional) - The parent group id for creating nested group
        Returns:
        the updated Group instance
        Throws:
        GitLabApiException - if any exception occurs
      • addGroup

        @Deprecated
        public Group addGroup​(java.lang.String name,
                              java.lang.String path,
                              java.lang.String description,
                              java.lang.Boolean membershipLock,
                              java.lang.Boolean shareWithGroupLock,
                              Visibility visibility,
                              java.lang.Boolean lfsEnabled,
                              java.lang.Boolean requestAccessEnabled,
                              java.lang.Long parentId,
                              java.lang.Integer sharedRunnersMinutesLimit)
                       throws GitLabApiException
        Deprecated.
        Creates a new project group. Available only for users who can create groups.
        GitLab Endpoint: POST /groups
        Parameters:
        name - the name of the group to add
        path - the path for the group
        description - (optional) - The group's description
        membershipLock - (optional, boolean) - Prevent adding new members to project membership within this group
        shareWithGroupLock - (optional, boolean) - Prevent sharing a project with another group within this group
        visibility - (optional) - The group's visibility. Can be private, internal, or public.
        lfsEnabled - (optional) - Enable/disable Large File Storage (LFS) for the projects in this group
        requestAccessEnabled - (optional) - Allow users to request member access.
        parentId - (optional) - The parent group id for creating nested group.
        sharedRunnersMinutesLimit - (optional) - (admin-only) Pipeline minutes quota for this group
        Returns:
        the created Group instance
        Throws:
        GitLabApiException - if any exception occurs
      • updateGroup

        @Deprecated
        public Group updateGroup​(java.lang.Object groupIdOrPath,
                                 java.lang.String name,
                                 java.lang.String path,
                                 java.lang.String description,
                                 java.lang.Boolean membershipLock,
                                 java.lang.Boolean shareWithGroupLock,
                                 Visibility visibility,
                                 java.lang.Boolean lfsEnabled,
                                 java.lang.Boolean requestAccessEnabled,
                                 java.lang.Long parentId,
                                 java.lang.Integer sharedRunnersMinutesLimit)
                          throws GitLabApiException
        Deprecated.
        Updates a project group. Available only for users who can create groups.
        GitLab Endpoint: PUT /groups
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        name - the name of the group to add
        path - the path for the group
        description - (optional) - The group's description
        membershipLock - (optional, boolean) - Prevent adding new members to project membership within this group
        shareWithGroupLock - (optional, boolean) - Prevent sharing a project with another group within this group
        visibility - (optional) - The group's visibility. Can be private, internal, or public.
        lfsEnabled - (optional) - Enable/disable Large File Storage (LFS) for the projects in this group
        requestAccessEnabled - (optional) - Allow users to request member access
        parentId - (optional) - The parent group id for creating nested group
        sharedRunnersMinutesLimit - (optional) - (admin-only) Pipeline minutes quota for this group
        Returns:
        the updated Group instance
        Throws:
        GitLabApiException - if any exception occurs
      • deleteGroup

        public void deleteGroup​(java.lang.Object groupIdOrPath)
                         throws GitLabApiException
        Removes group with all projects inside.
        GitLab Endpoint: DELETE /groups/:id
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        Throws:
        GitLabApiException - if any exception occurs
      • getMembers

        public java.util.List<Member> getMembers​(java.lang.Object groupIdOrPath)
                                          throws GitLabApiException
        Get a list of group members viewable by the authenticated user.
        GitLab Endpoint: GET /groups/:id/members
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        Returns:
        a list of group members viewable by the authenticated user
        Throws:
        GitLabApiException - if any exception occurs
      • getMembers

        public java.util.List<Member> getMembers​(java.lang.Object groupIdOrPath,
                                                 int page,
                                                 int perPage)
                                          throws GitLabApiException
        Get a list of group members viewable by the authenticated user in the specified page range.
        GitLab Endpoint: GET /groups/:id/members
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        page - the page to get
        perPage - the number of Member instances per page
        Returns:
        a list of group members viewable by the authenticated user in the specified page range
        Throws:
        GitLabApiException - if any exception occurs
      • getMembers

        public Pager<Member> getMembers​(java.lang.Object groupIdOrPath,
                                        int itemsPerPage)
                                 throws GitLabApiException
        Get a Pager of group members viewable by the authenticated user.
        GitLab Endpoint: GET /groups/:id/members
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        itemsPerPage - the number of Member instances that will be fetched per page
        Returns:
        a list of group members viewable by the authenticated user
        Throws:
        GitLabApiException - if any exception occurs
      • getMembersStream

        public java.util.stream.Stream<Member> getMembersStream​(java.lang.Object groupIdOrPath)
                                                         throws GitLabApiException
        Get a Stream of group members viewable by the authenticated user.
        GitLab Endpoint: GET /groups/:id/members
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        Returns:
        a Stream of group members viewable by the authenticated user
        Throws:
        GitLabApiException - if any exception occurs
      • getMember

        public Member getMember​(java.lang.Object groupIdOrPath,
                                long userId)
                         throws GitLabApiException
        Get a group member viewable by the authenticated user.
        GitLab Endpoint: GET /groups/:id/members/:id
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        userId - the member ID of the member to get
        Returns:
        a member viewable by the authenticated user
        Throws:
        GitLabApiException - if any exception occurs
      • getOptionalMember

        public java.util.Optional<Member> getOptionalMember​(java.lang.Object groupIdOrPath,
                                                            long userId)
        Get a group member viewable by the authenticated user as an Optional instance.
        GitLab Endpoint: GET /groups/:id/members/:id
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        userId - the member ID of the member to get
        Returns:
        a member viewable by the authenticated user as an Optional instance
      • getMember

        public Member getMember​(java.lang.Object groupIdOrPath,
                                java.lang.Long userId,
                                java.lang.Boolean includeInherited)
                         throws GitLabApiException
        Gets a group team member, optionally including inherited member.
        GitLab Endpoint: GET /groups/:id/members/all/:user_id
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        userId - the user ID of the member
        includeInherited - if true will the member even if inherited thru an ancestor group
        Returns:
        the member specified by the project ID/user ID pair
        Throws:
        GitLabApiException - if any exception occurs
      • getOptionalMember

        public java.util.Optional<Member> getOptionalMember​(java.lang.Object groupIdOrPath,
                                                            java.lang.Long userId,
                                                            java.lang.Boolean includeInherited)
        Gets a group team member, optionally including inherited member.
        GitLab Endpoint: GET /groups/:id/members/all/:user_id
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        userId - the user ID of the member
        includeInherited - if true will the member even if inherited thru an ancestor group
        Returns:
        the member specified by the group ID/user ID pair as the value of an Optional
      • getAllMembers

        public java.util.List<Member> getAllMembers​(java.lang.Object groupIdOrPath)
                                             throws GitLabApiException
        Gets a list of group members viewable by the authenticated user, including inherited members through ancestor groups. Returns multiple times the same user (with different member attributes) when the user is a member of the group and of one or more ancestor group.
        GitLab Endpoint: GET /groups/:id/members/all
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        Returns:
        a list of group members viewable by the authenticated user, including inherited members through ancestor groups
        Throws:
        GitLabApiException - if any exception occurs
      • getAllMembers

        @Deprecated
        public java.util.List<Member> getAllMembers​(java.lang.Object groupIdOrPath,
                                                    int page,
                                                    int perPage)
                                             throws GitLabApiException
        Deprecated.
        Will be removed in version 6.0
        Gets a list of group members viewable by the authenticated user, including inherited members through ancestor groups. Returns multiple times the same user (with different member attributes) when the user is a member of the group and of one or more ancestor group.
        GitLab Endpoint: GET /groups/:id/members/all
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        page - the page to get
        perPage - the number of Member instances per page
        Returns:
        a list of group members viewable by the authenticated user, including inherited members through ancestor groups in the specified page range
        Throws:
        GitLabApiException - if any exception occurs
      • getAllMembers

        public Pager<Member> getAllMembers​(java.lang.Object groupIdOrPath,
                                           int itemsPerPage)
                                    throws GitLabApiException
        Gets a Pager of group members viewable by the authenticated user, including inherited members through ancestor groups. Returns multiple times the same user (with different member attributes) when the user is a member of the group and of one or more ancestor group.
        GitLab Endpoint: GET /groups/:id/members/all
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        itemsPerPage - the number of Member instances that will be fetched per page
        Returns:
        a Pager of group members viewable by the authenticated user, including inherited members through ancestor groups
        Throws:
        GitLabApiException - if any exception occurs
      • getAllMembersStream

        public java.util.stream.Stream<Member> getAllMembersStream​(java.lang.Object groupIdOrPath)
                                                            throws GitLabApiException
        Gets a Stream of group members viewable by the authenticated user, including inherited members through ancestor groups. Returns multiple times the same user (with different member attributes) when the user is a member of the group and of one or more ancestor group.
        GitLab Endpoint: GET /groups/:id/members/all
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        Returns:
        a Stream of group members viewable by the authenticated user, including inherited members through ancestor groups
        Throws:
        GitLabApiException - if any exception occurs
      • getAllMembers

        public java.util.List<Member> getAllMembers​(java.lang.Object groupIdOrPath,
                                                    java.lang.String query,
                                                    java.util.List<java.lang.Long> userIds)
                                             throws GitLabApiException
        Gets a list of group members viewable by the authenticated user, including inherited members through ancestor groups. Returns multiple times the same user (with different member attributes) when the user is a member of the group and of one or more ancestor group.
        GitLab Endpoint: GET /groups/:id/members/all
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        query - a query string to search for members
        userIds - filter the results on the given user IDs
        Returns:
        the group members viewable by the authenticated user, including inherited members through ancestor groups
        Throws:
        GitLabApiException - if any exception occurs
      • getAllMembers

        public Pager<Member> getAllMembers​(java.lang.Object groupIdOrPath,
                                           java.lang.String query,
                                           java.util.List<java.lang.Long> userIds,
                                           int itemsPerPage)
                                    throws GitLabApiException
        Gets a Pager of group members viewable by the authenticated user, including inherited members through ancestor groups. Returns multiple times the same user (with different member attributes) when the user is a member of the group and of one or more ancestor group.
        GitLab Endpoint: GET /groups/:id/members/all
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        query - a query string to search for members
        userIds - filter the results on the given user IDs
        itemsPerPage - the number of Project instances that will be fetched per page
        Returns:
        a Pager of the group members viewable by the authenticated user, including inherited members through ancestor groups
        Throws:
        GitLabApiException - if any exception occurs
      • getAllMembersStream

        public java.util.stream.Stream<Member> getAllMembersStream​(java.lang.Object groupIdOrPath,
                                                                   java.lang.String query,
                                                                   java.util.List<java.lang.Long> userIds)
                                                            throws GitLabApiException
        Gets a Stream of group members viewable by the authenticated user, including inherited members through ancestor groups. Returns multiple times the same user (with different member attributes) when the user is a member of the group and of one or more ancestor group.
        GitLab Endpoint: GET /groups/:id/members/all
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        query - a query string to search for members
        userIds - filter the results on the given user IDs
        Returns:
        a Stream of the group members viewable by the authenticated user, including inherited members through ancestor groups
        Throws:
        GitLabApiException - if any exception occurs
      • addMember

        public Member addMember​(java.lang.Object groupIdOrPath,
                                java.lang.Long userId,
                                java.lang.Integer accessLevel)
                         throws GitLabApiException
        Adds a user to the list of group members.
        GitLab Endpoint: POST /groups/:id/members
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        userId - the user ID of the member to add, required
        accessLevel - the access level for the new member, required
        Returns:
        a Member instance for the added user
        Throws:
        GitLabApiException - if any exception occurs
      • addMember

        public Member addMember​(java.lang.Object groupIdOrPath,
                                java.lang.Long userId,
                                AccessLevel accessLevel)
                         throws GitLabApiException
        Adds a user to the list of group members.
        GitLab Endpoint: POST /groups/:id/members
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        userId - the user ID of the member to add, required
        accessLevel - the access level for the new member, required
        Returns:
        a Member instance for the added user
        Throws:
        GitLabApiException - if any exception occurs
      • addMember

        public Member addMember​(java.lang.Object groupIdOrPath,
                                java.lang.Long userId,
                                AccessLevel accessLevel,
                                java.util.Date expiresAt)
                         throws GitLabApiException
        Adds a user to the list of group members.
        GitLab Endpoint: POST /groups/:id/members
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path, required
        userId - the user ID of the member to add, required
        accessLevel - the access level for the new member, required
        expiresAt - the date the membership in the group will expire, optional
        Returns:
        a Member instance for the added user
        Throws:
        GitLabApiException - if any exception occurs
      • addMember

        public Member addMember​(java.lang.Object groupIdOrPath,
                                java.lang.Long userId,
                                java.lang.Integer accessLevel,
                                java.util.Date expiresAt)
                         throws GitLabApiException
        Adds a user to the list of group members.
        GitLab Endpoint: POST /groups/:id/members
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path, required
        userId - the user ID of the member to add, required
        accessLevel - the access level for the new member, required
        expiresAt - the date the membership in the group will expire, optional
        Returns:
        a Member instance for the added user
        Throws:
        GitLabApiException - if any exception occurs
      • updateMember

        public Member updateMember​(java.lang.Object groupIdOrPath,
                                   java.lang.Long userId,
                                   java.lang.Integer accessLevel)
                            throws GitLabApiException
        Updates a member of a group.
        GitLab Endpoint: PUT /groups/:groupId/members/:userId
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path, required
        userId - the user ID of the member to update, required
        accessLevel - the new access level for the member, required
        Returns:
        the updated member
        Throws:
        GitLabApiException - if any exception occurs
      • updateMember

        public Member updateMember​(java.lang.Object groupIdOrPath,
                                   java.lang.Long userId,
                                   AccessLevel accessLevel)
                            throws GitLabApiException
        Updates a member of a group.
        GitLab Endpoint: PUT /groups/:groupId/members/:userId
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path, required
        userId - the user ID of the member to update, required
        accessLevel - the new access level for the member, required
        Returns:
        the updated member
        Throws:
        GitLabApiException - if any exception occurs
      • updateMember

        public Member updateMember​(java.lang.Object groupIdOrPath,
                                   java.lang.Long userId,
                                   AccessLevel accessLevel,
                                   java.util.Date expiresAt)
                            throws GitLabApiException
        Updates a member of a group.
        GitLab Endpoint: PUT /groups/:groupId/members/:userId
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path, required
        userId - the user ID of the member to update, required
        accessLevel - the new access level for the member, required
        expiresAt - the date the membership in the group will expire, optional
        Returns:
        the updated member
        Throws:
        GitLabApiException - if any exception occurs
      • updateMember

        public Member updateMember​(java.lang.Object groupIdOrPath,
                                   java.lang.Long userId,
                                   java.lang.Integer accessLevel,
                                   java.util.Date expiresAt)
                            throws GitLabApiException
        Updates a member of a group.
        GitLab Endpoint: PUT /groups/:groupId/members/:userId
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path, required
        userId - the user ID of the member to update, required
        accessLevel - the new access level for the member, required
        expiresAt - the date the membership in the group will expire, optional
        Returns:
        the updated member
        Throws:
        GitLabApiException - if any exception occurs
      • removeMember

        public void removeMember​(java.lang.Object groupIdOrPath,
                                 java.lang.Long userId)
                          throws GitLabApiException
        Removes member from the group.
        GitLab Endpoint: DELETE /groups/:id/members/:user_id
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path, required
        userId - the user ID of the member to remove
        Throws:
        GitLabApiException - if any exception occurs
      • ldapSync

        public void ldapSync​(java.lang.Object groupIdOrPath)
                      throws GitLabApiException
        Syncs the group with its linked LDAP group. Only available to group owners and administrators.
        GitLab Endpoint: POST /groups/:id/ldap_sync
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        Throws:
        GitLabApiException - if any exception occurs
      • getLdapGroupLinks

        public java.util.List<LdapGroupLink> getLdapGroupLinks​(java.lang.Object groupIdOrPath)
                                                        throws GitLabApiException
        Get the list of LDAP group links.
        GitLab Endpoint: GET /groups/:id/ldap_group_links
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        Returns:
        a list of LDAP group links
        Throws:
        GitLabApiException - if any exception occurs
      • addLdapGroupLink

        public void addLdapGroupLink​(java.lang.Object groupIdOrPath,
                                     java.lang.String cn,
                                     AccessLevel groupAccess,
                                     java.lang.String provider)
                              throws GitLabApiException
        Adds an LDAP group link.
        GitLab Endpoint: POST /groups/:id/ldap_group_links
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        cn - the CN of a LDAP group
        groupAccess - the minimum access level for members of the LDAP group
        provider - the LDAP provider for the LDAP group
        Throws:
        GitLabApiException - if any exception occurs
      • addLdapGroupLink

        public void addLdapGroupLink​(java.lang.Object groupIdOrPath,
                                     java.lang.String cn,
                                     java.lang.Integer groupAccess,
                                     java.lang.String provider)
                              throws GitLabApiException
        Adds an LDAP group link.
        GitLab Endpoint: POST /groups/:id/ldap_group_links
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        cn - the CN of a LDAP group
        groupAccess - the minimum access level for members of the LDAP group
        provider - the LDAP provider for the LDAP group
        Throws:
        GitLabApiException - if any exception occurs
      • deleteLdapGroupLink

        public void deleteLdapGroupLink​(java.lang.Object groupIdOrPath,
                                        java.lang.String cn)
                                 throws GitLabApiException
        Deletes an LDAP group link.
        GitLab Endpoint: DELETE /groups/:id/ldap_group_links/:cn
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        cn - the CN of the LDAP group link to delete
        Throws:
        GitLabApiException - if any exception occurs
      • deleteLdapGroupLink

        public void deleteLdapGroupLink​(java.lang.Object groupIdOrPath,
                                        java.lang.String cn,
                                        java.lang.String provider)
                                 throws GitLabApiException
        Deletes an LDAP group link for a specific LDAP provider.
        GitLab Endpoint: DELETE /groups/:id/ldap_group_links/:provider/:cn
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        cn - the CN of the LDAP group link to delete
        provider - the name of the LDAP provider
        Throws:
        GitLabApiException - if any exception occurs
      • getSamlGroupLinks

        public java.util.List<SamlGroupLink> getSamlGroupLinks​(java.lang.Object groupIdOrPath)
                                                        throws GitLabApiException
        Get the list of SAML group links.
        GitLab Endpoint: GET /groups/:id/saml_group_links
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        Returns:
        a list of SAML group links
        Throws:
        GitLabApiException - if any exception occurs
      • addSamlGroupLink

        public void addSamlGroupLink​(java.lang.Object groupIdOrPath,
                                     java.lang.String samlGroupName,
                                     AccessLevel groupAccess)
                              throws GitLabApiException
        Adds an SAML group link.
        GitLab Endpoint: POST /groups/:id/saml_group_links
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        samlGroupName - the name of the SAML group
        groupAccess - the minimum access level for members of the SAML group
        Throws:
        GitLabApiException - if any exception occurs
      • addSamlGroupLink

        public void addSamlGroupLink​(java.lang.Object groupIdOrPath,
                                     java.lang.String samlGroupName,
                                     AccessLevel groupAccess,
                                     int memberRoleId)
                              throws GitLabApiException
        Adds an SAML group link.
        GitLab Endpoint: POST /groups/:id/saml_group_links
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        samlGroupName - the name of the SAML group
        groupAccess - the minimum access level for members of the SAML group
        memberRoleId - the id of the custom member role to assign
        Throws:
        GitLabApiException - if any exception occurs
      • addSamlGroupLink

        public void addSamlGroupLink​(java.lang.Object groupIdOrPath,
                                     java.lang.String samlGroupName,
                                     java.lang.Integer groupAccess)
                              throws GitLabApiException
        Adds an SAML group link.
        GitLab Endpoint: POST /groups/:id/saml_group_links
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        samlGroupName - the name of the SAML group
        groupAccess - the minimum access level for members of the SAML group
        Throws:
        GitLabApiException - if any exception occurs
      • addSamlGroupLink

        public void addSamlGroupLink​(java.lang.Object groupIdOrPath,
                                     java.lang.String samlGroupName,
                                     java.lang.Integer groupAccess,
                                     java.lang.Integer memberRoleId)
                              throws GitLabApiException
        Adds an SAML group link.
        GitLab Endpoint: POST /groups/:id/saml_group_links
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        samlGroupName - the name of the SAML group
        groupAccess - the minimum access level for members of the SAML group
        memberRoleId - the id of the custom member role to assign
        Throws:
        GitLabApiException - if any exception occurs
      • deleteSamlGroupLink

        public void deleteSamlGroupLink​(java.lang.Object groupIdOrPath,
                                        java.lang.String samlGroupName)
                                 throws GitLabApiException
        Deletes an SAML group link.
        GitLab Endpoint: DELETE /groups/:id/saml_group_links/:cn
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        samlGroupName - the name of the SAML group to delete
        Throws:
        GitLabApiException - if any exception occurs
      • getVariables

        public java.util.List<Variable> getVariables​(java.lang.Object groupIdOrPath)
                                              throws GitLabApiException
        Get list of a group’s variables.
        GitLab Endpoint: GET /groups/:id/variables
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        Returns:
        a list of variables belonging to the specified group
        Throws:
        GitLabApiException - if any exception occurs
      • getVariables

        public java.util.List<Variable> getVariables​(java.lang.Object groupIdOrPath,
                                                     int page,
                                                     int perPage)
                                              throws GitLabApiException
        Get a list of variables for the specified group in the specified page range.
        GitLab Endpoint: GET /groups/:id/variables
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        page - the page to get
        perPage - the number of Variable instances per page
        Returns:
        a list of variables belonging to the specified group in the specified page range
        Throws:
        GitLabApiException - if any exception occurs
      • getVariables

        public Pager<Variable> getVariables​(java.lang.Object groupIdOrPath,
                                            int itemsPerPage)
                                     throws GitLabApiException
        Get a Pager of variables belonging to the specified group.
        GitLab Endpoint: GET /groups/:id/variables
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        itemsPerPage - the number of Variable instances that will be fetched per page
        Returns:
        a Pager of variables belonging to the specified group
        Throws:
        GitLabApiException - if any exception occurs
      • getVariablesStream

        public java.util.stream.Stream<Variable> getVariablesStream​(java.lang.Object groupIdOrPath)
                                                             throws GitLabApiException
        Get a Stream of variables belonging to the specified group.
        GitLab Endpoint: GET /groups/:id/variables
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        Returns:
        a Stream of variables belonging to the specified group
        Throws:
        GitLabApiException - if any exception occurs
      • getVariable

        public Variable getVariable​(java.lang.Object groupIdOrPath,
                                    java.lang.String key)
                             throws GitLabApiException
        Get the details of a group variable.
        GitLab Endpoint: GET /groups/:id/variables/:key
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        key - the key of an existing variable, required
        Returns:
        the Variable instance for the specified group variable
        Throws:
        GitLabApiException - if any exception occurs
      • getOptionalVariable

        public java.util.Optional<Variable> getOptionalVariable​(java.lang.Object groupIdOrPath,
                                                                java.lang.String key)
        Get the details of a group variable as an Optional instance.
        GitLab Endpoint: GET /groups/:id/variables/:key
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        key - the key of an existing variable, required
        Returns:
        the Variable for the specified group variable as an Optional instance
      • createVariable

        public Variable createVariable​(java.lang.Object groupIdOrPath,
                                       java.lang.String key,
                                       java.lang.String value,
                                       java.lang.Boolean isProtected)
                                throws GitLabApiException
        Create a new group variable.
        GitLab Endpoint: POST /groups/:id/variables
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path, required
        key - the key of a variable; must have no more than 255 characters; only A-Z, a-z, 0-9, and _ are allowed, required
        value - the value for the variable, required
        isProtected - whether the variable is protected, optional
        Returns:
        a Variable instance with the newly created variable
        Throws:
        GitLabApiException - if any exception occurs during execution
      • createVariable

        public Variable createVariable​(java.lang.Object groupIdOrPath,
                                       java.lang.String key,
                                       java.lang.String value,
                                       java.lang.Boolean isProtected,
                                       java.lang.Boolean masked)
                                throws GitLabApiException
        Create a new group variable.
        GitLab Endpoint: POST /groups/:id/variables
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path, required
        key - the key of a variable; must have no more than 255 characters; only A-Z, a-z, 0-9, and _ are allowed, required
        value - the value for the variable, required
        isProtected - whether the variable is protected, optional
        masked - whether the variable is masked, optional
        Returns:
        a Variable instance with the newly created variable
        Throws:
        GitLabApiException - if any exception occurs during execution
      • updateVariable

        public Variable updateVariable​(java.lang.Object groupIdOrPath,
                                       java.lang.String key,
                                       java.lang.String value,
                                       java.lang.Boolean isProtected)
                                throws GitLabApiException
        Update a group variable.
        GitLab Endpoint: PUT /groups/:id/variables/:key
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path, required
        key - the key of an existing variable, required
        value - the value for the variable, required
        isProtected - whether the variable is protected, optional
        Returns:
        a Variable instance with the updated variable
        Throws:
        GitLabApiException - if any exception occurs during execution
      • updateVariable

        public Variable updateVariable​(java.lang.Object groupIdOrPath,
                                       java.lang.String key,
                                       java.lang.String value,
                                       java.lang.Boolean isProtected,
                                       java.lang.Boolean masked)
                                throws GitLabApiException
        Update a group variable.
        GitLab Endpoint: PUT /groups/:id/variables/:key
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path, required
        key - the key of an existing variable, required
        value - the value for the variable, required
        isProtected - whether the variable is protected, optional
        masked - whether the variable is masked, optional
        Returns:
        a Variable instance with the updated variable
        Throws:
        GitLabApiException - if any exception occurs during execution
      • deleteVariable

        public void deleteVariable​(java.lang.Object groupIdOrPath,
                                   java.lang.String key)
                            throws GitLabApiException
        Deletes a group variable.
        GitLab Endpoint: DELETE /groups/:id/variables/:key
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path, required
        key - the key of an existing variable, required
        Throws:
        GitLabApiException - if any exception occurs
      • transferProject

        public Project transferProject​(java.lang.Object groupIdOrPath,
                                       java.lang.Object projectIdOrPath)
                                throws GitLabApiException
        Transfer a project to the Group namespace. Available only for admin users.
        GitLab Endpoint: POST /groups/:id/projects/:project_id
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path, required
        projectIdOrPath - the project in the form of an Long(ID), String(path), or Project instance, required
        Returns:
        the transferred Project instance
        Throws:
        GitLabApiException - if any exception occurs during execution
      • getAuditEvents

        public java.util.List<AuditEvent> getAuditEvents​(java.lang.Object groupIdOrPath,
                                                         java.util.Date created_after,
                                                         java.util.Date created_before)
                                                  throws GitLabApiException
        Get a List of the group audit events viewable by Maintainer or an Owner of the group.
        GET /groups/:id/audit_events
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        created_after - Group audit events created on or after the given time.
        created_before - Group audit events created on or before the given time.
        Returns:
        a List of group Audit events
        Throws:
        GitLabApiException - if any exception occurs
      • getAuditEvents

        public Pager<AuditEvent> getAuditEvents​(java.lang.Object groupIdOrPath,
                                                java.util.Date created_after,
                                                java.util.Date created_before,
                                                int itemsPerPage)
                                         throws GitLabApiException
        Get a Pager of the group audit events viewable by Maintainer or an Owner of the group.
        GET /groups/:id/audit_events
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        created_after - Group audit events created on or after the given time.
        created_before - Group audit events created on or before the given time.
        itemsPerPage - the number of Audit Event instances that will be fetched per page
        Returns:
        a Pager of group Audit events
        Throws:
        GitLabApiException - if any exception occurs
      • getAuditEventsStream

        public java.util.stream.Stream<AuditEvent> getAuditEventsStream​(java.lang.Object groupIdOrPath,
                                                                        java.util.Date created_after,
                                                                        java.util.Date created_before)
                                                                 throws GitLabApiException
        Get a Stream of the group audit events viewable by Maintainer or an Owner of the group.
        GET /groups/:id/audit_events
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        created_after - Group audit events created on or after the given time.
        created_before - Group audit events created on or before the given time.
        Returns:
        a Stream of group Audit events
        Throws:
        GitLabApiException - if any exception occurs
      • getAuditEvent

        public AuditEvent getAuditEvent​(java.lang.Object groupIdOrPath,
                                        java.lang.Long auditEventId)
                                 throws GitLabApiException
        Get a specific audit event of a group.
        GitLab Endpoint: GET /groups/:id/audit_events/:id_audit_event
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        auditEventId - the auditEventId, required
        Returns:
        the group Audit event
        Throws:
        GitLabApiException - if any exception occurs
      • getAccessRequests

        public java.util.List<AccessRequest> getAccessRequests​(java.lang.Object groupIdOrPath)
                                                        throws GitLabApiException
        Get a List of the group access requests viewable by the authenticated user.
        GET /group/:id/access_requests
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        Returns:
        a List of project AccessRequest instances accessible by the authenticated user
        Throws:
        GitLabApiException - if any exception occurs
      • getAccessRequests

        public Pager<AccessRequest> getAccessRequests​(java.lang.Object groupIdOrPath,
                                                      int itemsPerPage)
                                               throws GitLabApiException
        Get a Pager of the group access requests viewable by the authenticated user.
        GET /groups/:id/access_requests
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        itemsPerPage - the number of AccessRequest instances that will be fetched per page
        Returns:
        a Pager of group AccessRequest instances accessible by the authenticated user
        Throws:
        GitLabApiException - if any exception occurs
      • getAccessRequestsStream

        public java.util.stream.Stream<AccessRequest> getAccessRequestsStream​(java.lang.Object groupIdOrPath)
                                                                       throws GitLabApiException
        Get a Stream of the group access requests viewable by the authenticated user.
        GET /groups/:id/access_requests
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        Returns:
        a Stream of group AccessRequest instances accessible by the authenticated user
        Throws:
        GitLabApiException - if any exception occurs
      • requestAccess

        public AccessRequest requestAccess​(java.lang.Object groupIdOrPath)
                                    throws GitLabApiException
        Requests access for the authenticated user to the specified group.
        POST /groups/:id/access_requests
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        Returns:
        the created AccessRequest instance
        Throws:
        GitLabApiException - if any exception occurs
      • approveAccessRequest

        public AccessRequest approveAccessRequest​(java.lang.Object groupIdOrPath,
                                                  java.lang.Long userId,
                                                  AccessLevel accessLevel)
                                           throws GitLabApiException
        Approve access for the specified user to the specified group.
        PUT /groups/:id/access_requests/:user_id/approve
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        userId - the user ID to approve access for
        accessLevel - the access level the user is approved for, if null will be developer (30)
        Returns:
        the approved AccessRequest instance
        Throws:
        GitLabApiException - if any exception occurs
      • denyAccessRequest

        public void denyAccessRequest​(java.lang.Object groupIdOrPath,
                                      java.lang.Long userId)
                               throws GitLabApiException
        Deny access for the specified user to the specified group.
        DELETE /groups/:id/access_requests/:user_id
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        userId - the user ID to deny access for
        Throws:
        GitLabApiException - if any exception occurs
      • getBadges

        public java.util.List<Badge> getBadges​(java.lang.Object groupIdOrPath)
                                        throws GitLabApiException
        Gets a list of a group’s badges and its group badges.
        GitLab Endpoint: GET /groups/:id/badges
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        Returns:
        a List of Badge instances for the specified group
        Throws:
        GitLabApiException - if any exception occurs
      • getBadges

        public java.util.List<Badge> getBadges​(java.lang.Object groupIdOrPath,
                                               java.lang.String badgeName)
                                        throws GitLabApiException
        Gets a list of a group’s badges, case-sensitively filtered on bagdeName if non-null.
        GitLab Endpoint: GET /groups/:id/badges?name=:name
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        badgeName - The name to filter on (case-sensitive), ignored if null.
        Returns:
        All badges of the GitLab item, case insensitively filtered on name.
        Throws:
        GitLabApiException - If any problem is encountered
      • getBadge

        public Badge getBadge​(java.lang.Object groupIdOrPath,
                              java.lang.Long badgeId)
                       throws GitLabApiException
        Gets a badge of a group.
        GitLab Endpoint: GET /groups/:id/badges/:badge_id
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        badgeId - the ID of the badge to get
        Returns:
        a Badge instance for the specified group/badge ID pair
        Throws:
        GitLabApiException - if any exception occurs
      • getOptionalBadge

        public java.util.Optional<Badge> getOptionalBadge​(java.lang.Object groupIdOrPath,
                                                          java.lang.Long badgeId)
        Get an Optional instance with the value for the specified badge.
        GitLab Endpoint: GET /groups/:id/badges/:badge_id
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        badgeId - the ID of the badge to get
        Returns:
        an Optional instance with the specified badge as the value
      • addBadge

        public Badge addBadge​(java.lang.Object groupIdOrPath,
                              java.lang.String linkUrl,
                              java.lang.String imageUrl)
                       throws GitLabApiException
        Add a badge to a group.
        GitLab Endpoint: POST /groups/:id/badges
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        linkUrl - the URL of the badge link
        imageUrl - the URL of the image link
        Returns:
        a Badge instance for the added badge
        Throws:
        GitLabApiException - if any exception occurs
      • addBadge

        public Badge addBadge​(java.lang.Object groupIdOrPath,
                              java.lang.String name,
                              java.lang.String linkUrl,
                              java.lang.String imageUrl)
                       throws GitLabApiException
        Add a badge to a group.
        GitLab Endpoint: POST /groups/:id/badges
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        name - The name to give the badge (may be null)
        linkUrl - the URL of the badge link
        imageUrl - the URL of the image link
        Returns:
        A Badge instance for the added badge
        Throws:
        GitLabApiException - if any exception occurs
      • editBadge

        public Badge editBadge​(java.lang.Object groupIdOrPath,
                               java.lang.Long badgeId,
                               java.lang.String linkUrl,
                               java.lang.String imageUrl)
                        throws GitLabApiException
        Edit a badge of a group.
        GitLab Endpoint: PUT /groups/:id/badges
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        badgeId - the ID of the badge to get
        linkUrl - the URL of the badge link
        imageUrl - the URL of the image link
        Returns:
        a Badge instance for the editted badge
        Throws:
        GitLabApiException - if any exception occurs
      • editBadge

        public Badge editBadge​(java.lang.Object groupIdOrPath,
                               java.lang.Long badgeId,
                               java.lang.String name,
                               java.lang.String linkUrl,
                               java.lang.String imageUrl)
                        throws GitLabApiException
        Edit a badge of a group.
        GitLab Endpoint: PUT /groups/:id/badges
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        badgeId - the ID of the badge to edit
        name - The name of the badge to edit (may be null)
        linkUrl - the URL of the badge link
        imageUrl - the URL of the image link
        Returns:
        a Badge instance for the edited badge
        Throws:
        GitLabApiException - if any exception occurs
      • removeBadge

        public void removeBadge​(java.lang.Object groupIdOrPath,
                                java.lang.Long badgeId)
                         throws GitLabApiException
        Remove a badge from a group.
        GitLab Endpoint: DELETE /groups/:id/badges/:badge_id
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        badgeId - the ID of the badge to remove
        Throws:
        GitLabApiException - if any exception occurs
      • previewBadge

        public Badge previewBadge​(java.lang.Object groupIdOrPath,
                                  java.lang.String linkUrl,
                                  java.lang.String imageUrl)
                           throws GitLabApiException
        Returns how the link_url and image_url final URLs would be after resolving the placeholder interpolation.
        GitLab Endpoint: GET /groups/:id/badges/render
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        linkUrl - the URL of the badge link
        imageUrl - the URL of the image link
        Returns:
        a Badge instance for the rendered badge
        Throws:
        GitLabApiException - if any exception occurs
      • setGroupAvatar

        public Group setGroupAvatar​(java.lang.Object groupIdOrPath,
                                    java.io.File avatarFile)
                             throws GitLabApiException
        Uploads and sets the project avatar for the specified group.
        GitLab Endpoint: PUT /groups/:id
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        avatarFile - the File instance of the avatar file to upload
        Returns:
        the updated Group instance
        Throws:
        GitLabApiException - if any exception occurs
      • getAvatar

        public java.io.InputStream getAvatar​(java.lang.Object groupIdOrPath)
                                      throws GitLabApiException
        Gets the group avatar. Only working with GitLab 14.0 and above.
        GitLab Endpoint: GET /groups/:id/avatar
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        Returns:
        an InputStream to read the raw file from
        Throws:
        GitLabApiException - if any exception occurs
      • shareGroup

        public Group shareGroup​(java.lang.Object groupIdOrPath,
                                java.lang.Long shareWithGroupId,
                                AccessLevel groupAccess,
                                java.util.Date expiresAt)
                         throws GitLabApiException
        Share group with another group. Returns 200 and the group details on success.
        GitLab Endpoint: POST /groups/:id/share
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        shareWithGroupId - the ID of the group to share with, required
        groupAccess - the access level to grant the group, required
        expiresAt - expiration date of the share, optional
        Returns:
        a Group instance holding the details of the shared group
        Throws:
        GitLabApiException - if any exception occurs
      • unshareGroup

        public void unshareGroup​(java.lang.Object groupIdOrPath,
                                 java.lang.Long sharedWithGroupId)
                          throws GitLabApiException
        Unshare the group from another group.
        GitLab Endpoint: DELETE /groups/:id/share/:group_id
        Parameters:
        groupIdOrPath - the group ID, path of the group, or a Group instance holding the group ID or path
        sharedWithGroupId - the ID of the group to unshare with, required
        Throws:
        GitLabApiException - if any exception occurs
      • getCustomAttributes

        public java.util.List<CustomAttribute> getCustomAttributes​(java.lang.Object groupIdOrPath)
                                                            throws GitLabApiException
        Get all custom attributes for the specified group.
        GitLab Endpoint: GET /groups/:id/custom_attributes
        Parameters:
        groupIdOrPath - the group in the form of an Long(ID), String(path), or Group instance
        Returns:
        a list of group's CustomAttributes
        Throws:
        GitLabApiException - if any exception occurs
      • getCustomAttributes

        public Pager<CustomAttribute> getCustomAttributes​(java.lang.Object groupIdOrPath,
                                                          int itemsPerPage)
                                                   throws GitLabApiException
        Get a Pager of custom attributes for the specified group.
        GitLab Endpoint: GET /groups/:id/custom_attributes
        Parameters:
        groupIdOrPath - the group in the form of an Long(ID), String(path), or Group instance
        itemsPerPage - the number of items per page
        Returns:
        a Pager of group's custom attributes
        Throws:
        GitLabApiException - if any exception occurs
      • getCustomAttributesStream

        public java.util.stream.Stream<CustomAttribute> getCustomAttributesStream​(java.lang.Object groupIdOrPath)
                                                                           throws GitLabApiException
        Get a Stream of all custom attributes for the specified group.
        GitLab Endpoint: GET /groups/:id/custom_attributes
        Parameters:
        groupIdOrPath - the group in the form of an Long(ID), String(path), or Group instance
        Returns:
        a Stream of group's custom attributes
        Throws:
        GitLabApiException - if any exception occurs
      • getCustomAttribute

        public CustomAttribute getCustomAttribute​(java.lang.Object groupIdOrPath,
                                                  java.lang.String key)
                                           throws GitLabApiException
        Get a single custom attribute for the specified group.
        GitLab Endpoint: GET /groups/:id/custom_attributes/:key
        Parameters:
        groupIdOrPath - the group in the form of an Long(ID), String(path), or Group instance
        key - the key for the custom attribute
        Returns:
        a CustomAttribute instance for the specified key
        Throws:
        GitLabApiException - if any exception occurs
      • geOptionalCustomAttribute

        public java.util.Optional<CustomAttribute> geOptionalCustomAttribute​(java.lang.Object groupIdOrPath,
                                                                             java.lang.String key)
        Get an Optional instance with the value for a single custom attribute for the specified group.
        GitLab Endpoint: GET /groups/:id/custom_attributes/:key
        Parameters:
        groupIdOrPath - the group in the form of an Long(ID), String(path), or Group instance, required
        key - the key for the custom attribute, required
        Returns:
        an Optional instance with the value for a single custom attribute for the specified group
      • setCustomAttribute

        public CustomAttribute setCustomAttribute​(java.lang.Object groupIdOrPath,
                                                  java.lang.String key,
                                                  java.lang.String value)
                                           throws GitLabApiException
        Set a custom attribute for the specified group. The attribute will be updated if it already exists, or newly created otherwise.
        GitLab Endpoint: PUT /groups/:id/custom_attributes/:key
        Parameters:
        groupIdOrPath - the group in the form of an Long(ID), String(path), or Group instance
        key - the key for the custom attribute
        value - the value for the customAttribute
        Returns:
        a CustomAttribute instance for the updated or created custom attribute
        Throws:
        GitLabApiException - if any exception occurs
      • deleteCustomAttribute

        public void deleteCustomAttribute​(java.lang.Object groupIdOrPath,
                                          java.lang.String key)
                                   throws GitLabApiException
        Delete a custom attribute for the specified group.
        GitLab Endpoint: DELETE /groups/:id/custom_attributes/:key
        Parameters:
        groupIdOrPath - the group in the form of an Long(ID), String(path), or Group instance
        key - the key of the custom attribute to delete
        Throws:
        GitLabApiException - if any exception occurs
      • listGroupIterations

        public java.util.List<Iteration> listGroupIterations​(java.lang.Object groupIdOrPath,
                                                             IterationFilter filter)
                                                      throws GitLabApiException
        Lists group iterations.
        GitLab Endpoint: GET /groups/:id/iterations
        Parameters:
        groupIdOrPath - the group in the form of an Long(ID), String(path), or Group instance
        filter - the iteration filter
        Returns:
        the list of group iterations
        Throws:
        GitLabApiException - if any exception occurs
      • getGroupAccessTokens

        public java.util.List<GroupAccessToken> getGroupAccessTokens​(java.lang.Object groupIdOrPath)
                                                              throws GitLabApiException
        Get a list of group access tokens.
        GitLab Endpoint: GET /groups/:id/access_tokens
        Parameters:
        groupIdOrPath - the group in the form of an Long(ID), String(path), or Group instance
        Returns:
        the list of GroupAccessToken instances
        Throws:
        GitLabApiException - if any exception occurs
      • getGroupAccessToken

        public GroupAccessToken getGroupAccessToken​(java.lang.Object groupIdOrPath,
                                                    java.lang.Long tokenId)
                                             throws GitLabApiException
        Get a group access token by ID.
        GitLab Endpoint: GET /groups/:id/access_tokens/:token_id
        Parameters:
        groupIdOrPath - the group in the form of an Long(ID), String(path), or Group instance
        tokenId - ID of the group access token
        Returns:
        the GroupAccessToken instance
        Throws:
        GitLabApiException - if any exception occurs
      • createGroupAccessToken

        public GroupAccessToken createGroupAccessToken​(java.lang.Object groupIdOrPath,
                                                       java.lang.String name,
                                                       java.util.Date expiresAt,
                                                       ImpersonationToken.Scope[] scopes,
                                                       AccessLevel accessLevel)
                                                throws GitLabApiException
        Create a group access token. You must have the Owner role for the group to create group access tokens.
        GitLab Endpoint: POST /groups/:id/access_tokens
        Parameters:
        groupIdOrPath - the group in the form of an Long(ID), String(path), or Group instance
        name - the name of the group access token, required
        expiresAt - the expiration date of the group access token, optional
        scopes - an array of scopes of the group access token
        accessLevel - Access level. Valid values are AccessLevel.GUEST, AccessLevel.REPORTER, AccessLevel.DEVELOPER, AccessLevel.MAINTAINER, and AccessLevel.OWNER.
        Returns:
        the created GroupAccessToken instance
        Throws:
        GitLabApiException - if any exception occurs
      • rotateGroupAccessToken

        public GroupAccessToken rotateGroupAccessToken​(java.lang.Object groupIdOrPath,
                                                       java.lang.Long tokenId)
                                                throws GitLabApiException
        Rotate a group access token. Revokes the previous token and creates a new token that expires in one week.
        GitLab Endpoint: POST /groups/:id/access_tokens/:token_id/rotate
        Parameters:
        groupIdOrPath - the group in the form of an Long(ID), String(path), or Group instance
        tokenId - ID of the group access token
        Returns:
        the updated GroupAccessToken instance
        Throws:
        GitLabApiException - if any exception occurs
      • rotateGroupAccessToken

        public GroupAccessToken rotateGroupAccessToken​(java.lang.Object groupIdOrPath,
                                                       java.lang.Long tokenId,
                                                       java.util.Date expiresAt)
                                                throws GitLabApiException
        Rotate a group access token. Revokes the previous token and creates a new token that expires in one week.
        GitLab Endpoint: POST /groups/:id/access_tokens/:token_id/rotate
        Parameters:
        groupIdOrPath - the group in the form of an Long(ID), String(path), or Group instance
        tokenId - ID of the group access token
        expiresAt - Expiration date of the access token
        Returns:
        the updated GroupAccessToken instance
        Throws:
        GitLabApiException - if any exception occurs
      • revokeGroupAccessToken

        public void revokeGroupAccessToken​(java.lang.Object groupIdOrPath,
                                           java.lang.Long tokenId)
                                    throws GitLabApiException
        Revoke a group access token.
        GitLab Endpoint: DELETE /groups/:id/access_tokens/:token_id
        Parameters:
        groupIdOrPath - the group in the form of an Long(ID), String(path), or Group instance
        tokenId - ID of the group access token
        Throws:
        GitLabApiException - if any exception occurs