[ONOS-6707] Host Protobuf model

Change-Id: Id036c13a92ac629465eddfc7c695c55086c3d5c0
diff --git a/incubator/protobuf/models/src/main/proto/net/HostIdProto.proto b/incubator/protobuf/models/src/main/proto/net/HostIdProto.proto
new file mode 100644
index 0000000..32830e9
--- /dev/null
+++ b/incubator/protobuf/models/src/main/proto/net/HostIdProto.proto
@@ -0,0 +1,10 @@
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.models";
+
+package net;
+
+// Corresponds to org.onosproject.net.HostId.
+message HostIdProto {
+    string mac = 1;
+    uint32 vlan_id = 2;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/src/main/proto/net/HostProto.proto b/incubator/protobuf/models/src/main/proto/net/HostProto.proto
new file mode 100644
index 0000000..110e1ab
--- /dev/null
+++ b/incubator/protobuf/models/src/main/proto/net/HostProto.proto
@@ -0,0 +1,17 @@
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.models";
+
+import "net/HostIdProto.proto";
+import "net/HostLocationProto.proto";
+
+package net;
+
+// Corresponds to org.onosproject.net.Host.
+message HostProto {
+    net.HostIdProto host_id = 1;
+    uint32 vlan = 2;
+    net.HostLocationProto location = 3;
+    repeated string ip_addresses = 4;
+    bool configured = 5;
+    map<string, string> annotations = 6;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/src/main/proto/net/host/HostDescriptionProto.proto b/incubator/protobuf/models/src/main/proto/net/host/HostDescriptionProto.proto
new file mode 100644
index 0000000..f9f622a
--- /dev/null
+++ b/incubator/protobuf/models/src/main/proto/net/host/HostDescriptionProto.proto
@@ -0,0 +1,16 @@
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.host.models";
+
+package net.host;
+
+import "net/HostLocationProto.proto";
+
+// Corresponds to org.onosproject.net.host.HostDescription.
+message HostDescription {
+    string hw_address = 1;
+    uint32 vlan = 2;
+    net.HostLocationProto location = 3;
+    repeated string ip_addresses = 4;
+    bool configured = 5;
+    map<string, string> annotations = 6;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/src/main/proto/net/host/HostEnumsProto.proto b/incubator/protobuf/models/src/main/proto/net/host/HostEnumsProto.proto
new file mode 100644
index 0000000..1b2c352
--- /dev/null
+++ b/incubator/protobuf/models/src/main/proto/net/host/HostEnumsProto.proto
@@ -0,0 +1,11 @@
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.host.models";
+
+package net.host;
+
+enum HostEventTypeProto {
+    HOST_ADDED = 0;
+    HOST_REMOVED = 1;
+    HOST_UPDATED = 2;
+    HOST_MOVED = 3;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/src/main/proto/net/host/HostEventProto.proto b/incubator/protobuf/models/src/main/proto/net/host/HostEventProto.proto
new file mode 100644
index 0000000..5a538dc
--- /dev/null
+++ b/incubator/protobuf/models/src/main/proto/net/host/HostEventProto.proto
@@ -0,0 +1,14 @@
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.host.models";
+
+package net.host;
+
+import "net/HostProto.proto";
+import "net/host/HostEnumsProto.proto";
+
+
+// Corresponds to org.onosproject.net.device.HostEvent.
+message HostNotificationProto {
+    net.HostProto host = 1;
+    net.host.HostEventTypeProto hostEventType = 2;
+}
\ No newline at end of file