Selaa lähdekoodia

first revision of the java API for ZeroTier One

Signed-off-by: Grant Limberg <[email protected]>
Grant Limberg 10 vuotta sitten
vanhempi
commit
ec3a1c87d1

+ 38 - 0
java/src/com/zerotierone/sdk/DataStoreGetListener.java

@@ -0,0 +1,38 @@
+/*
+ * ZeroTier One - Network Virtualization Everywhere
+ * Copyright (C) 2011-2015  ZeroTier, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * --
+ *
+ * ZeroTier may be used and distributed under the terms of the GPLv3, which
+ * are available at: http://www.gnu.org/licenses/gpl-3.0.html
+ *
+ * If you would like to embed ZeroTier into a commercial application or
+ * redistribute it in a modified binary form, please contact ZeroTier Networks
+ * LLC. Start here: http://www.zerotier.com/
+ */
+package com.zerotierone.sdk;
+
+import java.nio.ByteBuffer;
+
+public interface DataStoreGetListener {
+    public int onDataStoreGet(Node node,
+            String name,
+            ByteBuffer buffer,
+            long bufferSize,
+            long index,
+            Long out_objectSize);
+}

+ 37 - 0
java/src/com/zerotierone/sdk/DataStorePutListener.java

@@ -0,0 +1,37 @@
+/*
+ * ZeroTier One - Network Virtualization Everywhere
+ * Copyright (C) 2011-2015  ZeroTier, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * --
+ *
+ * ZeroTier may be used and distributed under the terms of the GPLv3, which
+ * are available at: http://www.gnu.org/licenses/gpl-3.0.html
+ *
+ * If you would like to embed ZeroTier into a commercial application or
+ * redistribute it in a modified binary form, please contact ZeroTier Networks
+ * LLC. Start here: http://www.zerotier.com/
+ */
+package com.zerotierone.sdk;
+
+import java.nio.ByteBuffer;
+
+public interface DataStorePutListener {
+    public int onDataStorePut(Node node,
+            String name,
+            ByteBuffer buffer,
+            long bufferSize,
+            boolean secure);
+}

+ 38 - 0
java/src/com/zerotierone/sdk/Event.java

@@ -0,0 +1,38 @@
+/*
+ * ZeroTier One - Network Virtualization Everywhere
+ * Copyright (C) 2011-2015  ZeroTier, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * --
+ *
+ * ZeroTier may be used and distributed under the terms of the GPLv3, which
+ * are available at: http://www.gnu.org/licenses/gpl-3.0.html
+ *
+ * If you would like to embed ZeroTier into a commercial application or
+ * redistribute it in a modified binary form, please contact ZeroTier Networks
+ * LLC. Start here: http://www.zerotier.com/
+ */
+
+package com.zerotierone.sdk;
+
+public enum Event {
+	EVENT_UP,
+	EVENT_OFFLINE,
+	EVENT_DOWN,
+	EVENT_FATAL_ERROR_IDENTITY_COLLISION,
+	EVENT_AUTHENTICATION_FAILURE,
+	EVENT_INVALID_PACKET,
+	EVENT_TRACE
+}

+ 34 - 0
java/src/com/zerotierone/sdk/EventListener.java

@@ -0,0 +1,34 @@
+/*
+ * ZeroTier One - Network Virtualization Everywhere
+ * Copyright (C) 2011-2015  ZeroTier, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * --
+ *
+ * ZeroTier may be used and distributed under the terms of the GPLv3, which
+ * are available at: http://www.gnu.org/licenses/gpl-3.0.html
+ *
+ * If you would like to embed ZeroTier into a commercial application or
+ * redistribute it in a modified binary form, please contact ZeroTier Networks
+ * LLC. Start here: http://www.zerotier.com/
+ */
+
+package com.zerotierone.sdk;
+
+import java.nio.ByteBuffer;
+
+public interface EventListener {
+    public void onEvent(Node node,Event event, ByteBuffer buffer);
+}

+ 33 - 0
java/src/com/zerotierone/sdk/MulticastGroup.java

@@ -0,0 +1,33 @@
+/*
+ * ZeroTier One - Network Virtualization Everywhere
+ * Copyright (C) 2011-2015  ZeroTier, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * --
+ *
+ * ZeroTier may be used and distributed under the terms of the GPLv3, which
+ * are available at: http://www.gnu.org/licenses/gpl-3.0.html
+ *
+ * If you would like to embed ZeroTier into a commercial application or
+ * redistribute it in a modified binary form, please contact ZeroTier Networks
+ * LLC. Start here: http://www.zerotier.com/
+ */
+package com.zerotierone.sdk;
+
+
+public class MulticastGroup {
+    private long mac;
+    private long adi;
+}

+ 103 - 0
java/src/com/zerotierone/sdk/Node.java

@@ -0,0 +1,103 @@
+/*
+ * ZeroTier One - Network Virtualization Everywhere
+ * Copyright (C) 2011-2015  ZeroTier, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * --
+ *
+ * ZeroTier may be used and distributed under the terms of the GPLv3, which
+ * are available at: http://www.gnu.org/licenses/gpl-3.0.html
+ *
+ * If you would like to embed ZeroTier into a commercial application or
+ * redistribute it in a modified binary form, please contact ZeroTier Networks
+ * LLC. Start here: http://www.zerotier.com/
+ */
+
+package com.zerotierone.sdk;
+
+import java.nio.ByteBuffer;
+import java.lang.Long;
+
+public class Node {
+	static {
+		System.loadLibrary("ZeroTierOneJNI");
+	}
+
+        private final DataStoreGetListener getListener;
+        private final DataStorePutListener putListener;
+        private final PacketSender sender;
+        private final VirtualNetworkFrameListener frameListener;
+        private final VirtualNetworkConfigListener configListener;
+        
+	public Node(long now,
+                DataStoreGetListener getListener,
+                DataStorePutListener putListener,
+                PacketSender sender,
+                VirtualNetworkFrameListener frameListener,
+                VirtualNetworkConfigListener configListener)
+	{
+            this.getListener = getListener;
+            this.putListener = putListener;
+            this.sender = sender;
+            this.frameListener = frameListener;
+            this.configListener = configListener;
+	}
+
+	public native ResultCode processVirtualNetworkFrame(
+		long now,
+		long nwid,
+		long sourceMac,
+		long destMac,
+		int etherTYpe,
+		int vlanId,
+		ByteBuffer frameData,
+		int frameLength,
+		Long nextBackgroundTaskDeadline);
+
+	public native ResultCode processBackgroundTasks(
+		long now,
+		Long nextBackgroundTaskDeadline);
+
+	public native ResultCode join(long nwid);
+
+	public native ResultCode leave(long nwid);
+
+	public native ResultCode multicastSubscribe(
+		long nwid,
+		long multicastGroup,
+		long multicastAdi);
+
+	public ResultCode multicastSubscribe(
+		long nwid,
+		long multicastGroup) {
+		return multicastSubscribe(nwid, multicastGroup, 0);
+	}
+
+	public native ResultCode multicastUnsubscribe(
+		long nwid,
+		long multicastGroup,
+		long multicastAdi);
+
+	public ResultCode multicastUnsubscribe(
+		long nwid,
+		long multicastGroup) {
+		return multicastUnsubscribe(nwid, multicastGroup, 0);
+	}
+
+	public native long address();
+
+
+
+}

+ 51 - 0
java/src/com/zerotierone/sdk/NodeStatus.java

@@ -0,0 +1,51 @@
+/*
+ * ZeroTier One - Network Virtualization Everywhere
+ * Copyright (C) 2011-2015  ZeroTier, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * --
+ *
+ * ZeroTier may be used and distributed under the terms of the GPLv3, which
+ * are available at: http://www.gnu.org/licenses/gpl-3.0.html
+ *
+ * If you would like to embed ZeroTier into a commercial application or
+ * redistribute it in a modified binary form, please contact ZeroTier Networks
+ * LLC. Start here: http://www.zerotier.com/
+ */
+
+package com.zerotierone.sdk;
+
+public class NodeStatus {
+	private long address;
+	private String publicIdentity;
+	private String secretIdentity;
+	private int online;
+
+	public long getAddres() {
+		return address;
+	}
+
+	public String getPublicIdentity() {
+		return publicIdentity;
+	}
+
+	public String getSecretIdentity() {
+		return secretIdentity;
+	}
+
+	public boolean isOnline() {
+		return online != 0;
+	}
+}

+ 38 - 0
java/src/com/zerotierone/sdk/PacketSender.java

@@ -0,0 +1,38 @@
+/*
+ * ZeroTier One - Network Virtualization Everywhere
+ * Copyright (C) 2011-2015  ZeroTier, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * --
+ *
+ * ZeroTier may be used and distributed under the terms of the GPLv3, which
+ * are available at: http://www.gnu.org/licenses/gpl-3.0.html
+ *
+ * If you would like to embed ZeroTier into a commercial application or
+ * redistribute it in a modified binary form, please contact ZeroTier Networks
+ * LLC. Start here: http://www.zerotier.com/
+ */
+package com.zerotierone.sdk;
+
+import java.nio.ByteBuffer;
+
+
+public interface PacketSender {
+    public int onSendPacketRequested(Node node,
+            String addr,
+            int linkDesc,
+            ByteBuffer packetData,
+            long dataLength);
+}

+ 45 - 0
java/src/com/zerotierone/sdk/ResultCode.java

@@ -0,0 +1,45 @@
+/*
+ * ZeroTier One - Network Virtualization Everywhere
+ * Copyright (C) 2011-2015  ZeroTier, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * --
+ *
+ * ZeroTier may be used and distributed under the terms of the GPLv3, which
+ * are available at: http://www.gnu.org/licenses/gpl-3.0.html
+ *
+ * If you would like to embed ZeroTier into a commercial application or
+ * redistribute it in a modified binary form, please contact ZeroTier Networks
+ * LLC. Start here: http://www.zerotier.com/
+ */
+
+package com.zerotierone.sdk;
+
+public enum ResultCode {
+
+	RESULT_OK(0),
+	RESULT_FATAL_ERROR_OUT_OF_MEMORY(1),
+	RESULT_FATAL_ERROR_DATA_STORE_FAILED(2),
+	RESULT_FATAL_ERROR_INTERNAL(3),
+	RESULT_ERROR_NETWORK_NOT_FOUND(1000);
+	
+	private final int id;
+    ResultCode(int id) { this.id = id; }
+    public int getValue() { return id; }
+
+    public boolean isFatal(int id) {
+    	return (id > 0 && id < 1000);
+    }
+}

+ 35 - 0
java/src/com/zerotierone/sdk/Version.java

@@ -0,0 +1,35 @@
+/*
+ * ZeroTier One - Network Virtualization Everywhere
+ * Copyright (C) 2011-2015  ZeroTier, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * --
+ *
+ * ZeroTier may be used and distributed under the terms of the GPLv3, which
+ * are available at: http://www.gnu.org/licenses/gpl-3.0.html
+ *
+ * If you would like to embed ZeroTier into a commercial application or
+ * redistribute it in a modified binary form, please contact ZeroTier Networks
+ * LLC. Start here: http://www.zerotier.com/
+ */
+
+package com.zerotierone.sdk;
+
+public class Version {
+	public int major;
+	public int minor;
+	public int revision;
+	public long featureFlags;
+}

+ 51 - 0
java/src/com/zerotierone/sdk/VirtualNetworkConfig.java

@@ -0,0 +1,51 @@
+/*
+ * ZeroTier One - Network Virtualization Everywhere
+ * Copyright (C) 2011-2015  ZeroTier, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * --
+ *
+ * ZeroTier may be used and distributed under the terms of the GPLv3, which
+ * are available at: http://www.gnu.org/licenses/gpl-3.0.html
+ *
+ * If you would like to embed ZeroTier into a commercial application or
+ * redistribute it in a modified binary form, please contact ZeroTier Networks
+ * LLC. Start here: http://www.zerotier.com/
+ */
+
+package com.zerotierone.sdk;
+
+import java.lang.String;
+import java.util.ArrayList;
+
+public class VirtualNetworkConfig {
+    public static final int MAX_MULTICAST_SUBSCRIPTIONS = 4096;
+    private long nwid;
+    private long mac;
+    private String name;
+    private VirtualNetworkStatus status;
+    private VirtualNetworkType type;
+    private int mtu;
+    private int dhcp;
+    private int bridge;
+    private int broadcastEnabled;
+    private int portError;
+    private boolean enabled;
+    private long netconfRevision;
+    private int multicastSubscriptionCount;
+    private ArrayList<MulticastGroup> multicastSubscriptions;
+    
+    // TODO: sockaddr_storage
+}

+ 38 - 0
java/src/com/zerotierone/sdk/VirtualNetworkConfigListener.java

@@ -0,0 +1,38 @@
+/*
+ * ZeroTier One - Network Virtualization Everywhere
+ * Copyright (C) 2011-2015  ZeroTier, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * --
+ *
+ * ZeroTier may be used and distributed under the terms of the GPLv3, which
+ * are available at: http://www.gnu.org/licenses/gpl-3.0.html
+ *
+ * If you would like to embed ZeroTier into a commercial application or
+ * redistribute it in a modified binary form, please contact ZeroTier Networks
+ * LLC. Start here: http://www.zerotier.com/
+ */
+
+
+package com.zerotierone.sdk;
+
+
+public interface VirtualNetworkConfigListener {
+    public void onNetworkConfigurationUpdated(
+            Node node,
+            long someValue,
+            VirtualNetworkConfigOperation op,
+            VirtualNetworkConfig config);
+}

+ 34 - 0
java/src/com/zerotierone/sdk/VirtualNetworkConfigOperation.java

@@ -0,0 +1,34 @@
+/*
+ * ZeroTier One - Network Virtualization Everywhere
+ * Copyright (C) 2011-2015  ZeroTier, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * --
+ *
+ * ZeroTier may be used and distributed under the terms of the GPLv3, which
+ * are available at: http://www.gnu.org/licenses/gpl-3.0.html
+ *
+ * If you would like to embed ZeroTier into a commercial application or
+ * redistribute it in a modified binary form, please contact ZeroTier Networks
+ * LLC. Start here: http://www.zerotier.com/
+ */
+package com.zerotierone.sdk;
+
+public enum VirtualNetworkConfigOperation {
+    VIRTUAL_NETWORK_CONFIG_OPERATION_UP,
+    VIRTUAL_NETWORK_CONFIG_OPERATION_CONFIG_UPDATE,
+    VIRTUAL_NETWORK_CONFIG_OPERATION_DOWN,
+    VIRTUAL_NETWORK_CONFIG_OPERATION_DESTROY
+}

+ 40 - 0
java/src/com/zerotierone/sdk/VirtualNetworkFrameListener.java

@@ -0,0 +1,40 @@
+/*
+ * ZeroTier One - Network Virtualization Everywhere
+ * Copyright (C) 2011-2015  ZeroTier, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * --
+ *
+ * ZeroTier may be used and distributed under the terms of the GPLv3, which
+ * are available at: http://www.gnu.org/licenses/gpl-3.0.html
+ *
+ * If you would like to embed ZeroTier into a commercial application or
+ * redistribute it in a modified binary form, please contact ZeroTier Networks
+ * LLC. Start here: http://www.zerotier.com/
+ */
+package com.zerotierone.sdk;
+
+import java.nio.ByteBuffer;
+
+public interface VirtualNetworkFrameListener {
+    void onVirtualNetworkFrame(Node node,
+                long nwid,
+                long srcMac,
+                long destMac,
+                long etherType,
+                long vlanId,
+                ByteBuffer frameData,
+                long len);
+}

+ 36 - 0
java/src/com/zerotierone/sdk/VirtualNetworkStatus.java

@@ -0,0 +1,36 @@
+/*
+ * ZeroTier One - Network Virtualization Everywhere
+ * Copyright (C) 2011-2015  ZeroTier, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * --
+ *
+ * ZeroTier may be used and distributed under the terms of the GPLv3, which
+ * are available at: http://www.gnu.org/licenses/gpl-3.0.html
+ *
+ * If you would like to embed ZeroTier into a commercial application or
+ * redistribute it in a modified binary form, please contact ZeroTier Networks
+ * LLC. Start here: http://www.zerotier.com/
+ */
+package com.zerotierone.sdk;
+
+public enum VirtualNetworkStatus {
+    NETWORK_STATUS_REQUESTING_CONFIGURATION,
+    NETWORK_STATUS_OK,
+    NETWORK_STATUS_ACCESS_DENIED,
+    NETWORK_STATUS_NOT_FOUND,
+    NETWORK_STATUS_PORT_ERROR,
+    NETWORK_STATUS_CLIENT_TOO_OLD
+}

+ 32 - 0
java/src/com/zerotierone/sdk/VirtualNetworkType.java

@@ -0,0 +1,32 @@
+/*
+ * ZeroTier One - Network Virtualization Everywhere
+ * Copyright (C) 2011-2015  ZeroTier, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * --
+ *
+ * ZeroTier may be used and distributed under the terms of the GPLv3, which
+ * are available at: http://www.gnu.org/licenses/gpl-3.0.html
+ *
+ * If you would like to embed ZeroTier into a commercial application or
+ * redistribute it in a modified binary form, please contact ZeroTier Networks
+ * LLC. Start here: http://www.zerotier.com/
+ */
+package com.zerotierone.sdk;
+
+public enum VirtualNetworkType {
+    NETWORK_TYPE_PRIVATE,
+    NETWORK_TYPE_PUBLIC
+}