A Java client for the DigitalOcean cloud platform.
To get started, add this Maven dependency:
<dependency>
<groupId>io.github.cowwoc.digitalocean</groupId>
<artifactId>digitalocean</artifactId>
<version>0.13</version>
</dependency>
import io.github.cowwoc.digitalocean.compute.client.ComputeClient;
import io.github.cowwoc.digitalocean.compute.resource.Droplet;
import io.github.cowwoc.digitalocean.compute.resource.DropletImage;
import io.github.cowwoc.digitalocean.compute.resource.DropletType;
import io.github.cowwoc.digitalocean.core.util.Configuration;
import io.github.cowwoc.digitalocean.network.resource.Region;
import java.io.IOException;
import java.nio.file.Path;
import java.util.Comparator;
class Example
{
public static void main(String[] args) throws IOException, InterruptedException
{
try (ComputeClient client = ComputeClient.build())
{
Configuration configuration = Configuration.fromPath(Path.of("example.properties"));
String accessToken = configuration.getString("ACCESS_TOKEN");
client.login(accessToken);
DropletImage image = client.getDropletImage("debian-12-x64");
Region region = client.getRegions(true).getFirst();
// Get the least expensive droplet type with at least 2 GiB of memory
ComputeDropletType dropletType = client.getDropletTypes().stream().filter(type ->
type.getRegionIds().contains(region.getId()) && type.getRamInMiB() >= 2 * 1024).
min(Comparator.comparing(ComputeDropletType::getCostPerHour)).orElseThrow();
Droplet droplet = client.createDroplet("Node123", dropletType.getId(), image.getId()).apply();
while (droplet.getAddresses().isEmpty())
{
Thread.sleep(1000);
droplet = droplet.reload();
}
System.out.println("The droplet's address is: " + droplet.getAddresses().iterator().next());
}
}
}
See the API documentation for more details.
- This library is distributed under the terms of the Apache License 2.0
- See Third party licenses for the licenses of dependencies