resolve merge conflicts
diff --git a/xos/cord/models.py b/xos/cord/models.py
index 7653eb2..f94befc 100644
--- a/xos/cord/models.py
+++ b/xos/cord/models.py
@@ -599,7 +599,7 @@
             return {}
 
         addresses = {}
-        for ns in self.instance.networkinstances.all():
+        for ns in self.sliver.ports.all():
             if "lan" in ns.network.name.lower():
                 addresses["lan"] = ns.ip
             elif "wan" in ns.network.name.lower():
diff --git a/xos/core/admin.py b/xos/core/admin.py
index f668ae0..2dae51b 100644
--- a/xos/core/admin.py
+++ b/xos/core/admin.py
@@ -1272,6 +1272,16 @@
     user_readonly_fields = ['service', 'name', 'value', 'content_type', 'content_object',]
     user_readonly_inlines = []
 
+class InstancePortInline(XOSTabularInline):
+    fields = ['backend_status_icon', 'network', 'instance', 'ip']
+    readonly_fields = ("backend_status_icon", "ip", )
+    model = Port
+    selflink_fieldname = "network"
+    extra = 0
+    verbose_name_plural = "Ports"
+    verbose_name = "Port"
+    suit_classes = 'suit-tab suit-tab-ports'
+
 class InstanceAdmin(XOSBaseAdmin):
     form = InstanceForm
     fieldsets = [
@@ -1281,9 +1291,9 @@
     list_display = ['backend_status_icon', 'all_ips_string', 'instance_id', 'instance_name', 'slice', 'flavor', 'image', 'node', 'deployment']
     list_display_links = ('backend_status_icon', 'all_ips_string', 'instance_id', )
 
-    suit_form_tabs =(('general', 'Instance Details'),)
+    suit_form_tabs =(('general', 'Instance Details'), ('ports', 'Ports'))
 
-    inlines = [TagInline]
+    inlines = [TagInline, SliverPortInline]
 
     user_readonly_fields = ['slice', 'deployment', 'node', 'ip', 'instance_name', 'flavor', 'image']
 
@@ -1690,15 +1700,15 @@
     fields = ['backend_status_icon', 'parameter', 'value']
     readonly_fields = ('backend_status_icon', )
 
-class NetworkInstancesInline(XOSTabularInline):
-    fields = ['backend_status_icon', 'network', 'instance', 'ip', 'reserve']
+class NetworkPortInline(XOSTabularInline):
+    fields = ['backend_status_icon', 'network', 'instance', 'ip']
     readonly_fields = ("backend_status_icon", "ip", )
-    model = NetworkInstance
+    model = Port
     selflink_fieldname = "instance"
     extra = 0
-    verbose_name_plural = "Instances"
-    verbose_name = "Instance"
-    suit_classes = 'suit-tab suit-tab-networkinstances'
+    verbose_name_plural = "Ports"
+    verbose_name = "Port"
+    suit_classes = 'suit-tab suit-tab-ports'
 
 class NetworkSlicesInline(XOSTabularInline):
     model = NetworkSlice
@@ -1731,8 +1741,7 @@
     list_display = ("backend_status_icon", "name", "subnet", "ports", "labels")
     list_display_links = ('backend_status_icon', 'name', )
     readonly_fields = ("subnet", )
-
-    inlines = [NetworkParameterInline, NetworkInstancesInline, NetworkSlicesInline, RouterInline]
+    inlines = [NetworkParameterInline, NetworkPortInline, NetworkSlicesInline, RouterInline]
     admin_inlines = [ControllerNetworkInline]
 
     form=NetworkForm
@@ -1757,7 +1766,7 @@
         tabs=[('general','Network Details'),
             ('sdn', 'SDN Configuration'),
             ('netparams', 'Parameters'),
-            ('networkinstances','Instances'),
+            ('ports','Ports'),
             ('networkslices','Slices'),
             ('routers','Routers'),
         ]
diff --git a/xos/core/models/__init__.py b/xos/core/models/__init__.py
index 77f503a..4a2051f 100644
--- a/xos/core/models/__init__.py
+++ b/xos/core/models/__init__.py
@@ -26,7 +26,7 @@
 from .instance import Instance
 from .reservation import ReservedResource
 from .reservation import Reservation
-from .network import Network, NetworkParameterType, NetworkParameter, NetworkInstance, NetworkTemplate, Router, NetworkSlice, ControllerNetwork
+from .network import Network, NetworkParameterType, NetworkParameter, NetworkInstance, Port, NetworkTemplate, Router, NetworkSlice, ControllerNetwork
 from .billing import Account, Invoice, Charge, UsableObject, Payment
 from .program import Program
 
diff --git a/xos/core/models/instance.py b/xos/core/models/instance.py
index a248c60..eb38ff9 100644
--- a/xos/core/models/instance.py
+++ b/xos/core/models/instance.py
@@ -98,6 +98,11 @@
     tags = generic.GenericRelation(Tag)
     userData = models.TextField(blank=True, null=True, help_text="user_data passed to instance during creation")
 
+    # TODO: Remove when NetworkSliver->Port rename is complete
+    @property
+    def ports(self):
+        return self.networkslivers
+
     def __unicode__(self):
         if self.name and Slice.objects.filter(id=self.slice_id) and (self.name != self.slice.name):
             # NOTE: The weird check on self.slice_id was due to a problem when
@@ -138,7 +143,7 @@
 
     def all_ips(self):
         ips={}
-        for ns in self.networkinstances.all():
+        for ns in self.ports.all():
            if ns.ip:
                ips[ns.network.name] = ns.ip
         return ips
@@ -153,7 +158,7 @@
     all_ips_string.short_description = "addresses"
 
     def get_public_ip(self):
-        for ns in self.networkinstances.all():
+        for ns in self.ports.all():
             if (ns.ip) and (ns.network.template.visibility=="public") and (ns.network.template.translation=="none"):
                 return ns.ip
         return None
diff --git a/xos/core/models/network.py b/xos/core/models/network.py
index 6fce3cd..f7032b0 100644
--- a/xos/core/models/network.py
+++ b/xos/core/models/network.py
@@ -123,6 +123,11 @@
 
     def __unicode__(self):  return u'%s' % (self.name)
 
+    # TODO: Remove when NetworkSliver->Port rename is complete
+    @property
+    def links(self):
+        return self.networkslivers
+
     def save(self, *args, **kwds):
         if (not self.subnet) and (NO_OBSERVER):
             from util.network_subnet_allocator import find_unused_subnet
@@ -207,11 +212,13 @@
         return qs
 
 class NetworkInstance(PlCoreBase):
+    # Please use "Port" instead of "NetworkSliver". NetworkSliver will soon be
+    # removed.
+
     network = models.ForeignKey(Network,related_name='networkinstances')
     instance = models.ForeignKey(Instance, null=True, blank=True, related_name='networkinstances')
     ip = models.GenericIPAddressField(help_text="Instance ip address", blank=True, null=True)
     port_id = models.CharField(null=True, blank=True, max_length=256, help_text="Quantum port id")
-    reserve = models.BooleanField(default=False, help_text="Reserve this port for future use")
 
     class Meta:
         unique_together = ('network', 'instance')
@@ -226,9 +233,6 @@
                 #   3) network's permitAllSlices is true
                 raise ValueError("Slice %s is not allowed to connect to network %s" % (str(slice), str(self.network)))
 
-        if (not self.instance) and (not self.reserve):
-            raise ValueError("If NetworkInstance.instance is false, then NetworkInstance.reserved must be set to True")
-
         if (not self.ip) and (NO_OBSERVER):
             from util.network_subnet_allocator import find_unused_address
             self.ip = find_unused_address(self.network.subnet,
@@ -239,7 +243,7 @@
         if self.instance:
             return u'%s-%s' % (self.network.name, self.instance.instance_name)
         else:
-            return u'%s-reserved-%s' % (self.network.name, self.id)
+            return u'%s-unboundport-%s' % (self.network.name, self.id)
 
     def can_update(self, user):
         if self.instance:
@@ -257,6 +261,11 @@
             qs = NetworkInstance.objects.filter(id__in=instance_ids)
         return qs
 
+class Port(NetworkInstance):
+    # Rename in progress: NetworkSliver->Port
+    class Meta:
+        proxy = True
+
 class Router(PlCoreBase):
     name = models.CharField(max_length=32)
     owner = models.ForeignKey(Slice, related_name="routers")
diff --git a/xos/core/views/legacyapi.py b/xos/core/views/legacyapi.py
index 040b8df..4657116 100644
--- a/xos/core/views/legacyapi.py
+++ b/xos/core/views/legacyapi.py
@@ -160,43 +160,43 @@
                 # If the slice has a network that's labeled for hpc_client, then
                 # return that network.
                 found_labeled_network = False
-                for networkInstance in ps_instance.networkinstances.all():
-                    if (not networkInstance.ip):
+                for port in ps_instance.ports.all():
+                    if (not port.ip):
                         continue
-                    if (networkInstance.network.owner != ps_slice):
+                    if (port.network.owner != ps_slice):
                         continue
-                    if networkInstance.network.labels and ("hpc_client" in networkInstance.network.labels):
-                        ip=networkInstance.ip
+                    if port.network.labels and ("hpc_client" in port.network.labels):
+                        ip=port.ip
                         found_labeled_network = True
 
                 if not found_labeled_network:
                     # search for a dedicated public IP address
-                    for networkInstance in ps_instance.networkinstances.all():
-                        if (not networkInstance.ip):
+                    for port in ps_instance.ports.all():
+                        if (not port.ip):
                             continue
-                        template = networkInstance.network.template
+                        template = port.network.template
                         if (template.visibility=="public") and (template.translation=="none"):
-                            ip=networkInstance.ip
+                            ip=port.ip
 
                 if return_nat:
                     ip = None
-                    for networkInstance in ps_instance.networkinstances.all():
-                        if (not networkInstance.ip):
+                    for port in ps_instance.ports.all():
+                        if (not port.ip):
                             continue
-                        template = networkInstance.network.template
+                        template = port.network.template
                         if (template.visibility=="private") and (template.translation=="NAT"):
-                            ip=networkInstance.ip
+                            ip=port.ip
                     if not ip:
                         continue
 
                 if return_private:
                     ip = None
-                    for networkInstance in ps_instance.networkinstances.all():
-                        if (not networkInstance.ip):
+                    for port in ps_instance.ports.all():
+                        if (not port.ip):
                             continue
-                        template = networkInstance.network.template
+                        template = port.network.template
                         if (template.visibility=="private") and (template.translation=="none"):
-                            ip=networkInstance.ip
+                            ip=port.ip
                     if not ip:
                         continue
 
diff --git a/xos/core/xoslib/static/js/test.js b/xos/core/xoslib/static/js/test.js
index f657fa3..d5d0a46 100644
--- a/xos/core/xoslib/static/js/test.js
+++ b/xos/core/xoslib/static/js/test.js
@@ -35,7 +35,7 @@
 };

 

 TestApp.on("start", function() {

-     var objs = ['deployment', 'image', 'networkTemplate', 'network', 'networkSliver', 'networkDeployment', 'node', 'service', 'site', 'slice', 'sliceDeployment', 'slicePrivilege', 'sliver', 'user', 'sliceRole', 'userDeployment'];
+     var objs = ['deployment', 'image', 'networkTemplate', 'network', 'port', 'networkDeployment', 'node', 'service', 'site', 'slice', 'sliceDeployment', 'slicePrivilege', 'sliver', 'user', 'sliceRole', 'userDeployment'];
 
      for (var index in objs) {
          name = objs[index];
diff --git a/xos/core/xoslib/static/js/xosAdminSite.js b/xos/core/xoslib/static/js/xosAdminSite.js
index 218c76a..bb0bed7 100644
--- a/xos/core/xoslib/static/js/xosAdminSite.js
+++ b/xos/core/xoslib/static/js/xosAdminSite.js
@@ -1,4 +1,4 @@
-OBJS = ['deployment', 'image', 'networkTemplate', 'network', 'networkSliver',
+OBJS = ['deployment', 'image', 'networkTemplate', 'network', 'port',
         'node', 'service', 'site', 'slice',  'slicePrivilege', 'sliver',
         'user', 'sliceRole',  'flavor', 'controller', 'siteDeployment',
         'controller_image', 'controller_network', 'controller_slice', 'controller_user'];
diff --git a/xos/core/xoslib/static/js/xoslib/xos-backbone.js b/xos/core/xoslib/static/js/xoslib/xos-backbone.js
index 0fc1e97..c85ff18 100644
--- a/xos/core/xoslib/static/js/xoslib/xos-backbone.js
+++ b/xos/core/xoslib/static/js/xoslib/xos-backbone.js
@@ -16,7 +16,7 @@
     IMAGEDEPLOYMENTS_API = XOS_BASE+"/imagedeployments/";
     NETWORKTEMPLATE_API = XOS_BASE+"/networktemplates/";
     NETWORK_API = XOS_BASE+"/networks/";
-    NETWORKSLIVER_API = XOS_BASE+"/networkslivers/";
+    PORT_API = XOS_BASE+"/ports/";
     SERVICE_API = XOS_BASE+"/services/";
     SLICEPRIVILEGE_API = XOS_BASE+"/slice_privileges/";
     NETWORKDEPLOYMENT_API = XOS_BASE+"/networkdeployments/";
@@ -474,7 +474,7 @@
         */
 
         define_model(this, {urlRoot: SLIVER_API,
-                            relatedCollections: {"networkSlivers": "sliver"},
+                            relatedCollections: {"ports": "sliver"},
                             foreignCollections: ["slices", "deployments", "images", "nodes", "users", "flavors"],
                             foreignFields: {"creator": "users", "image": "images", "node": "nodes", "deployment": "deployments", "slice": "slices", "flavor": "flavors"},
                             modelName: "sliver",
@@ -579,7 +579,7 @@
                             });
 
         define_model(this, {urlRoot: NETWORK_API,
-                            relatedCollections: {"networkSlivers": "network", "controller_networks": "network"},
+                            relatedCollections: {"ports": "network", "controller_networks": "network"},
                             foreignCollections: ["slices", "networkTemplates"],
                             modelName: "network",
                             foreignFields: {"template": "networkTemplates", "owner": "slices"},
@@ -587,8 +587,8 @@
                             detailFields: ["backend_status", "backend_register", "name", "template", "ports", "labels", "owner"],
                             });
 
-        define_model(this, {urlRoot: NETWORKSLIVER_API,
-                            modelName: "networkSliver",
+        define_model(this, {urlRoot: PORT_API,
+                            modelName: "port",
                             foreignFields: {"network": "networks", "sliver": "slivers"},
                             listFields: ["backend_status", "id", "network", "sliver", "ip", "port_id"],
                             detailFields: ["backend_status", "backend_register", "network", "sliver", "ip", "port_id"],
diff --git a/xos/core/xoslib/static/js/xoslib/xos-defaults.js b/xos/core/xoslib/static/js/xoslib/xos-defaults.js
index 8ff6455..a2c60cc 100644
--- a/xos/core/xoslib/static/js/xoslib/xos-defaults.js
+++ b/xos/core/xoslib/static/js/xoslib/xos-defaults.js
@@ -1,56 +1,66 @@
 function xos_get_defaults() {
-  this.account = {"updated": null, "policed": null, "created": null, "deleted": false, "site": null, "backend_register": "{}", "backend_status": "0 - Provisioning in progress", "enacted": null};
-  this.charge = {"updated": null, "slice": null, "policed": null, "created": null, "deleted": false, "object": null, "account": null, "backend_register": "{}", "date": null, "amount": 0.0, "state": "pending", "invoice": null, "coreHours": 0.0, "backend_status": "0 - Provisioning in progress", "kind": "besteffort", "enacted": null};
-  this.controller = {"updated": null, "backend_type": "", "policed": null, "created": null, "deleted": false, "domain": null, "backend_register": "{}", "admin_user": null, "auth_url": null, "admin_password": null, "version": "", "deployment": null, "enacted": null, "backend_status": "0 - Provisioning in progress", "admin_tenant": null, "name": ""};
-  this.controllerDashboardView = {"updated": null, "policed": null, "created": null, "deleted": false, "enabled": true, "dashboardView": null, "backend_register": "{}", "url": "", "controller": null, "backend_status": "0 - Provisioning in progress", "enacted": null};
-  this.controllerImages = {"updated": null, "policed": null, "created": null, "deleted": false, "image": null, "backend_register": "{}", "controller": null, "backend_status": "0 - Provisioning in progress", "glance_image_id": null, "enacted": null};
-  this.controllerNetwork = {"router_id": null, "subnet": "", "updated": null, "policed": null, "created": null, "deleted": false, "backend_register": "{}", "subnet_id": null, "controller": null, "enacted": null, "backend_status": "0 - Provisioning in progress", "net_id": null, "network": null};
-  this.controllerRole = {"updated": null, "policed": null, "created": null, "deleted": false, "backend_register": "{}", "role": "", "backend_status": "0 - Provisioning in progress", "enacted": null};
-  this.controllerSite = {"updated": null, "policed": null, "created": null, "deleted": false, "tenant_id": null, "site": null, "backend_register": "{}", "controller": null, "backend_status": "0 - Provisioning in progress", "enacted": null};
-  this.controllerSitePrivilege = {"updated": null, "policed": null, "created": null, "deleted": false, "site_privilege": null, "role_id": null, "backend_register": "{}", "controller": null, "backend_status": "0 - Provisioning in progress", "enacted": null};
-  this.controllerSlice = {"updated": null, "slice": null, "policed": null, "created": null, "deleted": false, "tenant_id": null, "backend_register": "{}", "controller": null, "backend_status": "0 - Provisioning in progress", "enacted": null};
-  this.controllerSlicePrivilege = {"updated": null, "slice_privilege": null, "created": null, "deleted": false, "role_id": null, "backend_register": "{}", "controller": null, "enacted": null, "backend_status": "0 - Provisioning in progress", "policed": null};
-  this.controllerUser = {"updated": null, "policed": null, "created": null, "deleted": false, "controller": null, "backend_register": "{}", "kuser_id": null, "user": null, "backend_status": "0 - Provisioning in progress", "enacted": null};
-  this.dashboardView = {"updated": null, "policed": null, "created": null, "deleted": false, "enabled": true, "backend_register": "{}", "url": "", "enacted": null, "backend_status": "0 - Provisioning in progress", "name": ""};
-  this.deployment = {"accessControl": "allow all", "updated": null, "policed": null, "created": null, "deleted": false, "backend_register": "{}", "enacted": null, "backend_status": "0 - Provisioning in progress", "name": ""};
-  this.deploymentPrivilege = {"updated": null, "policed": null, "created": null, "deleted": false, "backend_register": "{}", "role": null, "user": null, "deployment": null, "backend_status": "0 - Provisioning in progress", "enacted": null};
-  this.deploymentRole = {"updated": null, "policed": null, "created": null, "deleted": false, "backend_register": "{}", "role": "", "backend_status": "0 - Provisioning in progress", "enacted": null};
-  this.flavor = {"updated": null, "description": null, "created": null, "deleted": false, "enacted": null, "name": "", "backend_register": "{}", "default": false, "flavor": "", "backend_status": "0 - Provisioning in progress", "order": 0, "policed": null};
-  this.image = {"updated": null, "policed": null, "created": null, "deleted": false, "container_format": "", "disk_format": "", "backend_register": "{}", "path": null, "enacted": null, "backend_status": "0 - Provisioning in progress", "name": ""};
-  this.imageDeployments = {"updated": null, "policed": null, "created": null, "deleted": false, "image": null, "backend_register": "{}", "deployment": null, "backend_status": "0 - Provisioning in progress", "enacted": null};
-  this.invoice = {"updated": null, "policed": null, "created": null, "deleted": false, "account": null, "backend_register": "{}", "date": null, "backend_status": "0 - Provisioning in progress", "enacted": null};
-  this.network = {"permit_all_slices": false, "subnet": "", "updated": null, "controller_url": null, "policed": null, "created": null, "subnet_id": null, "network_id": null, "labels": null, "owner": null, "template": null, "backend_register": "{}", "deleted": false, "router_id": null, "controller_parameters": null, "guaranteed_bandwidth": 0, "topology_parameters": null, "enacted": null, "backend_status": "0 - Provisioning in progress", "ports": null, "name": ""};
-  this.networkParameter = {"updated": null, "policed": null, "created": null, "deleted": false, "value": "", "backend_register": "{}", "object_id": null, "content_type": null, "backend_status": "0 - Provisioning in progress", "parameter": null, "enacted": null};
-  this.networkParameterType = {"updated": null, "description": "", "created": null, "deleted": false, "name": "", "backend_register": "{}", "enacted": null, "backend_status": "0 - Provisioning in progress", "policed": null};
-  this.networkSlice = {"updated": null, "slice": null, "policed": null, "created": null, "deleted": false, "backend_register": "{}", "enacted": null, "backend_status": "0 - Provisioning in progress", "network": null};
-  this.networkSliver = {"updated": null, "backend_status": "0 - Provisioning in progress", "policed": null, "created": null, "deleted": false, "ip": null, "backend_register": "{}", "enacted": null, "sliver": null, "port_id": null, "network": null};
-  this.networkTemplate = {"updated": null, "description": null, "created": null, "deleted": false, "enacted": null, "visibility": "private", "name": "", "backend_register": "{}", "shared_network_name": null, "topology_kind": "bigswitch", "guaranteed_bandwidth": 0, "translation": "none", "backend_status": "0 - Provisioning in progress", "shared_network_id": null, "controller_kind": null, "policed": null};
-  this.node = {"updated": null, "name": "", "created": null, "deleted": false, "site": null, "backend_register": "{}", "enacted": null, "backend_status": "0 - Provisioning in progress", "site_deployment": null, "policed": null};
-  this.payment = {"updated": null, "policed": null, "created": null, "deleted": false, "account": null, "backend_register": "{}", "amount": 0.0, "date": "2015-02-19T00:56:40.812Z", "backend_status": "0 - Provisioning in progress", "enacted": null};
-  this.project = {"updated": null, "policed": null, "created": null, "deleted": false, "backend_register": "{}", "enacted": null, "backend_status": "0 - Provisioning in progress", "name": ""};
-  this.reservation = {"updated": null, "slice": null, "policed": null, "created": null, "deleted": false, "backend_register": "{}", "startTime": null, "duration": 1, "backend_status": "0 - Provisioning in progress", "enacted": null};
-  this.reservedResource = {"updated": null, "resource": null, "policed": null, "created": null, "deleted": false, "backend_register": "{}", "reservationSet": null, "enacted": null, "backend_status": "0 - Provisioning in progress", "quantity": 1, "sliver": null};
-  this.role = {"updated": null, "description": "", "created": null, "deleted": false, "backend_register": "{}", "role": null, "content_type": null, "enacted": null, "backend_status": "0 - Provisioning in progress", "role_type": "", "policed": null};
-  this.router = {"updated": null, "policed": null, "created": null, "deleted": false, "backend_register": "{}", "owner": null, "enacted": null, "backend_status": "0 - Provisioning in progress", "name": ""};
-  this.service = {"updated": null, "description": null, "created": null, "deleted": false, "enabled": true, "name": "", "backend_register": "{}", "versionNumber": "", "published": true, "enacted": null, "backend_status": "0 - Provisioning in progress", "policed": null};
-  this.serviceAttribute = {"updated": null, "policed": null, "service": null, "created": null, "deleted": false, "value": "", "backend_register": "{}", "enacted": null, "backend_status": "0 - Provisioning in progress", "name": ""};
-  this.serviceClass = {"updated": null, "membershipFee": 0, "membershipFeeMonths": 12, "created": null, "deleted": false, "description": "", "commitment": 365, "name": "", "backend_register": "{}", "enacted": null, "backend_status": "0 - Provisioning in progress", "upgradeRequiresApproval": false, "policed": null};
-  this.serviceResource = {"updated": null, "policed": null, "bucketMaxSize": 0, "created": null, "deleted": false, "name": "", "serviceClass": null, "maxUnitsDeployment": 1, "maxDuration": 1, "backend_register": "{}", "maxUnitsNode": 1, "cost": 0, "enacted": null, "backend_status": "0 - Provisioning in progress", "bucketInRate": 0, "calendarReservable": true};
-  this.site = {"updated": null, "policed": null, "created": null, "deleted": false, "enabled": true, "longitude": null, "site_url": null, "backend_register": "{}", "login_base": "", "location": "0,0", "latitude": null, "is_public": true, "enacted": null, "backend_status": "0 - Provisioning in progress", "abbreviated_name": "", "name": ""};
-  this.siteCredential = {"updated": null, "policed": null, "created": null, "deleted": false, "site": null, "name": "", "backend_register": "{}", "key_id": "", "enacted": null, "backend_status": "0 - Provisioning in progress", "enc_value": ""};
-  this.siteDeployment = {"updated": null, "policed": null, "availability_zone": null, "deleted": false, "created": null, "site": null, "backend_register": "{}", "controller": null, "deployment": null, "backend_status": "0 - Provisioning in progress", "enacted": null};
-  this.sitePrivilege = {"updated": null, "policed": null, "created": null, "deleted": false, "site": null, "backend_register": "{}", "role": null, "user": null, "backend_status": "0 - Provisioning in progress", "enacted": null};
-  this.siteRole = {"updated": null, "policed": null, "created": null, "deleted": false, "backend_register": "{}", "role": "", "backend_status": "0 - Provisioning in progress", "enacted": null};
-  this.slice = {"default_flavor": null, "backend_register": "{}", "updated": null, "policed": null, "service": null, "created": null, "deleted": false, "slice_url": "", "serviceClass": 1, "enabled": true, "site": null, "name": "", "omf_friendly": false, "network": "Private Only", "default_image": null, "mount_data_sets": "GenBank", "max_slivers": 10, "enacted": null, "backend_status": "0 - Provisioning in progress", "creator": null, "description": ""};
-  this.sliceCredential = {"updated": null, "slice": null, "policed": null, "created": null, "deleted": false, "name": "", "backend_register": "{}", "key_id": "", "enacted": null, "backend_status": "0 - Provisioning in progress", "enc_value": ""};
-  this.slicePrivilege = {"updated": null, "slice": null, "policed": null, "created": null, "deleted": false, "backend_register": "{}", "role": null, "user": null, "backend_status": "0 - Provisioning in progress", "enacted": null};
-  this.sliceRole = {"updated": null, "policed": null, "created": null, "deleted": false, "backend_register": "{}", "role": "", "backend_status": "0 - Provisioning in progress", "enacted": null};
-  this.sliceTag = {"updated": null, "slice": null, "policed": null, "created": null, "deleted": false, "value": "", "backend_register": "{}", "enacted": null, "backend_status": "0 - Provisioning in progress", "name": ""};
-  this.sliver = {"instance_uuid": null, "node": null, "updated": null, "slice": null, "policed": null, "backend_register": "{}", "created": null, "deleted": false, "ip": null, "image": null, "creator": null, "numberCores": 0, "instance_id": null, "enacted": null, "deployment": null, "userData": null, "backend_status": "0 - Provisioning in progress", "instance_name": null, "flavor": 3, "name": ""};
-  this.tag = {"updated": null, "policed": null, "service": null, "created": null, "deleted": false, "value": "", "backend_register": "{}", "object_id": null, "content_type": null, "enacted": null, "backend_status": "0 - Provisioning in progress", "name": ""};
-  this.usableObject = {"updated": null, "policed": null, "created": null, "deleted": false, "backend_register": "{}", "enacted": null, "backend_status": "0 - Provisioning in progress", "name": ""};
-  this.user = {"policed": null, "site": null, "is_staff": true, "timezone": "America/New_York", "backend_status": "Provisioning in progress", "is_registering": false, "last_login": "2015-02-19T00:56:40.844Z", "email": "", "username": "Something", "updated": null, "firstname": "", "user_url": null, "deleted": false, "lastname": "", "is_active": true, "phone": null, "is_admin": false, "password": "", "enacted": null, "public_key": null, "is_readonly": false, "created": null};
-  this.userCredential = {"updated": null, "backend_status": "0 - Provisioning in progress", "policed": null, "created": null, "deleted": false, "backend_register": "{}", "user": null, "key_id": "", "enacted": null, "enc_value": "", "name": ""};
-  this.userDashboardView = {"updated": null, "policed": null, "created": null, "deleted": false, "dashboardView": null, "backend_register": "{}", "user": null, "backend_status": "0 - Provisioning in progress", "order": 0, "enacted": null};
+  this.account = {"updated": null, "policed": null, "created": null, "deleted": false, "site": null, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "backend_status": "0 - Provisioning in progress", "no_sync": false, "enacted": null};
+  this.charge = {"updated": null, "slice": null, "date": null, "policed": null, "created": null, "deleted": false, "object": null, "account": null, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "amount": 0.0, "state": "pending", "invoice": null, "coreHours": 0.0, "backend_status": "0 - Provisioning in progress", "kind": "besteffort", "no_sync": false, "enacted": null};
+  this.coarseTenant = {"subscriber_service": null, "connect_method": "na", "updated": null, "backend_status": "0 - Provisioning in progress", "policed": null, "created": null, "deleted": false, "service_specific_attribute": null, "kind": "coarse", "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "enacted": null, "service_specific_id": null, "subscriber_tenant": null, "subscriber_root": null, "subscriber_user": null, "no_sync": false, "provider_service": null};
+  this.controller = {"updated": null, "backend_type": "", "policed": null, "admin_user": null, "created": null, "deleted": false, "domain": null, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "version": "", "auth_url": null, "admin_password": null, "deployment": null, "enacted": null, "backend_status": "0 - Provisioning in progress", "admin_tenant": null, "no_sync": false, "name": ""};
+  this.controllerDashboardView = {"updated": null, "policed": null, "created": null, "deleted": false, "enabled": true, "dashboardView": null, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "controller": null, "url": "", "backend_status": "0 - Provisioning in progress", "no_sync": false, "enacted": null};
+  this.controllerImages = {"updated": null, "policed": null, "created": null, "deleted": false, "image": null, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "controller": null, "backend_status": "0 - Provisioning in progress", "glance_image_id": null, "no_sync": false, "enacted": null};
+  this.controllerNetwork = {"router_id": null, "subnet": "", "updated": null, "policed": null, "created": null, "deleted": false, "net_id": null, "lazy_blocked": false, "backend_register": "{}", "subnet_id": null, "controller": null, "enacted": null, "backend_status": "0 - Provisioning in progress", "write_protect": false, "no_sync": false, "network": null};
+  this.controllerRole = {"updated": null, "policed": null, "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "role": "", "backend_status": "0 - Provisioning in progress", "no_sync": false, "enacted": null};
+  this.controllerSite = {"updated": null, "policed": null, "created": null, "deleted": false, "tenant_id": null, "site": null, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "controller": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "enacted": null};
+  this.controllerSitePrivilege = {"updated": null, "backend_status": "0 - Provisioning in progress", "policed": null, "created": null, "deleted": false, "site_privilege": null, "role_id": null, "backend_register": "{}", "write_protect": false, "controller": null, "lazy_blocked": false, "no_sync": false, "enacted": null};
+  this.controllerSlice = {"updated": null, "slice": null, "policed": null, "created": null, "deleted": false, "tenant_id": null, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "controller": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "enacted": null};
+  this.controllerSlicePrivilege = {"updated": null, "backend_status": "0 - Provisioning in progress", "slice_privilege": null, "created": null, "deleted": false, "role_id": null, "backend_register": "{}", "write_protect": false, "controller": null, "enacted": null, "lazy_blocked": false, "no_sync": false, "policed": null};
+  this.controllerUser = {"updated": null, "policed": null, "created": null, "deleted": false, "controller": null, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "kuser_id": null, "user": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "enacted": null};
+  this.dashboardView = {"updated": null, "policed": null, "created": null, "deleted": false, "enabled": true, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "url": "", "enacted": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "name": ""};
+  this.deployment = {"accessControl": "allow all", "updated": null, "policed": null, "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "enacted": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "name": ""};
+  this.deploymentPrivilege = {"updated": null, "policed": null, "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "role": null, "user": null, "deployment": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "enacted": null};
+  this.deploymentRole = {"updated": null, "policed": null, "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "role": "", "backend_status": "0 - Provisioning in progress", "no_sync": false, "enacted": null};
+  this.flavor = {"updated": null, "policed": null, "created": null, "default": false, "description": null, "enacted": null, "lazy_blocked": false, "backend_register": "{}", "deleted": false, "flavor": "", "backend_status": "0 - Provisioning in progress", "order": 0, "write_protect": false, "no_sync": false, "name": ""};
+  this.image = {"updated": null, "policed": null, "created": null, "deleted": false, "container_format": "", "disk_format": "", "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "path": null, "enacted": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "name": ""};
+  this.imageDeployments = {"updated": null, "policed": null, "created": null, "deleted": false, "image": null, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "deployment": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "enacted": null};
+  this.invoice = {"updated": null, "policed": null, "created": null, "deleted": false, "account": null, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "date": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "enacted": null};
+  this.network = {"permit_all_slices": false, "policed": null, "labels": null, "backend_register": "{}", "owner": null, "backend_status": "0 - Provisioning in progress", "subnet": "", "subnet_id": null, "controller_parameters": null, "no_sync": false, "router_id": null, "updated": null, "controller_url": null, "template": null, "deleted": false, "lazy_blocked": false, "guaranteed_bandwidth": 0, "enacted": null, "autoconnect": true, "name": "", "created": null, "network_id": null, "write_protect": false, "topology_parameters": null, "ports": null};
+  this.networkParameter = {"updated": null, "policed": null, "created": null, "deleted": false, "value": "", "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "object_id": null, "content_type": null, "backend_status": "0 - Provisioning in progress", "parameter": null, "no_sync": false, "enacted": null};
+  this.networkParameterType = {"updated": null, "backend_status": "0 - Provisioning in progress", "description": "", "created": null, "deleted": false, "name": "", "backend_register": "{}", "write_protect": false, "enacted": null, "lazy_blocked": false, "no_sync": false, "policed": null};
+  this.networkSlice = {"updated": null, "slice": null, "policed": null, "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "enacted": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "network": null};
+  this.networkSliver = {"updated": null, "policed": null, "created": null, "deleted": false, "ip": null, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "no_sync": false, "enacted": null, "backend_status": "0 - Provisioning in progress", "port_id": null, "network": null, "sliver": null};
+  this.networkTemplate = {"updated": null, "shared_network_name": null, "name": "", "created": null, "deleted": false, "description": null, "enacted": null, "visibility": "private", "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "no_sync": false, "topology_kind": "bigswitch", "guaranteed_bandwidth": 0, "translation": "none", "backend_status": "0 - Provisioning in progress", "shared_network_id": null, "controller_kind": null, "policed": null};
+  this.node = {"updated": null, "policed": null, "created": null, "deleted": false, "site": null, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "no_sync": false, "enacted": null, "backend_status": "0 - Provisioning in progress", "site_deployment": null, "name": ""};
+  this.payment = {"updated": null, "policed": null, "created": null, "deleted": false, "account": null, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "amount": 0.0, "date": "2015-08-28T18:02:48.736Z", "backend_status": "0 - Provisioning in progress", "no_sync": false, "enacted": null};
+  this.port = {"updated": null, "policed": null, "created": null, "deleted": false, "ip": null, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "no_sync": false, "enacted": null, "backend_status": "0 - Provisioning in progress", "port_id": null, "network": null, "sliver": null};
+  this.program = {"status": null, "updated": null, "policed": null, "created": null, "deleted": false, "description": null, "messages": null, "kind": "", "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "command": null, "no_sync": false, "owner": null, "output": null, "enacted": null, "backend_status": "0 - Provisioning in progress", "contents": null, "name": ""};
+  this.project = {"updated": null, "policed": null, "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "enacted": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "name": ""};
+  this.provider = {"updated": null, "policed": null, "created": null, "deleted": false, "service_specific_attribute": null, "kind": "Provider", "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "service_specific_id": null, "enacted": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "name": null};
+  this.reservation = {"updated": null, "slice": null, "policed": null, "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "startTime": null, "duration": 1, "backend_status": "0 - Provisioning in progress", "no_sync": false, "enacted": null};
+  this.reservedResource = {"updated": null, "backend_status": "0 - Provisioning in progress", "resource": null, "policed": null, "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "reservationSet": null, "enacted": null, "sliver": null, "no_sync": false, "quantity": 1};
+  this.role = {"updated": null, "description": "", "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "role": null, "no_sync": false, "content_type": null, "enacted": null, "backend_status": "0 - Provisioning in progress", "role_type": "", "policed": null};
+  this.router = {"updated": null, "policed": null, "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "owner": null, "enacted": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "name": ""};
+  this.service = {"public_key": null, "updated": null, "policed": null, "created": null, "deleted": false, "view_url": null, "description": null, "service_specific_attribute": null, "enabled": true, "kind": "generic", "published": true, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "versionNumber": "", "service_specific_id": null, "enacted": null, "backend_status": "0 - Provisioning in progress", "icon_url": null, "no_sync": false, "name": ""};
+  this.serviceAttribute = {"updated": null, "policed": null, "service": null, "created": null, "deleted": false, "value": "", "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "enacted": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "name": ""};
+  this.serviceClass = {"backend_register": "{}", "updated": null, "name": "", "membershipFeeMonths": 12, "created": null, "deleted": false, "description": "", "commitment": 365, "lazy_blocked": false, "policed": null, "write_protect": false, "no_sync": false, "enacted": null, "backend_status": "0 - Provisioning in progress", "upgradeRequiresApproval": false, "membershipFee": 0};
+  this.servicePrivilege = {"updated": null, "policed": null, "service": null, "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "role": null, "user": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "enacted": null};
+  this.serviceResource = {"updated": null, "backend_status": "0 - Provisioning in progress", "name": "", "bucketMaxSize": 0, "created": null, "deleted": false, "maxUnitsNode": 1, "serviceClass": null, "maxUnitsDeployment": 1, "calendarReservable": true, "maxDuration": 1, "backend_register": "{}", "write_protect": false, "cost": 0, "enacted": null, "lazy_blocked": false, "bucketInRate": 0, "no_sync": false, "policed": null};
+  this.site = {"updated": null, "backend_status": "0 - Provisioning in progress", "hosts_users": true, "name": "", "created": null, "deleted": false, "enabled": true, "enacted": null, "longitude": null, "site_url": null, "backend_register": "{}", "write_protect": false, "login_base": "", "location": null, "hosts_nodes": true, "is_public": true, "latitude": null, "lazy_blocked": false, "abbreviated_name": "", "no_sync": false, "policed": null};
+  this.siteCredential = {"updated": null, "backend_status": "0 - Provisioning in progress", "policed": null, "created": null, "deleted": false, "site": null, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "key_id": "", "enacted": null, "enc_value": "", "no_sync": false, "name": ""};
+  this.siteDeployment = {"updated": null, "policed": null, "availability_zone": null, "deleted": false, "created": null, "site": null, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "controller": null, "deployment": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "enacted": null};
+  this.sitePrivilege = {"updated": null, "policed": null, "created": null, "deleted": false, "site": null, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "role": null, "user": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "enacted": null};
+  this.siteRole = {"updated": null, "policed": null, "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "role": "", "backend_status": "0 - Provisioning in progress", "no_sync": false, "enacted": null};
+  this.slice = {"policed": null, "creator": null, "site": null, "backend_register": "{}", "backend_status": "0 - Provisioning in progress", "network": "Private Only", "service": null, "no_sync": false, "default_flavor": null, "updated": null, "description": "", "deleted": false, "slice_url": "", "serviceClass": 1, "lazy_blocked": false, "omf_friendly": false, "mount_data_sets": "GenBank", "max_slivers": 10, "enacted": null, "name": "", "created": null, "write_protect": false, "enabled": true, "default_image": null};
+  this.sliceCredential = {"updated": null, "slice": null, "policed": null, "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "key_id": "", "enacted": null, "enc_value": "", "backend_status": "0 - Provisioning in progress", "no_sync": false, "name": ""};
+  this.slicePrivilege = {"updated": null, "slice": null, "policed": null, "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "role": null, "user": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "enacted": null};
+  this.sliceRole = {"updated": null, "policed": null, "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "role": "", "backend_status": "0 - Provisioning in progress", "no_sync": false, "enacted": null};
+  this.sliceTag = {"updated": null, "slice": null, "policed": null, "created": null, "deleted": false, "value": "", "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "enacted": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "name": ""};
+  this.sliver = {"policed": null, "creator": null, "ip": null, "image": null, "backend_register": "{}", "flavor": 3, "backend_status": "0 - Provisioning in progress", "instance_id": null, "slice": null, "no_sync": false, "node": null, "userData": null, "updated": null, "deleted": false, "lazy_blocked": false, "deployment": null, "enacted": null, "instance_uuid": null, "numberCores": 0, "name": "", "created": null, "write_protect": false, "instance_name": null};
+  this.subscriber = {"updated": null, "policed": null, "created": null, "deleted": false, "service_specific_attribute": null, "kind": "Subscriber", "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "service_specific_id": null, "enacted": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "name": null};
+  this.tag = {"updated": null, "name": "", "service": null, "created": null, "deleted": false, "value": "", "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "object_id": null, "content_type": null, "enacted": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "policed": null};
+  this.tenant = {"subscriber_service": null, "connect_method": "na", "updated": null, "backend_status": "0 - Provisioning in progress", "policed": null, "created": null, "deleted": false, "service_specific_attribute": null, "kind": "generic", "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "enacted": null, "service_specific_id": null, "subscriber_tenant": null, "subscriber_root": null, "subscriber_user": null, "no_sync": false, "provider_service": null};
+  this.tenantRoot = {"updated": null, "policed": null, "created": null, "deleted": false, "service_specific_attribute": null, "kind": "generic", "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "service_specific_id": null, "enacted": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "name": null};
+  this.tenantRootPrivilege = {"updated": null, "policed": null, "created": null, "deleted": false, "tenant_root": null, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "role": null, "user": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "enacted": null};
+  this.tenantRootRole = {"updated": null, "policed": null, "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "role": "", "backend_status": "0 - Provisioning in progress", "no_sync": false, "enacted": null};
+  this.usableObject = {"updated": null, "policed": null, "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "enacted": null, "backend_status": "0 - Provisioning in progress", "no_sync": false, "name": ""};
+  this.user = {"policed": null, "site": null, "is_appuser": false, "is_staff": true, "timezone": "America/New_York", "backend_status": "Provisioning in progress", "is_registering": false, "last_login": "2015-08-28T18:02:48.780Z", "email": "", "username": "Something", "updated": null, "login_page": null, "firstname": "", "user_url": null, "deleted": false, "lastname": "", "is_active": true, "phone": null, "is_admin": false, "password": "", "enacted": null, "public_key": null, "is_readonly": false, "created": null, "write_protect": false};
+  this.userCredential = {"updated": null, "backend_status": "0 - Provisioning in progress", "policed": null, "created": null, "deleted": false, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "user": null, "key_id": "", "enacted": null, "enc_value": "", "no_sync": false, "name": ""};
+  this.userDashboardView = {"updated": null, "policed": null, "created": null, "deleted": false, "dashboardView": null, "lazy_blocked": false, "backend_register": "{}", "write_protect": false, "user": null, "backend_status": "0 - Provisioning in progress", "order": 0, "no_sync": false, "enacted": null};
 };
 xosdefaults = new xos_get_defaults();
diff --git a/xos/core/xoslib/static/js/xoslib/xos-validators.js b/xos/core/xoslib/static/js/xoslib/xos-validators.js
index a4935b8..03a3d7b 100644
--- a/xos/core/xoslib/static/js/xoslib/xos-validators.js
+++ b/xos/core/xoslib/static/js/xoslib/xos-validators.js
@@ -1,56 +1,67 @@
+
 function xos_get_validators() {
-  this.account = {"updated": [], "policed": [], "created": [], "deleted": [], "site": ["notBlank"], "backend_register": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.charge = {"updated": [], "slice": [], "policed": [], "created": [], "deleted": [], "amount": ["notBlank"], "object": ["notBlank"], "account": ["notBlank"], "kind": ["notBlank"], "backend_register": ["notBlank"], "state": ["notBlank"], "coreHours": ["notBlank"], "invoice": [], "date": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.controller = {"updated": [], "backend_type": ["notBlank"], "policed": [], "admin_user": [], "created": [], "deleted": [], "domain": [], "name": ["notBlank"], "backend_register": ["notBlank"], "version": ["notBlank"], "auth_url": [], "admin_password": [], "deployment": ["notBlank"], "backend_status": ["notBlank"], "admin_tenant": [], "id": [], "enacted": []};
-  this.controllerDashboardView = {"updated": [], "policed": [], "created": [], "deleted": [], "enabled": [], "dashboardView": ["notBlank"], "backend_register": ["notBlank"], "url": ["notBlank"], "controller": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.controllerImages = {"updated": [], "policed": [], "created": [], "deleted": [], "image": ["notBlank"], "glance_image_id": [], "backend_register": ["notBlank"], "controller": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.controllerNetwork = {"router_id": [], "subnet": [], "updated": [], "policed": [], "created": [], "deleted": [], "subnet_id": [], "net_id": [], "backend_register": ["notBlank"], "network": ["notBlank"], "controller": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.controllerRole = {"updated": [], "policed": [], "created": [], "deleted": [], "backend_register": ["notBlank"], "role": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.controllerSite = {"updated": [], "policed": [], "created": [], "deleted": [], "tenant_id": [], "site": ["notBlank"], "backend_register": ["notBlank"], "controller": [], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.controllerSitePrivilege = {"updated": [], "policed": [], "created": [], "deleted": [], "site_privilege": ["notBlank"], "role_id": [], "backend_register": ["notBlank"], "controller": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.controllerSlice = {"updated": [], "slice": ["notBlank"], "policed": [], "created": [], "deleted": [], "tenant_id": [], "backend_register": ["notBlank"], "controller": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.controllerSlicePrivilege = {"updated": [], "slice_privilege": ["notBlank"], "policed": [], "created": [], "deleted": [], "role_id": [], "backend_register": ["notBlank"], "controller": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.controllerUser = {"updated": [], "policed": [], "created": [], "deleted": [], "kuser_id": [], "backend_register": ["notBlank"], "controller": ["notBlank"], "user": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.dashboardView = {"updated": [], "policed": [], "created": [], "deleted": [], "enabled": [], "name": ["notBlank"], "backend_register": ["notBlank"], "url": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.deployment = {"accessControl": ["notBlank"], "updated": [], "policed": [], "created": [], "deleted": [], "name": ["notBlank"], "backend_register": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.deploymentPrivilege = {"updated": [], "policed": [], "created": [], "deleted": [], "backend_register": ["notBlank"], "role": ["notBlank"], "user": ["notBlank"], "deployment": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.deploymentRole = {"updated": [], "policed": [], "created": [], "deleted": [], "backend_register": ["notBlank"], "role": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.flavor = {"updated": [], "policed": [], "created": [], "deleted": [], "description": [], "name": ["notBlank"], "backend_register": ["notBlank"], "default": [], "flavor": ["notBlank"], "backend_status": ["notBlank"], "order": ["notBlank"], "id": [], "enacted": []};
-  this.image = {"updated": [], "policed": [], "created": [], "deleted": [], "container_format": ["notBlank"], "disk_format": ["notBlank"], "name": ["notBlank"], "backend_register": ["notBlank"], "path": [], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.imageDeployments = {"updated": [], "policed": [], "created": [], "deleted": [], "image": ["notBlank"], "backend_register": ["notBlank"], "deployment": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.invoice = {"updated": [], "policed": [], "created": [], "deleted": [], "account": ["notBlank"], "backend_register": ["notBlank"], "date": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.network = {"router_id": [], "policed": [], "labels": [], "backend_register": ["notBlank"], "owner": ["notBlank"], "backend_status": ["notBlank"], "id": [], "subnet": [], "subnet_id": [], "controller_parameters": [], "permit_all_slices": [], "updated": [], "controller_url": [], "template": ["notBlank"], "deleted": [], "guaranteed_bandwidth": ["notBlank"], "enacted": [], "name": ["notBlank"], "created": [], "network_id": [], "topology_parameters": [], "ports": []};
-  this.networkParameter = {"updated": [], "policed": [], "created": [], "deleted": [], "value": ["notBlank"], "backend_register": ["notBlank"], "object_id": ["notBlank"], "content_type": ["notBlank"], "backend_status": ["notBlank"], "parameter": ["notBlank"], "id": [], "enacted": []};
-  this.networkParameterType = {"updated": [], "policed": [], "created": [], "deleted": [], "description": ["notBlank"], "name": ["notBlank"], "backend_register": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.networkSlice = {"updated": [], "slice": ["notBlank"], "policed": [], "created": [], "deleted": [], "backend_register": ["notBlank"], "network": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.networkSliver = {"updated": [], "policed": [], "created": [], "deleted": [], "ip": [], "backend_register": ["notBlank"], "network": ["notBlank"], "sliver": ["notBlank"], "backend_status": ["notBlank"], "port_id": [], "id": [], "enacted": []};
-  this.networkTemplate = {"shared_network_id": [], "updated": [], "policed": [], "created": [], "deleted": [], "description": [], "visibility": ["notBlank"], "name": ["notBlank"], "backend_register": ["notBlank"], "shared_network_name": [], "topology_kind": ["notBlank"], "guaranteed_bandwidth": ["notBlank"], "translation": ["notBlank"], "backend_status": ["notBlank"], "id": [], "controller_kind": [], "enacted": []};
-  this.node = {"updated": [], "policed": [], "created": [], "deleted": [], "site": [], "name": ["notBlank"], "backend_register": ["notBlank"], "backend_status": ["notBlank"], "id": [], "site_deployment": ["notBlank"], "enacted": []};
-  this.payment = {"updated": [], "policed": [], "created": [], "deleted": [], "account": ["notBlank"], "backend_register": ["notBlank"], "amount": ["notBlank"], "date": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.project = {"updated": [], "policed": [], "created": [], "deleted": [], "name": ["notBlank"], "backend_register": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.reservation = {"updated": [], "slice": ["notBlank"], "policed": [], "created": [], "deleted": [], "backend_register": ["notBlank"], "startTime": ["notBlank"], "duration": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.reservedResource = {"updated": [], "resource": ["notBlank"], "policed": [], "created": [], "deleted": [], "backend_register": ["notBlank"], "sliver": ["notBlank"], "reservationSet": ["notBlank"], "backend_status": ["notBlank"], "id": [], "quantity": ["notBlank"], "enacted": []};
-  this.role = {"updated": [], "policed": [], "created": [], "deleted": [], "description": ["notBlank"], "backend_register": ["notBlank"], "role": [], "content_type": ["notBlank"], "backend_status": ["notBlank"], "id": [], "role_type": ["notBlank"], "enacted": []};
-  this.router = {"updated": [], "policed": [], "created": [], "deleted": [], "name": ["notBlank"], "backend_register": ["notBlank"], "owner": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.service = {"updated": [], "policed": [], "created": [], "deleted": [], "description": [], "enabled": [], "name": ["notBlank"], "backend_register": ["notBlank"], "versionNumber": ["notBlank"], "published": [], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.serviceAttribute = {"updated": [], "policed": [], "service": ["notBlank"], "created": [], "deleted": [], "value": ["notBlank"], "name": ["notBlank"], "backend_register": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.serviceClass = {"updated": [], "membershipFee": ["notBlank"], "policed": [], "membershipFeeMonths": ["notBlank"], "created": [], "deleted": [], "description": ["notBlank"], "commitment": ["notBlank"], "name": ["notBlank"], "backend_register": ["notBlank"], "backend_status": ["notBlank"], "id": [], "upgradeRequiresApproval": [], "enacted": []};
-  this.serviceResource = {"updated": [], "bucketInRate": ["notBlank"], "policed": [], "bucketMaxSize": ["notBlank"], "created": [], "deleted": [], "serviceClass": ["notBlank"], "maxUnitsDeployment": ["notBlank"], "maxDuration": ["notBlank"], "calendarReservable": [], "name": ["notBlank"], "backend_register": ["notBlank"], "maxUnitsNode": ["notBlank"], "cost": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.site = {"abbreviated_name": ["notBlank"], "updated": [], "policed": [], "created": [], "deleted": [], "site_url": ["url"], "enabled": [], "longitude": [], "name": ["notBlank"], "backend_register": ["notBlank"], "login_base": ["notBlank"], "location": ["notBlank"], "latitude": [], "is_public": [], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.siteCredential = {"updated": [], "enc_value": ["notBlank"], "policed": [], "created": [], "deleted": [], "site": ["notBlank"], "name": ["notBlank"], "backend_register": ["notBlank"], "key_id": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.siteDeployment = {"updated": [], "policed": [], "created": [], "deleted": [], "availability_zone": [], "site": ["notBlank"], "backend_register": ["notBlank"], "controller": [], "deployment": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.sitePrivilege = {"updated": [], "policed": [], "created": [], "deleted": [], "site": ["notBlank"], "backend_register": ["notBlank"], "role": ["notBlank"], "user": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.siteRole = {"updated": [], "policed": [], "created": [], "deleted": [], "backend_register": ["notBlank"], "role": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.slice = {"policed": [], "creator": [], "site": ["notBlank"], "backend_register": ["notBlank"], "backend_status": ["notBlank"], "id": [], "network": [], "service": [], "default_flavor": [], "updated": [], "description": [], "deleted": [], "slice_url": ["url"], "serviceClass": ["notBlank"], "omf_friendly": [], "mount_data_sets": [], "max_slivers": ["notBlank"], "enacted": [], "name": ["notBlank"], "created": [], "enabled": [], "default_image": []};
-  this.sliceCredential = {"updated": [], "slice": ["notBlank"], "enc_value": ["notBlank"], "policed": [], "created": [], "deleted": [], "name": ["notBlank"], "backend_register": ["notBlank"], "key_id": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.slicePrivilege = {"updated": [], "slice": ["notBlank"], "policed": [], "created": [], "deleted": [], "backend_register": ["notBlank"], "role": ["notBlank"], "user": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.sliceRole = {"updated": [], "policed": [], "created": [], "deleted": [], "backend_register": ["notBlank"], "role": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.sliceTag = {"updated": [], "slice": ["notBlank"], "policed": [], "created": [], "deleted": [], "value": ["notBlank"], "name": ["notBlank"], "backend_register": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.sliver = {"instance_uuid": [], "instance_id": [], "updated": [], "slice": ["notBlank"], "node": ["notBlank"], "policed": [], "created": [], "deleted": [], "ip": [], "image": ["notBlank"], "creator": [], "numberCores": ["notBlank"], "userData": [], "name": ["notBlank"], "backend_register": ["notBlank"], "deployment": ["notBlank"], "flavor": ["notBlank"], "backend_status": ["notBlank"], "instance_name": [], "id": [], "enacted": []};
-  this.tag = {"updated": [], "policed": [], "service": ["notBlank"], "created": [], "deleted": [], "value": ["notBlank"], "name": ["notBlank"], "backend_register": ["notBlank"], "object_id": ["notBlank"], "content_type": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.usableObject = {"updated": [], "policed": [], "created": [], "deleted": [], "name": ["notBlank"], "backend_register": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.user = {"policed": ["notBlank"], "site": ["notBlank"], "is_staff": [], "timezone": ["notBlank"], "backend_status": ["notBlank"], "id": [], "is_registering": [], "last_login": ["notBlank"], "email": ["notBlank"], "username": ["notBlank"], "updated": [], "firstname": ["notBlank"], "user_url": ["url"], "deleted": [], "lastname": ["notBlank"], "is_active": [], "phone": [], "is_admin": [], "password": ["notBlank"], "enacted": ["notBlank"], "public_key": [], "is_readonly": [], "created": []};
-  this.userCredential = {"updated": [], "enc_value": ["notBlank"], "policed": [], "created": [], "deleted": [], "name": ["notBlank"], "backend_register": ["notBlank"], "user": ["notBlank"], "key_id": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
-  this.userDashboardView = {"updated": [], "policed": [], "created": [], "deleted": [], "dashboardView": ["notBlank"], "order": ["notBlank"], "backend_register": ["notBlank"], "user": ["notBlank"], "backend_status": ["notBlank"], "id": [], "enacted": []};
+    this.account = {"updated": [], "policed": [], "created": [], "deleted": [], "site": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.charge = {"updated": [], "slice": [], "policed": [], "created": [], "deleted": [], "amount": ["notBlank"], "object": ["notBlank"], "account": ["notBlank"], "kind": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "state": ["notBlank"], "coreHours": ["notBlank"], "invoice": [], "date": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.coarseTenant = {"subscriber_service": [], "connect_method": ["notBlank"], "updated": [], "policed": [], "created": [], "deleted": [], "service_specific_attribute": [], "kind": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "subscriber_user": [], "provider_service": ["notBlank"], "service_specific_id": [], "subscriber_tenant": [], "subscriber_root": [], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.controller = {"updated": [], "backend_type": ["notBlank"], "policed": [], "name": ["notBlank"], "created": [], "deleted": [], "domain": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "version": ["notBlank"], "auth_url": [], "admin_user": [], "deployment": ["notBlank"], "admin_password": [], "backend_status": ["notBlank"], "admin_tenant": [], "id": [], "no_sync": [], "enacted": []};
+    this.controllerDashboardView = {"updated": [], "policed": [], "created": [], "deleted": [], "enabled": [], "dashboardView": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "controller": ["notBlank"], "url": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.controllerImages = {"updated": [], "glance_image_id": [], "policed": [], "created": [], "deleted": [], "image": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "controller": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.controllerNetwork = {"router_id": [], "subnet": [], "updated": [], "policed": [], "created": [], "deleted": [], "subnet_id": [], "net_id": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "controller": ["notBlank"], "network": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.controllerRole = {"updated": [], "policed": [], "created": [], "deleted": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "role": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.controllerSite = {"updated": [], "policed": [], "created": [], "deleted": [], "tenant_id": [], "site": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "controller": [], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.controllerSitePrivilege = {"updated": [], "policed": [], "created": [], "deleted": [], "role_id": [], "site_privilege": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "controller": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.controllerSlice = {"updated": [], "slice": ["notBlank"], "policed": [], "created": [], "deleted": [], "tenant_id": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "controller": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.controllerSlicePrivilege = {"updated": [], "slice_privilege": ["notBlank"], "policed": [], "created": [], "deleted": [], "role_id": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "controller": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.controllerUser = {"updated": [], "policed": [], "created": [], "deleted": [], "kuser_id": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "controller": ["notBlank"], "user": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.dashboardView = {"updated": [], "policed": [], "name": ["notBlank"], "created": [], "deleted": [], "enabled": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "url": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.deployment = {"accessControl": ["notBlank"], "updated": [], "policed": [], "name": ["notBlank"], "created": [], "deleted": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.deploymentPrivilege = {"updated": [], "policed": [], "created": [], "deleted": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "role": ["notBlank"], "user": ["notBlank"], "deployment": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.deploymentRole = {"updated": [], "policed": [], "created": [], "deleted": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "role": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.flavor = {"default": [], "updated": [], "policed": [], "name": ["notBlank"], "created": [], "deleted": [], "description": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "flavor": ["notBlank"], "backend_status": ["notBlank"], "order": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.image = {"updated": [], "policed": [], "name": ["notBlank"], "created": [], "deleted": [], "container_format": ["notBlank"], "disk_format": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "path": [], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.imageDeployments = {"updated": [], "policed": [], "created": [], "deleted": [], "image": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "deployment": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.invoice = {"updated": [], "policed": [], "created": [], "deleted": [], "account": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "date": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.network = {"router_id": [], "policed": [], "labels": [], "backend_register": ["notBlank"], "owner": ["notBlank"], "backend_status": ["notBlank"], "id": [], "subnet": [], "subnet_id": [], "controller_parameters": [], "no_sync": [], "permit_all_slices": [], "updated": [], "controller_url": [], "template": ["notBlank"], "deleted": [], "lazy_blocked": [], "guaranteed_bandwidth": ["notBlank"], "enacted": [], "autoconnect": [], "name": ["notBlank"], "created": [], "write_protect": [], "network_id": [], "topology_parameters": [], "ports": []};
+    this.networkParameter = {"updated": [], "policed": [], "created": [], "deleted": [], "value": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "object_id": ["notBlank"], "content_type": ["notBlank"], "backend_status": ["notBlank"], "parameter": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.networkParameterType = {"updated": [], "policed": [], "name": ["notBlank"], "created": [], "deleted": [], "description": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.networkSlice = {"updated": [], "slice": ["notBlank"], "policed": [], "created": [], "deleted": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "network": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.networkSliver = {"updated": [], "policed": [], "created": [], "deleted": [], "ip": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "sliver": [], "network": ["notBlank"], "backend_status": ["notBlank"], "port_id": [], "id": [], "no_sync": [], "enacted": []};
+    this.networkTemplate = {"shared_network_id": [], "updated": [], "shared_network_name": [], "policed": [], "name": ["notBlank"], "created": [], "deleted": [], "description": [], "visibility": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "controller_kind": [], "topology_kind": ["notBlank"], "guaranteed_bandwidth": ["notBlank"], "translation": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.node = {"updated": [], "policed": [], "name": ["notBlank"], "created": [], "deleted": [], "site": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "site_deployment": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.payment = {"updated": [], "policed": [], "created": [], "deleted": [], "account": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "amount": ["notBlank"], "date": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.port = {"updated": [], "policed": [], "created": [], "deleted": [], "ip": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "sliver": [], "network": ["notBlank"], "backend_status": ["notBlank"], "port_id": [], "id": [], "no_sync": [], "enacted": []};
+    this.program = {"status": [], "updated": [], "policed": [], "name": ["notBlank"], "created": [], "deleted": [], "description": [], "messages": [], "kind": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "command": [], "contents": [], "owner": ["notBlank"], "output": [], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.project = {"updated": [], "policed": [], "name": ["notBlank"], "created": [], "deleted": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.provider = {"updated": [], "policed": [], "name": [], "created": [], "deleted": [], "service_specific_attribute": [], "kind": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "service_specific_id": [], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.reservation = {"updated": [], "slice": ["notBlank"], "policed": [], "created": [], "deleted": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "startTime": ["notBlank"], "duration": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.reservedResource = {"updated": [], "resource": ["notBlank"], "policed": [], "created": [], "deleted": [], "quantity": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "sliver": ["notBlank"], "reservationSet": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.role = {"updated": [], "policed": [], "created": [], "deleted": [], "description": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "role": [], "role_type": ["notBlank"], "content_type": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.router = {"updated": [], "policed": [], "name": ["notBlank"], "created": [], "deleted": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "owner": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.service = {"policed": [], "view_url": [], "backend_register": ["notBlank"], "backend_status": ["notBlank"], "id": [], "icon_url": [], "no_sync": [], "updated": [], "description": [], "deleted": [], "lazy_blocked": [], "versionNumber": ["notBlank"], "service_specific_id": [], "enacted": [], "public_key": [], "kind": ["notBlank"], "name": ["notBlank"], "created": [], "write_protect": [], "service_specific_attribute": [], "enabled": [], "published": []};
+    this.serviceAttribute = {"updated": [], "policed": [], "name": ["notBlank"], "created": [], "deleted": [], "value": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "service": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.serviceClass = {"membershipFeeMonths": ["notBlank"], "updated": [], "membershipFee": ["notBlank"], "policed": [], "name": ["notBlank"], "created": [], "deleted": [], "description": ["notBlank"], "commitment": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "upgradeRequiresApproval": [], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.servicePrivilege = {"updated": [], "policed": [], "service": ["notBlank"], "created": [], "deleted": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "role": ["notBlank"], "user": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.serviceResource = {"updated": [], "maxUnitsNode": ["notBlank"], "policed": [], "name": ["notBlank"], "created": [], "deleted": [], "serviceClass": ["notBlank"], "maxUnitsDeployment": ["notBlank"], "maxDuration": ["notBlank"], "bucketMaxSize": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "cost": ["notBlank"], "calendarReservable": [], "bucketInRate": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.site = {"policed": [], "backend_register": ["notBlank"], "id": [], "backend_status": ["notBlank"], "abbreviated_name": ["notBlank"], "site_url": ["url"], "location": ["notBlank"], "hosts_nodes": [], "no_sync": [], "updated": [], "deleted": [], "lazy_blocked": [], "latitude": [], "is_public": [], "enacted": [], "name": ["notBlank"], "created": [], "write_protect": [], "enabled": [], "longitude": [], "hosts_users": [], "login_base": ["notBlank"]};
+    this.siteCredential = {"updated": [], "enc_value": ["notBlank"], "policed": [], "name": ["notBlank"], "created": [], "deleted": [], "site": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "key_id": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.siteDeployment = {"updated": [], "policed": [], "created": [], "deleted": [], "availability_zone": [], "site": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "controller": [], "deployment": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.sitePrivilege = {"updated": [], "policed": [], "created": [], "deleted": [], "site": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "role": ["notBlank"], "user": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.siteRole = {"updated": [], "policed": [], "created": [], "deleted": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "role": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.slice = {"policed": [], "creator": [], "site": ["notBlank"], "backend_register": ["notBlank"], "backend_status": ["notBlank"], "id": [], "network": [], "service": [], "no_sync": [], "default_flavor": [], "updated": [], "description": [], "deleted": [], "slice_url": ["url"], "serviceClass": ["notBlank"], "lazy_blocked": [], "omf_friendly": [], "mount_data_sets": [], "max_slivers": ["notBlank"], "enacted": [], "name": ["notBlank"], "created": [], "write_protect": [], "enabled": [], "default_image": []};
+    this.sliceCredential = {"updated": [], "slice": ["notBlank"], "enc_value": ["notBlank"], "policed": [], "name": ["notBlank"], "created": [], "deleted": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "key_id": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.slicePrivilege = {"updated": [], "slice": ["notBlank"], "policed": [], "created": [], "deleted": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "role": ["notBlank"], "user": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.sliceRole = {"updated": [], "policed": [], "created": [], "deleted": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "role": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.sliceTag = {"updated": [], "slice": ["notBlank"], "policed": [], "name": ["notBlank"], "created": [], "deleted": [], "value": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.sliver = {"policed": [], "creator": [], "ip": [], "image": ["notBlank"], "backend_register": ["notBlank"], "flavor": ["notBlank"], "backend_status": ["notBlank"], "id": [], "instance_name": [], "slice": ["notBlank"], "no_sync": [], "node": ["notBlank"], "userData": [], "updated": [], "deleted": [], "lazy_blocked": [], "deployment": ["notBlank"], "enacted": [], "instance_uuid": [], "numberCores": ["notBlank"], "name": ["notBlank"], "created": [], "write_protect": [], "instance_id": []};
+    this.subscriber = {"updated": [], "policed": [], "name": [], "created": [], "deleted": [], "service_specific_attribute": [], "kind": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "service_specific_id": [], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.tag = {"updated": [], "policed": [], "service": ["notBlank"], "created": [], "deleted": [], "name": ["notBlank"], "value": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "object_id": ["notBlank"], "content_type": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.tenant = {"subscriber_service": [], "connect_method": ["notBlank"], "updated": [], "policed": [], "created": [], "deleted": [], "service_specific_attribute": [], "kind": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "subscriber_user": [], "provider_service": ["notBlank"], "service_specific_id": [], "subscriber_tenant": [], "subscriber_root": [], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.tenantRoot = {"updated": [], "policed": [], "name": [], "created": [], "deleted": [], "service_specific_attribute": [], "kind": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "service_specific_id": [], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.tenantRootPrivilege = {"updated": [], "policed": [], "created": [], "deleted": [], "tenant_root": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "role": ["notBlank"], "user": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.tenantRootRole = {"updated": [], "policed": [], "created": [], "deleted": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "role": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.usableObject = {"updated": [], "policed": [], "name": ["notBlank"], "created": [], "deleted": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.user = {"policed": ["notBlank"], "site": ["notBlank"], "is_appuser": [], "is_staff": [], "timezone": ["notBlank"], "backend_status": ["notBlank"], "id": [], "is_registering": [], "last_login": ["notBlank"], "email": ["notBlank"], "username": ["notBlank"], "updated": [], "login_page": [], "firstname": ["notBlank"], "user_url": ["url"], "deleted": [], "lastname": ["notBlank"], "is_active": [], "phone": [], "is_admin": [], "password": ["notBlank"], "enacted": ["notBlank"], "public_key": [], "is_readonly": [], "created": [], "write_protect": []};
+    this.userCredential = {"updated": [], "enc_value": ["notBlank"], "policed": [], "name": ["notBlank"], "created": [], "deleted": [], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "user": ["notBlank"], "key_id": ["notBlank"], "backend_status": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
+    this.userDashboardView = {"updated": [], "policed": [], "created": [], "deleted": [], "dashboardView": ["notBlank"], "lazy_blocked": [], "backend_register": ["notBlank"], "write_protect": [], "user": ["notBlank"], "backend_status": ["notBlank"], "order": ["notBlank"], "id": [], "no_sync": [], "enacted": []};
 };
 xosvalidators = new xos_get_validators();
diff --git a/xos/model-deps b/xos/model-deps
index 4866373..7f15774 100644
--- a/xos/model-deps
+++ b/xos/model-deps
@@ -99,7 +99,7 @@
         "Slice", 
         "Role"
     ], 
-    "NetworkSliver": [
+    "Port": [
         "Network", 
         "Sliver"
     ], 
diff --git a/xos/model_autodeletion.py b/xos/model_autodeletion.py
index 008ba75..2bfc48c 100644
--- a/xos/model_autodeletion.py
+++ b/xos/model_autodeletion.py
@@ -1 +1 @@
-ephemeral_models = ['ReservedResource','Instance','Image','Network','NetworkInstance','Tag','SitePrivilege','SliceMembership','SliceTag','Reservation','Slice']
+ephemeral_models = ['ReservedResource','Instance','Image','Network','Port','Tag','SitePrivilege','SliceMembership','SliceTag','Reservation','Slice']
diff --git a/xos/observers/hpc/hpc_watcher.py b/xos/observers/hpc/hpc_watcher.py
index 04341e6..7c49aae 100644
--- a/xos/observers/hpc/hpc_watcher.py
+++ b/xos/observers/hpc/hpc_watcher.py
@@ -366,7 +366,7 @@
         if (network_name is None) or (network_name=="") or (network_name.lower()=="public"):
             return instance.get_public_ip()
 
-        for ns in instance.networkinstances.all():
+        for ns in instance.ports.all():
             if (ns.ip) and (ns.network.name==network_name):
                 return ns.ip
 
diff --git a/xos/observers/vcpe/steps/sync_vcpetenant.py b/xos/observers/vcpe/steps/sync_vcpetenant.py
index 54af010..bc08845 100644
--- a/xos/observers/vcpe/steps/sync_vcpetenant.py
+++ b/xos/observers/vcpe/steps/sync_vcpetenant.py
@@ -68,7 +68,7 @@
                 for slice in service.slices.all():
                     if "dnsdemux" in slice.name:
                         for instance in slice.instances.all():
-                            for ns in instance.networkinstances.all():
+                            for ns in instance.ports.all():
                                 if ns.ip and ns.network.labels and (vcpe_service.backend_network_label in ns.network.labels):
                                     dnsdemux_ip = ns.ip
             if not dnsdemux_ip:
@@ -100,7 +100,7 @@
         if vcpe_service.bbs_slice:
             if vcpe_service.backend_network_label:
                 for bbs_instance in vcpe_service.bbs_slice.instances.all():
-                    for ns in bbs_instance.networkinstances.all():
+                    for ns in bbs_instance.ports.all():
                         if ns.ip and ns.network.labels and (vcpe_service.backend_network_label in ns.network.labels):
                             bbs_addrs.append(ns.ip)
             else:
diff --git a/xos/openstack_observer/event_loop.py b/xos/openstack_observer/event_loop.py
index 13fadb8..fc07e7d 100644
--- a/xos/openstack_observer/event_loop.py
+++ b/xos/openstack_observer/event_loop.py
@@ -66,7 +66,6 @@
 	return ig
 
 class XOSObserver:
-	#sync_steps = [SyncNetworks,SyncNetworkInstances,SyncSites,SyncSitePrivilege,SyncSlices,SyncSliceMemberships,SyncInstances,SyncInstanceIps,SyncExternalRoutes,SyncUsers,SyncRoles,SyncNodes,SyncImages,GarbageCollector]
 	sync_steps = []
 
 	
diff --git a/xos/openstack_observer/steps/sync_instances.py b/xos/openstack_observer/steps/sync_instances.py
index 08fce3d..cbcdec6 100644
--- a/xos/openstack_observer/steps/sync_instances.py
+++ b/xos/openstack_observer/steps/sync_instances.py
@@ -62,9 +62,9 @@
         ports = []
         exclude_networks = set()
         exclude_templates = set()
-        for ns in sliver.networkslivers.all():
+        for ns in sliver.ports.all():
             if not ns.port_id:
-                raise Exception("Port %s on sliver %s has no id; Try again later" % (str(ns), str(sliver)) )
+                raise DeferredException("Port %s on sliver %s has no id; Try again later" % (str(ns), str(sliver)) )
             ports.append(ns.port_id)
             exclude_networks.add(ns.network)
             exclude_templates.add(ns.network.template)
@@ -79,7 +79,7 @@
             if controller_network.network.template.visibility == 'private' and \
                controller_network.network.template.translation == 'none':
                    if not controller_network.net_id:
-                        raise Exception("Private Network %s has no id; Try again later" % controller_network.network.name)
+                        raise DeferredException("Private Network %s has no id; Try again later" % controller_network.network.name)
                    nics.append(controller_network.net_id)
 
         # Now include network templates, for those networks that use a
diff --git a/xos/openstack_observer/steps/sync_network_instances.py b/xos/openstack_observer/steps/sync_ports.py
similarity index 73%
rename from xos/openstack_observer/steps/sync_network_instances.py
rename to xos/openstack_observer/steps/sync_ports.py
index 512f619..da08e36 100644
--- a/xos/openstack_observer/steps/sync_network_instances.py
+++ b/xos/openstack_observer/steps/sync_ports.py
@@ -7,10 +7,10 @@
 from core.models.network import *
 from util.logger import observer_logger as logger
 
-class SyncNetworkInstances(OpenStackSyncStep):
+class SyncPorts(OpenStackSyncStep):
     requested_interval = 0 # 3600
-    provides=[NetworkInstance]
-    observes=NetworkInstance
+    provides=[Port]
+    observes=Port
 
     #     The way it works is to enumerate the all of the ports that quantum
     #     has, and then work backward from each port's network-id to determine
@@ -19,12 +19,12 @@
     def call(self, **args):
         logger.info("sync'ing network instances")
 
-        networkInstances = NetworkInstance.objects.all()
-        networkInstances_by_id = {}
-        networkInstances_by_port = {}
-        for networkInstance in networkInstances:
-            networkInstances_by_id[networkInstance.id] = networkInstance
-            networkInstances_by_port[networkInstance.port_id] = networkInstance
+        ports = Port.objects.all()
+        ports_by_id = {}
+        ports_by_neutron_port = {}
+        for port in ports:
+            ports_by_id[port.id] = port
+            ports_by_neutron_port[port.port_id] = port
 
         networks = Network.objects.all()
         networks_by_id = {}
@@ -74,7 +74,7 @@
 
         for port in ports_by_id.values():
             #logger.info("port %s" % str(port))
-            if port["id"] in networkInstances_by_port:
+            if port["id"] in ports_by_neutron_port:
                 # we already have it
                 #logger.info("already accounted for port %s" % port["id"])
                 continue
@@ -127,9 +127,9 @@
                 continue
 
             ip=port["fixed_ips"][0]["ip_address"]
-            logger.info("creating NetworkInstance (%s, %s, %s, %s)" % (str(network), str(instance), ip, str(port["id"])))
+            logger.info("creating Port (%s, %s, %s, %s)" % (str(network), str(instance), ip, str(port["id"])))
 
-            ns = NetworkInstance(network=network,
+            ns = Port(network=network,
                                instance=instance,
                                ip=ip,
                                port_id=port["id"])
@@ -137,70 +137,70 @@
             try:
                 ns.save()
             except:
-                logger.log_exc("failed to save networkinstance %s" % str(ns))
+                logger.log_exc("failed to save port %s" % str(ns))
                 continue
 
-        # For networkInstances that were created by the user, find that ones
+        # For ports that were created by the user, find that ones
         # that don't have neutron ports, and create them.
-        for networkInstance in NetworkInstance.objects.filter(port_id__isnull=True, instance__isnull=False):
-            #logger.info("working on networkinstance %s" % networkInstance)
-            controller = networkInstance.instance.node.site_deployment.controller
+        for port in Port.objects.filter(port_id__isnull=True, instance__isnull=False):
+            #logger.info("XXX working on port %s" % port)
+            controller = port.instance.node.site_deployment.controller
             if controller:
-                cn=networkInstance.network.controllernetworks.filter(controller=controller)
+                cn=port.network.controllernetworks.filter(controller=controller)
                 if not cn:
-                    logger.log_exc("no controllernetwork for %s" % networkInstance)
+                    logger.log_exc("no controllernetwork for %s" % port)
                     continue
                 cn=cn[0]
                 if cn.lazy_blocked:
                     cn.lazy_blocked=False
                     cn.save()
-                    logger.info("deferring networkSliver %s because controllerNetwork was lazy-blocked" % networkSliver)
+                    logger.info("deferring port %s because controllerNetwork was lazy-blocked" % port)
                     continue
                 if not cn.net_id:
-                    logger.info("deferring networkSliver %s because controllerNetwork does not have a port-id yet" % networkSliver)
+                    logger.info("deferring port %s because controllerNetwork does not have a port-id yet" % port)
                     continue
                 try:
                     # We need to use a client driver that specifies the tenant
-                    # of the destination sliver. Nova-compute will not connect
-                    # ports to slivers if the port's tenant does not match
-                    # the sliver's tenant.
+                    # of the destination instance. Nova-compute will not connect
+                    # ports to instances if the port's tenant does not match
+                    # the instance's tenant.
 
                     # A bunch of stuff to compensate for OpenStackDriver.client_driveR()
                     # not being in working condition.
                     from openstack.client import OpenStackClient
                     from openstack.driver import OpenStackDriver
-                    caller = networkSliver.network.owner.creator
+                    caller = port.network.owner.creator
                     auth = {'username': caller.email,
                             'password': caller.remote_password,
-                            'tenant': networkSliver.sliver.slice.name} # networkSliver.network.owner.name}
+                            'tenant': port.instance.slice.name} # port.network.owner.name}
                     client = OpenStackClient(controller=controller, **auth) # cacert=self.config.nova_ca_ssl_cert,
                     driver = OpenStackDriver(client=client)
 
                     port = driver.shell.quantum.create_port({"port": {"network_id": cn.net_id}})["port"]
-                    networkInstance.port_id = port["id"]
+                    port.port_id = port["id"]
                     if port["fixed_ips"]:
-                        networkInstance.ip = port["fixed_ips"][0]["ip_address"]
+                        port.ip = port["fixed_ips"][0]["ip_address"]
                 except:
-                    logger.log_exc("failed to create neutron port for %s" % networkInstance)
+                    logger.log_exc("failed to create neutron port for %s" % port)
                     continue
-                networkInstance.save()
+                port.save()
 
         # Now, handle port forwarding
-        # We get the list of NetworkInstances again, since we might have just
+        # We get the list of Ports again, since we might have just
         # added a few. Then, for each one of them we find it's quantum port and
         # make sure quantum's nat:forward_ports argument is the same.
 
-        for networkInstance in NetworkInstance.objects.all():
+        for port in Port.objects.all():
             try:
-                nat_list = networkInstance.network.nat_list
+                nat_list = port.network.nat_list
             except (TypeError, ValueError), e:
                 logger.info("Failed to decode nat_list: %s" % str(e))
                 continue
 
-            if not networkInstance.port_id:
+            if not port.port_id:
                 continue
 
-            neutron_port = ports_by_id.get(networkInstance.port_id, None)
+            neutron_port = ports_by_id.get(port.port_id, None)
             if not neutron_port:
                 continue
 
@@ -210,15 +210,15 @@
                 neutron_nat_list = []
 
             if (neutron_nat_list != nat_list):
-                logger.info("Setting nat:forward_ports for port %s network %s instance %s to %s" % (str(networkInstance.port_id), str(networkInstance.network.id), str(networkInstance.instance), str(nat_list)))
+                logger.info("Setting nat:forward_ports for port %s network %s instance %s to %s" % (str(port.port_id), str(port.network.id), str(port.instance), str(nat_list)))
                 try:
-                    driver = self.driver.admin_driver(controller=networkInstance.instance.node.site_deployment.controller,tenant='admin')
-                    driver.shell.quantum.update_port(networkInstance.port_id, {"port": {"nat:forward_ports": nat_list}})
+                    driver = self.driver.admin_driver(controller=port.instance.node.site_deployment.controller,tenant='admin')
+                    driver.shell.quantum.update_port(port.port_id, {"port": {"nat:forward_ports": nat_list}})
                 except:
                     logger.log_exc("failed to update port with nat_list %s" % str(nat_list))
                     continue
             else:
-                #logger.info("port %s network %s instance %s nat %s is already set" % (str(networkInstance.port_id), str(networkInstance.network.id), str(networkInstance.instance), str(nat_list)))
+                #logger.info("port %s network %s instance %s nat %s is already set" % (str(port.port_id), str(port.network.id), str(port.instance), str(nat_list)))
                 pass
 
     def delete_record(self, network_instance):
diff --git a/xos/openstack_observer/syncstep.py b/xos/openstack_observer/syncstep.py
index cc6026d..791a89a 100644
--- a/xos/openstack_observer/syncstep.py
+++ b/xos/openstack_observer/syncstep.py
@@ -30,6 +30,9 @@
 class InnocuousException(Exception):
     pass
 
+class DeferredException(Exception):
+    pass
+
 class FailedDependency(Exception):
     pass
 
@@ -144,7 +147,7 @@
                         o.backend_register = json.dumps(scratchpad)
                         o.backend_status = "1 - OK"
                         o.save(update_fields=['enacted','backend_status','backend_register'])
-                except (InnocuousException,Exception) as e:
+                except (InnocuousException,Exception,DeferredException) as e:
                     logger.log_exc("sync step failed!")
                     try:
                         if (o.backend_status.startswith('2 - ')):
@@ -174,9 +177,13 @@
 
                     # Second failure
                     if (scratchpad['exponent']):
-                        delay = scratchpad['exponent'] * 600 # 10 minutes
-                        if (delay<1440):
-                            delay = 1440
+                        if isinstance(e,DeferredException):
+                            delay = scratchpad['exponent'] * 60 # 1 minute
+                        else:
+                            delay = scratchpad['exponent'] * 600 # 10 minutes
+                        # cap delays at 8 hours
+                        if (delay>8*60*60):
+                            delay=8*60*60
                         scratchpad['next_run'] = time.time() + delay
 
                     scratchpad['exponent']+=1
diff --git a/xos/tools/cleanup_unique.py b/xos/tools/cleanup_unique.py
index 0b60266..a637df1 100644
--- a/xos/tools/cleanup_unique.py
+++ b/xos/tools/cleanup_unique.py
@@ -24,7 +24,7 @@
     print "Purging deleted object", obj
     obj.delete(purge=True)
 
-for obj in NetworkInstance.deleted_objects.all():
+for obj in Port.deleted_objects.all():
     print "Purging deleted object", obj
     obj.delete(purge=True)
 
@@ -55,9 +55,9 @@
              conflict.delete(purge=True)
 
 seen=[]
-for obj in NetworkInstance.objects.all():
+for obj in Port.objects.all():
      seen.append(obj.id)
-     conflicts = NetworkInstance.objects.filter(network=obj.network, instance=obj.instance)
+     conflicts = Port.objects.filter(network=obj.network, instance=obj.instanc)
      for conflict in conflicts:
          if conflict.id not in seen:
              print "Purging", conflict, conflict.id, "due to duplicate of", obj.id
diff --git a/xos/tools/get_instance_ip.py b/xos/tools/get_instance_ip.py
index 5cdd8b7..dd3c788 100644
--- a/xos/tools/get_instance_ip.py
+++ b/xos/tools/get_instance_ip.py
@@ -11,8 +11,8 @@
 
 NODES_API = REST_API + "nodes/"
 SLICES_API = REST_API + "slices/"
-SLIVERS_API = REST_API + "instances/"
-NETWORKSLIVERS_API = REST_API + "networkinstances/"
+INSTANCES_API = REST_API + "instances/"
+PORTS_API = REST_API + "ports/"
 
 opencloud_auth=("demo@onlab.us", "demo")
 
@@ -41,7 +41,7 @@
     else:
         query_string = ""
 
-    r = requests.get(SLIVERS_API + query_string, auth=opencloud_auth)
+    r = requests.get(INSTANCES_API + query_string, auth=opencloud_auth)
     return r.json()
 
 def main():
@@ -71,10 +71,9 @@
 
     instance_id = instances[-1]["id"]
 
-    r = requests.get(NETWORKSLIVERS_API + "?instance=%s" % instance_id, auth=opencloud_auth)
-
-    networkInstances = r.json()
-    ips = [x["ip"] for x in networkInstances]
+    r = requests.get(NETWORKINSTANCES_API + "?instance=%s" % instance_id, auth=opencloud_auth)
+    ports = r.json()
+    ips = [x["ip"] for x in ports]
 
     # XXX kinda hackish -- assumes private ips start with "10." and nat start with "172."
 
diff --git a/xos/tools/purge.py b/xos/tools/purge.py
new file mode 100644
index 0000000..75e965f
--- /dev/null
+++ b/xos/tools/purge.py
@@ -0,0 +1,16 @@
+import os
+import sys
+sys.path.append("/opt/xos")
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "xos.settings")
+import django
+from core.models import *
+from hpc.models import *
+from cord.models import *
+django.setup()
+
+def purge(cls):
+    for obj in cls.deleted_objects.all():
+        obj.delete(purge=True)
+
+for model in [Sliver, Slice, Site, Service, User, Image, ImageDeployments, Port]:
+    purge(model)
diff --git a/xos/tosca/custom_types/xos.m4 b/xos/tosca/custom_types/xos.m4
index 0200938..471bfc8 100644
--- a/xos/tosca/custom_types/xos.m4
+++ b/xos/tosca/custom_types/xos.m4
@@ -19,6 +19,9 @@
             service:
                 type: tosca.capabilities.xos.Service)
 define(xos_base_service_props,
+            kind:
+                type: string
+                default: generic
             view_url:
                 type: string
                 required: false
diff --git a/xos/tosca/resources/compute.py b/xos/tosca/resources/compute.py
index a169c5a..f01a401 100644
--- a/xos/tosca/resources/compute.py
+++ b/xos/tosca/resources/compute.py
@@ -41,6 +41,8 @@
         if not name:
             name = nodetemplate.name
 
+        args = {"name": name}
+
         host=None
         flavor=None
         image=None
@@ -72,12 +74,13 @@
         if not flavor:
             raise Exception("Failed to pick a flavor")
 
-        return {"name": name,
-                "image": image,
-                "slice": slice,
-                "flavor": flavor,
-                "node": compute_node,
-                "deployment": compute_node.site_deployment.deployment}
+        args["image"] = image
+        args["slice"] = slice
+        args["flavor"] = flavor
+        args["node"] = compute_node
+        args["deployment"] = compute_node.site_deployment.deployment
+
+        return args
 
     def create(self, name = None, index = None):
         xos_args = self.get_xos_args(name=name, index=index)
diff --git a/xos/tosca/resources/port.py b/xos/tosca/resources/port.py
index 435ba0f..94d0391 100644
--- a/xos/tosca/resources/port.py
+++ b/xos/tosca/resources/port.py
@@ -5,13 +5,13 @@
 sys.path.append("/opt/tosca")
 from translator.toscalib.tosca_template import ToscaTemplate
 
-from core.models import Sliver,User,Network,NetworkTemplate,NetworkSliver
+from core.models import Sliver,User,Network,NetworkTemplate,Port
 
 from xosresource import XOSResource
 
 class XOSPort(XOSResource):
     provides = ["tosca.nodes.network.Port"]
-    xos_model = NetworkSliver
+    xos_model = Port
 
     def get_existing_objs(self):
         # Port objects have no name, their unique key is (sliver, network)
@@ -46,13 +46,13 @@
         if not xos_args.get("network", None):
             raise Exception("Must specify network when creating port")
 
-        port = NetworkSliver(**xos_args)
+        port = Port(**xos_args)
         port.caller = self.user
         port.save()
 
         self.postprocess(port)
 
-        self.info("Created NetworkSliver '%s' connect sliver '%s' to network %s" % (str(port), str(port.sliver), str(port.network)))
+        self.info("Created Port '%s' connect sliver '%s' to network %s" % (str(port), str(port.sliver), str(port.network)))
 
     def delete(self, obj):
         super(XOSPort, self).delete(obj)
diff --git a/xos/tosca/resources/service.py b/xos/tosca/resources/service.py
index 01aee1c..6b84d0b 100644
--- a/xos/tosca/resources/service.py
+++ b/xos/tosca/resources/service.py
@@ -12,7 +12,7 @@
 class XOSService(XOSResource):
     provides = "tosca.nodes.Service"
     xos_model = Service
-    copyin_props = ["view_url"]
+    copyin_props = ["view_url", "kind"]
 
     def postprocess(self, obj):
         for provider_service_name in self.get_requirements("tosca.relationships.TenantOfService"):
diff --git a/xos/tosca/resources/slice.py b/xos/tosca/resources/slice.py
index 83062b3..d9684f2 100644
--- a/xos/tosca/resources/slice.py
+++ b/xos/tosca/resources/slice.py
@@ -5,7 +5,7 @@
 sys.path.append("/opt/tosca")
 from translator.toscalib.tosca_template import ToscaTemplate
 
-from core.models import Slice,User,Site,Network,NetworkSlice,SliceRole,SlicePrivilege
+from core.models import Slice,User,Site,Network,NetworkSlice,SliceRole,SlicePrivilege,Service
 
 from xosresource import XOSResource
 
@@ -14,10 +14,18 @@
     xos_model = Slice
 
     def get_xos_args(self):
+        args = {"name": self.nodetemplate.name}
+
         site_name = self.get_requirement("tosca.relationships.MemberOfSite", throw_exception=True)
         site = self.get_xos_object(Site, login_base=site_name)
-        return {"name": self.nodetemplate.name,
-                "site": site}
+        args["site"] = site
+
+        serviceName = self.get_requirement("tosca.relationships.MemberOfService", throw_exception=False)
+        if serviceName:
+            service = self.get_xos_object(Service, name=serviceName)
+            args["service"] = service
+
+        return args
 
     def postprocess(self, obj):
         for net_name in self.get_requirements("tosca.relationships.ConnectsToNetwork"):
diff --git a/xos/tosca/resources/xossite.py b/xos/tosca/resources/xossite.py
index fe0e256..a65129a 100644
--- a/xos/tosca/resources/xossite.py
+++ b/xos/tosca/resources/xossite.py
@@ -79,6 +79,12 @@
         if obj.slices.exists():
             self.info("Site %s has active slices; skipping delete" % obj.name)
             return
+        if obj.users.exists():
+            self.info("Site %s has active users; skipping delete" % obj.name)
+            return
+        if obj.nodes.exists():
+            self.info("Site %s has active nodes; skipping delete" % obj.name)
+            return
         super(XOSSite, self).delete(obj)
 
 
diff --git a/xos/tosca/samples/cord.yaml b/xos/tosca/samples/cord.yaml
index 83c9584..f160cb6 100644
--- a/xos/tosca/samples/cord.yaml
+++ b/xos/tosca/samples/cord.yaml
@@ -16,6 +16,7 @@
               relationship: tosca.relationships.TenantOfService
       properties:
           view_url: /admin/cord/voltservice/$id$/
+          kind: vOLT
 
     service_vcpe:
       type: tosca.nodes.VCPEService
@@ -41,7 +42,7 @@
       type: tosca.nodes.Slice
       requirements:
           - vcpe_service:
-              node: service_volt
+              node: service_vcpe
               relationship: tosca.relationships.MemberOfService
           - site:
               node: mysite
diff --git a/xos/xos/xosapi.py b/xos/xos/xosapi.py
index 2dab29a..f7be27a 100644
--- a/xos/xos/xosapi.py
+++ b/xos/xos/xosapi.py
@@ -1,3 +1,4 @@
+
 from rest_framework.decorators import api_view
 from rest_framework.response import Response
 from rest_framework.reverse import reverse
@@ -38,6 +39,9 @@
     return patterns('',
         url(r'^xos/$', api_root),
     
+        url(r'xos/site_roles/$', SiteRoleList.as_view(), name='siterole-list'),
+        url(r'xos/site_roles/(?P<pk>[a-zA-Z0-9\-]+)/$', SiteRoleDetail.as_view(), name ='siterole-detail'),
+    
         url(r'xos/serviceattributes/$', ServiceAttributeList.as_view(), name='serviceattribute-list'),
         url(r'xos/serviceattributes/(?P<pk>[a-zA-Z0-9\-]+)/$', ServiceAttributeDetail.as_view(), name ='serviceattribute-detail'),
     
@@ -56,6 +60,9 @@
         url(r'xos/sites/$', SiteList.as_view(), name='site-list'),
         url(r'xos/sites/(?P<pk>[a-zA-Z0-9\-]+)/$', SiteDetail.as_view(), name ='site-detail'),
     
+        url(r'xos/tenantrootroles/$', TenantRootRoleList.as_view(), name='tenantrootrole-list'),
+        url(r'xos/tenantrootroles/(?P<pk>[a-zA-Z0-9\-]+)/$', TenantRootRoleDetail.as_view(), name ='tenantrootrole-detail'),
+    
         url(r'xos/slice_roles/$', SliceRoleList.as_view(), name='slicerole-list'),
         url(r'xos/slice_roles/(?P<pk>[a-zA-Z0-9\-]+)/$', SliceRoleDetail.as_view(), name ='slicerole-detail'),
     
@@ -95,17 +102,23 @@
         url(r'xos/payments/$', PaymentList.as_view(), name='payment-list'),
         url(r'xos/payments/(?P<pk>[a-zA-Z0-9\-]+)/$', PaymentDetail.as_view(), name ='payment-detail'),
     
+        url(r'xos/subscribers/$', SubscriberList.as_view(), name='subscriber-list'),
+        url(r'xos/subscribers/(?P<pk>[a-zA-Z0-9\-]+)/$', SubscriberDetail.as_view(), name ='subscriber-detail'),
+    
         url(r'xos/charges/$', ChargeList.as_view(), name='charge-list'),
         url(r'xos/charges/(?P<pk>[a-zA-Z0-9\-]+)/$', ChargeDetail.as_view(), name ='charge-detail'),
     
+        url(r'xos/programs/$', ProgramList.as_view(), name='program-list'),
+        url(r'xos/programs/(?P<pk>[a-zA-Z0-9\-]+)/$', ProgramDetail.as_view(), name ='program-detail'),
+    
         url(r'xos/roles/$', RoleList.as_view(), name='role-list'),
         url(r'xos/roles/(?P<pk>[a-zA-Z0-9\-]+)/$', RoleDetail.as_view(), name ='role-detail'),
     
         url(r'xos/usableobjects/$', UsableObjectList.as_view(), name='usableobject-list'),
         url(r'xos/usableobjects/(?P<pk>[a-zA-Z0-9\-]+)/$', UsableObjectDetail.as_view(), name ='usableobject-detail'),
     
-        url(r'xos/site_roles/$', SiteRoleList.as_view(), name='siterole-list'),
-        url(r'xos/site_roles/(?P<pk>[a-zA-Z0-9\-]+)/$', SiteRoleDetail.as_view(), name ='siterole-detail'),
+        url(r'xos/providers/$', ProviderList.as_view(), name='provider-list'),
+        url(r'xos/providers/(?P<pk>[a-zA-Z0-9\-]+)/$', ProviderDetail.as_view(), name ='provider-detail'),
     
         url(r'xos/slicecredentials/$', SliceCredentialList.as_view(), name='slicecredential-list'),
         url(r'xos/slicecredentials/(?P<pk>[a-zA-Z0-9\-]+)/$', SliceCredentialDetail.as_view(), name ='slicecredential-detail'),
@@ -131,6 +144,9 @@
         url(r'xos/reservedresources/$', ReservedResourceList.as_view(), name='reservedresource-list'),
         url(r'xos/reservedresources/(?P<pk>[a-zA-Z0-9\-]+)/$', ReservedResourceDetail.as_view(), name ='reservedresource-detail'),
     
+        url(r'xos/networktemplates/$', NetworkTemplateList.as_view(), name='networktemplate-list'),
+        url(r'xos/networktemplates/(?P<pk>[a-zA-Z0-9\-]+)/$', NetworkTemplateDetail.as_view(), name ='networktemplate-detail'),
+    
         url(r'xos/networkslices/$', NetworkSliceList.as_view(), name='networkslice-list'),
         url(r'xos/networkslices/(?P<pk>[a-zA-Z0-9\-]+)/$', NetworkSliceDetail.as_view(), name ='networkslice-detail'),
     
@@ -140,6 +156,9 @@
         url(r'xos/controllers/$', ControllerList.as_view(), name='controller-list'),
         url(r'xos/controllers/(?P<pk>[a-zA-Z0-9\-]+)/$', ControllerDetail.as_view(), name ='controller-detail'),
     
+        url(r'xos/ports/$', PortList.as_view(), name='port-list'),
+        url(r'xos/ports/(?P<pk>[a-zA-Z0-9\-]+)/$', PortDetail.as_view(), name ='port-detail'),
+    
         url(r'xos/users/$', UserList.as_view(), name='user-list'),
         url(r'xos/users/(?P<pk>[a-zA-Z0-9\-]+)/$', UserDetail.as_view(), name ='user-detail'),
     
@@ -155,12 +174,18 @@
         url(r'xos/controllerslices/$', ControllerSliceList.as_view(), name='controllerslice-list'),
         url(r'xos/controllerslices/(?P<pk>[a-zA-Z0-9\-]+)/$', ControllerSliceDetail.as_view(), name ='controllerslice-detail'),
     
+        url(r'xos/tenants/$', TenantList.as_view(), name='tenant-list'),
+        url(r'xos/tenants/(?P<pk>[a-zA-Z0-9\-]+)/$', TenantDetail.as_view(), name ='tenant-detail'),
+    
         url(r'xos/controllerdashboardviews/$', ControllerDashboardViewList.as_view(), name='controllerdashboardview-list'),
         url(r'xos/controllerdashboardviews/(?P<pk>[a-zA-Z0-9\-]+)/$', ControllerDashboardViewDetail.as_view(), name ='controllerdashboardview-detail'),
     
         url(r'xos/accounts/$', AccountList.as_view(), name='account-list'),
         url(r'xos/accounts/(?P<pk>[a-zA-Z0-9\-]+)/$', AccountDetail.as_view(), name ='account-detail'),
     
+        url(r'xos/tenantroots/$', TenantRootList.as_view(), name='tenantroot-list'),
+        url(r'xos/tenantroots/(?P<pk>[a-zA-Z0-9\-]+)/$', TenantRootDetail.as_view(), name ='tenantroot-detail'),
+    
         url(r'xos/controllerroles/$', ControllerRoleList.as_view(), name='controllerrole-list'),
         url(r'xos/controllerroles/(?P<pk>[a-zA-Z0-9\-]+)/$', ControllerRoleDetail.as_view(), name ='controllerrole-detail'),
     
@@ -185,11 +210,14 @@
         url(r'xos/usercredentials/$', UserCredentialList.as_view(), name='usercredential-list'),
         url(r'xos/usercredentials/(?P<pk>[a-zA-Z0-9\-]+)/$', UserCredentialDetail.as_view(), name ='usercredential-detail'),
     
+        url(r'xos/tenantrootprivileges/$', TenantRootPrivilegeList.as_view(), name='tenantrootprivilege-list'),
+        url(r'xos/tenantrootprivileges/(?P<pk>[a-zA-Z0-9\-]+)/$', TenantRootPrivilegeDetail.as_view(), name ='tenantrootprivilege-detail'),
+    
         url(r'xos/slicetags/$', SliceTagList.as_view(), name='slicetag-list'),
         url(r'xos/slicetags/(?P<pk>[a-zA-Z0-9\-]+)/$', SliceTagDetail.as_view(), name ='slicetag-detail'),
     
-        url(r'xos/networktemplates/$', NetworkTemplateList.as_view(), name='networktemplate-list'),
-        url(r'xos/networktemplates/(?P<pk>[a-zA-Z0-9\-]+)/$', NetworkTemplateDetail.as_view(), name ='networktemplate-detail'),
+        url(r'xos/coarsetenants/$', CoarseTenantList.as_view(), name='coarsetenant-list'),
+        url(r'xos/coarsetenants/(?P<pk>[a-zA-Z0-9\-]+)/$', CoarseTenantDetail.as_view(), name ='coarsetenant-detail'),
     
         url(r'xos/routers/$', RouterList.as_view(), name='router-list'),
         url(r'xos/routers/(?P<pk>[a-zA-Z0-9\-]+)/$', RouterDetail.as_view(), name ='router-detail'),
@@ -197,17 +225,22 @@
         url(r'xos/serviceresources/$', ServiceResourceList.as_view(), name='serviceresource-list'),
         url(r'xos/serviceresources/(?P<pk>[a-zA-Z0-9\-]+)/$', ServiceResourceDetail.as_view(), name ='serviceresource-detail'),
     
+        url(r'xos/serviceprivileges/$', ServicePrivilegeList.as_view(), name='serviceprivilege-list'),
+        url(r'xos/serviceprivileges/(?P<pk>[a-zA-Z0-9\-]+)/$', ServicePrivilegeDetail.as_view(), name ='serviceprivilege-detail'),
+    
     )
 
 @api_view(['GET'])
 def api_root(request, format=None):
     return Response({
+        'siteroles': reverse('siterole-list', request=request, format=format),
         'serviceattributes': reverse('serviceattribute-list', request=request, format=format),
         'controllerimageses': reverse('controllerimages-list', request=request, format=format),
         'controllersiteprivileges': reverse('controllersiteprivilege-list', request=request, format=format),
         'images': reverse('image-list', request=request, format=format),
         'networkparameters': reverse('networkparameter-list', request=request, format=format),
         'sites': reverse('site-list', request=request, format=format),
+        'tenantrootroles': reverse('tenantrootrole-list', request=request, format=format),
         'sliceroles': reverse('slicerole-list', request=request, format=format),
         'tags': reverse('tag-list', request=request, format=format),
         'invoices': reverse('invoice-list', request=request, format=format),
@@ -221,10 +254,12 @@
         'services': reverse('service-list', request=request, format=format),
         'serviceclasses': reverse('serviceclass-list', request=request, format=format),
         'payments': reverse('payment-list', request=request, format=format),
+        'subscribers': reverse('subscriber-list', request=request, format=format),
         'charges': reverse('charge-list', request=request, format=format),
+        'programs': reverse('program-list', request=request, format=format),
         'roles': reverse('role-list', request=request, format=format),
         'usableobjects': reverse('usableobject-list', request=request, format=format),
-        'siteroles': reverse('siterole-list', request=request, format=format),
+        'providers': reverse('provider-list', request=request, format=format),
         'slicecredentials': reverse('slicecredential-list', request=request, format=format),
         'instances': reverse('instance-list', request=request, format=format),
         'nodes': reverse('node-list', request=request, format=format),
@@ -233,16 +268,20 @@
         'imagedeploymentses': reverse('imagedeployments-list', request=request, format=format),
         'controllerusers': reverse('controlleruser-list', request=request, format=format),
         'reservedresources': reverse('reservedresource-list', request=request, format=format),
+        'networktemplates': reverse('networktemplate-list', request=request, format=format),
         'networkslices': reverse('networkslice-list', request=request, format=format),
         'userdashboardviews': reverse('userdashboardview-list', request=request, format=format),
         'controllers': reverse('controller-list', request=request, format=format),
+        'ports': reverse('port-list', request=request, format=format),
         'users': reverse('user-list', request=request, format=format),
         'deployments': reverse('deployment-list', request=request, format=format),
         'reservations': reverse('reservation-list', request=request, format=format),
         'siteprivileges': reverse('siteprivilege-list', request=request, format=format),
         'controllerslices': reverse('controllerslice-list', request=request, format=format),
+        'tenants': reverse('tenant-list', request=request, format=format),
         'controllerdashboardviews': reverse('controllerdashboardview-list', request=request, format=format),
         'accounts': reverse('account-list', request=request, format=format),
+        'tenantroots': reverse('tenantroot-list', request=request, format=format),
         'controllerroles': reverse('controllerrole-list', request=request, format=format),
         'networkparametertypes': reverse('networkparametertype-list', request=request, format=format),
         'sitecredentials': reverse('sitecredential-list', request=request, format=format),
@@ -251,10 +290,12 @@
         'sitedeployments': reverse('sitedeployment-list', request=request, format=format),
         'deploymentroles': reverse('deploymentrole-list', request=request, format=format),
         'usercredentials': reverse('usercredential-list', request=request, format=format),
+        'tenantrootprivileges': reverse('tenantrootprivilege-list', request=request, format=format),
         'slicetags': reverse('slicetag-list', request=request, format=format),
-        'networktemplates': reverse('networktemplate-list', request=request, format=format),
+        'coarsetenants': reverse('coarsetenant-list', request=request, format=format),
         'routers': reverse('router-list', request=request, format=format),
         'serviceresources': reverse('serviceresource-list', request=request, format=format),
+        'serviceprivileges': reverse('serviceprivilege-list', request=request, format=format),
         
     })
 
@@ -314,6 +355,41 @@
 
 
 
+class SiteRoleSerializer(serializers.HyperlinkedModelSerializer):
+    id = IdField()
+    
+    humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
+    validators = serializers.SerializerMethodField("getValidators")
+    def getHumanReadableName(self, obj):
+        return str(obj)
+    def getValidators(self, obj):
+        try:
+            return obj.getValidators()
+        except:
+            return None
+    class Meta:
+        model = SiteRole
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','role',)
+
+class SiteRoleIdSerializer(XOSModelSerializer):
+    id = IdField()
+    
+    humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
+    validators = serializers.SerializerMethodField("getValidators")
+    def getHumanReadableName(self, obj):
+        return str(obj)
+    def getValidators(self, obj):
+        try:
+            return obj.getValidators()
+        except:
+            return None
+    class Meta:
+        model = SiteRole
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','role',)
+
+
+
+
 class ServiceAttributeSerializer(serializers.HyperlinkedModelSerializer):
     id = IdField()
     
@@ -328,7 +404,7 @@
             return None
     class Meta:
         model = ServiceAttribute
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','value','service',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','value','service',)
 
 class ServiceAttributeIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -344,7 +420,7 @@
             return None
     class Meta:
         model = ServiceAttribute
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','value','service',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','value','service',)
 
 
 
@@ -363,7 +439,7 @@
             return None
     class Meta:
         model = ControllerImages
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','image','controller','glance_image_id',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','image','controller','glance_image_id',)
 
 class ControllerImagesIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -379,7 +455,7 @@
             return None
     class Meta:
         model = ControllerImages
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','image','controller','glance_image_id',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','image','controller','glance_image_id',)
 
 
 
@@ -398,7 +474,7 @@
             return None
     class Meta:
         model = ControllerSitePrivilege
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','controller','site_privilege','role_id',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','controller','site_privilege','role_id',)
 
 class ControllerSitePrivilegeIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -414,7 +490,7 @@
             return None
     class Meta:
         model = ControllerSitePrivilege
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','controller','site_privilege','role_id',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','controller','site_privilege','role_id',)
 
 
 
@@ -437,7 +513,7 @@
             return None
     class Meta:
         model = Image
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','disk_format','container_format','path','deployments',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','disk_format','container_format','path','deployments',)
 
 class ImageIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -457,7 +533,7 @@
             return None
     class Meta:
         model = Image
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','disk_format','container_format','path','deployments',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','disk_format','container_format','path','deployments',)
 
 
 
@@ -476,7 +552,7 @@
             return None
     class Meta:
         model = NetworkParameter
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','parameter','value','content_type','object_id',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','parameter','value','content_type','object_id',)
 
 class NetworkParameterIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -492,7 +568,7 @@
             return None
     class Meta:
         model = NetworkParameter
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','parameter','value','content_type','object_id',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','parameter','value','content_type','object_id',)
 
 
 
@@ -515,7 +591,7 @@
             return None
     class Meta:
         model = Site
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','site_url','enabled','location','longitude','latitude','login_base','is_public','abbreviated_name','deployments',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','site_url','enabled','hosts_nodes','hosts_users','location','longitude','latitude','login_base','is_public','abbreviated_name','deployments',)
 
 class SiteIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -535,7 +611,42 @@
             return None
     class Meta:
         model = Site
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','site_url','enabled','location','longitude','latitude','login_base','is_public','abbreviated_name','deployments',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','site_url','enabled','hosts_nodes','hosts_users','location','longitude','latitude','login_base','is_public','abbreviated_name','deployments',)
+
+
+
+
+class TenantRootRoleSerializer(serializers.HyperlinkedModelSerializer):
+    id = IdField()
+    
+    humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
+    validators = serializers.SerializerMethodField("getValidators")
+    def getHumanReadableName(self, obj):
+        return str(obj)
+    def getValidators(self, obj):
+        try:
+            return obj.getValidators()
+        except:
+            return None
+    class Meta:
+        model = TenantRootRole
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','role',)
+
+class TenantRootRoleIdSerializer(XOSModelSerializer):
+    id = IdField()
+    
+    humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
+    validators = serializers.SerializerMethodField("getValidators")
+    def getHumanReadableName(self, obj):
+        return str(obj)
+    def getValidators(self, obj):
+        try:
+            return obj.getValidators()
+        except:
+            return None
+    class Meta:
+        model = TenantRootRole
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','role',)
 
 
 
@@ -554,7 +665,7 @@
             return None
     class Meta:
         model = SliceRole
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','role',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','role',)
 
 class SliceRoleIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -570,7 +681,7 @@
             return None
     class Meta:
         model = SliceRole
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','role',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','role',)
 
 
 
@@ -589,7 +700,7 @@
             return None
     class Meta:
         model = Tag
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','service','name','value','content_type','object_id',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','service','name','value','content_type','object_id',)
 
 class TagIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -605,7 +716,7 @@
             return None
     class Meta:
         model = Tag
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','service','name','value','content_type','object_id',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','service','name','value','content_type','object_id',)
 
 
 
@@ -624,7 +735,7 @@
             return None
     class Meta:
         model = Invoice
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','date','account',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','date','account',)
 
 class InvoiceIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -640,7 +751,7 @@
             return None
     class Meta:
         model = Invoice
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','date','account',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','date','account',)
 
 
 
@@ -659,7 +770,7 @@
             return None
     class Meta:
         model = SlicePrivilege
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','user','slice','role',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','user','slice','role',)
 
 class SlicePrivilegeIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -675,7 +786,7 @@
             return None
     class Meta:
         model = SlicePrivilege
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','user','slice','role',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','user','slice','role',)
 
 
 
@@ -694,7 +805,7 @@
             return None
     class Meta:
         model = NetworkInstance
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','network','instance','ip','port_id',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','network','instance','ip','port_id',)
 
 class NetworkInstanceIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -710,7 +821,7 @@
             return None
     class Meta:
         model = NetworkInstance
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','network','instance','ip','port_id',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','network','instance','ip','port_id',)
 
 
 
@@ -733,7 +844,7 @@
             return None
     class Meta:
         model = Flavor
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','description','flavor','order','default','deployments',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','description','flavor','order','default','deployments',)
 
 class FlavorIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -753,7 +864,7 @@
             return None
     class Meta:
         model = Flavor
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','description','flavor','order','default','deployments',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','description','flavor','order','default','deployments',)
 
 
 
@@ -772,7 +883,7 @@
             return None
     class Meta:
         model = ControllerSite
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','site','controller','tenant_id',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','site','controller','tenant_id',)
 
 class ControllerSiteIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -788,7 +899,7 @@
             return None
     class Meta:
         model = ControllerSite
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','site','controller','tenant_id',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','site','controller','tenant_id',)
 
 
 
@@ -807,7 +918,7 @@
             return None
     class Meta:
         model = Project
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name',)
 
 class ProjectIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -823,7 +934,7 @@
             return None
     class Meta:
         model = Project
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name',)
 
 
 
@@ -850,7 +961,7 @@
             return None
     class Meta:
         model = Slice
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','enabled','omf_friendly','description','slice_url','site','max_instances','service','network','serviceClass','creator','default_flavor','default_image','mount_data_sets','networks','networks',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','enabled','omf_friendly','description','slice_url','site','max_instance','service','network','serviceClass','creator','default_flavor','default_image','mount_data_sets','networks','networks',)
 
 class SliceIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -874,8 +985,7 @@
             return None
     class Meta:
         model = Slice
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','enabled','omf_friendly','description','slice_url','site','max_instances','service','network','serviceClass','creator','default_flavor','default_image','mount_data_sets','networks','networks',)
-
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','enabled','omf_friendly','description','slice_url','site','max_instances','service','network','serviceClass','creator','default_flavor','default_image','mount_data_sets','networks','networks',)
 
 
 
@@ -913,7 +1023,7 @@
             return None
     class Meta:
         model = Network
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','template','subnet','ports','labels','owner','guaranteed_bandwidth','permit_all_slices','topology_parameters','controller_url','controller_parameters','network_id','router_id','subnet_id','slices','slices','instances','routers','routers',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','template','subnet','ports','labels','owner','guaranteed_bandwidth','permit_all_slices','topology_parameters','controller_url','controller_parameters','network_id','router_id','subnet_id','autoconnect','slices','slices','instances','routers','routers',)
 
 class NetworkIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -949,7 +1059,7 @@
             return None
     class Meta:
         model = Network
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','template','subnet','ports','labels','owner','guaranteed_bandwidth','permit_all_slices','topology_parameters','controller_url','controller_parameters','network_id','router_id','subnet_id','slices','slices','instances','routers','routers',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','template','subnet','ports','labels','owner','guaranteed_bandwidth','permit_all_slices','topology_parameters','controller_url','controller_parameters','network_id','router_id','subnet_id','autoconnect','slices','slices','instances','routers','routers',)
 
 
 
@@ -968,7 +1078,7 @@
             return None
     class Meta:
         model = Service
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','description','enabled','name','versionNumber','published',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','description','enabled','kind','name','versionNumber','published','view_url','icon_url','public_key','service_specific_id','service_specific_attribute',)
 
 class ServiceIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -984,7 +1094,7 @@
             return None
     class Meta:
         model = Service
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','description','enabled','name','versionNumber','published',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','description','enabled','kind','name','versionNumber','published','view_url','icon_url','public_key','service_specific_id','service_specific_attribute',)
 
 
 
@@ -1003,7 +1113,7 @@
             return None
     class Meta:
         model = ServiceClass
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','description','commitment','membershipFee','membershipFeeMonths','upgradeRequiresApproval',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','description','commitment','membershipFee','membershipFeeMonths','upgradeRequiresApproval',)
 
 class ServiceClassIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -1019,7 +1129,7 @@
             return None
     class Meta:
         model = ServiceClass
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','description','commitment','membershipFee','membershipFeeMonths','upgradeRequiresApproval',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','description','commitment','membershipFee','membershipFeeMonths','upgradeRequiresApproval',)
 
 
 
@@ -1038,7 +1148,7 @@
             return None
     class Meta:
         model = Payment
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','account','amount','date',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','account','amount','date',)
 
 class PaymentIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -1054,7 +1164,42 @@
             return None
     class Meta:
         model = Payment
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','account','amount','date',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','account','amount','date',)
+
+
+
+
+class SubscriberSerializer(serializers.HyperlinkedModelSerializer):
+    id = IdField()
+    
+    humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
+    validators = serializers.SerializerMethodField("getValidators")
+    def getHumanReadableName(self, obj):
+        return str(obj)
+    def getValidators(self, obj):
+        try:
+            return obj.getValidators()
+        except:
+            return None
+    class Meta:
+        model = Subscriber
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','kind','name','service_specific_attribute','service_specific_id',)
+
+class SubscriberIdSerializer(XOSModelSerializer):
+    id = IdField()
+    
+    humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
+    validators = serializers.SerializerMethodField("getValidators")
+    def getHumanReadableName(self, obj):
+        return str(obj)
+    def getValidators(self, obj):
+        try:
+            return obj.getValidators()
+        except:
+            return None
+    class Meta:
+        model = Subscriber
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','kind','name','service_specific_attribute','service_specific_id',)
 
 
 
@@ -1073,7 +1218,7 @@
             return None
     class Meta:
         model = Charge
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','account','slice','kind','state','date','object','amount','coreHours','invoice',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','account','slice','kind','state','date','object','amount','coreHours','invoice',)
 
 class ChargeIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -1089,7 +1234,42 @@
             return None
     class Meta:
         model = Charge
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','account','slice','kind','state','date','object','amount','coreHours','invoice',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','account','slice','kind','state','date','object','amount','coreHours','invoice',)
+
+
+
+
+class ProgramSerializer(serializers.HyperlinkedModelSerializer):
+    id = IdField()
+    
+    humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
+    validators = serializers.SerializerMethodField("getValidators")
+    def getHumanReadableName(self, obj):
+        return str(obj)
+    def getValidators(self, obj):
+        try:
+            return obj.getValidators()
+        except:
+            return None
+    class Meta:
+        model = Program
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','description','kind','command','owner','contents','output','messages','status',)
+
+class ProgramIdSerializer(XOSModelSerializer):
+    id = IdField()
+    
+    humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
+    validators = serializers.SerializerMethodField("getValidators")
+    def getHumanReadableName(self, obj):
+        return str(obj)
+    def getValidators(self, obj):
+        try:
+            return obj.getValidators()
+        except:
+            return None
+    class Meta:
+        model = Program
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','description','kind','command','owner','contents','output','messages','status',)
 
 
 
@@ -1108,7 +1288,7 @@
             return None
     class Meta:
         model = Role
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','role_type','role','description','content_type',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','role_type','role','description','content_type',)
 
 class RoleIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -1124,7 +1304,7 @@
             return None
     class Meta:
         model = Role
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','role_type','role','description','content_type',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','role_type','role','description','content_type',)
 
 
 
@@ -1143,7 +1323,7 @@
             return None
     class Meta:
         model = UsableObject
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name',)
 
 class UsableObjectIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -1159,12 +1339,12 @@
             return None
     class Meta:
         model = UsableObject
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name',)
 
 
 
 
-class SiteRoleSerializer(serializers.HyperlinkedModelSerializer):
+class ProviderSerializer(serializers.HyperlinkedModelSerializer):
     id = IdField()
     
     humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
@@ -1177,10 +1357,10 @@
         except:
             return None
     class Meta:
-        model = SiteRole
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','role',)
+        model = Provider
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','kind','name','service_specific_attribute','service_specific_id',)
 
-class SiteRoleIdSerializer(XOSModelSerializer):
+class ProviderIdSerializer(XOSModelSerializer):
     id = IdField()
     
     humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
@@ -1193,8 +1373,8 @@
         except:
             return None
     class Meta:
-        model = SiteRole
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','role',)
+        model = Provider
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','kind','name','service_specific_attribute','service_specific_id',)
 
 
 
@@ -1213,7 +1393,7 @@
             return None
     class Meta:
         model = SliceCredential
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','slice','name','key_id','enc_value',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','slice','name','key_id','enc_value',)
 
 class SliceCredentialIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -1229,7 +1409,7 @@
             return None
     class Meta:
         model = SliceCredential
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','slice','name','key_id','enc_value',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','slice','name','key_id','enc_value',)
 
 
 
@@ -1251,8 +1431,13 @@
         except:
             return None
     class Meta:
+<<<<<<< HEAD
         model = Instance
         fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','instance_id','instance_uuid','name','instance_name','ip','image','creator','slice','deployment','node','numberCores','flavor','userData','networks',)
+=======
+        model = Sliver
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','instance_id','instance_uuid','name','instance_name','ip','image','creator','slice','deployment','node','numberCores','flavor','userData','networks',)
+>>>>>>> origin/master
 
 class InstanceIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -1271,8 +1456,13 @@
         except:
             return None
     class Meta:
+<<<<<<< HEAD
         model = Instance
         fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','instance_id','instance_uuid','name','instance_name','ip','image','creator','slice','deployment','node','numberCores','flavor','userData','networks',)
+=======
+        model = Sliver
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','instance_id','instance_uuid','name','instance_name','ip','image','creator','slice','deployment','node','numberCores','flavor','userData','networks',)
+>>>>>>> origin/master
 
 
 
@@ -1291,7 +1481,7 @@
             return None
     class Meta:
         model = Node
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','site_deployment','site',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','site_deployment','site',)
 
 class NodeIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -1307,7 +1497,7 @@
             return None
     class Meta:
         model = Node
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','site_deployment','site',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','site_deployment','site',)
 
 
 
@@ -1334,7 +1524,7 @@
             return None
     class Meta:
         model = DashboardView
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','url','enabled','controllers','deployments',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','url','enabled','controllers','deployments',)
 
 class DashboardViewIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -1358,7 +1548,7 @@
             return None
     class Meta:
         model = DashboardView
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','url','enabled','controllers','deployments',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','url','enabled','controllers','deployments',)
 
 
 
@@ -1377,7 +1567,7 @@
             return None
     class Meta:
         model = ControllerNetwork
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','network','controller','net_id','router_id','subnet_id','subnet',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','network','controller','net_id','router_id','subnet_id','subnet',)
 
 class ControllerNetworkIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -1393,7 +1583,7 @@
             return None
     class Meta:
         model = ControllerNetwork
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','network','controller','net_id','router_id','subnet_id','subnet',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','network','controller','net_id','router_id','subnet_id','subnet',)
 
 
 
@@ -1412,7 +1602,7 @@
             return None
     class Meta:
         model = ImageDeployments
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','image','deployment',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','image','deployment',)
 
 class ImageDeploymentsIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -1428,7 +1618,7 @@
             return None
     class Meta:
         model = ImageDeployments
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','image','deployment',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','image','deployment',)
 
 
 
@@ -1447,7 +1637,7 @@
             return None
     class Meta:
         model = ControllerUser
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','user','controller','kuser_id',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','user','controller','kuser_id',)
 
 class ControllerUserIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -1463,7 +1653,7 @@
             return None
     class Meta:
         model = ControllerUser
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','user','controller','kuser_id',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','user','controller','kuser_id',)
 
 
 
@@ -1482,7 +1672,7 @@
             return None
     class Meta:
         model = ReservedResource
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','instance','resource','quantity','reservationSet',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','instance','resource','quantity','reservationSet',)
 
 class ReservedResourceIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -1498,7 +1688,43 @@
             return None
     class Meta:
         model = ReservedResource
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','instance','resource','quantity','reservationSet',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','instance','resource','quantity','reservationSet',)
+
+
+
+
+class NetworkTemplateSerializer(serializers.HyperlinkedModelSerializer):
+    id = IdField()
+    
+    humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
+    validators = serializers.SerializerMethodField("getValidators")
+    def getHumanReadableName(self, obj):
+        return str(obj)
+    def getValidators(self, obj):
+        try:
+            return obj.getValidators()
+        except:
+            return None
+    class Meta:
+        model = NetworkTemplate
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','description','guaranteed_bandwidth','visibility','translation','shared_network_name','shared_network_id','topology_kind','controller_kind',)
+
+class NetworkTemplateIdSerializer(XOSModelSerializer):
+    id = IdField()
+    
+    humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
+    validators = serializers.SerializerMethodField("getValidators")
+    def getHumanReadableName(self, obj):
+        return str(obj)
+    def getValidators(self, obj):
+        try:
+            return obj.getValidators()
+        except:
+            return None
+    class Meta:
+        model = NetworkTemplate
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','description','guaranteed_bandwidth','visibility','translation','shared_network_name','shared_network_id','topology_kind','controller_kind',)
+>>>>>>> origin/master
 
 
 
@@ -1517,7 +1743,7 @@
             return None
     class Meta:
         model = NetworkSlice
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','network','slice',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','network','slice',)
 
 class NetworkSliceIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -1533,7 +1759,7 @@
             return None
     class Meta:
         model = NetworkSlice
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','network','slice',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','network','slice',)
 
 
 
@@ -1552,7 +1778,7 @@
             return None
     class Meta:
         model = UserDashboardView
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','user','dashboardView','order',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','user','dashboardView','order',)
 
 class UserDashboardViewIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -1568,7 +1794,7 @@
             return None
     class Meta:
         model = UserDashboardView
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','user','dashboardView','order',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','user','dashboardView','order',)
 
 
 
@@ -1591,7 +1817,7 @@
             return None
     class Meta:
         model = Controller
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','backend_type','version','auth_url','admin_user','admin_password','admin_tenant','domain','deployment','dashboardviews',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','backend_type','version','auth_url','admin_user','admin_password','admin_tenant','domain','deployment','dashboardviews',)
 
 class ControllerIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -1611,7 +1837,42 @@
             return None
     class Meta:
         model = Controller
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','backend_type','version','auth_url','admin_user','admin_password','admin_tenant','domain','deployment','dashboardviews',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','backend_type','version','auth_url','admin_user','admin_password','admin_tenant','domain','deployment','dashboardviews',)
+
+
+
+
+class PortSerializer(serializers.HyperlinkedModelSerializer):
+    id = IdField()
+    
+    humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
+    validators = serializers.SerializerMethodField("getValidators")
+    def getHumanReadableName(self, obj):
+        return str(obj)
+    def getValidators(self, obj):
+        try:
+            return obj.getValidators()
+        except:
+            return None
+    class Meta:
+        model = Port
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','network','instance','ip','port_id',)
+
+class PortIdSerializer(XOSModelSerializer):
+    id = IdField()
+    
+    humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
+    validators = serializers.SerializerMethodField("getValidators")
+    def getHumanReadableName(self, obj):
+        return str(obj)
+    def getValidators(self, obj):
+        try:
+            return obj.getValidators()
+        except:
+            return None
+    class Meta:
+        model = Port
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','network','instance','ip','port_id',)
 
 
 
@@ -1630,7 +1891,7 @@
             return None
     class Meta:
         model = User
-        fields = ('humanReadableName', 'validators', 'id','password','last_login','email','username','firstname','lastname','phone','user_url','site','public_key','is_active','is_admin','is_staff','is_readonly','is_registering','created','updated','enacted','policed','backend_status','deleted','timezone',)
+        fields = ('humanReadableName', 'validators', 'id','password','last_login','email','username','firstname','lastname','phone','user_url','site','public_key','is_active','is_admin','is_staff','is_readonly','is_registering','is_appuser','login_page','created','updated','enacted','policed','backend_status','deleted','write_protect','timezone',)
 
 class UserIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -1646,7 +1907,7 @@
             return None
     class Meta:
         model = User
-        fields = ('humanReadableName', 'validators', 'id','password','last_login','email','username','firstname','lastname','phone','user_url','site','public_key','is_active','is_admin','is_staff','is_readonly','is_registering','created','updated','enacted','policed','backend_status','deleted','timezone',)
+        fields = ('humanReadableName', 'validators', 'id','password','last_login','email','username','firstname','lastname','phone','user_url','site','public_key','is_active','is_admin','is_staff','is_readonly','is_registering','is_appuser','login_page','created','updated','enacted','policed','backend_status','deleted','write_protect','timezone',)
 
 
 
@@ -1681,7 +1942,7 @@
             return None
     class Meta:
         model = Deployment
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','accessControl','images','sites','flavors','dashboardviews',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','accessControl','images','sites','flavors','dashboardviews',)
 
 class DeploymentIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -1713,7 +1974,7 @@
             return None
     class Meta:
         model = Deployment
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','accessControl','images','sites','flavors','dashboardviews',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','accessControl','images','sites','flavors','dashboardviews',)
 
 
 
@@ -1732,7 +1993,7 @@
             return None
     class Meta:
         model = Reservation
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','startTime','slice','duration',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','startTime','slice','duration',)
 
 class ReservationIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -1748,7 +2009,7 @@
             return None
     class Meta:
         model = Reservation
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','startTime','slice','duration',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','startTime','slice','duration',)
 
 
 
@@ -1767,7 +2028,7 @@
             return None
     class Meta:
         model = SitePrivilege
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','user','site','role',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','user','site','role',)
 
 class SitePrivilegeIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -1783,7 +2044,7 @@
             return None
     class Meta:
         model = SitePrivilege
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','user','site','role',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','user','site','role',)
 
 
 
@@ -1802,7 +2063,7 @@
             return None
     class Meta:
         model = ControllerSlice
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','controller','slice','tenant_id',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','controller','slice','tenant_id',)
 
 class ControllerSliceIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -1818,7 +2079,42 @@
             return None
     class Meta:
         model = ControllerSlice
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','controller','slice','tenant_id',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','controller','slice','tenant_id',)
+
+
+
+
+class TenantSerializer(serializers.HyperlinkedModelSerializer):
+    id = IdField()
+    
+    humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
+    validators = serializers.SerializerMethodField("getValidators")
+    def getHumanReadableName(self, obj):
+        return str(obj)
+    def getValidators(self, obj):
+        try:
+            return obj.getValidators()
+        except:
+            return None
+    class Meta:
+        model = Tenant
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','kind','provider_service','subscriber_service','subscriber_tenant','subscriber_user','subscriber_root','service_specific_id','service_specific_attribute','connect_method',)
+
+class TenantIdSerializer(XOSModelSerializer):
+    id = IdField()
+    
+    humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
+    validators = serializers.SerializerMethodField("getValidators")
+    def getHumanReadableName(self, obj):
+        return str(obj)
+    def getValidators(self, obj):
+        try:
+            return obj.getValidators()
+        except:
+            return None
+    class Meta:
+        model = Tenant
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','kind','provider_service','subscriber_service','subscriber_tenant','subscriber_user','subscriber_root','service_specific_id','service_specific_attribute','connect_method',)
 
 
 
@@ -1837,7 +2133,7 @@
             return None
     class Meta:
         model = ControllerDashboardView
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','controller','dashboardView','enabled','url',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','controller','dashboardView','enabled','url',)
 
 class ControllerDashboardViewIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -1853,7 +2149,7 @@
             return None
     class Meta:
         model = ControllerDashboardView
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','controller','dashboardView','enabled','url',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','controller','dashboardView','enabled','url',)
 
 
 
@@ -1872,7 +2168,7 @@
             return None
     class Meta:
         model = Account
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','site',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','site',)
 
 class AccountIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -1888,7 +2184,42 @@
             return None
     class Meta:
         model = Account
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','site',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','site',)
+
+
+
+
+class TenantRootSerializer(serializers.HyperlinkedModelSerializer):
+    id = IdField()
+    
+    humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
+    validators = serializers.SerializerMethodField("getValidators")
+    def getHumanReadableName(self, obj):
+        return str(obj)
+    def getValidators(self, obj):
+        try:
+            return obj.getValidators()
+        except:
+            return None
+    class Meta:
+        model = TenantRoot
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','kind','name','service_specific_attribute','service_specific_id',)
+
+class TenantRootIdSerializer(XOSModelSerializer):
+    id = IdField()
+    
+    humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
+    validators = serializers.SerializerMethodField("getValidators")
+    def getHumanReadableName(self, obj):
+        return str(obj)
+    def getValidators(self, obj):
+        try:
+            return obj.getValidators()
+        except:
+            return None
+    class Meta:
+        model = TenantRoot
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','kind','name','service_specific_attribute','service_specific_id',)
 
 
 
@@ -1907,7 +2238,7 @@
             return None
     class Meta:
         model = ControllerRole
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','role',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','role',)
 
 class ControllerRoleIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -1923,7 +2254,7 @@
             return None
     class Meta:
         model = ControllerRole
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','role',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','role',)
 
 
 
@@ -1942,7 +2273,7 @@
             return None
     class Meta:
         model = NetworkParameterType
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','description',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','description',)
 
 class NetworkParameterTypeIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -1958,7 +2289,7 @@
             return None
     class Meta:
         model = NetworkParameterType
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','description',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','description',)
 
 
 
@@ -1977,7 +2308,7 @@
             return None
     class Meta:
         model = SiteCredential
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','site','name','key_id','enc_value',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','site','name','key_id','enc_value',)
 
 class SiteCredentialIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -1993,7 +2324,7 @@
             return None
     class Meta:
         model = SiteCredential
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','site','name','key_id','enc_value',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','site','name','key_id','enc_value',)
 
 
 
@@ -2012,7 +2343,7 @@
             return None
     class Meta:
         model = DeploymentPrivilege
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','user','deployment','role',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','user','deployment','role',)
 
 class DeploymentPrivilegeIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -2028,7 +2359,7 @@
             return None
     class Meta:
         model = DeploymentPrivilege
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','user','deployment','role',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','user','deployment','role',)
 
 
 
@@ -2047,7 +2378,7 @@
             return None
     class Meta:
         model = ControllerSlicePrivilege
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','controller','slice_privilege','role_id',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','controller','slice_privilege','role_id',)
 
 class ControllerSlicePrivilegeIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -2063,7 +2394,7 @@
             return None
     class Meta:
         model = ControllerSlicePrivilege
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','controller','slice_privilege','role_id',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','controller','slice_privilege','role_id',)
 
 
 
@@ -2082,7 +2413,7 @@
             return None
     class Meta:
         model = SiteDeployment
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','site','deployment','controller','availability_zone',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','site','deployment','controller','availability_zone',)
 
 class SiteDeploymentIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -2098,7 +2429,7 @@
             return None
     class Meta:
         model = SiteDeployment
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','site','deployment','controller','availability_zone',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','site','deployment','controller','availability_zone',)
 
 
 
@@ -2117,7 +2448,7 @@
             return None
     class Meta:
         model = DeploymentRole
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','role',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','role',)
 
 class DeploymentRoleIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -2133,7 +2464,7 @@
             return None
     class Meta:
         model = DeploymentRole
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','role',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','role',)
 
 
 
@@ -2152,7 +2483,7 @@
             return None
     class Meta:
         model = UserCredential
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','user','name','key_id','enc_value',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','user','name','key_id','enc_value',)
 
 class UserCredentialIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -2168,7 +2499,42 @@
             return None
     class Meta:
         model = UserCredential
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','user','name','key_id','enc_value',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','user','name','key_id','enc_value',)
+
+
+
+
+class TenantRootPrivilegeSerializer(serializers.HyperlinkedModelSerializer):
+    id = IdField()
+    
+    humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
+    validators = serializers.SerializerMethodField("getValidators")
+    def getHumanReadableName(self, obj):
+        return str(obj)
+    def getValidators(self, obj):
+        try:
+            return obj.getValidators()
+        except:
+            return None
+    class Meta:
+        model = TenantRootPrivilege
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','user','tenant_root','role',)
+
+class TenantRootPrivilegeIdSerializer(XOSModelSerializer):
+    id = IdField()
+    
+    humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
+    validators = serializers.SerializerMethodField("getValidators")
+    def getHumanReadableName(self, obj):
+        return str(obj)
+    def getValidators(self, obj):
+        try:
+            return obj.getValidators()
+        except:
+            return None
+    class Meta:
+        model = TenantRootPrivilege
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','user','tenant_root','role',)
 
 
 
@@ -2187,7 +2553,7 @@
             return None
     class Meta:
         model = SliceTag
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','slice','name','value',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','slice','name','value',)
 
 class SliceTagIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -2203,12 +2569,12 @@
             return None
     class Meta:
         model = SliceTag
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','slice','name','value',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','slice','name','value',)
 
 
 
 
-class NetworkTemplateSerializer(serializers.HyperlinkedModelSerializer):
+class CoarseTenantSerializer(serializers.HyperlinkedModelSerializer):
     id = IdField()
     
     humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
@@ -2221,10 +2587,10 @@
         except:
             return None
     class Meta:
-        model = NetworkTemplate
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','description','guaranteed_bandwidth','visibility','translation','shared_network_name','shared_network_id','topology_kind','controller_kind',)
+        model = CoarseTenant
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','kind','provider_service','subscriber_service','subscriber_tenant','subscriber_user','subscriber_root','service_specific_id','service_specific_attribute','connect_method',)
 
-class NetworkTemplateIdSerializer(XOSModelSerializer):
+class CoarseTenantIdSerializer(XOSModelSerializer):
     id = IdField()
     
     humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
@@ -2237,8 +2603,8 @@
         except:
             return None
     class Meta:
-        model = NetworkTemplate
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','description','guaranteed_bandwidth','visibility','translation','shared_network_name','shared_network_id','topology_kind','controller_kind',)
+        model = CoarseTenant
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','kind','provider_service','subscriber_service','subscriber_tenant','subscriber_user','subscriber_root','service_specific_id','service_specific_attribute','connect_method',)
 
 
 
@@ -2265,7 +2631,7 @@
             return None
     class Meta:
         model = Router
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','owner','networks','networks',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','owner','networks','networks',)
 
 class RouterIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -2289,7 +2655,7 @@
             return None
     class Meta:
         model = Router
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','owner','networks','networks',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','owner','networks','networks',)
 
 
 
@@ -2308,7 +2674,7 @@
             return None
     class Meta:
         model = ServiceResource
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','serviceClass','name','maxUnitsDeployment','maxUnitsNode','maxDuration','bucketInRate','bucketMaxSize','cost','calendarReservable',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','serviceClass','name','maxUnitsDeployment','maxUnitsNode','maxDuration','bucketInRate','bucketMaxSize','cost','calendarReservable',)
 
 class ServiceResourceIdSerializer(XOSModelSerializer):
     id = IdField()
@@ -2324,13 +2690,50 @@
             return None
     class Meta:
         model = ServiceResource
-        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','serviceClass','name','maxUnitsDeployment','maxUnitsNode','maxDuration','bucketInRate','bucketMaxSize','cost','calendarReservable',)
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','serviceClass','name','maxUnitsDeployment','maxUnitsNode','maxDuration','bucketInRate','bucketMaxSize','cost','calendarReservable',)
+
+
+
+
+class ServicePrivilegeSerializer(serializers.HyperlinkedModelSerializer):
+    id = IdField()
+    
+    humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
+    validators = serializers.SerializerMethodField("getValidators")
+    def getHumanReadableName(self, obj):
+        return str(obj)
+    def getValidators(self, obj):
+        try:
+            return obj.getValidators()
+        except:
+            return None
+    class Meta:
+        model = ServicePrivilege
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','user','service','role',)
+
+class ServicePrivilegeIdSerializer(XOSModelSerializer):
+    id = IdField()
+    
+    humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
+    validators = serializers.SerializerMethodField("getValidators")
+    def getHumanReadableName(self, obj):
+        return str(obj)
+    def getValidators(self, obj):
+        try:
+            return obj.getValidators()
+        except:
+            return None
+    class Meta:
+        model = ServicePrivilege
+        fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','user','service','role',)
 
 
 
 
 serializerLookUp = {
 
+                 SiteRole: SiteRoleSerializer,
+
                  ServiceAttribute: ServiceAttributeSerializer,
 
                  ControllerImages: ControllerImagesSerializer,
@@ -2343,6 +2746,8 @@
 
                  Site: SiteSerializer,
 
+                 TenantRootRole: TenantRootRoleSerializer,
+
                  SliceRole: SliceRoleSerializer,
 
                  Tag: TagSerializer,
@@ -2369,13 +2774,17 @@
 
                  Payment: PaymentSerializer,
 
+                 Subscriber: SubscriberSerializer,
+
                  Charge: ChargeSerializer,
 
+                 Program: ProgramSerializer,
+
                  Role: RoleSerializer,
 
                  UsableObject: UsableObjectSerializer,
 
-                 SiteRole: SiteRoleSerializer,
+                 Provider: ProviderSerializer,
 
                  SliceCredential: SliceCredentialSerializer,
 
@@ -2393,12 +2802,16 @@
 
                  ReservedResource: ReservedResourceSerializer,
 
+                 NetworkTemplate: NetworkTemplateSerializer,
+
                  NetworkSlice: NetworkSliceSerializer,
 
                  UserDashboardView: UserDashboardViewSerializer,
 
                  Controller: ControllerSerializer,
 
+                 Port: PortSerializer,
+
                  User: UserSerializer,
 
                  Deployment: DeploymentSerializer,
@@ -2409,10 +2822,14 @@
 
                  ControllerSlice: ControllerSliceSerializer,
 
+                 Tenant: TenantSerializer,
+
                  ControllerDashboardView: ControllerDashboardViewSerializer,
 
                  Account: AccountSerializer,
 
+                 TenantRoot: TenantRootSerializer,
+
                  ControllerRole: ControllerRoleSerializer,
 
                  NetworkParameterType: NetworkParameterTypeSerializer,
@@ -2429,26 +2846,77 @@
 
                  UserCredential: UserCredentialSerializer,
 
+                 TenantRootPrivilege: TenantRootPrivilegeSerializer,
+
                  SliceTag: SliceTagSerializer,
 
-                 NetworkTemplate: NetworkTemplateSerializer,
+                 CoarseTenant: CoarseTenantSerializer,
 
                  Router: RouterSerializer,
 
                  ServiceResource: ServiceResourceSerializer,
 
+                 ServicePrivilege: ServicePrivilegeSerializer,
+
                  None: None,
                 }
 
 # Based on core/views/*.py
 
 
+class SiteRoleList(XOSListCreateAPIView):
+    queryset = SiteRole.objects.select_related().all()
+    serializer_class = SiteRoleSerializer
+    id_serializer_class = SiteRoleIdSerializer
+    filter_backends = (filters.DjangoFilterBackend,)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','role',)
+
+    def get_serializer_class(self):
+        no_hyperlinks=False
+        if hasattr(self.request,"QUERY_PARAMS"):
+            no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
+        if (no_hyperlinks):
+            return self.id_serializer_class
+        else:
+            return self.serializer_class
+
+    def get_queryset(self):
+        if (not self.request.user.is_authenticated()):
+            raise XOSNotAuthenticated()
+        return SiteRole.select_by_user(self.request.user)
+
+
+class SiteRoleDetail(XOSRetrieveUpdateDestroyAPIView):
+    queryset = SiteRole.objects.select_related().all()
+    serializer_class = SiteRoleSerializer
+    id_serializer_class = SiteRoleIdSerializer
+
+    def get_serializer_class(self):
+        no_hyperlinks=False
+        if hasattr(self.request,"QUERY_PARAMS"):
+            no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
+        if (no_hyperlinks):
+            return self.id_serializer_class
+        else:
+            return self.serializer_class
+
+    def get_queryset(self):
+        if (not self.request.user.is_authenticated()):
+            raise XOSNotAuthenticated()
+        return SiteRole.select_by_user(self.request.user)
+
+    # update() is handled by XOSRetrieveUpdateDestroyAPIView
+
+    # destroy() is handled by XOSRetrieveUpdateDestroyAPIView
+
+
+
 class ServiceAttributeList(XOSListCreateAPIView):
     queryset = ServiceAttribute.objects.select_related().all()
     serializer_class = ServiceAttributeSerializer
     id_serializer_class = ServiceAttributeIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','value','service',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','value','service',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -2495,7 +2963,7 @@
     serializer_class = ControllerImagesSerializer
     id_serializer_class = ControllerImagesIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','image','controller','glance_image_id',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','image','controller','glance_image_id',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -2542,7 +3010,7 @@
     serializer_class = ControllerSitePrivilegeSerializer
     id_serializer_class = ControllerSitePrivilegeIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','controller','site_privilege','role_id',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','controller','site_privilege','role_id',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -2589,7 +3057,7 @@
     serializer_class = ImageSerializer
     id_serializer_class = ImageIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','disk_format','container_format','path','deployments',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','disk_format','container_format','path','deployments',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -2636,7 +3104,7 @@
     serializer_class = NetworkParameterSerializer
     id_serializer_class = NetworkParameterIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','parameter','value','content_type','object_id',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','parameter','value','content_type','object_id',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -2683,7 +3151,7 @@
     serializer_class = SiteSerializer
     id_serializer_class = SiteIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','site_url','enabled','location','longitude','latitude','login_base','is_public','abbreviated_name','deployments',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','site_url','enabled','hosts_nodes','hosts_users','location','longitude','latitude','login_base','is_public','abbreviated_name','deployments',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -2725,12 +3193,59 @@
 
 
 
+class TenantRootRoleList(XOSListCreateAPIView):
+    queryset = TenantRootRole.objects.select_related().all()
+    serializer_class = TenantRootRoleSerializer
+    id_serializer_class = TenantRootRoleIdSerializer
+    filter_backends = (filters.DjangoFilterBackend,)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','role',)
+
+    def get_serializer_class(self):
+        no_hyperlinks=False
+        if hasattr(self.request,"QUERY_PARAMS"):
+            no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
+        if (no_hyperlinks):
+            return self.id_serializer_class
+        else:
+            return self.serializer_class
+
+    def get_queryset(self):
+        if (not self.request.user.is_authenticated()):
+            raise XOSNotAuthenticated()
+        return TenantRootRole.select_by_user(self.request.user)
+
+
+class TenantRootRoleDetail(XOSRetrieveUpdateDestroyAPIView):
+    queryset = TenantRootRole.objects.select_related().all()
+    serializer_class = TenantRootRoleSerializer
+    id_serializer_class = TenantRootRoleIdSerializer
+
+    def get_serializer_class(self):
+        no_hyperlinks=False
+        if hasattr(self.request,"QUERY_PARAMS"):
+            no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
+        if (no_hyperlinks):
+            return self.id_serializer_class
+        else:
+            return self.serializer_class
+
+    def get_queryset(self):
+        if (not self.request.user.is_authenticated()):
+            raise XOSNotAuthenticated()
+        return TenantRootRole.select_by_user(self.request.user)
+
+    # update() is handled by XOSRetrieveUpdateDestroyAPIView
+
+    # destroy() is handled by XOSRetrieveUpdateDestroyAPIView
+
+
+
 class SliceRoleList(XOSListCreateAPIView):
     queryset = SliceRole.objects.select_related().all()
     serializer_class = SliceRoleSerializer
     id_serializer_class = SliceRoleIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','role',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','role',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -2777,7 +3292,7 @@
     serializer_class = TagSerializer
     id_serializer_class = TagIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','service','name','value','content_type','object_id',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','service','name','value','content_type','object_id',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -2824,7 +3339,7 @@
     serializer_class = InvoiceSerializer
     id_serializer_class = InvoiceIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','date','account',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','date','account',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -2871,7 +3386,7 @@
     serializer_class = SlicePrivilegeSerializer
     id_serializer_class = SlicePrivilegeIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','user','slice','role',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','user','slice','role',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -2918,7 +3433,7 @@
     serializer_class = NetworkInstanceSerializer
     id_serializer_class = NetworkInstanceIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','network','instance','ip','port_id',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','network','instance','ip','port_id',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -2965,7 +3480,7 @@
     serializer_class = FlavorSerializer
     id_serializer_class = FlavorIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','description','flavor','order','default','deployments',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','description','flavor','order','default','deployments',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -3012,7 +3527,7 @@
     serializer_class = ControllerSiteSerializer
     id_serializer_class = ControllerSiteIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','site','controller','tenant_id',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','site','controller','tenant_id',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -3059,7 +3574,7 @@
     serializer_class = ProjectSerializer
     id_serializer_class = ProjectIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','name',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -3106,7 +3621,7 @@
     serializer_class = SliceSerializer
     id_serializer_class = SliceIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','enabled','omf_friendly','description','slice_url','site','max_instances','service','network','serviceClass','creator','default_flavor','default_image','mount_data_sets','networks','networks',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','enabled','omf_friendly','description','slice_url','site','max_instances','service','network','serviceClass','creator','default_flavor','default_image','mount_data_sets','networks','networks',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -3153,7 +3668,7 @@
     serializer_class = NetworkSerializer
     id_serializer_class = NetworkIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','template','subnet','ports','labels','owner','guaranteed_bandwidth','permit_all_slices','topology_parameters','controller_url','controller_parameters','network_id','router_id','subnet_id','slices','slices','instances','routers','routers',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','template','subnet','ports','labels','owner','guaranteed_bandwidth','permit_all_slices','topology_parameters','controller_url','controller_parameters','network_id','router_id','subnet_id','autoconnect','slices','slices','instances','routers','routers',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -3200,7 +3715,7 @@
     serializer_class = ServiceSerializer
     id_serializer_class = ServiceIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','description','enabled','name','versionNumber','published',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','description','enabled','kind','name','versionNumber','published','view_url','icon_url','public_key','service_specific_id','service_specific_attribute',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -3247,7 +3762,7 @@
     serializer_class = ServiceClassSerializer
     id_serializer_class = ServiceClassIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','description','commitment','membershipFee','membershipFeeMonths','upgradeRequiresApproval',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','description','commitment','membershipFee','membershipFeeMonths','upgradeRequiresApproval',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -3294,7 +3809,7 @@
     serializer_class = PaymentSerializer
     id_serializer_class = PaymentIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','account','amount','date',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','account','amount','date',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -3336,12 +3851,59 @@
 
 
 
+class SubscriberList(XOSListCreateAPIView):
+    queryset = Subscriber.objects.select_related().all()
+    serializer_class = SubscriberSerializer
+    id_serializer_class = SubscriberIdSerializer
+    filter_backends = (filters.DjangoFilterBackend,)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','kind','name','service_specific_attribute','service_specific_id',)
+
+    def get_serializer_class(self):
+        no_hyperlinks=False
+        if hasattr(self.request,"QUERY_PARAMS"):
+            no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
+        if (no_hyperlinks):
+            return self.id_serializer_class
+        else:
+            return self.serializer_class
+
+    def get_queryset(self):
+        if (not self.request.user.is_authenticated()):
+            raise XOSNotAuthenticated()
+        return Subscriber.select_by_user(self.request.user)
+
+
+class SubscriberDetail(XOSRetrieveUpdateDestroyAPIView):
+    queryset = Subscriber.objects.select_related().all()
+    serializer_class = SubscriberSerializer
+    id_serializer_class = SubscriberIdSerializer
+
+    def get_serializer_class(self):
+        no_hyperlinks=False
+        if hasattr(self.request,"QUERY_PARAMS"):
+            no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
+        if (no_hyperlinks):
+            return self.id_serializer_class
+        else:
+            return self.serializer_class
+
+    def get_queryset(self):
+        if (not self.request.user.is_authenticated()):
+            raise XOSNotAuthenticated()
+        return Subscriber.select_by_user(self.request.user)
+
+    # update() is handled by XOSRetrieveUpdateDestroyAPIView
+
+    # destroy() is handled by XOSRetrieveUpdateDestroyAPIView
+
+
+
 class ChargeList(XOSListCreateAPIView):
     queryset = Charge.objects.select_related().all()
     serializer_class = ChargeSerializer
     id_serializer_class = ChargeIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','account','slice','kind','state','date','object','amount','coreHours','invoice',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','account','slice','kind','state','date','object','amount','coreHours','invoice',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -3383,12 +3945,59 @@
 
 
 
+class ProgramList(XOSListCreateAPIView):
+    queryset = Program.objects.select_related().all()
+    serializer_class = ProgramSerializer
+    id_serializer_class = ProgramIdSerializer
+    filter_backends = (filters.DjangoFilterBackend,)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','description','kind','command','owner','contents','output','messages','status',)
+
+    def get_serializer_class(self):
+        no_hyperlinks=False
+        if hasattr(self.request,"QUERY_PARAMS"):
+            no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
+        if (no_hyperlinks):
+            return self.id_serializer_class
+        else:
+            return self.serializer_class
+
+    def get_queryset(self):
+        if (not self.request.user.is_authenticated()):
+            raise XOSNotAuthenticated()
+        return Program.select_by_user(self.request.user)
+
+
+class ProgramDetail(XOSRetrieveUpdateDestroyAPIView):
+    queryset = Program.objects.select_related().all()
+    serializer_class = ProgramSerializer
+    id_serializer_class = ProgramIdSerializer
+
+    def get_serializer_class(self):
+        no_hyperlinks=False
+        if hasattr(self.request,"QUERY_PARAMS"):
+            no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
+        if (no_hyperlinks):
+            return self.id_serializer_class
+        else:
+            return self.serializer_class
+
+    def get_queryset(self):
+        if (not self.request.user.is_authenticated()):
+            raise XOSNotAuthenticated()
+        return Program.select_by_user(self.request.user)
+
+    # update() is handled by XOSRetrieveUpdateDestroyAPIView
+
+    # destroy() is handled by XOSRetrieveUpdateDestroyAPIView
+
+
+
 class RoleList(XOSListCreateAPIView):
     queryset = Role.objects.select_related().all()
     serializer_class = RoleSerializer
     id_serializer_class = RoleIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','role_type','role','description','content_type',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','role_type','role','description','content_type',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -3435,7 +4044,7 @@
     serializer_class = UsableObjectSerializer
     id_serializer_class = UsableObjectIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','name',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -3477,12 +4086,12 @@
 
 
 
-class SiteRoleList(XOSListCreateAPIView):
-    queryset = SiteRole.objects.select_related().all()
-    serializer_class = SiteRoleSerializer
-    id_serializer_class = SiteRoleIdSerializer
+class ProviderList(XOSListCreateAPIView):
+    queryset = Provider.objects.select_related().all()
+    serializer_class = ProviderSerializer
+    id_serializer_class = ProviderIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','role',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','kind','name','service_specific_attribute','service_specific_id',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -3496,13 +4105,13 @@
     def get_queryset(self):
         if (not self.request.user.is_authenticated()):
             raise XOSNotAuthenticated()
-        return SiteRole.select_by_user(self.request.user)
+        return Provider.select_by_user(self.request.user)
 
 
-class SiteRoleDetail(XOSRetrieveUpdateDestroyAPIView):
-    queryset = SiteRole.objects.select_related().all()
-    serializer_class = SiteRoleSerializer
-    id_serializer_class = SiteRoleIdSerializer
+class ProviderDetail(XOSRetrieveUpdateDestroyAPIView):
+    queryset = Provider.objects.select_related().all()
+    serializer_class = ProviderSerializer
+    id_serializer_class = ProviderIdSerializer
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -3516,7 +4125,7 @@
     def get_queryset(self):
         if (not self.request.user.is_authenticated()):
             raise XOSNotAuthenticated()
-        return SiteRole.select_by_user(self.request.user)
+        return Provider.select_by_user(self.request.user)
 
     # update() is handled by XOSRetrieveUpdateDestroyAPIView
 
@@ -3529,7 +4138,7 @@
     serializer_class = SliceCredentialSerializer
     id_serializer_class = SliceCredentialIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','slice','name','key_id','enc_value',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','slice','name','key_id','enc_value',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -3576,7 +4185,7 @@
     serializer_class = InstanceSerializer
     id_serializer_class = InstanceIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','instance_id','instance_uuid','name','instance_name','ip','image','creator','slice','deployment','node','numberCores','flavor','userData','networks',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','instance_id','instance_uuid','name','instance_name','ip','image','creator','slice','deployment','node','numberCores','flavor','userData','networks',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -3623,7 +4232,7 @@
     serializer_class = NodeSerializer
     id_serializer_class = NodeIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','site_deployment','site',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','site_deployment','site',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -3670,7 +4279,7 @@
     serializer_class = DashboardViewSerializer
     id_serializer_class = DashboardViewIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','url','enabled','controllers','deployments',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','url','enabled','controllers','deployments',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -3717,7 +4326,7 @@
     serializer_class = ControllerNetworkSerializer
     id_serializer_class = ControllerNetworkIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','network','controller','net_id','router_id','subnet_id','subnet',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','network','controller','net_id','router_id','subnet_id','subnet',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -3764,7 +4373,7 @@
     serializer_class = ImageDeploymentsSerializer
     id_serializer_class = ImageDeploymentsIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','image','deployment',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','image','deployment',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -3811,7 +4420,7 @@
     serializer_class = ControllerUserSerializer
     id_serializer_class = ControllerUserIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','user','controller','kuser_id',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','user','controller','kuser_id',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -3858,7 +4467,7 @@
     serializer_class = ReservedResourceSerializer
     id_serializer_class = ReservedResourceIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','instance','resource','quantity','reservationSet',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','instance','resource','quantity','reservationSet',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -3900,12 +4509,59 @@
 
 
 
+class NetworkTemplateList(XOSListCreateAPIView):
+    queryset = NetworkTemplate.objects.select_related().all()
+    serializer_class = NetworkTemplateSerializer
+    id_serializer_class = NetworkTemplateIdSerializer
+    filter_backends = (filters.DjangoFilterBackend,)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','description','guaranteed_bandwidth','visibility','translation','shared_network_name','shared_network_id','topology_kind','controller_kind',)
+
+    def get_serializer_class(self):
+        no_hyperlinks=False
+        if hasattr(self.request,"QUERY_PARAMS"):
+            no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
+        if (no_hyperlinks):
+            return self.id_serializer_class
+        else:
+            return self.serializer_class
+
+    def get_queryset(self):
+        if (not self.request.user.is_authenticated()):
+            raise XOSNotAuthenticated()
+        return NetworkTemplate.select_by_user(self.request.user)
+
+
+class NetworkTemplateDetail(XOSRetrieveUpdateDestroyAPIView):
+    queryset = NetworkTemplate.objects.select_related().all()
+    serializer_class = NetworkTemplateSerializer
+    id_serializer_class = NetworkTemplateIdSerializer
+
+    def get_serializer_class(self):
+        no_hyperlinks=False
+        if hasattr(self.request,"QUERY_PARAMS"):
+            no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
+        if (no_hyperlinks):
+            return self.id_serializer_class
+        else:
+            return self.serializer_class
+
+    def get_queryset(self):
+        if (not self.request.user.is_authenticated()):
+            raise XOSNotAuthenticated()
+        return NetworkTemplate.select_by_user(self.request.user)
+
+    # update() is handled by XOSRetrieveUpdateDestroyAPIView
+
+    # destroy() is handled by XOSRetrieveUpdateDestroyAPIView
+
+
+
 class NetworkSliceList(XOSListCreateAPIView):
     queryset = NetworkSlice.objects.select_related().all()
     serializer_class = NetworkSliceSerializer
     id_serializer_class = NetworkSliceIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','network','slice',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','network','slice',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -3952,7 +4608,7 @@
     serializer_class = UserDashboardViewSerializer
     id_serializer_class = UserDashboardViewIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','user','dashboardView','order',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','user','dashboardView','order',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -3999,7 +4655,7 @@
     serializer_class = ControllerSerializer
     id_serializer_class = ControllerIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','backend_type','version','auth_url','admin_user','admin_password','admin_tenant','domain','deployment','dashboardviews',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','backend_type','version','auth_url','admin_user','admin_password','admin_tenant','domain','deployment','dashboardviews',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -4041,12 +4697,59 @@
 
 
 
+class PortList(XOSListCreateAPIView):
+    queryset = Port.objects.select_related().all()
+    serializer_class = PortSerializer
+    id_serializer_class = PortIdSerializer
+    filter_backends = (filters.DjangoFilterBackend,)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','network','instance','ip','port_id',)
+
+    def get_serializer_class(self):
+        no_hyperlinks=False
+        if hasattr(self.request,"QUERY_PARAMS"):
+            no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
+        if (no_hyperlinks):
+            return self.id_serializer_class
+        else:
+            return self.serializer_class
+
+    def get_queryset(self):
+        if (not self.request.user.is_authenticated()):
+            raise XOSNotAuthenticated()
+        return Port.select_by_user(self.request.user)
+
+
+class PortDetail(XOSRetrieveUpdateDestroyAPIView):
+    queryset = Port.objects.select_related().all()
+    serializer_class = PortSerializer
+    id_serializer_class = PortIdSerializer
+
+    def get_serializer_class(self):
+        no_hyperlinks=False
+        if hasattr(self.request,"QUERY_PARAMS"):
+            no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
+        if (no_hyperlinks):
+            return self.id_serializer_class
+        else:
+            return self.serializer_class
+
+    def get_queryset(self):
+        if (not self.request.user.is_authenticated()):
+            raise XOSNotAuthenticated()
+        return Port.select_by_user(self.request.user)
+
+    # update() is handled by XOSRetrieveUpdateDestroyAPIView
+
+    # destroy() is handled by XOSRetrieveUpdateDestroyAPIView
+
+
+
 class UserList(XOSListCreateAPIView):
     queryset = User.objects.select_related().all()
     serializer_class = UserSerializer
     id_serializer_class = UserIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','password','last_login','email','username','firstname','lastname','phone','user_url','site','public_key','is_active','is_admin','is_staff','is_readonly','is_registering','created','updated','enacted','policed','backend_status','deleted','timezone',)
+    filter_fields = ('id','password','last_login','email','username','firstname','lastname','phone','user_url','site','public_key','is_active','is_admin','is_staff','is_readonly','is_registering','is_appuser','login_page','created','updated','enacted','policed','backend_status','deleted','write_protect','timezone',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -4093,7 +4796,7 @@
     serializer_class = DeploymentSerializer
     id_serializer_class = DeploymentIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','accessControl','images','sites','flavors','dashboardviews',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','accessControl','images','sites','flavors','dashboardviews',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -4140,7 +4843,7 @@
     serializer_class = ReservationSerializer
     id_serializer_class = ReservationIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','startTime','slice','duration',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','startTime','slice','duration',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -4187,7 +4890,7 @@
     serializer_class = SitePrivilegeSerializer
     id_serializer_class = SitePrivilegeIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','user','site','role',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','user','site','role',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -4234,7 +4937,7 @@
     serializer_class = ControllerSliceSerializer
     id_serializer_class = ControllerSliceIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','controller','slice','tenant_id',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','controller','slice','tenant_id',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -4276,12 +4979,59 @@
 
 
 
+class TenantList(XOSListCreateAPIView):
+    queryset = Tenant.objects.select_related().all()
+    serializer_class = TenantSerializer
+    id_serializer_class = TenantIdSerializer
+    filter_backends = (filters.DjangoFilterBackend,)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','kind','provider_service','subscriber_service','subscriber_tenant','subscriber_user','subscriber_root','service_specific_id','service_specific_attribute','connect_method',)
+
+    def get_serializer_class(self):
+        no_hyperlinks=False
+        if hasattr(self.request,"QUERY_PARAMS"):
+            no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
+        if (no_hyperlinks):
+            return self.id_serializer_class
+        else:
+            return self.serializer_class
+
+    def get_queryset(self):
+        if (not self.request.user.is_authenticated()):
+            raise XOSNotAuthenticated()
+        return Tenant.select_by_user(self.request.user)
+
+
+class TenantDetail(XOSRetrieveUpdateDestroyAPIView):
+    queryset = Tenant.objects.select_related().all()
+    serializer_class = TenantSerializer
+    id_serializer_class = TenantIdSerializer
+
+    def get_serializer_class(self):
+        no_hyperlinks=False
+        if hasattr(self.request,"QUERY_PARAMS"):
+            no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
+        if (no_hyperlinks):
+            return self.id_serializer_class
+        else:
+            return self.serializer_class
+
+    def get_queryset(self):
+        if (not self.request.user.is_authenticated()):
+            raise XOSNotAuthenticated()
+        return Tenant.select_by_user(self.request.user)
+
+    # update() is handled by XOSRetrieveUpdateDestroyAPIView
+
+    # destroy() is handled by XOSRetrieveUpdateDestroyAPIView
+
+
+
 class ControllerDashboardViewList(XOSListCreateAPIView):
     queryset = ControllerDashboardView.objects.select_related().all()
     serializer_class = ControllerDashboardViewSerializer
     id_serializer_class = ControllerDashboardViewIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','controller','dashboardView','enabled','url',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','controller','dashboardView','enabled','url',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -4328,7 +5078,7 @@
     serializer_class = AccountSerializer
     id_serializer_class = AccountIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','site',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','site',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -4370,12 +5120,59 @@
 
 
 
+class TenantRootList(XOSListCreateAPIView):
+    queryset = TenantRoot.objects.select_related().all()
+    serializer_class = TenantRootSerializer
+    id_serializer_class = TenantRootIdSerializer
+    filter_backends = (filters.DjangoFilterBackend,)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','kind','name','service_specific_attribute','service_specific_id',)
+
+    def get_serializer_class(self):
+        no_hyperlinks=False
+        if hasattr(self.request,"QUERY_PARAMS"):
+            no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
+        if (no_hyperlinks):
+            return self.id_serializer_class
+        else:
+            return self.serializer_class
+
+    def get_queryset(self):
+        if (not self.request.user.is_authenticated()):
+            raise XOSNotAuthenticated()
+        return TenantRoot.select_by_user(self.request.user)
+
+
+class TenantRootDetail(XOSRetrieveUpdateDestroyAPIView):
+    queryset = TenantRoot.objects.select_related().all()
+    serializer_class = TenantRootSerializer
+    id_serializer_class = TenantRootIdSerializer
+
+    def get_serializer_class(self):
+        no_hyperlinks=False
+        if hasattr(self.request,"QUERY_PARAMS"):
+            no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
+        if (no_hyperlinks):
+            return self.id_serializer_class
+        else:
+            return self.serializer_class
+
+    def get_queryset(self):
+        if (not self.request.user.is_authenticated()):
+            raise XOSNotAuthenticated()
+        return TenantRoot.select_by_user(self.request.user)
+
+    # update() is handled by XOSRetrieveUpdateDestroyAPIView
+
+    # destroy() is handled by XOSRetrieveUpdateDestroyAPIView
+
+
+
 class ControllerRoleList(XOSListCreateAPIView):
     queryset = ControllerRole.objects.select_related().all()
     serializer_class = ControllerRoleSerializer
     id_serializer_class = ControllerRoleIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','role',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','role',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -4422,7 +5219,7 @@
     serializer_class = NetworkParameterTypeSerializer
     id_serializer_class = NetworkParameterTypeIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','description',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','description',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -4469,7 +5266,7 @@
     serializer_class = SiteCredentialSerializer
     id_serializer_class = SiteCredentialIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','site','name','key_id','enc_value',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','site','name','key_id','enc_value',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -4516,7 +5313,7 @@
     serializer_class = DeploymentPrivilegeSerializer
     id_serializer_class = DeploymentPrivilegeIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','user','deployment','role',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','user','deployment','role',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -4563,7 +5360,7 @@
     serializer_class = ControllerSlicePrivilegeSerializer
     id_serializer_class = ControllerSlicePrivilegeIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','controller','slice_privilege','role_id',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','controller','slice_privilege','role_id',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -4610,7 +5407,7 @@
     serializer_class = SiteDeploymentSerializer
     id_serializer_class = SiteDeploymentIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','site','deployment','controller','availability_zone',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','site','deployment','controller','availability_zone',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -4657,7 +5454,7 @@
     serializer_class = DeploymentRoleSerializer
     id_serializer_class = DeploymentRoleIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','role',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','role',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -4704,7 +5501,7 @@
     serializer_class = UserCredentialSerializer
     id_serializer_class = UserCredentialIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','user','name','key_id','enc_value',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','user','name','key_id','enc_value',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -4746,12 +5543,59 @@
 
 
 
+class TenantRootPrivilegeList(XOSListCreateAPIView):
+    queryset = TenantRootPrivilege.objects.select_related().all()
+    serializer_class = TenantRootPrivilegeSerializer
+    id_serializer_class = TenantRootPrivilegeIdSerializer
+    filter_backends = (filters.DjangoFilterBackend,)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','user','tenant_root','role',)
+
+    def get_serializer_class(self):
+        no_hyperlinks=False
+        if hasattr(self.request,"QUERY_PARAMS"):
+            no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
+        if (no_hyperlinks):
+            return self.id_serializer_class
+        else:
+            return self.serializer_class
+
+    def get_queryset(self):
+        if (not self.request.user.is_authenticated()):
+            raise XOSNotAuthenticated()
+        return TenantRootPrivilege.select_by_user(self.request.user)
+
+
+class TenantRootPrivilegeDetail(XOSRetrieveUpdateDestroyAPIView):
+    queryset = TenantRootPrivilege.objects.select_related().all()
+    serializer_class = TenantRootPrivilegeSerializer
+    id_serializer_class = TenantRootPrivilegeIdSerializer
+
+    def get_serializer_class(self):
+        no_hyperlinks=False
+        if hasattr(self.request,"QUERY_PARAMS"):
+            no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
+        if (no_hyperlinks):
+            return self.id_serializer_class
+        else:
+            return self.serializer_class
+
+    def get_queryset(self):
+        if (not self.request.user.is_authenticated()):
+            raise XOSNotAuthenticated()
+        return TenantRootPrivilege.select_by_user(self.request.user)
+
+    # update() is handled by XOSRetrieveUpdateDestroyAPIView
+
+    # destroy() is handled by XOSRetrieveUpdateDestroyAPIView
+
+
+
 class SliceTagList(XOSListCreateAPIView):
     queryset = SliceTag.objects.select_related().all()
     serializer_class = SliceTagSerializer
     id_serializer_class = SliceTagIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','slice','name','value',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','slice','name','value',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -4793,12 +5637,12 @@
 
 
 
-class NetworkTemplateList(XOSListCreateAPIView):
-    queryset = NetworkTemplate.objects.select_related().all()
-    serializer_class = NetworkTemplateSerializer
-    id_serializer_class = NetworkTemplateIdSerializer
+class CoarseTenantList(XOSListCreateAPIView):
+    queryset = CoarseTenant.objects.select_related().all()
+    serializer_class = CoarseTenantSerializer
+    id_serializer_class = CoarseTenantIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','description','guaranteed_bandwidth','visibility','translation','shared_network_name','shared_network_id','topology_kind','controller_kind',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','kind','provider_service','subscriber_service','subscriber_tenant','subscriber_user','subscriber_root','service_specific_id','service_specific_attribute','connect_method',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -4812,13 +5656,13 @@
     def get_queryset(self):
         if (not self.request.user.is_authenticated()):
             raise XOSNotAuthenticated()
-        return NetworkTemplate.select_by_user(self.request.user)
+        return CoarseTenant.select_by_user(self.request.user)
 
 
-class NetworkTemplateDetail(XOSRetrieveUpdateDestroyAPIView):
-    queryset = NetworkTemplate.objects.select_related().all()
-    serializer_class = NetworkTemplateSerializer
-    id_serializer_class = NetworkTemplateIdSerializer
+class CoarseTenantDetail(XOSRetrieveUpdateDestroyAPIView):
+    queryset = CoarseTenant.objects.select_related().all()
+    serializer_class = CoarseTenantSerializer
+    id_serializer_class = CoarseTenantIdSerializer
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -4832,7 +5676,7 @@
     def get_queryset(self):
         if (not self.request.user.is_authenticated()):
             raise XOSNotAuthenticated()
-        return NetworkTemplate.select_by_user(self.request.user)
+        return CoarseTenant.select_by_user(self.request.user)
 
     # update() is handled by XOSRetrieveUpdateDestroyAPIView
 
@@ -4845,7 +5689,7 @@
     serializer_class = RouterSerializer
     id_serializer_class = RouterIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','name','owner','networks','networks',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','name','owner','networks','networks',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -4892,7 +5736,7 @@
     serializer_class = ServiceResourceSerializer
     id_serializer_class = ServiceResourceIdSerializer
     filter_backends = (filters.DjangoFilterBackend,)
-    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','serviceClass','name','maxUnitsDeployment','maxUnitsNode','maxDuration','bucketInRate','bucketMaxSize','cost','calendarReservable',)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','serviceClass','name','maxUnitsDeployment','maxUnitsNode','maxDuration','bucketInRate','bucketMaxSize','cost','calendarReservable',)
 
     def get_serializer_class(self):
         no_hyperlinks=False
@@ -4934,3 +5778,47 @@
 
 
 
+class ServicePrivilegeList(XOSListCreateAPIView):
+    queryset = ServicePrivilege.objects.select_related().all()
+    serializer_class = ServicePrivilegeSerializer
+    id_serializer_class = ServicePrivilegeIdSerializer
+    filter_backends = (filters.DjangoFilterBackend,)
+    filter_fields = ('id','created','updated','enacted','policed','backend_register','backend_status','deleted','write_protect','lazy_blocked','no_sync','user','service','role',)
+
+    def get_serializer_class(self):
+        no_hyperlinks=False
+        if hasattr(self.request,"QUERY_PARAMS"):
+            no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
+        if (no_hyperlinks):
+            return self.id_serializer_class
+        else:
+            return self.serializer_class
+
+    def get_queryset(self):
+        if (not self.request.user.is_authenticated()):
+            raise XOSNotAuthenticated()
+        return ServicePrivilege.select_by_user(self.request.user)
+
+
+class ServicePrivilegeDetail(XOSRetrieveUpdateDestroyAPIView):
+    queryset = ServicePrivilege.objects.select_related().all()
+    serializer_class = ServicePrivilegeSerializer
+    id_serializer_class = ServicePrivilegeIdSerializer
+
+    def get_serializer_class(self):
+        no_hyperlinks=False
+        if hasattr(self.request,"QUERY_PARAMS"):
+            no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
+        if (no_hyperlinks):
+            return self.id_serializer_class
+        else:
+            return self.serializer_class
+
+    def get_queryset(self):
+        if (not self.request.user.is_authenticated()):
+            raise XOSNotAuthenticated()
+        return ServicePrivilege.select_by_user(self.request.user)
+
+    # update() is handled by XOSRetrieveUpdateDestroyAPIView
+
+    # destroy() is handled by XOSRetrieveUpdateDestroyAPIView