diff --git a/src/main/java/org/gitlab4j/api/GroupApi.java b/src/main/java/org/gitlab4j/api/GroupApi.java
index 4b37ff496901fac9ca9af0a8eeae0ada72ef72d0..7a8d433cce30fafa21f57672bb631002b847dd10 100644
--- a/src/main/java/org/gitlab4j/api/GroupApi.java
+++ b/src/main/java/org/gitlab4j/api/GroupApi.java
@@ -22,6 +22,7 @@ import org.gitlab4j.api.models.Group;
import org.gitlab4j.api.models.GroupFilter;
import org.gitlab4j.api.models.GroupParams;
import org.gitlab4j.api.models.GroupProjectsFilter;
+import org.gitlab4j.api.models.LdapGroupLink;
import org.gitlab4j.api.models.Member;
import org.gitlab4j.api.models.Project;
import org.gitlab4j.api.models.Variable;
@@ -1177,6 +1178,20 @@ public class GroupApi extends AbstractApi {
post(Response.Status.NO_CONTENT, (Form)null, "groups", getGroupIdOrPath(groupIdOrPath), "ldap_sync");
}
+ /**
+ * Get the list of LDAP group links.
+ *
+ *
GitLab Endpoint: GET /groups/:id/ldap_group_links
+ *
+ * @param groupIdOrPath the group ID, path of the group, or a Group instance holding the group ID or path
+ * @return a list of LDAP group links
+ * @throws GitLabApiException if any exception occurs
+ */
+ public List getLdapGroupLinks(Object groupIdOrPath) throws GitLabApiException {
+ Response response = get(Response.Status.OK, null, "groups", getGroupIdOrPath(groupIdOrPath), "ldap_group_links");
+ return (response.readEntity(new GenericType>() {}));
+ }
+
/**
* Adds an LDAP group link.
*
diff --git a/src/main/java/org/gitlab4j/api/models/LdapGroupLink.java b/src/main/java/org/gitlab4j/api/models/LdapGroupLink.java
new file mode 100644
index 0000000000000000000000000000000000000000..8830b247308c116d28078e0c0233416084f8f17d
--- /dev/null
+++ b/src/main/java/org/gitlab4j/api/models/LdapGroupLink.java
@@ -0,0 +1,52 @@
+
+package org.gitlab4j.api.models;
+
+import org.gitlab4j.api.utils.JacksonJson;
+
+public class LdapGroupLink {
+
+ private String cn;
+
+ private AccessLevel groupAccess;
+
+ private String provider;
+
+ private String filter;
+
+ public String getCn() {
+ return cn;
+ }
+
+ public void setCn(String aCn) {
+ cn = aCn;
+ }
+
+ public AccessLevel getGroupAccess() {
+ return groupAccess;
+ }
+
+ public void setGroupAccess(AccessLevel aGroupAccess) {
+ groupAccess = aGroupAccess;
+ }
+
+ public String getProvider() {
+ return provider;
+ }
+
+ public void setProvider(String aProvider) {
+ provider = aProvider;
+ }
+
+ public String getFilter() {
+ return filter;
+ }
+
+ public void setFilter(String aFilter) {
+ filter = aFilter;
+ }
+
+ @Override
+ public String toString() {
+ return (JacksonJson.toJsonString(this));
+ }
+}
diff --git a/src/test/java/org/gitlab4j/api/TestGitLabApiBeans.java b/src/test/java/org/gitlab4j/api/TestGitLabApiBeans.java
index 7e8de8d1667d99cb57f5324d966530476724a65c..191db4a366161116a1e13bd3f9dad1ec04799500 100644
--- a/src/test/java/org/gitlab4j/api/TestGitLabApiBeans.java
+++ b/src/test/java/org/gitlab4j/api/TestGitLabApiBeans.java
@@ -81,6 +81,7 @@ import org.gitlab4j.api.models.Job;
import org.gitlab4j.api.models.Key;
import org.gitlab4j.api.models.Label;
import org.gitlab4j.api.models.LabelEvent;
+import org.gitlab4j.api.models.LdapGroupLink;
import org.gitlab4j.api.models.Link;
import org.gitlab4j.api.models.Member;
import org.gitlab4j.api.models.MergeRequest;
@@ -771,6 +772,12 @@ public class TestGitLabApiBeans {
assertTrue(compareJson(labels, "labels.json"));
}
+ @Test
+ public void testLdapGroupLink() throws Exception {
+ LdapGroupLink link = unmarshalResource(LdapGroupLink.class, "ldap-group-link.json");
+ assertTrue(compareJson(link, "ldap-group-link.json"));
+ }
+
@Test
public void testSearchBlobs() throws Exception {
List searchResults = unmarshalResourceList(SearchBlob.class, "wiki-blobs.json");
diff --git a/src/test/resources/org/gitlab4j/api/ldap-group-link.json b/src/test/resources/org/gitlab4j/api/ldap-group-link.json
new file mode 100644
index 0000000000000000000000000000000000000000..ffb817409c5da1f30186a2f8659030226670ce95
--- /dev/null
+++ b/src/test/resources/org/gitlab4j/api/ldap-group-link.json
@@ -0,0 +1,6 @@
+{
+ "cn": "My Group",
+ "group_access": 30,
+ "provider": "tertiary",
+ "filter": "(employeeType=developer)"
+}