Skip to content

Repository files navigation

DigitalOcean API Client for Java

Build StatusVersionJavadocLicense

Simple & Lightweight API client library for Enterprise Application or Utilities Integration around DigitalOcean RESTful APIs. You can use this library with project based (JVM hosted languages) on Java, Groovy, Scala, Clojure, etc.

Give your support by clicking Hearts on DigitalOcean Developers Community.

News

  • v2.17 released and tagged on Feb 03, 2019
  • v2.16 released and tagged on Sep 03, 2018
  • v2.15 released and tagged on May 5, 2018
  • v2.14 released and tagged on Mar 6, 2018
  • v2.13 eleased and tagged on Nov 18, 2017

Getting Started

For handy use, DigitalOcean API Client library project dependency definition provided below or you wanna jar Download it from Maven central repo.

Note: master branch maps to v2 APIs and digitalocean turned off v1 APIs as on Nov 9, 2015 .

Maven dependency

<dependency>
<groupId>com.myjeeva.digitalocean</groupId>
<artifactId>digitalocean-api-client</artifactId>
<version>2.17</version>
</dependency>

Gradle/Grails dependency

compile 'com.myjeeva.digitalocean:digitalocean-api-client:2.17'

Groovy Grape

@Grapes(
@Grab(group='com.myjeeva.digitalocean', module='digitalocean-api-client', version='2.17')
)

Scala SBT

libraryDependencies += "com.myjeeva.digitalocean" % "digitalocean-api-client" % "2.17"

Note:

  • For Android projects, kindly include the httpclient-android library explicitly in your project dependencies.
  • Library vx.x-SNAPSHOT is available between the release version. Snapshot is update to with master branch.

Getting Help

For API documentation see:

For Example usage see:

Samples

Creating a DigitalOcean Client in three simple ways!

// Way one, just pass on authTokenDigitalOceanapiClient = newDigitalOceanClient(authToken);
// Way two, pass on version number & authTokenDigitalOceanapiClient = newDigitalOceanClient("v2", authToken);
// Way three, pass on version number, authToken & httpClient// Go ahead and customize httpClient attributes for requirementsCloseableHttpClienthttpClient = HttpClients.createDefault();
DigitalOceanapiClient = newDigitalOceanClient("v2", authToken, httpClient);

Let's invoke the method(s) as per need via apiClient

// Fetching all the available droplets from control panelDropletsdroplets = apiClient.getAvailableDroplets(pageNo, perPage);
// Fetching all the available kernels for dropletKernelskernels = apiClient.getAvailableKernels(dropletId, pageNo, perPage);
// Create a new dropletDropletnewDroplet = newDroplet();
newDroplet.setName("api-client-test-host");
newDroplet.setSize(newSize("512mb")); // setting size by slug valuenewDroplet.setRegion(newRegion("sgp1")); // setting region by slug value; sgp1 => Singapore 1 Data centernewDroplet.setImage(newImage(1601)); // setting by Image Id 1601 => centos-5-8-x64 also available in image slug valuenewDroplet.setEnableBackup(Boolean.TRUE);
newDroplet.setEnableIpv6(Boolean.TRUE);
newDroplet.setEnablePrivateNetworking(Boolean.TRUE);
// Adding SSH key infoList<Key> keys = newArrayList<Key>();
keys.add(newKey(6536653));
keys.add(newKey(6536654));
newDroplet.setKeys(keys);
// Adding Metadata API - User DatanewDroplet.setUserData(" < YAML Content > "); // Follow DigitalOcean documentation to prepare user_data valueDropletdroplet = apiClient.createDroplet(newDroplet);
// Creating multiple dropletsDropletdroplet = newDroplet();
droplet.setNames(Arrays.asList("sub-01.example.com", "sub-02.example.com"));
droplet.setSize("512mb");
droplet.setImage(newImage("ubuntu-14-04-x64"));
droplet.setRegion(newRegion("nyc1"));
Dropletsdroplets = apiClient.createDroplets(droplet);
// Fetch droplet informationDropletdroplet = apiClient.getDropletInfo(dropletId);
// Fetch Available Plans/Sizes supported by DigitalOceanSizessizes = apiClient.getAvailableSizes(pageNo);
// Fetch Available Regions supported by DigitalOceanRegionsregions = apiClient.getAvailableRegions(pageNo);

Accessing RateLimit header values from return object. This is applicable for all requests.

Dropletsdroplets = getAvailableDroplets(1, 20);
RateLimitrateLimit = droplets.getRateLimit();
Actionsactions = getAvailableActions(2, 40);
RateLimitrateLimit = actions.getRateLimit();
Domaindomain = getDomainInfo("myjeeva.com");
RateLimitrateLimit = domain.getRateLimit();
Dropletdroplet = getDropletInfo(10000001);
RateLimitrateLimit = droplet.getRateLimit();

Reporting Issues

DigitalOcean API Client uses GitHub’s integrated issue tracking system to record bugs and feature requests. If you want to raise an issue, please follow the recommendations bellow:

  • Before you log a bug, please search the issue tracker to see if someone has already reported the problem. If the issue doesn’t already exist, create a new issue.
  • Please provide as much information as possible with the issue report, we like to know the version of DigitalOcean API Client that you are using.
  • If you need to paste code, or include a stack trace use Markdown ``` escapes before and after your text.

Supported API's and Changelogs

Refer to CHANGELOG.md

Author

Jeevanandam M. - jeeva@myjeeva.com

Contributors

Please refer to https://github.com/jeevatkm/digitalocean-api-java/graphs/contributors

Contributing

  1. Fork it
  2. Create your feature branch - git checkout -b my-new-feature
  3. Implement your changes
  4. Format your code with ./mvnw com.coveo:fmt-maven-plugin:format
  5. Check tests passig with ./mvnw verify
  6. Commit your changes - git commit -am 'Added feature'
  7. Push to the branch - git push origin my-new-feature
  8. Create new Pull Request

License

DigitalOcean API Client - MIT License.

Releases

Packages

Used by

Contributors

Languages