Merge branch 'master' of github.com:open-cloud/xos
diff --git a/xos/tosca/custom_types/xos.m4 b/xos/tosca/custom_types/xos.m4
index 1a5bee1..b929eda 100644
--- a/xos/tosca/custom_types/xos.m4
+++ b/xos/tosca/custom_types/xos.m4
@@ -8,11 +8,11 @@
             no-delete:
                 type: boolean
                 default: false
-                description: do not allow Tosca to delete this object
+                description: Do not allow Tosca to delete this object
             no-create:
                 type: boolean
                 default: false
-                description: do not allow Tosca to create this object)
+                description: Do not allow Tosca to create this object)
 # Service
 define(xos_base_service_caps,
             scalable:
@@ -23,24 +23,30 @@
             kind:
                 type: string
                 default: generic
+                description: Type of service.
             view_url:
                 type: string
                 required: false
+                description: URL to follow when icon is clicked in the Service Directory.
             icon_url:
                 type: string
                 required: false
+                description: ICON to display in the Service Directory.
             enabled:
                 type: boolean
                 default: true
             published:
                 type: boolean
                 default: true
+                description: If True then display this Service in the Service Directory.
             public_key:
                 type: string
                 required: false
+                description: Public key to install into Instances to allows Services to SSH into them.
             versionNumber:
                 type: string
-                required: false)
+                required: false
+                description: Version number of Service.)
 # Subscriber
 define(xos_base_subscriber_caps,
             subscriber:
@@ -67,12 +73,17 @@
 node_types:
     tosca.nodes.Service:
         derived_from: tosca.nodes.Root
+        description: >
+            An XOS Service object. Services may be listed in the Service
+            directory and may be linked together via Tenancy Relationships.
         capabilities:
             xos_base_service_caps
         properties:
             xos_base_service_props
 
     tosca.nodes.VCPEService:
+        description: >
+            CORD: The vCPE Service.
         derived_from: tosca.nodes.Root
         capabilities:
             xos_base_service_caps
@@ -81,9 +92,12 @@
             backend_network_label:
                 type: string
                 required: false
+                description: Label that matches network used to connect HPC and BBS services.
 
     tosca.nodes.VBNGService:
         derived_from: tosca.nodes.Root
+        description: >
+            CORD: The vBNG Service.
         capabilities:
             xos_base_service_caps
         properties:
@@ -91,9 +105,12 @@
             vbng_url:
                 type: string
                 required: false
+                description: URL of REST API endpoint for vBNG Service.
 
     tosca.nodes.CDNService:
         derived_from: tosca.nodes.Root
+        description: >
+            Content Delivery Network Service. Includes Request Routing and Hypercache.
         capabilities:
             xos_base_service_caps
         properties:
@@ -101,6 +118,7 @@
 
     tosca.nodes.Subscriber:
         derived_from: tosca.nodes.Root
+        description: XOS subscriber base class.
         capabilities:
             xos_base_subscriber_caps
         properties:
@@ -108,6 +126,10 @@
 
     tosca.nodes.CORDSubscriber:
         derived_from: tosca.nodes.Root
+        description: >
+            CORD: Subscriber. The Subscriber object contains all of the settings
+            for a CORD household. For example, it contains parental control
+            filter settings.
         capabilities:
             xos_base_subscriber_caps
         properties:
@@ -115,37 +137,54 @@
             firewall_enable:
                 type: boolean
                 default: false
+                description: If True, then firewalling is enabled.
             url_filter_enable:
                 type: boolean
                 default: false
+                description: If True, then parental controls are enabled.
             url_filter_level:
                 type: string
                 default: PG
+                description: The default URL filter level for the household.
             cdn_enable:
                 type: boolean
                 default: true
+                description: If True, then the CDN is enabled.
 
     tosca.nodes.CORDUser:
         derived_from: tosca.nodes.Root
+        description: >
+            CORD: User. The CORD user represents an individual device beloning
+            to the CORD Subscriber. Each device may have its own parental
+            controls.
         properties:
             level:
                 type: string
                 default: PG_13
+                description: Parental control level for this device.
             mac:
                 type: string
                 required: true
+                description: MAC address for this device.
 
     tosca.nodes.VOLTTenant:
         derived_from: tosca.nodes.Root
+        description: >
+            CORD: A Tenant of the vOLT Service. Each Tenant is tied to a
+            specific vlan_id.
         properties:
             xos_base_tenant_props
             vlan_id:
                 type: string
                 required: false
+                description: vlan_id for connection to subscriber household.
 
     tosca.nodes.User:
         derived_from: tosca.nodes.Root
 
+        description: >
+            An XOS User record. Users are able to login and use the XOS GUI.
+
         capabilities:
             user:
                 type: tosca.capabilities.xos.User
@@ -157,31 +196,43 @@
             firstname:
                 type: string
                 required: true
+                description: First name of User.
             lastname:
                 type: string
                 required: true
+                description: Last name of User.
             phone:
                 type: string
                 required: false
+                description: Phone number of User.
             user_url:
                 type: string
                 required: false
+                description: URL to User web page.
             public_key:
                 type: string
                 required: false
+                description: Public key that will be installed in Instances.
             is_active:
                 type: boolean
                 default: true
+                description: If True, the user may log in.
             is_admin:
                 type: boolean
                 default: false
+                description: If True, the user has root admin privileges.
             login_page:
                 type: string
                 required: false
+                description: Indicates what page the user should go to on login.
 
     tosca.nodes.NetworkTemplate:
         derived_from: tosca.nodes.Root
 
+        description: >
+            An XOS network template. Network templates contain settings associated
+            with a particular class of network.
+
         capabilities:
             network_template:
                 type: tosca.capabilities.xos.NetworkTemplate
@@ -190,21 +241,27 @@
             visibility:
                 type: string
                 default: private
+                description: Indicates whether network is publicly routable.
             translation:
                 type: string
                 default: none
+                description: Indicates whether network uses address translation.
             shared_network_name:
                 type: string
                 required: false
+                description: Attaches this template to a specific OpenStack network.
             shared_network_id:
                 type: string
                 required: false
+                description: Attaches this template to a specific OpenStack network.
             topology_kind:
                 type: string
                 default: BigSwitch
+                descrption: Describes the topology of the network.
             controller_kind:
                 type: string
                 required: false
+                description: Indicates the type of controller that the network is connected to.
 
     tosca.nodes.network.Network.XOS:
           # Due to bug? in implementation, we have to copy everything from
@@ -280,41 +337,27 @@
             ports:

                 type: string
                 required: false
+                description: >
+                    A comma-separated list of protocols and ports. For example,
+                    "tcp/123, tcp/456-459, udp/111"
             labels:
                 type: string
                 required: false
+                description: A comma-separated list of labels for this network.
             permit_all_slices:
                 type: boolean
                 # In the data model, this is defaulted to false. However, to
                 # preserve Tosca semantics, we default it to true instead.
                 default: true
+                description: If True, then any slice may be attached to this network.
           capabilities:
             link:

               type: tosca.capabilities.network.Linkable
 
-#    tosca.nodes.XOSNetwork:
-#        derived_from: tosca.nodes.Root
-#
-#        capabilities:
-#            network:
-#                type: tosca.capabilities.xos.Network
-#
-#        properties:
-#            ports:
-#                type: string
-#                required: false
-#            labels:
-#                type: string
-#                required: false
-#            permit_all_slices:
-#                type: boolean
-#                default: false
-#            permitted_slices:
-#                type: string
-#                required: false
-
     tosca.nodes.Deployment:
         derived_from: tosca.nodes.Root
+        description: >
+            An XOS Deployment.
         capabilities:
             deployment:
                 type: tosca.capabilities.xos.Deployment
@@ -323,12 +366,16 @@
             accessControl:
                 type: string
                 default: allow all
+                description: ACL that describes who may use this deployment.
             flavors:
                 type: string
                 required: false
+                description: Comma-separated list of flavors that this deployment supports.
 
     tosca.nodes.Image:
         derived_from: tosca.nodes.Root
+        description: >
+            An XOS Operating System Image.
         capabilities:
             image:
                 type: tosca.capabilities.xos.Image
@@ -336,15 +383,21 @@
             disk_format:
                 type: string
                 required: false
+                description: Glance disk format.
             container_format:
                 type: string
                 required: false
+                description: Glance container format.
             path:
                 type: string
                 required: false
+                description: Path to Image file inside XOS docker container.
 
     tosca.nodes.Controller:
         derived_from: tosca.nodes.Root
+        description: >
+            An XOS controller. Controllers serve as the interface between
+            XOS and services such as OpenStack.
         capabilities:
             controller:
                 type: tosca.capabilities.xos.Controller
@@ -352,27 +405,36 @@
             backend_type:
                 type: string
                 required: false
+                description: Type of backend.
             version:
                 type: string
                 required: false
+                description: Version of backend.
             auth_url:
                 type: string
                 required: false
+                description: Keystone auth_url.
             admin_user:
                 type: string
                 required: false
+                description: Keystone username.
             admin_password:
                 type: string
                 required: false
+                description: Keystone password.
             admin_tenant:
                 type: string
                 required: false
+                description: Tenant associated with admin account.
             domain:
                 type: string
                 required: false
+                description: OpenStack domain (or "Default")
 
     tosca.nodes.Site:
         derived_from: tosca.nodes.Root
+        description: >
+            An XOS Site. Sites are containers for Users and/or Nodes.
         capabilities:
             site:
                 type: tosca.capabilities.xos.Site
@@ -380,19 +442,22 @@
              display_name:
                  type: string
                  required: false
-                 description: name of the site
+                 description: Name of the site.
              site_url:
                  type: string
                  required: false
+                 description: URL of site web page.
              enabled:
                  type: boolean
                  default: true
              hosts_nodes:
                  type: boolean
                  default: true
+                 description: If True, then this site hosts nodes where Instances may be instantiated.
              hosts_users:
                  type: boolean
                  default: true
+                 description: If True, then this site hosts users who may use XOS.
              is_public:
                  type: boolean
                  default: true
@@ -400,6 +465,9 @@
 
     tosca.nodes.Slice:
         derived_from: tosca.nodes.Root
+        description: >
+            An XOS Slice. A slice is a collection of instances that share
+            common attributes.
         capability:
             slice:
                 type: tosca.capabilities.xos.Slice
@@ -410,15 +478,21 @@
             description:
                 type: string
                 required: false
+                description: Description of this slice.
             slice_url:
                 type: string
                 required: false
+                description: URL to web page that describes slice.
             max_instances:
                 type: integer
                 default: 10
+                description: Quota of instances that this slice may create.
 
     tosca.nodes.Node:
         derived_from: tosca.nodes.Root
+        description: >
+            An XOS Node. Nodes are physical machines that host virtual machines
+            and/or containers.
         capability:
             node:
                 type: tosca.capabilities.xos.Node
diff --git a/xos/tosca/custom_types/xos.yaml b/xos/tosca/custom_types/xos.yaml
index 96c03fa..2c674eb 100644
--- a/xos/tosca/custom_types/xos.yaml
+++ b/xos/tosca/custom_types/xos.yaml
@@ -20,6 +20,9 @@
 node_types:
     tosca.nodes.Service:
         derived_from: tosca.nodes.Root
+        description: >
+            An XOS Service object. Services may be listed in the Service
+            directory and may be linked together via Tenancy Relationships.
         capabilities:
             scalable:
                 type: tosca.capabilities.Scalable
@@ -29,26 +32,34 @@
             kind:
                 type: string
                 default: generic
+                description: Type of service.
             view_url:
                 type: string
                 required: false
+                description: URL to follow when icon is clicked in the Service Directory.
             icon_url:
                 type: string
                 required: false
+                description: ICON to display in the Service Directory.
             enabled:
                 type: boolean
                 default: true
             published:
                 type: boolean
                 default: true
+                description: If True then display this Service in the Service Directory.
             public_key:
                 type: string
                 required: false
+                description: Public key to install into Instances to allows Services to SSH into them.
             versionNumber:
                 type: string
                 required: false
+                description: Version number of Service.
 
     tosca.nodes.VCPEService:
+        description: >
+            CORD: The vCPE Service.
         derived_from: tosca.nodes.Root
         capabilities:
             scalable:
@@ -59,30 +70,39 @@
             kind:
                 type: string
                 default: generic
+                description: Type of service.
             view_url:
                 type: string
                 required: false
+                description: URL to follow when icon is clicked in the Service Directory.
             icon_url:
                 type: string
                 required: false
+                description: ICON to display in the Service Directory.
             enabled:
                 type: boolean
                 default: true
             published:
                 type: boolean
                 default: true
+                description: If True then display this Service in the Service Directory.
             public_key:
                 type: string
                 required: false
+                description: Public key to install into Instances to allows Services to SSH into them.
             versionNumber:
                 type: string
                 required: false
+                description: Version number of Service.
             backend_network_label:
                 type: string
                 required: false
+                description: Label that matches network used to connect HPC and BBS services.
 
     tosca.nodes.VBNGService:
         derived_from: tosca.nodes.Root
+        description: >
+            CORD: The vBNG Service.
         capabilities:
             scalable:
                 type: tosca.capabilities.Scalable
@@ -92,30 +112,39 @@
             kind:
                 type: string
                 default: generic
+                description: Type of service.
             view_url:
                 type: string
                 required: false
+                description: URL to follow when icon is clicked in the Service Directory.
             icon_url:
                 type: string
                 required: false
+                description: ICON to display in the Service Directory.
             enabled:
                 type: boolean
                 default: true
             published:
                 type: boolean
                 default: true
+                description: If True then display this Service in the Service Directory.
             public_key:
                 type: string
                 required: false
+                description: Public key to install into Instances to allows Services to SSH into them.
             versionNumber:
                 type: string
                 required: false
+                description: Version number of Service.
             vbng_url:
                 type: string
                 required: false
+                description: URL of REST API endpoint for vBNG Service.
 
     tosca.nodes.CDNService:
         derived_from: tosca.nodes.Root
+        description: >
+            Content Delivery Network Service. Includes Request Routing and Hypercache.
         capabilities:
             scalable:
                 type: tosca.capabilities.Scalable
@@ -125,27 +154,34 @@
             kind:
                 type: string
                 default: generic
+                description: Type of service.
             view_url:
                 type: string
                 required: false
+                description: URL to follow when icon is clicked in the Service Directory.
             icon_url:
                 type: string
                 required: false
+                description: ICON to display in the Service Directory.
             enabled:
                 type: boolean
                 default: true
             published:
                 type: boolean
                 default: true
+                description: If True then display this Service in the Service Directory.
             public_key:
                 type: string
                 required: false
+                description: Public key to install into Instances to allows Services to SSH into them.
             versionNumber:
                 type: string
                 required: false
+                description: Version number of Service.
 
     tosca.nodes.Subscriber:
         derived_from: tosca.nodes.Root
+        description: XOS subscriber base class.
         capabilities:
             subscriber:
                 type: tosca.capabilities.xos.Subscriber
@@ -159,6 +195,10 @@
 
     tosca.nodes.CORDSubscriber:
         derived_from: tosca.nodes.Root
+        description: >
+            CORD: Subscriber. The Subscriber object contains all of the settings
+            for a CORD household. For example, it contains parental control
+            filter settings.
         capabilities:
             subscriber:
                 type: tosca.capabilities.xos.Subscriber
@@ -172,28 +212,41 @@
             firewall_enable:
                 type: boolean
                 default: false
+                description: If True, then firewalling is enabled.
             url_filter_enable:
                 type: boolean
                 default: false
+                description: If True, then parental controls are enabled.
             url_filter_level:
                 type: string
                 default: PG
+                description: The default URL filter level for the household.
             cdn_enable:
                 type: boolean
                 default: true
+                description: If True, then the CDN is enabled.
 
     tosca.nodes.CORDUser:
         derived_from: tosca.nodes.Root
+        description: >
+            CORD: User. The CORD user represents an individual device beloning
+            to the CORD Subscriber. Each device may have its own parental
+            controls.
         properties:
             level:
                 type: string
                 default: PG_13
+                description: Parental control level for this device.
             mac:
                 type: string
                 required: true
+                description: MAC address for this device.
 
     tosca.nodes.VOLTTenant:
         derived_from: tosca.nodes.Root
+        description: >
+            CORD: A Tenant of the vOLT Service. Each Tenant is tied to a
+            specific vlan_id.
         properties:
             kind:
                 type: string
@@ -204,10 +257,14 @@
             vlan_id:
                 type: string
                 required: false
+                description: vlan_id for connection to subscriber household.
 
     tosca.nodes.User:
         derived_from: tosca.nodes.Root
 
+        description: >
+            An XOS User record. Users are able to login and use the XOS GUI.
+
         capabilities:
             user:
                 type: tosca.capabilities.xos.User
@@ -219,31 +276,43 @@
             firstname:
                 type: string
                 required: true
+                description: First name of User.
             lastname:
                 type: string
                 required: true
+                description: Last name of User.
             phone:
                 type: string
                 required: false
+                description: Phone number of User.
             user_url:
                 type: string
                 required: false
+                description: URL to User web page.
             public_key:
                 type: string
                 required: false
+                description: Public key that will be installed in Instances.
             is_active:
                 type: boolean
                 default: true
+                description: If True, the user may log in.
             is_admin:
                 type: boolean
                 default: false
+                description: If True, the user has root admin privileges.
             login_page:
                 type: string
                 required: false
+                description: Indicates what page the user should go to on login.
 
     tosca.nodes.NetworkTemplate:
         derived_from: tosca.nodes.Root
 
+        description: >
+            An XOS network template. Network templates contain settings associated
+            with a particular class of network.
+
         capabilities:
             network_template:
                 type: tosca.capabilities.xos.NetworkTemplate
@@ -252,21 +321,27 @@
             visibility:
                 type: string
                 default: private
+                description: Indicates whether network is publicly routable.
             translation:
                 type: string
                 default: none
+                description: Indicates whether network uses address translation.
             shared_network_name:
                 type: string
                 required: false
+                description: Attaches this template to a specific OpenStack network.
             shared_network_id:
                 type: string
                 required: false
+                description: Attaches this template to a specific OpenStack network.
             topology_kind:
                 type: string
                 default: BigSwitch
+                descrption: Describes the topology of the network.
             controller_kind:
                 type: string
                 required: false
+                description: Indicates the type of controller that the network is connected to.
 
     tosca.nodes.network.Network.XOS:
           # Due to bug? in implementation, we have to copy everything from
@@ -342,41 +417,27 @@
             ports:

                 type: string
                 required: false
+                description: >
+                    A comma-separated list of protocols and ports. For example,
+                    "tcp/123, tcp/456-459, udp/111"
             labels:
                 type: string
                 required: false
+                description: A comma-separated list of labels for this network.
             permit_all_slices:
                 type: boolean
                 # In the data model, this is defaulted to false. However, to
                 # preserve Tosca semantics, we default it to true instead.
                 default: true
+                description: If True, then any slice may be attached to this network.
           capabilities:
             link:

               type: tosca.capabilities.network.Linkable
 
-#    tosca.nodes.XOSNetwork:
-#        derived_from: tosca.nodes.Root
-#
-#        capabilities:
-#            network:
-#                type: tosca.capabilities.xos.Network
-#
-#        properties:
-#            ports:
-#                type: string
-#                required: false
-#            labels:
-#                type: string
-#                required: false
-#            permit_all_slices:
-#                type: boolean
-#                default: false
-#            permitted_slices:
-#                type: string
-#                required: false
-
     tosca.nodes.Deployment:
         derived_from: tosca.nodes.Root
+        description: >
+            An XOS Deployment.
         capabilities:
             deployment:
                 type: tosca.capabilities.xos.Deployment
@@ -384,20 +445,24 @@
             no-delete:
                 type: boolean
                 default: false
-                description: do not allow Tosca to delete this object
+                description: Do not allow Tosca to delete this object
             no-create:
                 type: boolean
                 default: false
-                description: do not allow Tosca to create this object
+                description: Do not allow Tosca to create this object
             accessControl:
                 type: string
                 default: allow all
+                description: ACL that describes who may use this deployment.
             flavors:
                 type: string
                 required: false
+                description: Comma-separated list of flavors that this deployment supports.
 
     tosca.nodes.Image:
         derived_from: tosca.nodes.Root
+        description: >
+            An XOS Operating System Image.
         capabilities:
             image:
                 type: tosca.capabilities.xos.Image
@@ -405,15 +470,21 @@
             disk_format:
                 type: string
                 required: false
+                description: Glance disk format.
             container_format:
                 type: string
                 required: false
+                description: Glance container format.
             path:
                 type: string
                 required: false
+                description: Path to Image file inside XOS docker container.
 
     tosca.nodes.Controller:
         derived_from: tosca.nodes.Root
+        description: >
+            An XOS controller. Controllers serve as the interface between
+            XOS and services such as OpenStack.
         capabilities:
             controller:
                 type: tosca.capabilities.xos.Controller
@@ -421,27 +492,36 @@
             backend_type:
                 type: string
                 required: false
+                description: Type of backend.
             version:
                 type: string
                 required: false
+                description: Version of backend.
             auth_url:
                 type: string
                 required: false
+                description: Keystone auth_url.
             admin_user:
                 type: string
                 required: false
+                description: Keystone username.
             admin_password:
                 type: string
                 required: false
+                description: Keystone password.
             admin_tenant:
                 type: string
                 required: false
+                description: Tenant associated with admin account.
             domain:
                 type: string
                 required: false
+                description: OpenStack domain (or "Default")
 
     tosca.nodes.Site:
         derived_from: tosca.nodes.Root
+        description: >
+            An XOS Site. Sites are containers for Users and/or Nodes.
         capabilities:
             site:
                 type: tosca.capabilities.xos.Site
@@ -449,19 +529,22 @@
              display_name:
                  type: string
                  required: false
-                 description: name of the site
+                 description: Name of the site.
              site_url:
                  type: string
                  required: false
+                 description: URL of site web page.
              enabled:
                  type: boolean
                  default: true
              hosts_nodes:
                  type: boolean
                  default: true
+                 description: If True, then this site hosts nodes where Instances may be instantiated.
              hosts_users:
                  type: boolean
                  default: true
+                 description: If True, then this site hosts users who may use XOS.
              is_public:
                  type: boolean
                  default: true
@@ -469,6 +552,9 @@
 
     tosca.nodes.Slice:
         derived_from: tosca.nodes.Root
+        description: >
+            An XOS Slice. A slice is a collection of instances that share
+            common attributes.
         capability:
             slice:
                 type: tosca.capabilities.xos.Slice
@@ -479,15 +565,21 @@
             description:
                 type: string
                 required: false
+                description: Description of this slice.
             slice_url:
                 type: string
                 required: false
+                description: URL to web page that describes slice.
             max_instances:
                 type: integer
                 default: 10
+                description: Quota of instances that this slice may create.
 
     tosca.nodes.Node:
         derived_from: tosca.nodes.Root
+        description: >
+            An XOS Node. Nodes are physical machines that host virtual machines
+            and/or containers.
         capability:
             node:
                 type: tosca.capabilities.xos.Node