go: add bazel buildfiles, implement leasifier
diff --git a/proto/hswaw/BUILD b/proto/hswaw/BUILD
new file mode 100644
index 0000000..d7bc9f1
--- /dev/null
+++ b/proto/hswaw/BUILD
@@ -0,0 +1,23 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
+load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
+
+proto_library(
+    name = "hswaw_proto",
+    srcs = ["checkinator.proto"],
+    visibility = ["//visibility:public"],
+)
+
+go_proto_library(
+    name = "hswaw_go_proto",
+    compilers = ["@io_bazel_rules_go//proto:go_grpc"],
+    importpath = "code.hackerspace.pl/hscloud/proto/hswaw",
+    proto = ":hswaw_proto",
+    visibility = ["//visibility:public"],
+)
+
+go_library(
+    name = "go_default_library",
+    embed = [":hswaw_go_proto"],
+    importpath = "code.hackerspace.pl/hscloud/proto/hswaw",
+    visibility = ["//visibility:public"],
+)
diff --git a/proto/hswaw/checkinator.proto b/proto/hswaw/checkinator.proto
new file mode 100644
index 0000000..1023727
--- /dev/null
+++ b/proto/hswaw/checkinator.proto
@@ -0,0 +1,18 @@
+syntax = "proto3";
+package hswaw;
+
+message LeasifierLeasesRequest {
+};
+
+message LeasifierLease {
+    string physical_address = 1;
+    string ip_address = 2;
+};
+
+message LeasifierLeasesResponse {
+    repeated LeasifierLease leases = 1;
+};
+
+service Leasifier {
+    rpc Leases(LeasifierLeasesRequest) returns (LeasifierLeasesResponse);
+};