/zerotier-api-java

Java client to consume the ZeroTier API

Primary LanguageJavaGNU General Public License v3.0GPL-3.0

zerotier-api-java Build Status

A Java library that helps you manage ZeroTier networks (https://www.zerotier.com/). The library requires an API Access Token and lets you query the status of ZeroTier and create/update/delete networks and members.

Requirements

Installation

The library is published to maven central. If you use Maven, you can add a depency on it in your pom.xml:

<dependency>
  <groupId>com.github.edouardswiac</groupId>
  <artifactId>zerotier-api-java</artifactId>
  <version>0.6.2</version>
</dependency>

The library uses OkHttp for HTTP'ing and Gson for JSON'ing.

Features

The ZTService interface describes the service and its available methods. The provided implementation, ZTServiceImpl, makes HTTP requests to ZeroTier's Central REST API.

A quick list of what you can achieve with zerotier-api-java:

  • status query the status of ZeroTier, see if it's online and the API version (used in the regression test)
  • network create a network, update a network, delete a network
  • member create a member, update a member, delete a member

Note that all the corresponding fields are not implemented. If you need more fields and want to contribute to the project, please submit a pull request with your changes along some integration testing.

Examples

ZTService ztService = new ZTServiceImpl("ZT_AUTH_TOKEN");

// create a network 
s.createNetwork(new ZTNetwork("my cool network"));

// create a member in networkId
ZTNetworkMember ztNetworkMember = new ZTNetworkMember(networkId, newMemberAddress);
s.createNetworkMember(ztNetworkMember);

// update a member
ztNetworkMember.getConfig().setAuthorized(true);
s.updateNetworkMember(ztNetworkMember);

Testing

An integration test suite, ZTServiceTest, is available and run by TravisCI to make sure there are no regressions. You need to set the ZT_AUTH_TOKEN system property ex: ZT_AUTH_TOKEN=...token... mvn verify to run the integration test suite.