SEBA-542 Basic scaffolding for TT Workflow Driver service

Change-Id: Ia88a4d22f40b45299bb35e7bc5600cccbc453873
diff --git a/xos/synchronizer/models/tt-workflow-driver.xproto b/xos/synchronizer/models/tt-workflow-driver.xproto
new file mode 100644
index 0000000..2b6c889
--- /dev/null
+++ b/xos/synchronizer/models/tt-workflow-driver.xproto
@@ -0,0 +1,69 @@
+option name = "tt-workflow-driver";
+option app_label = "tt-workflow-driver";
+
+message TtWorkflowDriverService (Service){
+    option verbose_name = "TtWorkflowDriver Service";
+    option kind = "control";
+    option description = "Service that manages the Turk Telekom Subscriber workflow";
+}
+
+message TtWorkflowDriverServiceInstance (ServiceInstance){
+    option owner_class_name = "TtWorkflowDriverService";
+    option verbose_name = "TtWorkflowDriver Service Instance";
+    option description = "Workflow settings for a particular ONU Device";
+
+    required string serial_number = 2 [
+        help_text = "Serial number of ONU",
+        max_length = 254,
+        tosca_key=True,
+        unique = True];
+    required string of_dpid = 4 [
+        help_text = "OLT Openflow ID",
+        max_length = 254];
+    required int32 uni_port_id = 5 [
+        help_text = "ONU UNI port ID"];
+    required string onu_state = 6 [
+        help_text = "ONU administrative state",
+        choices = "(('AWAITING', 'Awaiting'), ('ENABLED', 'Enabled'), ('DISABLED', 'Disabled'))",
+        default = "AWAITING",
+        feedback_state = True,
+        max_length = 254];
+    optional string status_message = 7 [
+        help_text = "Status text of current state machine state",
+        default = "",
+        max_length = 254];
+    required string dhcp_state = 8 [
+        max_length = 254,
+        default = "AWAITING",
+        choices = "(('AWAITING', 'Awaiting'), ('DHCPDISCOVER', 'DHCPDISCOVER'), ('DHCPACK', 'DHCPACK'), ('DHCPREQUEST', 'DHCPREQUEST'))",
+        feedback_state = True];
+    optional string ip_address = 9 [
+        help_text = "Management IP address, learned from DHCP",
+        feedback_state = True,
+        max_length = 20];
+    optional string mac_address = 10 [
+        help_text = "Management MAC address, leanred from DHCP",
+        feedback_state = True,
+        max_length = 20];
+}
+
+message TtWorkflowDriverWhiteListEntry (XOSBase) {
+    option verbose_name = "ONU Whitelist";
+    option plural = "ttworkflowdriverwhitelistentries";
+    option description = "White list entry that permits an ONU with a particular serial number on a particular OLT and PON";
+
+    required manytoone owner->TtWorkflowDriverService:whitelist_entries = 1:1001 [
+        help_text = "TtWorkflowDriverService that owns this white list entry",
+        db_index = True,
+        tosca_key = True];
+    required string serial_number = 2 [
+        help_text = "ONU Serial Number",
+        max_length = 254,
+        tosca_key = True,
+        unique_with = "owner"];
+    required int32 pon_port_id = 3 [
+        help_text = "PON Port on which this ONU is expected to show up"];
+    required string device_id = 4 [
+        help_text = "OLT Device (logical device id) on which this ONU is expected to show up",
+        max_length = 54];
+}