Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
238 changes: 229 additions & 9 deletions reference.md

Large diffs are not rendered by default.

59 changes: 59 additions & 0 deletions src/main/java/com/auth0/client/mgmt/AsyncEventsClient.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
/**
* This file was auto-generated by Fern from our API Definition.
*/
package com.auth0.client.mgmt;

import com.auth0.client.mgmt.core.ClientOptions;
import com.auth0.client.mgmt.core.RequestOptions;
import com.auth0.client.mgmt.types.EventStreamSubscribeEventsResponseContent;
import com.auth0.client.mgmt.types.SubscribeEventsRequestParameters;
import java.util.concurrent.CompletableFuture;

public class AsyncEventsClient {
protected final ClientOptions clientOptions;

private final AsyncRawEventsClient rawClient;

public AsyncEventsClient(ClientOptions clientOptions) {
this.clientOptions = clientOptions;
this.rawClient = new AsyncRawEventsClient(clientOptions);
}

/**
* Get responses with HTTP metadata like headers
*/
public AsyncRawEventsClient withRawResponse() {
return this.rawClient;
}

/**
* Subscribe to events via Server-Sent Events (SSE)
*/
public CompletableFuture<Iterable<EventStreamSubscribeEventsResponseContent>> subscribe() {
return this.rawClient.subscribe().thenApply(response -> response.body());
}

/**
* Subscribe to events via Server-Sent Events (SSE)
*/
public CompletableFuture<Iterable<EventStreamSubscribeEventsResponseContent>> subscribe(
RequestOptions requestOptions) {
return this.rawClient.subscribe(requestOptions).thenApply(response -> response.body());
}

/**
* Subscribe to events via Server-Sent Events (SSE)
*/
public CompletableFuture<Iterable<EventStreamSubscribeEventsResponseContent>> subscribe(
SubscribeEventsRequestParameters request) {
return this.rawClient.subscribe(request).thenApply(response -> response.body());
}

/**
* Subscribe to events via Server-Sent Events (SSE)
*/
public CompletableFuture<Iterable<EventStreamSubscribeEventsResponseContent>> subscribe(
SubscribeEventsRequestParameters request, RequestOptions requestOptions) {
return this.rawClient.subscribe(request, requestOptions).thenApply(response -> response.body());
}
}
7 changes: 7 additions & 0 deletions src/main/java/com/auth0/client/mgmt/AsyncManagementApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ public class AsyncManagementApi {

protected final Supplier<AsyncEventStreamsClient> eventStreamsClient;

protected final Supplier<AsyncEventsClient> eventsClient;

protected final Supplier<AsyncFlowsClient> flowsClient;

protected final Supplier<AsyncFormsClient> formsClient;
Expand Down Expand Up @@ -116,6 +118,7 @@ public AsyncManagementApi(ClientOptions clientOptions) {
this.deviceCredentialsClient = Suppliers.memoize(() -> new AsyncDeviceCredentialsClient(clientOptions));
this.emailTemplatesClient = Suppliers.memoize(() -> new AsyncEmailTemplatesClient(clientOptions));
this.eventStreamsClient = Suppliers.memoize(() -> new AsyncEventStreamsClient(clientOptions));
this.eventsClient = Suppliers.memoize(() -> new AsyncEventsClient(clientOptions));
this.flowsClient = Suppliers.memoize(() -> new AsyncFlowsClient(clientOptions));
this.formsClient = Suppliers.memoize(() -> new AsyncFormsClient(clientOptions));
this.userGrantsClient = Suppliers.memoize(() -> new AsyncUserGrantsClient(clientOptions));
Expand Down Expand Up @@ -191,6 +194,10 @@ public AsyncEventStreamsClient eventStreams() {
return this.eventStreamsClient.get();
}

public AsyncEventsClient events() {
return this.eventsClient.get();
}

public AsyncFlowsClient flows() {
return this.flowsClient.get();
}
Expand Down
171 changes: 171 additions & 0 deletions src/main/java/com/auth0/client/mgmt/AsyncRawEventsClient.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
/**
* This file was auto-generated by Fern from our API Definition.
*/
package com.auth0.client.mgmt;

import com.auth0.client.mgmt.core.ClientOptions;
import com.auth0.client.mgmt.core.ManagementApiException;
import com.auth0.client.mgmt.core.ManagementApiHttpResponse;
import com.auth0.client.mgmt.core.ManagementException;
import com.auth0.client.mgmt.core.ObjectMappers;
import com.auth0.client.mgmt.core.QueryStringMapper;
import com.auth0.client.mgmt.core.RequestOptions;
import com.auth0.client.mgmt.core.ResponseBodyReader;
import com.auth0.client.mgmt.core.Stream;
import com.auth0.client.mgmt.errors.BadRequestError;
import com.auth0.client.mgmt.errors.ForbiddenError;
import com.auth0.client.mgmt.errors.GoneError;
import com.auth0.client.mgmt.errors.NotFoundError;
import com.auth0.client.mgmt.errors.TooManyRequestsError;
import com.auth0.client.mgmt.errors.UnauthorizedError;
import com.auth0.client.mgmt.types.EventStreamSubscribeEventsResponseContent;
import com.auth0.client.mgmt.types.SubscribeEventsRequestParameters;
import com.fasterxml.jackson.core.JsonProcessingException;
import java.io.IOException;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Headers;
import okhttp3.HttpUrl;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.ResponseBody;
import org.jetbrains.annotations.NotNull;

public class AsyncRawEventsClient {
protected final ClientOptions clientOptions;

public AsyncRawEventsClient(ClientOptions clientOptions) {
this.clientOptions = clientOptions;
}

/**
* Subscribe to events via Server-Sent Events (SSE)
*/
public CompletableFuture<ManagementApiHttpResponse<Iterable<EventStreamSubscribeEventsResponseContent>>>
subscribe() {
return subscribe(SubscribeEventsRequestParameters.builder().build());
}

/**
* Subscribe to events via Server-Sent Events (SSE)
*/
public CompletableFuture<ManagementApiHttpResponse<Iterable<EventStreamSubscribeEventsResponseContent>>> subscribe(
RequestOptions requestOptions) {
return subscribe(SubscribeEventsRequestParameters.builder().build(), requestOptions);
}

/**
* Subscribe to events via Server-Sent Events (SSE)
*/
public CompletableFuture<ManagementApiHttpResponse<Iterable<EventStreamSubscribeEventsResponseContent>>> subscribe(
SubscribeEventsRequestParameters request) {
return subscribe(request, null);
}

/**
* Subscribe to events via Server-Sent Events (SSE)
*/
public CompletableFuture<ManagementApiHttpResponse<Iterable<EventStreamSubscribeEventsResponseContent>>> subscribe(
SubscribeEventsRequestParameters request, RequestOptions requestOptions) {
HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl())
.newBuilder()
.addPathSegments("events");
if (!request.getFrom().isAbsent()) {
QueryStringMapper.addQueryParameter(
httpUrl, "from", request.getFrom().orElse(null), false);
}
if (!request.getFromTimestamp().isAbsent()) {
QueryStringMapper.addQueryParameter(
httpUrl, "from_timestamp", request.getFromTimestamp().orElse(null), false);
}
if (request.getEventType().isPresent()) {
QueryStringMapper.addQueryParameter(
httpUrl, "event_type", request.getEventType().get(), true);
}
if (requestOptions != null) {
requestOptions.getQueryParameters().forEach((_key, _value) -> {
httpUrl.addQueryParameter(_key, _value);
});
}
Request.Builder _requestBuilder = new Request.Builder()
.url(httpUrl.build())
.method("GET", null)
.headers(Headers.of(clientOptions.headers(requestOptions)));
Request okhttpRequest = _requestBuilder.build();
OkHttpClient client = clientOptions.httpClient();
if (requestOptions != null && requestOptions.getTimeout().isPresent()) {
client = clientOptions.httpClientWithTimeout(requestOptions);
}
client = client.newBuilder().callTimeout(0, TimeUnit.SECONDS).build();
CompletableFuture<ManagementApiHttpResponse<Iterable<EventStreamSubscribeEventsResponseContent>>> future =
new CompletableFuture<>();
client.newCall(okhttpRequest).enqueue(new Callback() {
@Override
public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
try {
ResponseBody responseBody = response.body();
if (response.isSuccessful()) {
future.complete(new ManagementApiHttpResponse<>(
Stream.fromSse(
EventStreamSubscribeEventsResponseContent.class,
new ResponseBodyReader(response)),
response));
return;
}
String responseBodyString = responseBody != null ? responseBody.string() : "{}";
try {
switch (response.code()) {
case 400:
future.completeExceptionally(new BadRequestError(
ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class),
response));
return;
case 401:
future.completeExceptionally(new UnauthorizedError(
ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class),
response));
return;
case 403:
future.completeExceptionally(new ForbiddenError(
ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class),
response));
return;
case 404:
future.completeExceptionally(new NotFoundError(
ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class),
response));
return;
case 410:
future.completeExceptionally(new GoneError(
ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class),
response));
return;
case 429:
future.completeExceptionally(new TooManyRequestsError(
ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class),
response));
return;
}
} catch (JsonProcessingException ignored) {
// unable to map error response, throwing generic error
}
Object errorBody = ObjectMappers.parseErrorBody(responseBodyString);
future.completeExceptionally(new ManagementApiException(
"Error with status code " + response.code(), response.code(), errorBody, response));
return;
} catch (IOException e) {
future.completeExceptionally(new ManagementException("Network error executing HTTP request", e));
}
}

@Override
public void onFailure(@NotNull Call call, @NotNull IOException e) {
future.completeExceptionally(new ManagementException("Network error executing HTTP request", e));
}
});
return future;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,10 @@ public CompletableFuture<ManagementApiHttpResponse<SyncPagingIterable<Group>>> l
QueryStringMapper.addQueryParameter(
httpUrl, "external_id", request.getExternalId().orElse(null), false);
}
if (!request.getSearch().isAbsent()) {
QueryStringMapper.addQueryParameter(
httpUrl, "search", request.getSearch().orElse(null), false);
}
if (!request.getFields().isAbsent()) {
QueryStringMapper.addQueryParameter(
httpUrl, "fields", request.getFields().orElse(null), false);
Expand Down
106 changes: 106 additions & 0 deletions src/main/java/com/auth0/client/mgmt/AsyncRawRefreshTokensClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import com.auth0.client.mgmt.types.GetRefreshTokensPaginatedResponseContent;
import com.auth0.client.mgmt.types.GetRefreshTokensRequestParameters;
import com.auth0.client.mgmt.types.RefreshTokenResponseContent;
import com.auth0.client.mgmt.types.RevokeRefreshTokensRequestContent;
import com.auth0.client.mgmt.types.UpdateRefreshTokenRequestContent;
import com.auth0.client.mgmt.types.UpdateRefreshTokenResponseContent;
import com.fasterxml.jackson.core.JsonProcessingException;
Expand Down Expand Up @@ -176,6 +177,111 @@ public void onFailure(@NotNull Call call, @NotNull IOException e) {
return future;
}

/**
* Revoke refresh tokens in bulk by ID list, user, user+client, or client.
*/
public CompletableFuture<ManagementApiHttpResponse<Void>> revoke() {
return revoke(RevokeRefreshTokensRequestContent.builder().build());
}

/**
* Revoke refresh tokens in bulk by ID list, user, user+client, or client.
*/
public CompletableFuture<ManagementApiHttpResponse<Void>> revoke(RequestOptions requestOptions) {
return revoke(RevokeRefreshTokensRequestContent.builder().build(), requestOptions);
}

/**
* Revoke refresh tokens in bulk by ID list, user, user+client, or client.
*/
public CompletableFuture<ManagementApiHttpResponse<Void>> revoke(RevokeRefreshTokensRequestContent request) {
return revoke(request, null);
}

/**
* Revoke refresh tokens in bulk by ID list, user, user+client, or client.
*/
public CompletableFuture<ManagementApiHttpResponse<Void>> revoke(
RevokeRefreshTokensRequestContent request, RequestOptions requestOptions) {
HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl())
.newBuilder()
.addPathSegments("refresh-tokens/revoke");
if (requestOptions != null) {
requestOptions.getQueryParameters().forEach((_key, _value) -> {
httpUrl.addQueryParameter(_key, _value);
});
}
RequestBody body;
try {
body = RequestBody.create(
ObjectMappers.JSON_MAPPER.writeValueAsBytes(request), MediaTypes.APPLICATION_JSON);
} catch (JsonProcessingException e) {
throw new ManagementException("Failed to serialize request", e);
}
Request okhttpRequest = new Request.Builder()
.url(httpUrl.build())
.method("POST", body)
.headers(Headers.of(clientOptions.headers(requestOptions)))
.addHeader("Content-Type", "application/json")
.addHeader("Accept", "application/json")
.build();
OkHttpClient client = clientOptions.httpClient();
if (requestOptions != null && requestOptions.getTimeout().isPresent()) {
client = clientOptions.httpClientWithTimeout(requestOptions);
}
CompletableFuture<ManagementApiHttpResponse<Void>> future = new CompletableFuture<>();
client.newCall(okhttpRequest).enqueue(new Callback() {
@Override
public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
try (ResponseBody responseBody = response.body()) {
if (response.isSuccessful()) {
future.complete(new ManagementApiHttpResponse<>(null, response));
return;
}
String responseBodyString = responseBody != null ? responseBody.string() : "{}";
try {
switch (response.code()) {
case 400:
future.completeExceptionally(new BadRequestError(
ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class),
response));
return;
case 401:
future.completeExceptionally(new UnauthorizedError(
ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class),
response));
return;
case 403:
future.completeExceptionally(new ForbiddenError(
ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class),
response));
return;
case 429:
future.completeExceptionally(new TooManyRequestsError(
ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class),
response));
return;
}
} catch (JsonProcessingException ignored) {
// unable to map error response, throwing generic error
}
Object errorBody = ObjectMappers.parseErrorBody(responseBodyString);
future.completeExceptionally(new ManagementApiException(
"Error with status code " + response.code(), response.code(), errorBody, response));
return;
} catch (IOException e) {
future.completeExceptionally(new ManagementException("Network error executing HTTP request", e));
}
}

@Override
public void onFailure(@NotNull Call call, @NotNull IOException e) {
future.completeExceptionally(new ManagementException("Network error executing HTTP request", e));
}
});
return future;
}

/**
* Retrieve refresh token information.
*/
Expand Down
Loading
Loading