Java idiomatic SDK for the Gemini Developer APIs and Vertex AI APIs
Manage long-running operations like video generation and model tuning jobs.
import com.google.genai.Operations;
import com.google.genai.AsyncOperations;
import com.google.genai.Pager;
import com.google.genai.types.Operation;
import com.google.genai.types.GenerateVideosOperation;
import com.google.genai.types.TuningOperation;package com.google.genai;
public final class Operations {
public Operation get(String name, GetOperationConfig config);
public void cancel(String name, CancelOperationConfig config);
public DeleteResourceJob delete(String name, DeleteOperationConfig config);
public Pager<Operation> list(ListOperationsConfig config);
public Operation wait(String name, WaitOperationConfig config);
}package com.google.genai.types;
public final class Operation {
public Optional<String> name();
public Optional<JsonNode> metadata();
public Optional<Boolean> done();
public Optional<Status> error();
public Optional<JsonNode> response();
}Operation op = client.operations.get("operations/abc123", null);
System.out.println("Operation: " + op.name().orElse("N/A"));
System.out.println("Done: " + op.done().orElse(false));
if (op.done().orElse(false)) {
op.response().ifPresent(response -> {
System.out.println("Result: " + response);
});
} else {
System.out.println("Still processing...");
}Operation op = client.operations.wait("operations/abc123", null);
if (op.error().isPresent()) {
System.err.println("Operation failed: " + op.error().get());
} else {
System.out.println("Operation completed successfully");
}GenerateVideosOperation videoOp = client.models.generateVideos(...);
while (!videoOp.done().isPresent()) {
Thread.sleep(10000);
videoOp = client.operations.getVideosOperation(videoOp, null);
System.out.println("Status: " + videoOp.name().orElse("N/A"));
}
videoOp.response().ifPresent(response -> {
response.generatedVideos().ifPresent(videos -> {
System.out.println("Generated " + videos.size() + " videos");
});
});client.operations.cancel("operations/abc123", null);
System.out.println("Operation cancelled");DeleteResourceJob result = client.operations.delete("operations/abc123", null);
System.out.println("Operation deleted");Pager<Operation> pager = client.operations.list(null);
for (Operation op : pager) {
System.out.println("Op: " + op.name().orElse("N/A"));
System.out.println(" Done: " + op.done().orElse(false));
}Install with Tessl CLI
npx tessl i tessl/maven-com-google-genai--google-genaidocs