diff --git a/VERSION b/VERSION
index 5bd8c54..ed1fc35 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.2.15
+2.2.16
diff --git a/containers/chameleon/Dockerfile.chameleon b/containers/chameleon/Dockerfile.chameleon
index c9a1d0e..0794cbc 100644
--- a/containers/chameleon/Dockerfile.chameleon
+++ b/containers/chameleon/Dockerfile.chameleon
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 # xosproject/chameleon
-FROM xosproject/xos-base:2.2.15
+FROM xosproject/xos-base:2.2.16
 
 # xos-base already has protoc and dependencies installed
 
diff --git a/containers/xos/Dockerfile.client b/containers/xos/Dockerfile.client
index 8925e52..9170f29 100644
--- a/containers/xos/Dockerfile.client
+++ b/containers/xos/Dockerfile.client
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 # xosproject/xos-client
-FROM xosproject/xos-libraries:2.2.15
+FROM xosproject/xos-libraries:2.2.16
 
 # Install XOS client
 COPY lib/xos-api /tmp/xos-api
diff --git a/containers/xos/Dockerfile.libraries b/containers/xos/Dockerfile.libraries
index 49bae88..efa5bfc 100644
--- a/containers/xos/Dockerfile.libraries
+++ b/containers/xos/Dockerfile.libraries
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 # xosproject/xos-libraries
-FROM xosproject/xos-base:2.2.15
+FROM xosproject/xos-base:2.2.16
 
 # Add libraries
 COPY lib /opt/xos/lib
diff --git a/containers/xos/Dockerfile.synchronizer-base b/containers/xos/Dockerfile.synchronizer-base
index 814e148..d240d75 100644
--- a/containers/xos/Dockerfile.synchronizer-base
+++ b/containers/xos/Dockerfile.synchronizer-base
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 # xosproject/xos-synchronizer-base
-FROM xosproject/xos-client:2.2.15
+FROM xosproject/xos-client:2.2.16
 
 COPY xos/synchronizers/new_base /opt/xos/synchronizers/new_base
 COPY xos/xos/logger.py /opt/xos/xos/logger.py
diff --git a/containers/xos/Dockerfile.xos-core b/containers/xos/Dockerfile.xos-core
index 05c555d..b3dc525 100644
--- a/containers/xos/Dockerfile.xos-core
+++ b/containers/xos/Dockerfile.xos-core
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 # xosproject/xos-core
-FROM xosproject/xos-libraries:2.2.15
+FROM xosproject/xos-libraries:2.2.16
 
 # Install XOS
 ADD xos /opt/xos
diff --git a/xos/core/models/core.xproto b/xos/core/models/core.xproto
index 0cd40a3..96872be 100644
--- a/xos/core/models/core.xproto
+++ b/xos/core/models/core.xproto
@@ -12,8 +12,8 @@
      // field 1 is reserved for "id"
      required string created = 2 [content_type = "date", auto_now_add = True, help_text = "Time this model was created"];
      required string updated = 3 [default = "now()", content_type = "date", help_text = "Time this model was changed by a non-synchronizer"];
-     optional string enacted = 4 [null = True, content_type = "date", blank = True, default = None, help_text = "When synced, set to the timestamp of the data that was synced"];
-     optional string policed = 5 [null = True, content_type = "date", blank = True, default = None, help_text = "When policed, set to the timestamp of the data that was policed"];
+     optional string enacted = 4 [content_type = "date", blank = True, default = None, help_text = "When synced, set to the timestamp of the data that was synced"];
+     optional string policed = 5 [content_type = "date", blank = True, default = None, help_text = "When policed, set to the timestamp of the data that was policed"];
      optional string backend_register = 6 [default = "{}", max_length = 1024, feedback_state = True];
      required bool backend_need_delete = 7 [default = False];
      required bool backend_need_reap = 8 [default = False];
@@ -26,12 +26,12 @@
      required bool no_policy = 15 [default = False];
      optional string policy_status = 16 [default = "Policy in process", max_length = 1024, feedback_state = True];
      optional int32 policy_code = 17 [default = 0, feedback_state = True];
-     required string leaf_model_name = 18 [null = False, max_length = 1024, help_text = "The most specialized model in this chain of inheritance, often defined by a service developer"];
+     required string leaf_model_name = 18 [max_length = 1024, help_text = "The most specialized model in this chain of inheritance, often defined by a service developer"];
      required bool backend_need_delete_policy = 19 [default = False, help_text = "True if delete model_policy must be run before object can be reaped"];
      required bool xos_managed = 20 [default = True, help_text = "True if xos is responsible for creating/deleting this object", gui_hidden = True];
-     optional string backend_handle = 21 [max_length = 1024, feedback_state = True, blank=True, null=True, help_text = "Handle used by the backend to track this object", gui_hidden = True];
-     optional string changed_by_step = 22 [null = True, content_type = "date", blank = True, default = None, gui_hidden = True, help_text = "Time this model was changed by a sync step"];
-     optional string changed_by_policy = 23 [null = True, content_type = "date", blank = True, default = None, gui_hidden = True, help_text = "Time this model was changed by a model policy"];
+     optional string backend_handle = 21 [max_length = 1024, feedback_state = True, blank=True, help_text = "Handle used by the backend to track this object", gui_hidden = True];
+     optional string changed_by_step = 22 [content_type = "date", blank = True, default = None, gui_hidden = True, help_text = "Time this model was changed by a sync step"];
+     optional string changed_by_policy = 23 [content_type = "date", blank = True, default = None, gui_hidden = True, help_text = "Time this model was changed by a model policy"];
 }
 
 // The calling user represents the user being accessed, or is a site admin.
@@ -50,45 +50,45 @@
      option description = "An XOS User";
 
      // field 1 is reserved for "id"
-     required string email = 2 [db_index = True, max_length = 255, null = False, blank = False, tosca_key=True];
-     required string username = 3 [default = "Something", max_length = 255, content_type = "stripped", blank = False, null = False, db_index = False];
-     required string password = 4 [default = "Something", max_length = 255, blank = False, null = False, db_index = False];
-     optional string last_login = 5 [db_index = False, null = True, content_type = "date", blank = True];
-     required string firstname = 6 [max_length = 200, content_type = "stripped", blank = False, help_text = "person's given name", null = False, db_index = False];
-     required string lastname = 7 [max_length = 200, content_type = "stripped", blank = False, help_text = "person's surname", null = False, db_index = False];
-     optional string phone = 8 [max_length = 100, content_type = "stripped", blank = True, help_text = "phone number contact", null = True, db_index = False];
-     optional string user_url = 9 [db_index = False, max_length = 200, null = True, content_type = "url", blank = True];
-     required manytoone site->Site:users = 10:1001 [help_text = "Site this user will be homed too", null = False, db_index = True, blank = False];
-     optional string public_key = 11 [help_text = "Public key string", max_length = 1024, null = True, db_index = False, blank = True, varchar = True];
-     required bool is_active = 12 [default = True, null = False, db_index = False];
-     required bool is_admin = 13 [default = False, null = False, db_index = False];
-     required bool is_staff = 14 [default = True, null = False, db_index = False];
-     required bool is_readonly = 15 [default = False, null = False, db_index = False];
-     required bool is_registering = 16 [default = False, null = False, db_index = False];
-     required bool is_appuser = 17 [default = False, null = False, db_index = False];
-     optional string login_page = 18 [max_length = 200, content_type = "stripped", blank = True, help_text = "send this user to a specific page on login", null = True, db_index = False];
+     required string email = 2 [db_index = True, max_length = 255, blank = False, tosca_key=True];
+     required string username = 3 [default = "Something", max_length = 255, content_type = "stripped", blank = False, db_index = False];
+     required string password = 4 [default = "Something", max_length = 255, blank = False, db_index = False];
+     optional string last_login = 5 [db_index = False, content_type = "date", blank = True];
+     required string firstname = 6 [max_length = 200, content_type = "stripped", blank = False, help_text = "person's given name", db_index = False];
+     required string lastname = 7 [max_length = 200, content_type = "stripped", blank = False, help_text = "person's surname", db_index = False];
+     optional string phone = 8 [max_length = 100, content_type = "stripped", blank = True, help_text = "phone number contact", db_index = False];
+     optional string user_url = 9 [db_index = False, max_length = 200, content_type = "url", blank = True];
+     required manytoone site->Site:users = 10:1001 [help_text = "Site this user will be homed too", db_index = True, blank = False];
+     optional string public_key = 11 [help_text = "Public key string", max_length = 1024, db_index = False, blank = True, varchar = True];
+     required bool is_active = 12 [default = True, db_index = False];
+     required bool is_admin = 13 [default = False, db_index = False];
+     required bool is_staff = 14 [default = True, db_index = False];
+     required bool is_readonly = 15 [default = False, db_index = False];
+     required bool is_registering = 16 [default = False, db_index = False];
+     required bool is_appuser = 17 [default = False, db_index = False];
+     optional string login_page = 18 [max_length = 200, content_type = "stripped", blank = True, help_text = "send this user to a specific page on login", db_index = False];
      required string created = 19 [content_type = "date", auto_now_add = True, help_text = "Time this model was created"];
      required string updated = 20 [default = "now()", content_type = "date", help_text = "Time this model was changed by a non-synchronizer"];
-     optional string enacted = 21 [null = True, content_type = "date", blank = True, default = None, help_text = "When synced, set to the timestamp of the data that was synced"];
-     optional string policed = 22 [null = True, content_type = "date", blank = True, default = None, help_text = "When policed, set to the timestamp of the data that was policed"];
-     required string backend_status = 23 [default = "Provisioning in progress", max_length = 1024, content_type = "stripped", blank = False, null = False, db_index = False];
+     optional string enacted = 21 [content_type = "date", blank = True, default = None, help_text = "When synced, set to the timestamp of the data that was synced"];
+     optional string policed = 22 [content_type = "date", blank = True, default = None, help_text = "When policed, set to the timestamp of the data that was policed"];
+     required string backend_status = 23 [default = "Provisioning in progress", max_length = 1024, content_type = "stripped", blank = False, db_index = False];
      required int32 backend_code = 24 [default = 0];
-     required bool backend_need_delete = 25 [default = False, null = False, db_index = False];
-     required bool backend_need_reap = 26 [default = False, null = False, db_index = False];
-     required bool deleted = 27 [default = False, null = False, db_index = False];
-     required bool write_protect = 28 [default = False, null = False, db_index = False];
-     required bool lazy_blocked = 29 [default = False, null = False, db_index = False];
-     required bool no_sync = 30 [default = False, null = False, db_index = False];
-     required bool no_policy = 31 [default = False, null = False, db_index = False];
-     required string timezone = 32 [default = "America/New_York", max_length = 100, blank = False, null = False, db_index = False];
+     required bool backend_need_delete = 25 [default = False, db_index = False];
+     required bool backend_need_reap = 26 [default = False, db_index = False];
+     required bool deleted = 27 [default = False, db_index = False];
+     required bool write_protect = 28 [default = False, db_index = False];
+     required bool lazy_blocked = 29 [default = False, db_index = False];
+     required bool no_sync = 30 [default = False, db_index = False];
+     required bool no_policy = 31 [default = False, db_index = False];
+     required string timezone = 32 [default = "America/New_York", max_length = 100, blank = False, db_index = False];
      optional string policy_status = 33 [default = "0 - Policy in process", max_length = 1024];
      optional int32 policy_code = 34 [default = 0];
-     required string leaf_model_name = 35 [null = False, max_length = 1024, help_text = "The most specialized model in this chain of inheritance, often defined by a service developer"];
+     required string leaf_model_name = 35 [max_length = 1024, help_text = "The most specialized model in this chain of inheritance, often defined by a service developer"];
      required bool backend_need_delete_policy = 36 [default = False, help_text = "True if delete model_policy must be run before object can be reaped"];
      required bool xos_managed = 37 [default = True, help_text = "True if xos is responsible for creating/deleting this object", gui_hidden = True];
-     optional string backend_handle = 38 [max_length = 1024, feedback_state = True, blank=True, null=True, help_text = "Handle used by the backend to track this object", gui_hidden = True];
-     optional string changed_by_step = 39 [null = True, content_type = "date", blank = True, default = None, gui_hidden = True, help_text = "Time this model was changed by a sync step"];
-     optional string changed_by_policy = 40 [null = True, content_type = "date", blank = True, default = None, gui_hidden = True, help_text = "Time this model was changed by a model policy"];
+     optional string backend_handle = 38 [max_length = 1024, feedback_state = True, blank=True, help_text = "Handle used by the backend to track this object", gui_hidden = True];
+     optional string changed_by_step = 39 [content_type = "date", blank = True, default = None, gui_hidden = True, help_text = "Time this model was changed by a sync step"];
+     optional string changed_by_policy = 40 [content_type = "date", blank = True, default = None, gui_hidden = True, help_text = "Time this model was changed by a model policy"];
 }
 
 // A user may give a permission that he has to another user
@@ -100,28 +100,28 @@
                         & Privilege.permission = "role:admin" >
 
 message Privilege::grant_policy (XOSBase) {
-     required int32 accessor_id = 1 [null = False, blank=False];
-     required string accessor_type = 2 [null = False, max_length=1024, blank = False];
-     required int32 object_id = 4 [null = False, blank=False];
-     required string object_type = 5 [null = False, max_length=1024, blank = False];
-     required string permission = 6 [null = False, default = "all", max_length=1024, tosca_key=True];
+     required int32 accessor_id = 1 [blank=False];
+     required string accessor_type = 2 [max_length=1024, blank = False];
+     required int32 object_id = 4 [blank=False];
+     required string object_type = 5 [max_length=1024, blank = False];
+     required string permission = 6 [default = "all", max_length=1024, tosca_key=True];
      required string granted = 7 [content_type = "date", auto_now_add = True, max_length=1024];
      optional string expires = 8 [content_type = "date", max_length=1024];
 }
 
 message AddressPool (XOSBase) {
-     required string name = 1 [db_index = False, max_length = 32, null = False, blank = False, unique = True, help_text="Name of this AddressPool"];
-     optional string addresses = 2 [db_index = False, null = True, blank = True, varchar = True, help_text="Space-separated list of available addresses"];
-     required string gateway_ip = 3 [db_index = False, max_length = 32, help_text="Gateway IP address for this AddressPool"];
-     required string gateway_mac = 4 [db_index = False, max_length = 32, help_text="Gateway MAC address for this AddressPool"];
-     required string cidr = 5 [db_index = False, max_length = 32, help_text="Subnet for this AddressPool"];
-     optional string inuse = 6 [db_index = False, null = True, blank = True, varchar = True, help_text="Space-separated list of inuse addresses"];
-     optional manytoone service->Service:addresspools = 7:1001 [db_index = True, null = True, blank = True, help_text="Service this AddressPool belongs to"];
+     required string name = 1 [db_index = False, max_length = 32, blank = False, unique = True, help_text="Name of this AddressPool"];
+     optional string addresses = 2 [db_index = False, blank = True, varchar = True, help_text="Space-separated list of available addresses"];
+     required string gateway_ip = 3 [max_length = 32, help_text="Gateway IP address for this AddressPool"];
+     required string gateway_mac = 4 [max_length = 32, help_text="Gateway MAC address for this AddressPool"];
+     required string cidr = 5 [max_length = 32, help_text="Subnet for this AddressPool"];
+     optional string inuse = 6 [db_index = False, blank = True, varchar = True, help_text="Space-separated list of inuse addresses"];
+     optional manytoone service->Service:addresspools = 7:1001 [db_index = True, blank = True, help_text="Service this AddressPool belongs to"];
 }
 
 message ComputeServiceInstance (ServiceInstance) {
-     required manytoone slice->Slice:computeserviceinstances = 1:1001 [db_index = True, null = False, blank = False, help_text = "Slice that controls this ServiceInstance"];
-     required manytoone image->Image:computeserviceinstances = 2:1001 [db_index = True, null = False, blank = False, help_text = "Image used to instantiate this ServiceInstance"];
+     required manytoone slice->Slice:computeserviceinstances = 1:1001 [db_index = True, blank = False, help_text = "Slice that controls this ServiceInstance"];
+     required manytoone image->Image:computeserviceinstances = 2:1001 [db_index = True, blank = False, help_text = "Image used to instantiate this ServiceInstance"];
 }
 
 // Everyone has read access
@@ -161,49 +161,49 @@
 
 
 message Flavor (XOSBase) {
-     required string name = 1 [max_length = 32, content_type = "stripped", blank = False, help_text = "name of this flavor, as displayed to users", null = False, db_index = False, unique = True];
-     optional string description = 2 [db_index = False, max_length = 1024, null = True, content_type = "stripped"];
-     required string flavor = 3 [max_length = 32, content_type = "stripped", help_text = "flavor string used to configure deployments", db_index = False];
+     required string name = 1 [max_length = 32, content_type = "stripped", blank = False, help_text = "name of this flavor, as displayed to users", db_index = False, unique = True];
+     optional string description = 2 [db_index = False, max_length = 1024, content_type = "stripped"];
+     required string flavor = 3 [max_length = 32, content_type = "stripped", help_text = "flavor string used to configure deployments"];
 }
 
 
 message Image (XOSBase) {
-     required string name = 1 [db_index = False, max_length = 256, null = False, content_type = "stripped", blank = False, unique_with = "tag"];
-     required string kind = 2 [default = "vm", choices = "(('vm', 'Virtual Machine'), ('container', 'Container'))", max_length = 30, blank = False, null = False, db_index = False];
-     optional string disk_format = 3 [db_index = False, max_length = 256, null = True, content_type = "stripped", blank = True];
-     optional string container_format = 4 [db_index = False, max_length = 256, null = True, content_type = "stripped", blank = True];
-     optional string path = 5 [max_length = 256, content_type = "stripped", blank = True, help_text = "Path to image on local disk", null = True, db_index = False];
-     optional string tag = 6 [max_length = 256, content_type = "stripped", blank = True, help_text = "For Docker Images, tag of image", null = True, db_index = False];
+     required string name = 1 [db_index = False, max_length = 256, content_type = "stripped", blank = False, unique_with = "tag"];
+     required string kind = 2 [default = "vm", choices = "(('vm', 'Virtual Machine'), ('container', 'Container'))", max_length = 30, blank = False, db_index = False];
+     optional string disk_format = 3 [db_index = False, max_length = 256, content_type = "stripped", blank = True];
+     optional string container_format = 4 [db_index = False, max_length = 256, content_type = "stripped", blank = True];
+     optional string path = 5 [max_length = 256, content_type = "stripped", blank = True, help_text = "Path to image on local disk", db_index = False];
+     optional string tag = 6 [max_length = 256, content_type = "stripped", blank = True, help_text = "For Docker Images, tag of image", db_index = False];
 }
 
 policy network_policy < *slice_policy(owner) >
 
 message Network::network_policy (XOSBase) {
-     required string name = 1 [db_index = False, max_length = 32, null = False, blank = False, unique = True];
-     required manytoone template->NetworkTemplate:network = 2:1001 [db_index = True, null = False, blank = False];
-     optional string subnet = 3 [db_index = False, max_length = 32];
-     optional string start_ip = 4 [db_index = False, max_length = 32];
-     optional string end_ip = 5 [db_index = False, max_length = 32];
-     optional string ports = 6 [db_index = False, max_length = 1024];
-     optional string labels = 7 [db_index = False, max_length = 1024];
-     required manytoone owner->Slice:ownedNetworks = 8:1004 [help_text = "Slice that owns control of this Network", null = False, db_index = True, blank = False];
-     required bool permit_all_slices = 10 [default = False, null = False, db_index = False];
-     required bool autoconnect = 17 [help_text = "This network can be autoconnected to the slice that owns it", default = True, null = False, db_index = False];
-     optional manytomany permitted_slices->Slice/Network_permitted_slices:availableNetworks = 18:1005 [db_index = False];
+     required string name = 1 [db_index = False, max_length = 32, blank = False, unique = True];
+     required manytoone template->NetworkTemplate:network = 2:1001 [db_index = True, blank = False];
+     optional string subnet = 3 [max_length = 32];
+     optional string start_ip = 4 [max_length = 32];
+     optional string end_ip = 5 [max_length = 32];
+     optional string ports = 6 [max_length = 1024];
+     optional string labels = 7 [max_length = 1024];
+     required manytoone owner->Slice:ownedNetworks = 8:1004 [help_text = "Slice that owns control of this Network", db_index = True, blank = False];
+     required bool permit_all_slices = 10 [default = False, db_index = False];
+     required bool autoconnect = 17 [help_text = "This network can be autoconnected to the slice that owns it", default = True, db_index = False];
+     optional manytomany permitted_slices->Slice/Network_permitted_slices:availableNetworks = 18:1005 [];
 }
 
 
 message NetworkParameter (XOSBase) {
-     required manytoone parameter->NetworkParameterType:networkparameters = 1:1001 [help_text = "The type of the parameter", null = False, db_index = True, blank = False];
-     required string value = 2 [help_text = "The value of this parameter", max_length = 1024, null = False, db_index = False, blank = False];
-     required string content_type = 4 [max_length = 1024, content_type = "stripped", blank = False, help_text = "Content type id linked to this network parameter", null = False, db_index = False];
-     required uint32 object_id = 5 [db_index = False, null = False, blank = False, help_text = "Object linked to this NetworkParameter"];
+     required manytoone parameter->NetworkParameterType:networkparameters = 1:1001 [help_text = "The type of the parameter", db_index = True, blank = False];
+     required string value = 2 [help_text = "The value of this parameter", max_length = 1024, db_index = False, blank = False];
+     required string content_type = 4 [max_length = 1024, content_type = "stripped", blank = False, help_text = "Content type id linked to this network parameter", db_index = False];
+     required uint32 object_id = 5 [db_index = False, blank = False, help_text = "Object linked to this NetworkParameter"];
 }
 
 
 message NetworkParameterType (XOSBase) {
-     required string name = 1 [help_text = "The name of this parameter", max_length = 128, null = False, db_index = True, blank = False, unique = True];
-     optional string description = 2 [db_index = False, max_length = 1024];
+     required string name = 1 [help_text = "The name of this parameter", max_length = 128, db_index = True, blank = False, unique = True];
+     optional string description = 2 [max_length = 1024];
 }
 
 policy network_slice_validator < (obj.slice in obj.network.permitted_slices.all()) | (obj.slice = obj.network.owner) | obj.network.permit_all_slices >
@@ -211,56 +211,56 @@
 
 message NetworkSlice::network_slice_policy (XOSBase) {
      option validators = "network_slice_validator:Slice {obj.slice.name} is not allowed to connect to networks {obj.network}";
-     required manytoone network->Network:networkslices = 1:1002 [db_index = True, null = False, blank = False, unique_with = "slice", tosca_key=True];
-     required manytoone slice->Slice:networkslices = 2:1006 [db_index = True, null = False, blank = False, tosca_key=True];
+     required manytoone network->Network:networkslices = 1:1002 [db_index = True, blank = False, unique_with = "slice", tosca_key=True];
+     required manytoone slice->Slice:networkslices = 2:1006 [db_index = True, blank = False, tosca_key=True];
 }
 
 message NetworkTemplate (XOSBase) {
-     required string name = 1 [db_index = False, max_length = 32, null = False, blank = False, unique = True];
-     optional string description = 2 [db_index = False, max_length = 1024];
-     required string visibility = 4 [default = "private", choices = "(('public', 'public'), ('private', 'private'))", max_length = 30, blank = False, null = False, db_index = False];
-     required string translation = 5 [default = "none", choices = "(('none', 'none'), ('NAT', 'NAT'))", max_length = 30, blank = False, null = False, db_index = False];
-     optional string access = 6 [choices = "((None, 'None'), ('indirect', 'Indirect'), ('direct', 'Direct'))", max_length = 30, blank = True, help_text = "Advertise this network as a means for other slices to contact this slice", null = True, db_index = False];
-     optional string shared_network_name = 7 [db_index = False, max_length = 30, null = True, blank = True];
-     optional string shared_network_id = 8 [help_text = "Quantum network", max_length = 256, null = True, db_index = False, blank = True];
-     required string topology_kind = 9 [default = "bigswitch", choices = "(('bigswitch', 'BigSwitch'), ('physical', 'Physical'), ('custom', 'Custom'))", max_length = 30, blank = False, null = False, db_index = False];
-     optional string controller_kind = 10 [blank = True, max_length = 30, null = True, db_index = False, choices = "((None, 'None'), ('onos', 'ONOS'), ('custom', 'Custom'))"];
-     optional string vtn_kind = 11 [default = "PRIVATE", choices = "(('PRIVATE', 'Private'), ('PUBLIC', 'Public'), ('MANAGEMENT_LOCAL', 'Management Local'), ('MANAGEMENT_HOST', 'Management Host'), ('VSG', 'VSG'), ('ACCESS_AGENT', 'Access Agent'), ('FLAT', 'Flat'))", max_length = 30, blank = True, null = True, db_index = False];
+     required string name = 1 [db_index = False, max_length = 32, blank = False, unique = True];
+     optional string description = 2 [max_length = 1024];
+     required string visibility = 4 [default = "private", choices = "(('public', 'public'), ('private', 'private'))", max_length = 30, blank = False, db_index = False];
+     required string translation = 5 [default = "none", choices = "(('none', 'none'), ('NAT', 'NAT'))", max_length = 30, blank = False, db_index = False];
+     optional string access = 6 [choices = "((None, 'None'), ('indirect', 'Indirect'), ('direct', 'Direct'))", max_length = 30, blank = True, help_text = "Advertise this network as a means for other slices to contact this slice", db_index = False];
+     optional string shared_network_name = 7 [db_index = False, max_length = 30, blank = True];
+     optional string shared_network_id = 8 [help_text = "Quantum network", max_length = 256, db_index = False, blank = True];
+     required string topology_kind = 9 [default = "bigswitch", choices = "(('bigswitch', 'BigSwitch'), ('physical', 'Physical'), ('custom', 'Custom'))", max_length = 30, blank = False, db_index = False];
+     optional string controller_kind = 10 [blank = True, max_length = 30, db_index = False, choices = "((None, 'None'), ('onos', 'ONOS'), ('custom', 'Custom'))"];
+     optional string vtn_kind = 11 [default = "PRIVATE", choices = "(('PRIVATE', 'Private'), ('PUBLIC', 'Public'), ('MANAGEMENT_LOCAL', 'Management Local'), ('MANAGEMENT_HOST', 'Management Host'), ('VSG', 'VSG'), ('ACCESS_AGENT', 'Access Agent'), ('FLAT', 'Flat'))", max_length = 30, blank = True, db_index = False];
 }
 
 message Node (XOSBase) {
-     required string name = 1 [max_length = 200, content_type = "stripped", blank = False, help_text = "Name of the Node", null = False, db_index = False, unique = True];
-     optional string bridgeId = 3 [max_length = 200, content_type = "stripped", blank = True, help_text = "Bridge Id", null = True, db_index = False];
-     optional string dataPlaneIntf = 4 [max_length = 200, content_type = "stripped", blank = True, help_text = "Dataplane Interface", null = True, db_index = False];
-     optional string dataPlaneIp = 5 [max_length = 200, content_type = "stripped", blank = True, help_text = "Dataplane Ip", null = True, db_index = False];
-     optional string hostManagementIface = 6 [max_length = 200, content_type = "stripped", blank = True, help_text = "Host Management Interface", null = True, db_index = False];
-     required manytoone site->Site:nodes = 7:1006 [db_index = True, null = False, blank = False, default=get_first_site];
+     required string name = 1 [max_length = 200, content_type = "stripped", blank = False, help_text = "Name of the Node", db_index = False, unique = True];
+     optional string bridgeId = 3 [max_length = 200, content_type = "stripped", blank = True, help_text = "Bridge Id", db_index = False];
+     optional string dataPlaneIntf = 4 [max_length = 200, content_type = "stripped", blank = True, help_text = "Dataplane Interface", db_index = False];
+     optional string dataPlaneIp = 5 [max_length = 200, content_type = "stripped", blank = True, help_text = "Dataplane Ip", db_index = False];
+     optional string hostManagementIface = 6 [max_length = 200, content_type = "stripped", blank = True, help_text = "Host Management Interface", db_index = False];
+     required manytoone site->Site:nodes = 7:1006 [db_index = True, blank = False, default=get_first_site];
 }
 message NodeLabel (XOSBase) {
-     required string name = 1 [max_length = 200, content_type = "stripped", blank = False, help_text = "label name", null = False, db_index = False, unique = True];
-     optional manytomany node->Node/NodeLabel_node:nodelabels = 2:1002 [db_index = False];
+     required string name = 1 [max_length = 200, content_type = "stripped", blank = False, help_text = "label name", db_index = False, unique = True];
+     optional manytomany node->Node/NodeLabel_node:nodelabels = 2:1002 [];
 }
 
 policy port_policy < *network_policy(network) >
 
 message Port::port_policy (XOSBase) {
-     required manytoone network->Network:links = 1:1003 [db_index = True, null = False, blank = False, unique_with = "service_instance", help_text = "Network bound to this port"];
-     optional string ip = 3 [max_length = 39, content_type = "ip", blank = True, help_text = "Instance ip address", null = True, db_index = False];
-     optional string port_id = 4 [help_text = "Neutron port id", max_length = 256, null = True, db_index = False, blank = True];
-     optional string mac = 5 [help_text = "MAC address associated with this port", max_length = 256, null = True, db_index = False, blank = True];
-     required bool xos_created = 6 [default = False, db_index = False];
-     optional manytoone service_instance->ServiceInstance:ports = 7:1001 [db_index = True, null = True, blank = True, help_text = "ServiceInstance bound to this port"];
+     required manytoone network->Network:links = 1:1003 [db_index = True, blank = False, unique_with = "service_instance", help_text = "Network bound to this port"];
+     optional string ip = 3 [max_length = 39, content_type = "ip", blank = True, help_text = "Instance ip address", db_index = False];
+     optional string port_id = 4 [help_text = "Neutron port id", max_length = 256, db_index = False, blank = True];
+     optional string mac = 5 [help_text = "MAC address associated with this port", max_length = 256, db_index = False, blank = True];
+     required bool xos_created = 6 [default = False];
+     optional manytoone service_instance->ServiceInstance:ports = 7:1001 [db_index = True, blank = True, help_text = "ServiceInstance bound to this port"];
 }
 
 message Principal (XOSBase) {
-     required string name = 1 [max_length = 128, null = False, db_index = True, blank = False, help_text = "The name of this principal"];
-     required manytoone trust_domain->TrustDomain:principals = 2:1001 [db_index = True, null = False, blank = False, help_text = "Trust domain this principal resides in"];
+     required string name = 1 [max_length = 128, db_index = True, blank = False, help_text = "The name of this principal"];
+     required manytoone trust_domain->TrustDomain:principals = 2:1001 [db_index = True, blank = False, help_text = "Trust domain this principal resides in"];
 }
 
 message Role (XOSBase) {
-     required string role_type = 1 [db_index = False, max_length = 80, null = False, content_type = "stripped", blank = False];
-     optional string role = 2 [db_index = False, max_length = 80, null = True, content_type = "stripped", blank = True];
-     optional string description = 3 [db_index = False, max_length = 120, content_type = "stripped"];
+     required string role_type = 1 [db_index = False, max_length = 80, content_type = "stripped", blank = False];
+     optional string role = 2 [db_index = False, max_length = 80, content_type = "stripped", blank = True];
+     optional string description = 3 [max_length = 120, content_type = "stripped"];
 }
 
 policy service_policy <ctx.user.is_admin | exists Privilege: Privilege.accessor_id = ctx.user.id & Privilege.accessor_type = "User" & Privilege.object_type = "Service" & Privilege.object_id = obj.id >
@@ -270,79 +270,52 @@
 
      optional string description = 1 [
          help_text = "Description of Service",
-         db_index = False,
          max_length = 254,
          varchar = True];
      required bool enabled = 2 [
          help_text = "Whether or not service is Enabled",
-         db_index = False,
          default = True,
          gui_hidden = True];
      required string kind = 3 [
          help_text = "Kind of service",
-         blank = False,
          choices="(('generic', 'Generic'), ('data', 'Data Plane'), ('control', 'Control Plane'), ('oss', 'OSS'))",
          content_type = "stripped",
-         db_index = False,
          default = "generic",
-         max_length = 30,
-         null = False];
+         max_length = 30];
      required string name = 4 [
          help_text = "Unique name of service",
-         blank = False,
          content_type = "stripped",
-         db_index = False,
          max_length = 30,
-         null = False,
          unique = True];
      optional string versionNumber = 5 [
          help_text = "Version of Service Definition",
-         blank = True,
          content_type = "stripped",
-         db_index = False,
-         max_length = 30,
-         null = True];
+         max_length = 30];
      required bool published = 6 [
          help_text = "True if this service should be published in XOS",
-         db_index = False,
          default = True,
          gui_hidden = True]; // deprecated?
      optional string icon_url = 8 [
-         blank = True,
          content_type = "stripped",
-         db_index = False,
          gui_hidden = True,
-         max_length = 1024,
-         null = True]; // deprecated?
+         max_length = 1024]; // deprecated?
      optional string public_key = 9 [
          help_text = "Public key string",
-         blank = True,
-         db_index = False,
          gui_hidden = True,
          max_length = 4096,
-         null = True,
          varchar = True]; // likely only used by VM-based services. deprecated?
      optional string private_key_fn = 10 [
          help_text = "Filename of private key file, located within core container",
-         blank = True,
          content_type = "stripped",
-         db_index = False,
          gui_hidden = True,
-         max_length = 4096,
-         null = True]; // likely only used by VM-based services. deprecated?
+         max_length = 4096]; // likely only used by VM-based services. deprecated?
      optional string service_specific_id = 11 [
          help_text = "Service-specific identifier, opaque to XOS core",
-         blank = True,
          content_type = "stripped",
-         db_index = False,
-         max_length = 30,
-         null = True];
+         max_length = 30];
      optional string service_specific_attribute = 12 [
          help_text = "Service-specific string attribute, opaque to XOS core",
-         blank = True,
-         db_index = False,
          gui_hidden = True,
-         null = True,
          varchar = True];
 }
 
@@ -351,28 +324,18 @@
 
      required string name = 1 [
          help_text = "Unique service port name",
-         blank = False,
-         db_index = False,
-         max_length = 128,
-         null = False];
+         max_length = 128];
      required int32 external_port = 2 [
-         help_text = "external port number",
-         blank = False];
+         help_text = "external port number"];
      required int32 internal_port = 3 [
-         help_text = "internal port number",
-         blank = False];
+         help_text = "internal port number"];
      required string protocol = 4 [
          help_text = "Protocol",
-         blank = False,
-         db_index = False,
          default="TCP",
-         max_length = 32,
-         null = False];
+         max_length = 32];
      required manytoone service->Service:serviceports = 5:1002 [
          help_text = "The Service this ServicePort is associated with",
-         blank = False,
-         db_index = True,
-         null = False];
+         db_index = True];
 }
 
 message ServiceAttribute (XOSBase) {
@@ -380,22 +343,14 @@
 
      required string name = 1 [
          help_text = "Attribute Name",
-         blank = False,
-         db_index = False,
          max_length = 128,
-         null = False,
          unique_with="service"];
      required string value = 2 [
          help_text = "Attribute Value",
-         blank = False,
-         db_index = False,
-         null = False,
          varchar = True];
      required manytoone service->Service:serviceattributes = 3:1003 [
          help_text = "The Service this attribute is associated with",
-         blank = False,
-         db_index = True,
-         null = False];
+         db_index = True];
 }
 
 
@@ -404,15 +359,11 @@
 
      required manytoone provider_service->Service:provided_dependencies = 1:1004 [
          help_text = "The service that provides this dependency",
-         blank=False,
          db_index = True,
-         null=False,
          tosca_key=True];
      required manytoone subscriber_service->Service:subscribed_dependencies = 2:1005 [
          help_text = "The services that subscribes to this dependency",
-         blank=False,
          db_index=True,
-         null=False,
          tosca_key=True];
      required string connect_method = 3 [
          help_text = "method to connect the two services",
@@ -423,16 +374,16 @@
 
 
 message Site::site_policy (XOSBase) {
-     required string name = 1 [max_length = 200, content_type = "stripped", blank = False, help_text = "Name for this Site", null = False, db_index = False, unique = True];
-     optional string site_url = 2 [max_length = 512, content_type = "url", blank = True, help_text = "Site's Home URL Page", null = True, db_index = False];
-     required bool enabled = 3 [help_text = "Status for this Site", default = True, db_index = False];
-     required bool hosts_nodes = 4 [help_text = "Indicates whether or not the site host nodes", default = True, db_index = False];
-     required bool hosts_users = 5 [help_text = "Indicates whether or not the site manages user accounts", default = True, db_index = False];
-     optional float longitude = 6 [db_index = False, null = True, blank = True];
-     optional float latitude = 7 [db_index = False, null = True, blank = True];
-     required string login_base = 8 [max_length = 50, content_type = "stripped", blank = False, help_text = "Prefix for Slices associated with this Site", null = False, db_index = False];
-     required bool is_public = 9 [help_text = "Indicates the visibility of this site to other members", default = True, db_index = False];
-     required string abbreviated_name = 10 [db_index = False, max_length = 80, null = False, content_type = "stripped", blank = False];
+     required string name = 1 [max_length = 200, content_type = "stripped", blank = False, help_text = "Name for this Site", db_index = False, unique = True];
+     optional string site_url = 2 [max_length = 512, content_type = "url", blank = True, help_text = "Site's Home URL Page", db_index = False];
+     required bool enabled = 3 [help_text = "Status for this Site", default = True];
+     required bool hosts_nodes = 4 [help_text = "Indicates whether or not the site host nodes", default = True];
+     required bool hosts_users = 5 [help_text = "Indicates whether or not the site manages user accounts", default = True];
+     optional float longitude = 6 [db_index = False, blank = True];
+     optional float latitude = 7 [db_index = False, blank = True];
+     required string login_base = 8 [max_length = 50, content_type = "stripped", blank = False, help_text = "Prefix for Slices associated with this Site", db_index = False];
+     required bool is_public = 9 [help_text = "Indicates the visibility of this site to other members", default = True];
+     required string abbreviated_name = 10 [db_index = False, max_length = 80, content_type = "stripped", blank = False];
 }
 
 policy slice_name_no_spaces < {{ ' ' not in obj.name }} >
@@ -442,35 +393,35 @@
      option validators = "slice_name_no_spaces:Slice name contains spaces, slice_has_creator:Slice has no creator";
      option plural = "Slices";
 
-     required string name = 1 [max_length = 80, content_type = "stripped", blank = False, help_text = "The Name of the Slice", null = False, db_index = False, unique = True];
-     required bool enabled = 2 [help_text = "Status for this Slice", default = True, db_index = False];
-     optional string description = 4 [help_text = "High level description of the slice and expected activities", max_length = 1024, db_index = False, varchar = True];
-     required manytoone site->Site:slices = 6:1005 [help_text = "The Site this Slice belongs to", null = False, db_index = True, blank = False];
-     required int32 max_instances = 7 [default = 10, null = False, db_index = False, blank = False];
-     optional manytoone service->Service:slices = 8:1006 [db_index = True, null = True, blank = True];
-     optional string network = 9 [blank = True, max_length = 256, null = True, db_index = False, choices = "((None, 'Default'), ('host', 'Host'), ('bridged', 'Bridged'), ('noauto', 'No Automatic Networks'))"];
-     optional string exposed_ports = 10 [db_index = False, max_length = 256, null = True, blank = True];
+     required string name = 1 [max_length = 80, content_type = "stripped", blank = False, help_text = "The Name of the Slice", db_index = False, unique = True];
+     required bool enabled = 2 [help_text = "Status for this Slice", default = True];
+     optional string description = 4 [help_text = "High level description of the slice and expected activities", max_length = 1024, varchar = True];
+     required manytoone site->Site:slices = 6:1005 [help_text = "The Site this Slice belongs to", db_index = True, blank = False];
+     required int32 max_instances = 7 [default = 10, db_index = False, blank = False];
+     optional manytoone service->Service:slices = 8:1006 [db_index = True, blank = True];
+     optional string network = 9 [blank = True, max_length = 256, db_index = False, choices = "((None, 'Default'), ('host', 'Host'), ('bridged', 'Bridged'), ('noauto', 'No Automatic Networks'))"];
+     optional string exposed_ports = 10 [db_index = False, max_length = 256, blank = True];
      optional manytoone creator->User:slices = 12:1004 [db_index = True];
-     optional manytoone default_flavor->Flavor:slices = 13:1002 [db_index = True, null = True, blank = True];
-     optional manytoone default_image->Image:slices = 14:1005 [db_index = True, null = True, blank = True];
-     optional manytoone default_node->Node:slices = 15:1003 [db_index = True, null = True, blank = True];
-     optional string mount_data_sets = 16 [default = "GenBank", max_length = 256, content_type = "stripped", blank = True, null = True, db_index = False];
-     required string default_isolation = 17 [default = "vm", choices = "(('vm', 'Virtual Machine'), ('container', 'Container'), ('container_vm', 'Container In VM'))", max_length = 30, blank = False, null = False, db_index = False];
+     optional manytoone default_flavor->Flavor:slices = 13:1002 [db_index = True, blank = True];
+     optional manytoone default_image->Image:slices = 14:1005 [db_index = True, blank = True];
+     optional manytoone default_node->Node:slices = 15:1003 [db_index = True, blank = True];
+     optional string mount_data_sets = 16 [default = "GenBank", max_length = 256, content_type = "stripped", blank = True, db_index = False];
+     required string default_isolation = 17 [default = "vm", choices = "(('vm', 'Virtual Machine'), ('container', 'Container'), ('container_vm', 'Container In VM'))", max_length = 30, blank = False, db_index = False];
      optional manytoone trust_domain->TrustDomain:slices = 18:1002 [db_index = True, help_text = "Trust domain this slice resides in"];
      optional manytoone principal->Principal:slices = 19:1001 [db_index = True, help_text = "Principal this slice may use to interact with other components"];
-     optional int32 controller_replica_count = 20 [default = 0, db_index = False, help_text = "Replica count, controller-dependent"];
-     optional string controller_kind = 21 [max_length = 256, content_type = "stripped", blank = True, help_text = "Type of controller, vim-dependent", null = True, db_index = False];
+     optional int32 controller_replica_count = 20 [default = 0, help_text = "Replica count, controller-dependent"];
+     optional string controller_kind = 21 [max_length = 256, content_type = "stripped", blank = True, help_text = "Type of controller, vim-dependent", db_index = False];
 }
 
 
 policy tag_policy < ctx.user.is_admin >
 
 message Tag::tag_policy (XOSBase) {
-     required manytoone service->Service:tags = 1:1007 [help_text = "The Service this Tag is associated with", null = False, db_index = True, blank = False];
-     required string name = 2 [help_text = "The name of this tag", max_length = 128, null = False, db_index = True, blank = False];
-     required string value = 3 [max_length = 1024, content_type = "stripped", blank = False, help_text = "The value of this tag", null = False, db_index = False];
-     required string content_type = 4 [max_length = 1024, content_type = "stripped", blank = False, help_text = "Content type id linked to this tag", null = False, db_index = False];
-     required uint32 object_id = 5 [db_index = False, null = False, blank = False, help_text = "Object linked to this tag"];
+     required manytoone service->Service:tags = 1:1007 [help_text = "The Service this Tag is associated with", db_index = True, blank = False];
+     required string name = 2 [help_text = "The name of this tag", max_length = 128, db_index = True, blank = False];
+     required string value = 3 [max_length = 1024, content_type = "stripped", blank = False, help_text = "The value of this tag", db_index = False];
+     required string content_type = 4 [max_length = 1024, content_type = "stripped", blank = False, help_text = "Content type id linked to this tag", db_index = False];
+     required uint32 object_id = 5 [db_index = False, blank = False, help_text = "Object linked to this tag"];
 }
 
 message InterfaceType (XOSBase) {
@@ -478,20 +429,14 @@
 
      required string name = 1 [
          help_text = "Name of this interface type",
-         blank = False,
          content_type = "stripped",
-         db_index = False,
          max_length = 200,
-         null = False,
          unique_with = "direction"];
      required string direction = 2 [
          help_text = "Direction, either in or out",
-         blank = False,
          choices = "(('in', 'In'), ('out', 'Out'))",
          content_type = "stripped",
-         db_index = False,
-         max_length = 30,
-         null = False];
+         max_length = 30];
 }
 
 message ServiceInterface (XOSBase) {
@@ -499,15 +444,11 @@
 
      required manytoone service->Service:service_interfaces = 1:1008 [
          help_text = "Service that this ServiceInterface is associated with",
-         blank = False,
          db_index = True,
-         null = False,
          tosca_key=True];
      required manytoone interface_type->InterfaceType:service_interfaces = 2:1001 [
          help_text = "Interface type that describes this interface",
-         blank = False,
          db_index = True,
-         null = False,
          tosca_key=True];
 }
 
@@ -516,30 +457,19 @@
 
      optional string name = 1 [
          help_text = "Name of ServiceInstance",
-         blank = True,
          content_type = "stripped",
-         db_index = False,
-         max_length = 200,
-         null = True];
+         max_length = 200];
      required manytoone owner->Service:service_instances = 2:1009 [
          help_text = "The Service that owns this ServiceInstance",
-         blank = False,
-         db_index = True,
-         null = False];
+         db_index = True];
      optional string service_specific_id = 3 [
          help_text = "Service-specific identifier, opaque to the XOS core",
-         blank = True,
          content_type = "stripped",
-         db_index = False,
          gui_hidden = True,
-         max_length = 30,
-         null = True];
+         max_length = 30];
      optional string service_specific_attribute = 10 [
          help_text = "Service-specific text attribute, opaque to the XOS core",
-         blank = True,
-         db_index = False,
          gui_hidden = True,
-         null = True,
          varchar = True];
      optional uint32 link_deleted_count = 11 [
          help_text = "Incremented each time a provided_link is deleted from this ServiceInstance",
@@ -547,7 +477,6 @@
          gui_hidden = True];
      optional manytoone master_serviceinstance->ServiceInstance:child_serviceinstances = 12:1002 [
          help_text = "The master service instance that set this service instance up",
-         blank = True,
          gui_hidden = True];
 }
 
@@ -557,30 +486,20 @@
      required manytoone provider_service_instance->ServiceInstance:provided_links = 1:1003 [
          help_text = "Eastbound serviceinstance of this link",
          db_index = True,
-         null = False,
-         blank = False,
          tosca_key=True];
      optional manytoone provider_service_interface->ServiceInterface:provided_links = 2:1004 [
          help_text = "Interface descrption of the eastbound linkage point",
-         db_index = True,
-         null = True,
-         blank = True];
+         db_index = True];
      optional manytoone subscriber_service_instance->ServiceInstance:subscribed_links = 3:1005 [
          help_text = "Westbound ServiceInstance of this link",
-         db_index = True,
-         null = True,
-         blank = True];
+         db_index = True];
      optional manytoone subscriber_service->Service:subscribed_links = 4:1010 [
          help_text = "Interface description of the westbound linkage point",
          db_index = True,
-         null = True,
-         blank = True,
          tosca_key_one_of = subscriber_service_instance];
      optional manytoone subscriber_network->Network:subscribed_links = 5:1004 [
          help_text = "Alternative to subscriber_service_instance, if a Network model is the subscriber instead of a ServiceInstance",
          db_index = True,
-         null = True,
-         blank = True,
          tosca_key_one_of=subscriber_service_instance];
 }
 
@@ -589,32 +508,24 @@
 
      required string name = 1 [
          help_text = "Attribute Name",
-         blank = False,
-         db_index = False,
          max_length = 128,
-         null = False,
          unique_with = "service_instance"];
      required string value = 2 [
-         help_text = "Attribute Value",
-         blank = False,
-         db_index = False,
-         null = False];
+         help_text = "Attribute Value"];
      required manytoone service_instance->ServiceInstance:service_instance_attributes = 3:1006 [
          help_text = "The Tenant this attribute is associated with",
-         blank = False,
-         db_index = True,
-         null = False];
+         db_index = True];
 }
 
 message TrustDomain (XOSBase) {
-     required string name = 1 [max_length = 255, null = False, db_index = True, blank = False, help_text = "Name of this trust domain"];
-     required manytoone owner->Service:owned_trust_domains = 2:1011 [null = False, db_index = True, blank = False, help_text = "Service partioned by this trust domain"];
+     required string name = 1 [max_length = 255, db_index = True, blank = False, help_text = "Name of this trust domain"];
+     required manytoone owner->Service:owned_trust_domains = 2:1011 [db_index = True, blank = False, help_text = "Service partioned by this trust domain"];
 }
 
 message XOSCore (XOSBase) {
      option singular="XOSCore";
      option plural="XOSCores";
-     required string name = 1 [default = "XOS", max_length = 200, content_type = "stripped", blank = False, help_text = "Name of XOS", null = False, db_index = False, unique = True];
+     required string name = 1 [default = "XOS", max_length = 200, content_type = "stripped", blank = False, help_text = "Name of XOS", db_index = False, unique = True];
 }
 
 message XOSGuiExtension::admin_policy (XOSBase) {
@@ -623,8 +534,8 @@
      // option no_sync = True;
      // option no_policy = True;
 
-     required string name = 1 [max_length = 200, content_type = "stripped", blank = False, help_text = "Name of the GUI Extensions", null = False, db_index = False, unique = True];
-     required string files = 2 [max_length = 1024, content_type = "stripped", blank = False, help_text = "List of comma separated file composing the view", null = False, db_index = False];
+     required string name = 1 [max_length = 200, content_type = "stripped", blank = False, help_text = "Name of the GUI Extensions", db_index = False, unique = True];
+     required string files = 2 [max_length = 1024, content_type = "stripped", blank = False, help_text = "List of comma separated file composing the view", db_index = False];
 }
 
 message ServiceGraphConstraint (XOSBase) {
