diff --git a/docs/sections/components/component-specification/common-specification.rst b/docs/sections/components/component-specification/common-specification.rst
new file mode 100755
index 0000000..a29610f
--- /dev/null
+++ b/docs/sections/components/component-specification/common-specification.rst
@@ -0,0 +1,1418 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+.. _common-specification:
+
+Common Elements of the Component Specification
+==============================================
+
+This page describes the component specification (JSON) sections that are
+common to both Docker and CDAP components. Differences for each are
+pointed out below. Elements that are very different, and described in
+the CDAP or Docker specific pages.
+
+.. _metadata:
+
+Component Metadata
+------------------
+
+Metadata refers to the properties found under the ``self`` JSON. This
+group of properties is used to uniquely identify this component
+specification and identify the component that this specification is used
+to capture.
+
+Example:
+
+::
+
+    "self": {
+        "version": "1.0.0",
+        "name": "asimov.component.kpi_anomaly",
+        "description": "Classifies VNF KPI data as anomalous",
+        "component_type": "docker"
+    },
+
+``self`` Schema:
+
++-------------+--------+----------------+
+| Property    | Type   | Description    |
+| Name        |        |                |
++=============+========+================+
+| version     | string | *Required*.    |
+|             |        | Semantic       |
+|             |        | version        |
+|             |        | for this       |
+|             |        | specification  |
++-------------+--------+----------------+
+| name        | string | *Required*.    |
+|             |        | Full           |
+|             |        | name of        |
+|             |        | this           |
+|             |        | component      |
+|             |        | which is       |
+|             |        | also           |
+|             |        | used as        |
+|             |        | this           |
+|             |        | component's    |
+|             |        | catalog        |
+|             |        | id.            |
++-------------+--------+----------------+
+| description | string | *Required*     |
+|             |        | Human-readable |
+|             |        | text           |
+|             |        | describing     |
+|             |        | the            |
+|             |        | component      |
+|             |        | and the        |
+|             |        | components     |
+|             |        | functional     |
+|             |        | purpose.       |
++-------------+--------+----------------+
+| component_t\| string | *Required*     |
+| ype         |        | Identify       |
+|             |        | what           |
+|             |        | containe\      |
+|             |        | rization       |
+|             |        | technolo\      |
+|             |        | gy             |
+|             |        | this           |
+|             |        | componen\      |
+|             |        | t              |
+|             |        | uses:          |
+|             |        | *docker*       |
+|             |        | or             |
+|             |        | *cdap*.        |
+|             |        |                |
++-------------+--------+----------------+
+
+.. _interfaces:
+
+Interfaces
+----------
+
+Interfaces are the JSON objects found under the ``streams`` key and the
+``services`` key. These are used to describe the interfaces that the
+component uses and the interfaces that the component provides. The
+description of each interface includes the associated :any:`data
+format <data-formats>`.
+
+Streams
+~~~~~~~
+
+-  The ``streams`` JSON is for specifying data produced for consumption
+   by other components, and the streams expected to subscribe to that is
+   produced by other components. These are “fire and forget” type
+   interfaces where the publisher of a stream does not expect or parse a
+   response from the subscriber.
+-  The term ``stream`` here is abstract and neither refers to “CDAP
+   streams” or “DMaaP feeds”. While a stream is very likely a DMaaP
+   feed, it could be a direct stream of data being routed via HTTP too.
+   It abstractly refers to a sequence of data leaving a publisher.
+-  Streams have anonymous publish/subscribe semantics, which decouples
+   the production of information from its consumption.
+-  In general, components are not aware of who they are communicating
+   with.
+-  Instead, components that are interested in data, subscribe to the
+   relevant stream; components that generate data publish to the
+   relevant stream.
+-  There can be multiple publishers and subscribers to a stream. Streams
+   are intended for unidirectional, streaming communication.
+
+Streams interfaces that implement an HTTP endpoint must support POST.
+
+Streams are split into:
+
++-------------+----+----------+
+| Property    | Ty\| Descript\|
+| Name        | pe | ion      |
++=============+====+==========+
+| subscribes  | JS\| *Require\|
+|             | ON | d*.      |
+|             | li\| List of  |
+|             | st | all      |
+|             |    | availabl\|
+|             |    | e        |
+|             |    | stream   |
+|             |    | interfac\|
+|             |    | es       |
+|             |    | that     |
+|             |    | this     |
+|             |    | componen\|
+|             |    | t        |
+|             |    | has that |
+|             |    | can be   |
+|             |    | used for |
+|             |    | subscrib\|
+|             |    | ing      |
++-------------+----+----------+
+| publishes   | JS\| *Require\|
+|             | ON | d*.      |
+|             | li\| List of  |
+|             | st | all      |
+|             |    | stream   |
+|             |    | interfac\|
+|             |    | es       |
+|             |    | that     |
+|             |    | this     |
+|             |    | componen\|
+|             |    | t        |
+|             |    | will     |
+|             |    | publish  |
+|             |    | onto     |
++-------------+----+----------+
+
+Subscribes
+^^^^^^^^^^
+
+Example:
+
+.. code:: json
+
+    "streams": {
+        "subscribes": [{
+            "format": "dcae.vnf.kpi",
+            "version": "1.0.0",
+            "route": "/data",        // for CDAP this value is not used
+            "type": "http"
+        }],
+    ...
+    }
+
+This describes that ``asimov.component.kpi_anomaly`` exposes an HTTP
+endpoint called ``/data`` which accepts requests that have the data
+format of ``dcae.vnf.kpi`` version ``1.0.0``.
+
+``subscribes`` Schema:
+
++-------------+----+--------------------+
+| Property    | Ty\| Descript\          |
+| Name        | pe | ion                |
++=============+====+====================+
+| format      | st\| *Require\          |
+|             | ri\| d*.                |
+|             | ng | Data               |
+|             |    | format             |
+|             |    | id of              |
+|             |    | the data           |
+|             |    | format             |
+|             |    | that is            |
+|             |    | used by            |
+|             |    | this               |
+|             |    | interfac\          |
+|             |    | e                  |
++-------------+----+--------------------+
+| version     | st\| *Require\          |
+|             | ri\| d*.                |
+|             | ng | Data               |
+|             |    | format             |
+|             |    | version            |
+|             |    | of the             |
+|             |    | data               |
+|             |    | format             |
+|             |    | that is            |
+|             |    | used by            |
+|             |    | this               |
+|             |    | interfac\          |
+|             |    | e                  |
++-------------+----+--------------------+
+| route       | st\| *Require\          |
+|             | ri\| d                  |
+|             | ng | for HTTP           |
+|             |    | and data           |
+|             |    | router*.           |
+|             |    | The HTTP           |
+|             |    | route              |
+|             |    | that               |
+|             |    | this               |
+|             |    | interfac\          |
+|             |    | e                  |
+|             |    | listens            |
+|             |    | on                 |
++-------------+----+--------------------+
+| config_key  | st\| *Require\          |
+|             | ri\| d \                |
+|             | ng | for \              |
+|             |    | message_router\    |
+|             |    | and data \         |
+|             |    | router*.           |
+|             |    | The HTTP           |
+|             |    | route              |
+|             |    | that               |
+|             |    | this               |
+|             |    | interfac\          |
+|             |    | e                  |
+|             |    | listens            |
+|             |    | on                 |
++-------------+----+--------------------+
+| type        | st\| *Require\          |
+|             | ri\| d*.                |
+|             | ng | Type of            |
+|             |    | stream:            |
+|             |    | ``http``           |
+|             |    | ,                  |
+|             |    | ``message_router`` |
+|             |    | ,                  |
+|             |    | ``data_router``    |
++-------------+----+--------------------+
+
+.. _message-router:
+
+Message router
+''''''''''''''
+
+Message router subscribers are http clients rather than http services
+and performs a http a ``GET`` call. Thus, message router subscribers
+description is structured like message router publishers and requires
+``config_key``:
+
+.. code:: json
+
+    "streams": {
+        "subscribes": [{
+            "format": "dcae.some-format",
+            "version": "1.0.0",
+            "config_key": "some_format_handle",
+            "type": "message router"
+        }],
+    ...
+    }
+
+
+.. _data-router:
+
+Data router
+'''''''''''
+
+Data router subscribers are http or https services that handle ``PUT``
+requests from data router. Developers must provide the ``route`` or url
+path/endpoint that is expected to handle data router requests. This will
+be used to construct the delivery url needed to register the subscriber
+to the provisioned feed. Developers must also provide a ``config_key``
+because there is dynamic configuration information associated with the
+feed that the application will need e.g. username and password. See the
+page on :doc:`DMaaP connection objects <../dcae-cli/dmaap-connection-objects>` for more details on
+the configuration information.
+
+Example (not tied to the larger example):
+
+.. code:: json
+
+    "streams": {
+        "subscribes": [{
+            "config_key": "some-sub-dr",
+            "format": "sandbox.platform.any",
+            "route": "/identity",
+            "type": "data_router",
+            "version": "0.1.0"
+        }],
+    ...
+    }
+
+Publishes
+^^^^^^^^^
+
+Example:
+
+.. code:: json
+
+    "streams": {
+    ...
+        "publishes": [{
+            "format": "asimov.format.integerClassification",
+            "version": "1.0.0",
+            "config_key": "prediction",
+            "type": "http"
+        }]
+    },
+
+This describes that ``asimov.component.kpi_anomaly`` publishes by making
+POST requests to streams that support the data format
+``asimov.format.integerClassification`` version ``1.0.0``.
+
+``publishes`` Schema:
+
++-------------+----+--------------------+
+| Property    | Ty\| Descript\          |
+| Name        | pe | ion                |
++=============+====+====================+
+| format      | st\| *Require\          |
+|             | ri\| d*.                |
+|             | ng | Data               |
+|             |    | format             |
+|             |    | id of              |
+|             |    | the data           |
+|             |    | format             |
+|             |    | that is            |
+|             |    | used by            |
+|             |    | this               |
+|             |    | interfac\          |
+|             |    | e                  |
++-------------+----+--------------------+
+| version     | st\| *Require\          |
+|             | ri\| d*.                |
+|             | ng | Data               |
+|             |    | format             |
+|             |    | version            |
+|             |    | of the             |
+|             |    | data               |
+|             |    | format             |
+|             |    | that is            |
+|             |    | used by            |
+|             |    | this               |
+|             |    | interfac\          |
+|             |    | e                  |
++-------------+----+--------------------+
+| config_key  | st\| *Require\          |
+|             | ri\| d*.                |
+|             | ng | The JSON           |
+|             |    | key in             |
+|             |    | the                |
+|             |    | generate\          |
+|             |    | d                  |
+|             |    | applicat           |
+|             |    | ion                |
+|             |    | configur\          |
+|             |    | ation              |
+|             |    | that               |
+|             |    | will be            |
+|             |    | used to            |
+|             |    | pass the           |
+|             |    | downstre\          |
+|             |    | am                 |
+|             |    | componen\          |
+|             |    | t’s                |
+|             |    | (the               |
+|             |    | subscrib\          |
+|             |    | er’s)              |
+|             |    | connecti\          |
+|             |    | on                 |
+|             |    | informat\          |
+|             |    | ion.               |
++-------------+----+--------------------+
+| type        | st\| *Require\          |
+|             | ri\| d*.                |
+|             | ng | Type of            |
+|             |    | stream:            |
+|             |    | ``http``           |
+|             |    | ,                  |
+|             |    | ``message_router`` |
+|             |    | ,                  |
+|             |    | ``data_router``    |
++-------------+----+--------------------+
+
+.. message-router-1:
+
+Message router
+''''''''''''''
+
+Message router publishers are http clients of DMaap message_router.
+Developers must provide a ``config_key`` because there is dynamic
+configuration information associated with the feed that the application
+will need to receive e.g. topic url, username, password. See the page on
+:doc:`DMaaP connection objects <../dcae-cli/dmaap-connection-objects>` for more details on
+the configuration information.
+
+Example (not tied to the larger example):
+
+.. code:: json
+
+    "streams": {
+    ...
+        "publishes": [{
+            "config_key": "some-pub-mr",
+            "format": "sandbox.platform.any",
+            "type": "message_router",
+            "version": "0.1.0"
+        }]
+    }
+
+.. data-router-1:
+
+Data router
+'''''''''''
+
+Data router publishers are http clients that make ``PUT`` requests to
+data router. Developers must also provide a ``config_key`` because there
+is dynamic configuration information associated with the feed that the
+application will need to receive e.g. publish url, username, password.
+See the page on :doc:`DMaaP connection objects <../dcae-cli/dmaap-connection-objects>` for more details on
+the configuration information.
+
+Example (not tied to the larger example):
+
+.. code:: json
+
+    "streams": {
+    ...
+        "publishes": [{
+            "config_key": "some-pub-dr",
+            "format": "sandbox.platform.any",
+            "type": "data_router",
+            "version": "0.1.0"
+        }]
+    }
+
+Quick Reference
+^^^^^^^^^^^^^^^
+
+Refer to this :doc:`Quick Reference <streams-grid>` for a
+comparison of the Streams ‘Publishes’ and ‘Subscribes’ sections.
+
+Services
+~~~~~~~~
+
+-  The publish / subscribe model is a very flexible communication
+   paradigm, but its many-to-many one-way transport is not appropriate
+   for RPC request / reply interactions, which are often required in a
+   distributed system.
+-  Request / reply is done via a Service, which is defined by a pair of
+   messages: one for the request and one for the reply.
+
+Services are split into:
+
++-------------+----+----------+
+| Property    | Ty\| Descript\|
+| Name        | pe | ion      |
++=============+====+==========+
+| calls       | JS\| *Require\|
+|             | ON | d*.      |
+|             | li\| List of  |
+|             | st | all      |
+|             |    | service  |
+|             |    | interfac\|
+|             |    | es       |
+|             |    | that     |
+|             |    | this     |
+|             |    | componen\|
+|             |    | t        |
+|             |    | will     |
+|             |    | call     |
++-------------+----+----------+
+| provides    | JS\| *Require\|
+|             | ON | d*.      |
+|             | li\| List of  |
+|             | st | all      |
+|             |    | service  |
+|             |    | interfac\|
+|             |    | es       |
+|             |    | that     |
+|             |    | this     |
+|             |    | componen\|
+|             |    | t        |
+|             |    | exposes  |
+|             |    | and      |
+|             |    | provides |
++-------------+----+----------+
+
+Calls
+^^^^^
+
+The JSON ``services/calls`` is for specifying that the component relies
+on an HTTP(S) service—the component sends that service an HTTP request,
+and that service responds with an HTTP reply. An example of this is how
+string matching (SM) depends on the AAI Broker. SM performs a
+synchronous REST call to the AAI broker, providing it the VMNAME of the
+VNF, and the AAI Broker responds with additional details about the VNF.
+This dependency is expressed via ``services/calls``. In contrast, the
+output of string matching (the alerts it computes) is sent directly to
+policy as a fire-and-forget interface, so that is an example of a
+``stream``.
+
+Example:
+
+.. code:: json
+
+    "services": {
+        "calls": [{
+            "config_key": "vnf-db",
+            "request": {
+                "format": "dcae.vnf.meta",
+                "version": "1.0.0"
+                },
+            "response": {
+                "format": "dcae.vnf.kpi",
+                "version": "1.0.0"
+                }
+        }],
+    ...
+    }
+
+This describes that ``asimov.component.kpi_anomaly`` will make HTTP
+calls to a downstream component that accepts requests of data format
+``dcae.vnf.meta`` version ``1.0.0`` and is expecting the response to be
+``dcae.vnf.kpi`` version ``1.0.0``.
+
+``calls`` Schema:
+
++-------------+----+----------+
+| Property    | Ty\| Descript\|
+| Name        | pe | ion      |
++=============+====+==========+
+| request     | JS\| *Require\|
+|             | ON | d*.      |
+|             | ob\| Descript\|
+|             | je\| ion      |
+|             | ct | of the   |
+|             |    | expected |
+|             |    | request  |
+|             |    | for this |
+|             |    | downstre\|
+|             |    | am       |
+|             |    | interfac\|
+|             |    | e        |
++-------------+----+----------+
+| response    | JS\| *Require\|
+|             | ON | d*.      |
+|             | ob\| Descript\|
+|             | je\| ion      |
+|             | ct | of the   |
+|             |    | expected |
+|             |    | response |
+|             |    | for this |
+|             |    | downstre\|
+|             |    | am       |
+|             |    | interfac\|
+|             |    | e        |
++-------------+----+----------+
+| config_key  | st\| *Require\|
+|             | ri\| d*.      |
+|             | ng | The JSON |
+|             |    | key in   |
+|             |    | the      |
+|             |    | generate\|
+|             |    | d        |
+|             |    | applicat |
+|             |    | ion      |
+|             |    | configur\|
+|             |    | ation    |
+|             |    | that     |
+|             |    | will be  |
+|             |    | used to  |
+|             |    | pass the |
+|             |    | downstre\|
+|             |    | am       |
+|             |    | componen |
+|             |    | t        |
+|             |    | connecti\|
+|             |    | on       |
+|             |    | informat\|
+|             |    | ion.     |
++-------------+----+----------+
+
+The JSON object schema for both ``request`` and ``response``:
+
++-------------+----+----------+
+| Property    | Ty\| Descript\|
+| Name        | pe | ion      |
++=============+====+==========+
+| format      | st\| *Require\|
+|             | ri\| d*.      |
+|             | ng | Data     |
+|             |    | format   |
+|             |    | id of    |
+|             |    | the data |
+|             |    | format   |
+|             |    | that is  |
+|             |    | used by  |
+|             |    | this     |
+|             |    | interfac\|
+|             |    | e        |
++-------------+----+----------+
+| version     | st\| *Require\|
+|             | ri\| d*.      |
+|             | ng | Data     |
+|             |    | format   |
+|             |    | version  |
+|             |    | of the   |
+|             |    | data     |
+|             |    | format   |
+|             |    | that is  |
+|             |    | used by  |
+|             |    | this     |
+|             |    | interfac\|
+|             |    | e        |
++-------------+----+----------+
+
+Provides
+^^^^^^^^
+
+Example:
+
+.. code:: json
+
+    "services": {
+    ...
+        "provides": [{
+            "route": "/score-vnf",
+            "request": {
+                "format": "dcae.vnf.meta",
+                "version": "1.0.0"
+                },
+            "response": {
+                "format": "asimov.format.integerClassification",
+                "version": "1.0.0"
+                }
+        }]
+    },
+
+This describes that ``asimov.component.kpi_anomaly`` provides a service
+interface and it is exposed on the ``/score-vnf`` HTTP endpoint. The
+endpoint accepts requests that have the data format ``dcae.vnf.meta``
+version ``1.0.0`` and gives back a response of
+``asimov.format.integerClassification`` version ``1.0.0``.
+
+``provides`` Schema for a Docker component:
+
++-------------+----+----------+
+| Property    | Ty\| Descript\|
+| Name        | pe | ion      |
++=============+====+==========+
+| request     | JS\| *Require\|
+|             | ON | d*.      |
+|             | ob\| Descript\|
+|             | je\| ion      |
+|             | ct | of the   |
+|             |    | expected |
+|             |    | request  |
+|             |    | for this |
+|             |    | interfac\|
+|             |    | e        |
++-------------+----+----------+
+| response    | JS\| *Require\|
+|             | ON | d*.      |
+|             | ob\| Descript\|
+|             | je\| ion      |
+|             | ct | of the   |
+|             |    | expected |
+|             |    | response |
+|             |    | for this |
+|             |    | interfac\|
+|             |    | e        |
++-------------+----+----------+
+| route       | st\| *Require\|
+|             | ri\| d*.      |
+|             | ng | The HTTP |
+|             |    | route    |
+|             |    | that     |
+|             |    | this     |
+|             |    | interfac\|
+|             |    | e        |
+|             |    | listens  |
+|             |    | on       |
++-------------+----+----------+
+
+The JSON object schema for both ``request`` and ``response``:
+
++-------------+----+----------+
+| Property    | Ty\| Descript\|
+| Name        | pe | ion      |
++=============+====+==========+
+| format      | st\| *Require\|
+|             | ri\| d*.      |
+|             | ng | Data     |
+|             |    | format   |
+|             |    | id of    |
+|             |    | the data |
+|             |    | format   |
+|             |    | that is  |
+|             |    | used by  |
+|             |    | this     |
+|             |    | interfac\|
+|             |    | e        |
++-------------+----+----------+
+| version     | st\| *Require\|
+|             | ri\| d*.      |
+|             | ng | Data     |
+|             |    | format   |
+|             |    | version  |
+|             |    | of the   |
+|             |    | data     |
+|             |    | format   |
+|             |    | that is  |
+|             |    | used by  |
+|             |    | this     |
+|             |    | interfac\|
+|             |    | e        |
++-------------+----+----------+
+
+Note, for CDAP, there is a slight variation due to the way CDAP exposes
+services:
+
+::
+
+          "provides":[                             // note this is a list of JSON
+             {  
+                "request":{  ...},
+                "response":{  ...},
+                "service_name":"name CDAP service", 
+                "service_endpoint":"greet",         // E.g the URL is /services/service_name/methods/service_endpoint
+                "verb":"GET"                        // GET, PUT, or POST
+             }
+          ]
+
+``provides`` Schema for a CDAP component:
+
++-------------+----+-----------+
+| Property    | Ty\| Descript\ |
+| Name        | pe | ion       |
++=============+====+===========+
+| request     | JS\| *Require\ |
+|             | ON | d*.       |
+|             | ob\| Descript\ |
+|             | je\| ion       |
+|             | ct | of the    |
+|             |    | expected  |
+|             |    | request   |
+|             |    | data      |
+|             |    | format    |
+|             |    | for this  |
+|             |    | interfac\ |
+|             |    | e         |
++-------------+----+-----------+
+| response    | JS\| *Require\ |
+|             | ON | d*.       |
+|             | ob\| Descript\ |
+|             | je\| ion       |
+|             | ct | of the    |
+|             |    | expected  |
+|             |    | response  |
+|             |    | for this  |
+|             |    | interfac\ |
+|             |    | e         |
++-------------+----+-----------+
+| service_nam\| st\| *Require\ |
+| e           | ri\| d*.       |
+|             | ng | The CDAP  |
+|             |    | service   |
+|             |    | name (eg  |
+|             |    | “Greetin\ |
+|             |    | g”)       |
++-------------+----+-----------+
+| service_end | st\| *Require\ |
+| point       | ri\| d*.       |
+|             | ng | The CDAP  |
+|             |    | service   |
+|             |    | endpoint  |
+|             |    | for this  |
+|             |    | service_n\|
+|             |    | ame       |
+|             |    | (eg       |
+|             |    | “/greet”  |
+|             |    | )         |
++-------------+----+-----------+
+| verb        | st\| *Require\ |
+|             | ri\| d*.       |
+|             | ng | ‘GET’,    |
+|             |    | ‘PUT’ or  |
+|             |    | ‘POST’    |
++-------------+----+-----------+
+
+Parameters
+----------
+
+``parameters`` is where to specify the component’s application
+configuration parameters that are not connection information.
+
++---------------+------------+----------------------------------+
+| Property Name | Type       | Description                      |
++===============+============+==================================+
+| parameters    | JSON array | Each entry is a parameter object |
++---------------+------------+----------------------------------+
+
+Parameter object has the following available properties:
+
++--------------+----+----------+------+
+| Property     | Ty\| Descript\| Defa\|
+| Name         | pe | ion      | ult  |
++==============+====+==========+======+
+| name         | st\| *Require\|      |
+|              | ri\| d*.      |      |
+|              | ng | The      |      |
+|              |    | property |      |
+|              |    | name     |      |
+|              |    | that     |      |
+|              |    | will be  |      |
+|              |    | used as  |      |
+|              |    | the key  |      |
+|              |    | in the   |      |
+|              |    | generate\|      |
+|              |    | d        |      |
+|              |    | config   |      |
++--------------+----+----------+------+
+| value        | an\| *Require\|      |
+|              | y  | d*.      |      |
+|              |    | The      |      |
+|              |    | default  |      |
+|              |    | value    |      |
+|              |    | for the  |      |
+|              |    | given    |      |
+|              |    | paramete\|      |
+|              |    | r        |      |
++--------------+----+----------+------+
+| description  | st\| *Require\|      |
+|              | ri\| d*.      |      |
+|              | ng | Human-re\|      |
+|              |    | adable   |      |
+|              |    | text     |      |
+|              |    | describi\|      |
+|              |    | ng       |      |
+|              |    | the      |      |
+|              |    | paramete\|      |
+|              |    | r        |      |
+|              |    | like     |      |
+|              |    | what its |      |
+|              |    | for      |      |
++--------------+----+----------+------+
+| type         | st\| The      |      |
+|              | ri\| required |      |
+|              | ng | data     |      |
+|              |    | type for |      |
+|              |    | the      |      |
+|              |    | paramete\|      |
+|              |    | r        |      |
++--------------+----+----------+------+
+| required     | bo\| An       | true |
+|              | ol\| optional |      |
+|              | ea\| key that |      |
+|              | n  | declares |      |
+|              |    | a        |      |
+|              |    | paramete\|      |
+|              |    | r        |      |
+|              |    | as       |      |
+|              |    | required |      |
+|              |    | (true)   |      |
+|              |    | or not   |      |
+|              |    | (false)  |      |
++--------------+----+----------+------+
+| constraints  | ar\| The      |      |
+|              | ra\| optional |      |
+|              | y  | list of  |      |
+|              |    | sequence |      |
+|              |    | d        |      |
+|              |    | constrai\|      |
+|              |    | nt       |      |
+|              |    | clauses  |      |
+|              |    | for the  |      |
+|              |    | paramete\|      |
+|              |    | r.       |      |
+|              |    | See      |      |
+|              |    | below    |      |
++--------------+----+----------+------+
+| entry_schem\ | st\| The      |      |
+| a            | ri\| optional |      |
+|              | ng | key that |      |
+|              |    | is used  |      |
+|              |    | to       |      |
+|              |    | declare  |      |
+|              |    | the name |      |
+|              |    | of the   |      |
+|              |    | Datatype |      |
+|              |    | definiti\|      |
+|              |    | on       |      |
+|              |    | for      |      |
+|              |    | entries  |      |
+|              |    | of set   |      |
+|              |    | types    |      |
+|              |    | such as  |      |
+|              |    | the      |      |
+|              |    | TOSCA    |      |
+|              |    | ‘list’   |      |
+|              |    | or       |      |
+|              |    | ‘map’.   |      |
+|              |    | Only 1   |      |
+|              |    | level is |      |
+|              |    | supporte\|      |
+|              |    | d        |      |
+|              |    | at this  |      |
+|              |    | time     |      |
++--------------+----+----------+------+
+| designer_ed\ | bo\| An       | true |
+| itable       | ol\| optional |      |
+|              | ea\| key that |      |
+|              | n  | declares |      |
+|              |    | a        |      |
+|              |    | paramete\|      |
+|              |    | r        |      |
+|              |    | to be    |      |
+|              |    | editable |      |
+|              |    | by       |      |
+|              |    | designer |      |
+|              |    | (true)   |      |
+|              |    | or not   |      |
+|              |    | (false)  |      |
++--------------+----+----------+------+
+| sourced_at_d\| bo\| An       | fals\|
+| eployment    | ol\| optional | e    |
+|              | ea\| key that |      |
+|              | n  | declares |      |
+|              |    | a        |      |
+|              |    | paramete\|      |
+|              |    | r’s      |      |
+|              |    | value to |      |
+|              |    | be       |      |
+|              |    | assigned |      |
+|              |    | at       |      |
+|              |    | deployme\|      |
+|              |    | nt       |      |
+|              |    | time     |      |
+|              |    | (true)   |      |
++--------------+----+----------+------+
+| policy_edit\ | bo\| An       | true |
+| able         | ol\| optional |      |
+|              | ea\| key that |      |
+|              | n  | declares |      |
+|              |    | a        |      |
+|              |    | paramete\|      |
+|              |    | r        |      |
+|              |    | to be    |      |
+|              |    | editable |      |
+|              |    | by       |      |
+|              |    | policy   |      |
+|              |    | (true)   |      |
+|              |    | or not   |      |
+|              |    | (false)  |      |
++--------------+----+----------+------+
+| policy_sche\ | ar\| The      |      |
+| ma           | ra\| optional |      |
+|              | y  | list of  |      |
+|              |    | schema   |      |
+|              |    | definiti\|      |
+|              |    | ons      |      |
+|              |    | used for |      |
+|              |    | policy.  |      |
+|              |    | See      |      |
+|              |    | below    |      |
++--------------+----+----------+------+
+
+Example:
+
+.. code:: json
+
+    "parameters": [
+        {
+            "name": "threshold",
+            "value": 0.75,
+            "description": "Probability threshold to exceed to be anomalous"
+        }
+    ]
+
+Many of the parameter properties have been copied from TOSCA model
+property definitions and are to be used for service design composition
+and policy creation. See `section 3.5.8 *Property
+definition* <http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.1/TOSCA-Simple-Profile-YAML-v1.1.html>`__.
+
+The property ``constraints`` is a list of objects where each constraint
+object:
+
++--------------+----+----------+
+| Property     | Ty\| Descript\|
+| Name         | pe | ion      |
++==============+====+==========+
+| equal        |    | Constrai\|
+|              |    | ns       |
+|              |    | a        |
+|              |    | property |
+|              |    | or       |
+|              |    | paramete\|
+|              |    | r        |
+|              |    | to a     |
+|              |    | value    |
+|              |    | equal to |
+|              |    | (‘=’)    |
+|              |    | the      |
+|              |    | value    |
+|              |    | declared |
++--------------+----+----------+
+| greater_tha\ | nu\| Constrai\|
+| n            | mb\| ns       |
+|              | er | a        |
+|              |    | property |
+|              |    | or       |
+|              |    | paramete |
+|              |    | r        |
+|              |    | to a     |
+|              |    | value    |
+|              |    | greater  |
+|              |    | than     |
+|              |    | (‘>’)    |
+|              |    | the      |
+|              |    | value    |
+|              |    | declared |
++--------------+----+----------+
+| greater_or_e\| nu\| Constrai\|
+| qual         | mb\| ns       |
+|              | er | a        |
+|              |    | property |
+|              |    | or       |
+|              |    | paramete\|
+|              |    | r        |
+|              |    | to a     |
+|              |    | value    |
+|              |    | greater  |
+|              |    | than or  |
+|              |    | equal to |
+|              |    | (‘>=’)   |
+|              |    | the      |
+|              |    | value    |
+|              |    | declared |
++--------------+----+----------+
+| less_than    | nu\| Constrai\|
+|              | mb\| ns       |
+|              | er | a        |
+|              |    | property |
+|              |    | or       |
+|              |    | paramete\|
+|              |    | r        |
+|              |    | to a     |
+|              |    | value    |
+|              |    | less     |
+|              |    | than     |
+|              |    | (‘<’)    |
+|              |    | the      |
+|              |    | value    |
+|              |    | declared |
++--------------+----+----------+
+| less_or_equ\ | nu\| Constrai\|
+| al           | mb\| ns       |
+|              | er | a        |
+|              |    | property |
+|              |    | or       |
+|              |    | paramete\|
+|              |    | r        |
+|              |    | to a     |
+|              |    | value    |
+|              |    | less     |
+|              |    | than or  |
+|              |    | equal to |
+|              |    | (‘<=’)   |
+|              |    | the      |
+|              |    | value    |
+|              |    | declared |
++--------------+----+----------+
+| valid_value\ | ar\| Constrai\|
+| s            | ra\| ns       |
+|              | y  | a        |
+|              |    | property |
+|              |    | or       |
+|              |    | paramete\|
+|              |    | r        |
+|              |    | to a     |
+|              |    | value    |
+|              |    | that is  |
+|              |    | in the   |
+|              |    | list of  |
+|              |    | declared |
+|              |    | values   |
++--------------+----+----------+
+| length       | nu\| Constrai\|
+|              | mb\| ns       |
+|              | er | the      |
+|              |    | property |
+|              |    | or       |
+|              |    | paramete\|
+|              |    | r        |
+|              |    | to a     |
+|              |    | value of |
+|              |    | a given  |
+|              |    | length   |
++--------------+----+----------+
+| min_length   | nu\| Constrai\|
+|              | mb\| ns       |
+|              | er | the      |
+|              |    | property |
+|              |    | or       |
+|              |    | paramete\|
+|              |    | r        |
+|              |    | to a     |
+|              |    | value to |
+|              |    | a        |
+|              |    | minimum  |
+|              |    | length   |
++--------------+----+----------+
+| max_length   | nu\| Constrai\|
+|              | mb\| ns       |
+|              | er | the      |
+|              |    | property |
+|              |    | or       |
+|              |    | paramete\|
+|              |    | r        |
+|              |    | to a     |
+|              |    | value to |
+|              |    | a        |
+|              |    | maximum  |
+|              |    | length   |
++--------------+----+----------+
+
+``threshold`` is the configuration parameter and will get set to 0.75
+when the configuration gets generated.
+
+The property ``policy_schema`` is a list of objects where each
+policy_schema object:
+
++-------------+----+----------+------+
+| Property    | Ty\| Descript\| Defa\|
+| Name        | pe | ion      | ult  |
++=============+====+==========+======+
+| name        | st\| *Require\|      |
+|             | ri\| d*.      |      |
+|             | ng | paramete\|      |
+|             |    | r        |      |
+|             |    | name     |      |
++-------------+----+----------+------+
+| value       | st\| default  |      |
+|             | ri\| value    |      |
+|             | ng | for the  |      |
+|             |    | paramete\|      |
+|             |    | r        |      |
++-------------+----+----------+------+
+| description | st\| paramete\|      |
+|             | ri\| r        |      |
+|             | ng | descript\|      |
+|             |    | ion      |      |
++-------------+----+----------+------+
+| type        | en\| *Require\|      |
+|             | um | d*.      |      |
+|             |    | data     |      |
+|             |    | type of  |      |
+|             |    | the      |      |
+|             |    | paramete\|      |
+|             |    | r,       |      |
+|             |    | ‘string’ |      |
+|             |    | ,        |      |
+|             |    | ‘number’ |      |
+|             |    | ,        |      |
+|             |    | ‘boolean |      |
+|             |    | ’,       |      |
+|             |    | ‘datetim\|      |
+|             |    | e’,      |      |
+|             |    | ‘list’,  |      |
+|             |    | or ‘map’ |      |
++-------------+----+----------+------+
+| required    | bo\| is       | true |
+|             | ol\| paramete\|      |
+|             | ea\| r        |      |
+|             | n  | required |      |
+|             |    | or not?  |      |
++-------------+----+----------+------+
+| constraints | ar\| The      |      |
+|             | ra\| optional |      |
+|             | y  | list of  |      |
+|             |    | sequence\|      |
+|             |    | d        |      |
+|             |    | constrai\|      |
+|             |    | nt       |      |
+|             |    | clauses  |      |
+|             |    | for the  |      |
+|             |    | paramete\|      |
+|             |    | r.       |      |
+|             |    | See      |      |
+|             |    | above    |      |
++-------------+----+----------+------+
+| entry_schem\| st\| The      |      |
+| a           | ri\| optional |      |
+|             | ng | key that |      |
+|             |    | is used  |      |
+|             |    | to       |      |
+|             |    | declare  |      |
+|             |    | the name |      |
+|             |    | of the   |      |
+|             |    | Datatype |      |
+|             |    | definiti\|      |
+|             |    | on       |      |
+|             |    | for      |      |
+|             |    | certain  |      |
+|             |    | types.   |      |
+|             |    | entry_sc\|      |
+|             |    | hema     |      |
+|             |    | must be  |      |
+|             |    | defined  |      |
+|             |    | when the |      |
+|             |    | type is  |      |
+|             |    | either   |      |
+|             |    | list or  |      |
+|             |    | map. If  |      |
+|             |    | the type |      |
+|             |    | is list  |      |
+|             |    | and the  |      |
+|             |    | entry    |      |
+|             |    | type is  |      |
+|             |    | a simple |      |
+|             |    | type     |      |
+|             |    | (string, |      |
+|             |    | number,  |      |
+|             |    | bookean, |      |
+|             |    | datetime |      |
+|             |    | ),       |      |
+|             |    | follow   |      |
+|             |    | with an  |      |
+|             |    | string   |      |
+|             |    | to       |      |
+|             |    | describe |      |
+|             |    | the      |      |
+|             |    | entry    |      |
++-------------+----+----------+------+
+|             | If |          |      |
+|             | th\|          |      |
+|             | e  |          |      |
+|             | ty\|          |      |
+|             | pe |          |      |
+|             | is |          |      |
+|             | li\|          |      |
+|             | st |          |      |
+|             | an\|          |      |
+|             | d  |          |      |
+|             | th\|          |      |
+|             | e  |          |      |
+|             | en\|          |      |
+|             | tr\|          |      |
+|             | y  |          |      |
+|             | ty\|          |      |
+|             | pe |          |      |
+|             | is |          |      |
+|             | a  |          |      |
+|             | ma\|          |      |
+|             | p, |          |      |
+|             | fo\|          |      |
+|             | ll\|          |      |
+|             | ow |          |      |
+|             | wi\|          |      |
+|             | th |          |      |
+|             | an |          |      |
+|             | ar\|          |      |
+|             | ra\|          |      |
+|             | y  |          |      |
+|             | to |          |      |
+|             | de\|          |      |
+|             | sc\|          |      |
+|             | ri\|          |      |
+|             | be |          |      |
+|             | th\|          |      |
+|             | e  |          |      |
+|             | ke\|          |      |
+|             | ys |          |      |
+|             | fo\|          |      |
+|             | r  |          |      |
+|             | th\|          |      |
+|             | e  |          |      |
+|             | en\|          |      |
+|             | tr\|          |      |
+|             | y  |          |      |
+|             | ma\|          |      |
+|             | p  |          |      |
++-------------+----+----------+------+
+|             | If |          |      |
+|             | th\|          |      |
+|             | e  |          |      |
+|             | ty\|          |      |
+|             | pe |          |      |
+|             | is |          |      |
+|             | li\|          |      |
+|             | st |          |      |
+|             | an\|          |      |
+|             | d  |          |      |
+|             | th\|          |      |
+|             | e  |          |      |
+|             | en\|          |      |
+|             | tr\|          |      |
+|             | y  |          |      |
+|             | ty\|          |      |
+|             | pe |          |      |
+|             | is |          |      |
+|             | a  |          |      |
+|             | li\|          |      |
+|             | st |          |      |
+|             | ,  |          |      |
+|             | th\|          |      |
+|             | at |          |      |
+|             | is |          |      |
+|             | no\|          |      |
+|             | t  |          |      |
+|             | cu\|          |      |
+|             | rr\|          |      |
+|             | en\|          |      |
+|             | tl\|          |      |
+|             | y  |          |      |
+|             | su\|          |      |
+|             | pp\|          |      |
+|             | or\|          |      |
+|             | te\|          |      |
+|             | d \|          |      |
++-------------+----+----------+------+
+|             | If |          |      |
+|             | th\|          |      |
+|             | e  |          |      |
+|             | ty\|          |      |
+|             | pe |          |      |
+|             | is |          |      |
+|             | ma\|          |      |
+|             | p, |          |      |
+|             | fo\|          |      |
+|             | ll\|          |      |
+|             | ow |          |      |
+|             | wi\|          |      |
+|             | th |          |      |
+|             | an |          |      |
+|             | ar\|          |      |
+|             | ay |          |      |
+|             | to |          |      |
+|             | de\|          |      |
+|             | sc\|          |      |
+|             | ri\|          |      |
+|             | be |          |      |
+|             | th\|          |      |
+|             | e  |          |      |
+|             | ke\|          |      |
+|             | ys |          |      |
+|             | fo\|          |      |
+|             | r  |          |      |
+|             | th\|          |      |
+|             | e  |          |      |
+|             | ma\|          |      |
+|             | p  |          |      |
++-------------+----+----------+------+
+
+Generated Application Configuration
+-----------------------------------
+
+The above example for component ``asimov.component.kpi_anomaly`` will
+get transformed into the following application configuration JSON that
+is fully resolved and provided at runtime by calling the
+``config binding service``:
+
+.. code:: json
+
+    {
+        "streams_publishes": {
+            "prediction": ["10.100.1.100:32567"]
+        },
+        "streams_subscribes": {},
+        "threshold": 0.75,
+        "services_calls": {
+            "vnf-db": ["10.100.1.101:32890"]
+        }
+    }
+
+.. _artifacts:
+
+Artifacts
+---------
+
+``artifacts`` contains a list of artifacts associated with this
+component. For Docker, this is the full path (including the registry) to
+the Docker image. For CDAP, this is the full path to the CDAP jar.
+
++---------------+------------+---------------------------------+
+| Property Name | Type       | Description                     |
++===============+============+=================================+
+| artifacts     | JSON array | Each entry is a artifact object |
++---------------+------------+---------------------------------+
+
+``artifact`` Schema:
+
++---------------+--------+--------------------------------------------+
+| Property Name | Type   | Description                                |
++===============+========+============================================+
+| uri           | string | *Required*. Uri to the artifact, full path |
++---------------+--------+--------------------------------------------+
+| type          | string | *Required*. ``docker image`` or ``jar``    |
++---------------+--------+--------------------------------------------+
