Skip to content

Commit

Permalink
Added Connection's SCIM Server Support
Browse files Browse the repository at this point in the history
  • Loading branch information
tanya732 committed Jan 24, 2025
1 parent d0fed49 commit 5c647e9
Show file tree
Hide file tree
Showing 21 changed files with 1,363 additions and 6 deletions.
211 changes: 209 additions & 2 deletions src/main/java/com/auth0/client/mgmt/ConnectionsEntity.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
package com.auth0.client.mgmt;

import com.auth0.client.mgmt.filter.ConnectionFilter;
import com.auth0.json.mgmt.connections.Connection;
import com.auth0.json.mgmt.connections.ConnectionsPage;
import com.auth0.json.mgmt.connections.*;
import com.auth0.net.BaseRequest;
import com.auth0.net.Request;
import com.auth0.net.VoidRequest;
Expand Down Expand Up @@ -163,4 +162,212 @@ public Request<Void> deleteUser(String connectionId, String email) {
.toString();
return new VoidRequest(this.client, tokenProvider, url, HttpMethod.DELETE);
}

/**
* Get the Connections Scim Configuration.
* A token with scope read:scim_config is needed.
* @see <a href="https://auth0.com/docs/api/management/v2#!/connections/get-scim-configuration">https://auth0.com/docs/api/management/v2#!/connections/get-scim-configuration</a>
* @param connectionId the connection id.
* @return a Request to execute.
*/
public Request<ScimConfigurationResponse> getScimConfiguration( String connectionId) {
Asserts.assertNotNull(connectionId, "connection id");

String url = baseUrl
.newBuilder()
.addPathSegments("api/v2/connections")
.addPathSegment(connectionId)
.addPathSegment("scim-configuration")
.build()
.toString();
return new BaseRequest<>(client, tokenProvider, url, HttpMethod.GET, new TypeReference<ScimConfigurationResponse>() {
});
}

/**
* Delete the Connections Scim Configuration.
* A token with scope delete:scim_config is needed.
* @see <a href="https://auth0.com/docs/api/management/v2#!/connections/delete-scim-configuration">https://auth0.com/docs/api/management/v2#!/connections/delete-scim-configuration</a>
* @param connectionId the connection id.
* @return a Request to execute.
*/
public Request<Void> deleteScimConfiguration(String connectionId) {
Asserts.assertNotNull(connectionId, "connection id");

String url = baseUrl
.newBuilder()
.addPathSegments("api/v2/connections")
.addPathSegment(connectionId)
.addPathSegment("scim-configuration")
.build()
.toString();
return new VoidRequest(client, tokenProvider, url, HttpMethod.DELETE);
}

/**
* Update the Connections Scim Configuration.
* A token with scope update:scim_config is needed.
* @see <a href="https://auth0.com/docs/api/management/v2#!/connections/patch-scim-configuration">https://auth0.com/docs/api/management/v2#!/connections/patch-scim-configuration</a>
* @param connectionId the connection id.
* @param scimConfigurationRequest the scim configuration request.
* @return a Request to execute.
*/
public Request<ScimConfigurationResponse> updateScimConfiguration(String connectionId, ScimConfigurationRequest scimConfigurationRequest){
Asserts.assertNotNull(connectionId, "connection id");
Asserts.assertNotNull(scimConfigurationRequest, "scim configuration request");
Asserts.assertNotNull(scimConfigurationRequest.getUserIdAttribute(), "user id attribute");
Asserts.assertNotNull(scimConfigurationRequest.getMapping(), "mapping");

String url = baseUrl
.newBuilder()
.addPathSegments("api/v2/connections")
.addPathSegment(connectionId)
.addPathSegment("scim-configuration")
.build()
.toString();

BaseRequest<ScimConfigurationResponse> request = new BaseRequest<>(client, tokenProvider, url, HttpMethod.PATCH, new TypeReference<ScimConfigurationResponse>() {
});
request.setBody(scimConfigurationRequest);
return request;
}

/**
* Create the Connections Scim Configuration.
* A token with scope create:scim_config is needed.
* @see <a href="https://auth0.com/docs/api/management/v2#!/connections/post-scim-configuration">https://auth0.com/docs/api/management/v2#!/connections/post-scim-configuration</a>
* @param connectionId the connection id.
* @param request the scim configuration request.
* @return a Request to execute.
*/
public Request<ScimConfigurationResponse> createScimConfiguration(String connectionId, ScimConfigurationRequest request){
Asserts.assertNotNull(connectionId, "connection id");

String url = baseUrl
.newBuilder()
.addPathSegments("api/v2/connections")
.addPathSegment(connectionId)
.addPathSegment("scim-configuration")
.build()
.toString();

BaseRequest<ScimConfigurationResponse> baseRequest = new BaseRequest<>(client, tokenProvider, url, HttpMethod.POST, new TypeReference<ScimConfigurationResponse>() {
});
baseRequest.setBody(request);
return baseRequest;
}

/**
* Get the Scim Configuration default mapping by its connection Id.
* A token with scope read:scim_config is needed.
* @see <a href="https://auth0.com/docs/api/management/v2#!/connections/get-default-mapping">https://auth0.com/docs/api/management/v2#!/connections/get-default-mapping</a>
* @param connectionId the connection id.
* @return a Request to execute.
*/
public Request<Mapping> getDefaultScimConfiguration(String connectionId){
Asserts.assertNotNull(connectionId, "connection id");

String url = baseUrl
.newBuilder()
.addPathSegments("api/v2/connections")
.addPathSegment(connectionId)
.addPathSegment("scim-configuration")
.addPathSegment("default-mapping")
.build()
.toString();
return new BaseRequest<>(client, tokenProvider, url, HttpMethod.GET, new TypeReference<Mapping>() {
});
}

/**
* Get the Connections Scim Tokens.
* A token with scope read:scim_token is needed.
* @see <a href="https://auth0.com/docs/api/management/v2#!/connections/get-scim-tokens">https://auth0.com/docs/api/management/v2#!/connections/get-scim-tokens</a>
* @param connectionId the connection id.
* @return a Request to execute.
*/
public Request<List<ScimTokenResponse>> getScimToken(String connectionId){
Asserts.assertNotNull(connectionId, "connection id");

String url = baseUrl
.newBuilder()
.addPathSegments("api/v2/connections")
.addPathSegment(connectionId)
.addPathSegments("scim-configuration/tokens")
.build()
.toString();
return new BaseRequest<>(client, tokenProvider, url, HttpMethod.GET, new TypeReference<List<ScimTokenResponse>>() {
});
}

/**
* Create a Connections Scim Token.
* A token with scope create:scim_token is needed.
* @see <a href="https://auth0.com/docs/api/management/v2#!/connections/post-scim-token">https://auth0.com/docs/api/management/v2#!/connections/post-scim-token</a>
* @param connectionId the connection id.
* @param scimTokenRequest the scim token request.
* @return a Request to execute.
*/
public Request<ScimTokenCreateResponse> createScimToken(String connectionId, ScimTokenRequest scimTokenRequest){
Asserts.assertNotNull(connectionId, "connection id");
Asserts.assertNotNull(scimTokenRequest, "scim token request");

String url = baseUrl
.newBuilder()
.addPathSegments("api/v2/connections")
.addPathSegment(connectionId)
.addPathSegments("scim-configuration/tokens")
.build()
.toString();

BaseRequest<ScimTokenCreateResponse> request = new BaseRequest<>(client, tokenProvider, url, HttpMethod.POST, new TypeReference<ScimTokenCreateResponse>() {
});
request.setBody(scimTokenRequest);
return request;
}

/**
* Delete a Connections Scim Token.
* A token with scope delete:scim_token is needed.
* @see <a href="https://auth0.com/docs/api/management/v2#!/connections/delete-tokens-by-token-id">https://auth0.com/docs/api/management/v2#!/connections/delete-tokens-by-token-id</a>
* @param connectionId the connection id.
* @param tokenId the token id.
* @return a Request to execute.
*/
public Request<Void> deleteScimToken(String connectionId, String tokenId){
Asserts.assertNotNull(connectionId, "connection id");
Asserts.assertNotNull(tokenId, "token id");

String url = baseUrl
.newBuilder()
.addPathSegments("api/v2/connections")
.addPathSegment(connectionId)
.addPathSegments("scim-configuration/tokens")
.addPathSegment(tokenId)
.build()
.toString();

return new VoidRequest(client, tokenProvider, url, HttpMethod.DELETE);
}

/**
* Check the Connection Status.
* A token with scope read:connections is needed.
* @see <a href="https://auth0.com/docs/api/management/v2#!/connections/get-status">https://auth0.com/docs/api/management/v2#!/connections/get-status</a>
* @param connectionId the connection id.
* @return a Request to execute.
*/
public Request<Void> checkConnectionStatus(String connectionId){
Asserts.assertNotNull(connectionId, "connection id");

String url = baseUrl
.newBuilder()
.addPathSegments("api/v2/connections")
.addPathSegment(connectionId)
.addPathSegments("status")
.build()
.toString();

return new VoidRequest(client, tokenProvider, url, HttpMethod.GET);
}
}
66 changes: 66 additions & 0 deletions src/main/java/com/auth0/json/mgmt/connections/Mapping.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package com.auth0.json.mgmt.connections;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Mapping {
@JsonProperty("auth0")
private String auth0;
@JsonProperty("scim")
private String scim;

/**
* Creates a new instance.
*/
@JsonCreator
public Mapping() {

}

/**
* Creates a new instance with the given Auth0 and SCIM attributes.
* @param auth0 the Auth0 attribute.
* @param scim the SCIM attribute.
*/
@JsonCreator
public Mapping(@JsonProperty("auth0") String auth0, @JsonProperty("scim") String scim) {
this.auth0 = auth0;
this.scim = scim;
}

/**
* Getter for the Auth0 attribute.
* @return the Auth0 attribute.
*/
public String getAuth0() {
return auth0;
}

/**
* Setter for the Auth0 attribute.
* @param auth0 the Auth0 attribute to set.
*/
public void setAuth0(String auth0) {
this.auth0 = auth0;
}

/**
* Getter for the SCIM attribute.
* @return the SCIM attribute.
*/
public String getScim() {
return scim;
}

/**
* Setter for the SCIM attribute.
* @param scim the SCIM attribute to set.
*/
public void setScim(String scim) {
this.scim = scim;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
package com.auth0.json.mgmt.connections;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.util.List;

@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class ScimConfigurationRequest {
@JsonProperty("user_id_attribute")
private String userIdAttribute;
@JsonProperty("mapping")
private List<Mapping> mapping;

/**
* Creates a new instance.
*/
public ScimConfigurationRequest() {

}

/**
* Creates a new instance with the given user id attribute and mapping.
* @param userIdAttribute the user id attribute.
* @param mapping the mappings.
*/
public ScimConfigurationRequest(String userIdAttribute, List<Mapping> mapping) {
this.userIdAttribute = userIdAttribute;
this.mapping = mapping;
}

/**
* Getter for the user id attribute.
* @return the user id attribute.
*/
public String getUserIdAttribute() {
return userIdAttribute;
}

/**
* Setter for the user id attribute.
* @param userIdAttribute the user id attribute to set.
*/
public void setUserIdAttribute(String userIdAttribute) {
this.userIdAttribute = userIdAttribute;
}

/**
* Getter for the mapping.
* @return the mapping.
*/
public List<Mapping> getMapping() {
return mapping;
}

/**
* Setter for the mapping.
* @param mapping the mapping to set.
*/
public void setMapping(List<Mapping> mapping) {
this.mapping = mapping;
}
}
Loading

0 comments on commit 5c647e9

Please sign in to comment.