diff --git a/docs/templates/collections/platform-component.rst b/docs/templates/collections/platform-component.rst
new file mode 100644
index 0000000..7e7849a
--- /dev/null
+++ b/docs/templates/collections/platform-component.rst
@@ -0,0 +1,22 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+
+Platform Component Name
+=======================
+
+.. Add or remove sections below as appropriate for the platform component.
+
+.. toctree::
+   :maxdepth: 1
+
+   ../sections/architecture.rst
+   ../sections/offeredapis.rst
+   ../sections/consumedapis.rst
+   ../sections/delivery.rst
+   ../sections/logging.rst
+   ../sections/installation.rst
+   ../sections/configuration.rst
+   ../sections/administration.rst
+   ../sections/humaninterfaces.rst
+   ../sections/release-notes.rst
diff --git a/docs/templates/collections/sdk.rst b/docs/templates/collections/sdk.rst
new file mode 100644
index 0000000..f86c33f
--- /dev/null
+++ b/docs/templates/collections/sdk.rst
@@ -0,0 +1,17 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+SDK Name
+========
+
+.. Add or remove sections below as appropriate for the SDK
+
+.. toctree::
+   :maxdepth: 1
+
+   ../sections/architecture.rst
+   ../sections/offeredapis.rst
+   ../sections/deliveries
+   ../sections/logging.rst
+   ../sections/build.rst
+   ../sections/release-notes.rst
diff --git a/docs/templates/platform-component/administration.rst b/docs/templates/platform-component/administration.rst
deleted file mode 100644
index 1d512cf..0000000
--- a/docs/templates/platform-component/administration.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-
-Administration
---------------
-Describe expected changes and the processes and actions taken for each.
-
-
-Processes
-+++++++++
-* Process 1
-* Process 2
-
-Actions
-+++++++
-* Action X
-* Action Y
-
diff --git a/docs/templates/platform-component/architecture.rst b/docs/templates/platform-component/architecture.rst
deleted file mode 100644
index fd46637..0000000
--- a/docs/templates/platform-component/architecture.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-
-Architecture
-------------
-Describe the architecture and design of the platform component.
diff --git a/docs/templates/platform-component/configuration.rst b/docs/templates/platform-component/configuration.rst
deleted file mode 100644
index c0c969f..0000000
--- a/docs/templates/platform-component/configuration.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-Configuration
--------------
-Describe configurations how to provide parameters and value
-
-Basic Setup
-+++++++++++
-
-You can provide the following in ``basic.conf``
-
-``host=ADDRESS``
-  The address of the host
-
-``port=PORT``
-  The port used for signaling
-
-  Optional. Default: ``8080``
diff --git a/docs/templates/platform-component/consumedapis.rst b/docs/templates/platform-component/consumedapis.rst
deleted file mode 100644
index c4309cd..0000000
--- a/docs/templates/platform-component/consumedapis.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-Consumed APIs
-=============
-References to APIs offered by other components
-
-
diff --git a/docs/templates/platform-component/delivery.rst b/docs/templates/platform-component/delivery.rst
deleted file mode 100644
index cfcab04..0000000
--- a/docs/templates/platform-component/delivery.rst
+++ /dev/null
@@ -1,31 +0,0 @@
-Delivery
---------
-Describe how functions are packaged into run-time components.
-For some components a block diagram may be useful.
-
-.. blockdiag::
-   
-
-   blockdiag layers {
-   orientation = portrait
-   a -> m;
-   b -> n;
-   c -> x;
-   m -> y;
-   m -> z;
-   group l1 {
-	color = blue;
-	x; y; z;
-	}
-   group l2 {
-	color = yellow;
-	m; n; 
-	}
-   group l3 {
-	color = orange;
-	a; b; c;
-	}
-
-   }
-
-
diff --git a/docs/templates/platform-component/humaninterfaces.rst b/docs/templates/platform-component/humaninterfaces.rst
deleted file mode 100644
index 03cc875..0000000
--- a/docs/templates/platform-component/humaninterfaces.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-Human Interfaces
-----------------
-Provide info on the targeted user, interface types, ports/protocols to access, etc.
-
-Target Users
-++++++++++++
-
-Interface Type
-++++++++++++++
-
-Access
-++++++
-
-
-
-
diff --git a/docs/templates/platform-component/index.rst b/docs/templates/platform-component/index.rst
deleted file mode 100644
index d5db511..0000000
--- a/docs/templates/platform-component/index.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-Platform Component
-==================
-Provide an overview of the ONAP Platform component capabilities here.
-Add or remove sections below as appropriate for the platform component.
-
-.. toctree::
-   :maxdepth: 1
-
-   architecture.rst
-   offeredapis.rst
-   consumedapis.rst
-   delivery.rst
-   logging.rst
-   installation.rst
-   configuration.rst
-   administration.rst
-   humaninterfaces.rst
diff --git a/docs/templates/platform-component/installation.rst b/docs/templates/platform-component/installation.rst
deleted file mode 100644
index 3238236..0000000
--- a/docs/templates/platform-component/installation.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-Installation
-------------
-Describe the environment and steps to install.
-
-
-Environment
-+++++++++++
-
-
-Steps
-+++++
diff --git a/docs/templates/platform-component/logging.rst b/docs/templates/platform-component/logging.rst
deleted file mode 100644
index 8d480e2..0000000
--- a/docs/templates/platform-component/logging.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-Logging & Diagnostic Information
---------------------------------
-Description of how to interact with and diagnose problems with the components
-as delivered.
-
-Where to Access Information
-+++++++++++++++++++++++++++
-
-
-Error / Warning Messages
-++++++++++++++++++++++++
diff --git a/docs/templates/platform-component/offeredapis.rst b/docs/templates/platform-component/offeredapis.rst
deleted file mode 100644
index 55e58bd..0000000
--- a/docs/templates/platform-component/offeredapis.rst
+++ /dev/null
@@ -1,29 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-
-Offered APIs
-============
-List APIs offered.   One or more of the following examples may be appropriate.
-
-Example Swagger Displayed with swaggerv2doc directive
------------------------------------------------------
-
-.. swaggerv2doc:: https://gerrit.onap.org/r/gitweb?p=vfc/nfvo/lcm.git;a=blob_plain;f=lcm/swagger/vfc.nslcm.swagger.json
-
-
-Example documenting a REST interface with Sphinx httpdomain directive
----------------------------------------------------------------------
-
-.. http:get:: path
-
-   For more information see `<https://pythonhosted.org/sphinxcontrib-httpdomain>`_
-
-
-Word Document Converted to RST using Pandocs
---------------------------------------------
-
-.. toctree:: 
-   :maxdepth: 1
-
-   ../../submodules/appc.git/docs/APPC API Guide/APPC API Guide
diff --git a/docs/templates/release-notes/bug-fixes.rst b/docs/templates/release-notes/bug-fixes.rst
deleted file mode 100644
index ee4ff9f..0000000
--- a/docs/templates/release-notes/bug-fixes.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-
-Bug Fixes
----------
-
diff --git a/docs/templates/release-notes/deprecation-notes.rst b/docs/templates/release-notes/deprecation-notes.rst
deleted file mode 100644
index e954e87..0000000
--- a/docs/templates/release-notes/deprecation-notes.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-
-Deprecation Notes
------------------
-
diff --git a/docs/templates/release-notes/index.rst b/docs/templates/release-notes/index.rst
deleted file mode 100644
index adc76f9..0000000
--- a/docs/templates/release-notes/index.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-
-Release Notes
-=============
-
-.. toctree::
-    :maxdepth: 2
-
-    new-features.rst
-    bug-fixes.rst
-    known-issues.rst
-    security-issues.rst
-    upgrade-notes.rst
-    deprecation-notes.rst
-    other.rst
diff --git a/docs/templates/release-notes/known-issues.rst b/docs/templates/release-notes/known-issues.rst
deleted file mode 100644
index 01c93d1..0000000
--- a/docs/templates/release-notes/known-issues.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-
-Known Issues
-------------
-
diff --git a/docs/templates/release-notes/new-features.rst b/docs/templates/release-notes/new-features.rst
deleted file mode 100644
index ab86bb9..0000000
--- a/docs/templates/release-notes/new-features.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-
-New Features
-------------
-
diff --git a/docs/templates/release-notes/other.rst b/docs/templates/release-notes/other.rst
deleted file mode 100644
index 2ce683b..0000000
--- a/docs/templates/release-notes/other.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-
-Other
------
-
diff --git a/docs/templates/release-notes/security-issues.rst b/docs/templates/release-notes/security-issues.rst
deleted file mode 100644
index 96e1fe9..0000000
--- a/docs/templates/release-notes/security-issues.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-
-Security Issues
----------------
-
diff --git a/docs/templates/release-notes/upgrade-notes.rst b/docs/templates/release-notes/upgrade-notes.rst
deleted file mode 100644
index f31c74a..0000000
--- a/docs/templates/release-notes/upgrade-notes.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-
-Upgrade Notes
--------------
-
diff --git a/docs/templates/sdk/architecture.rst b/docs/templates/sdk/architecture.rst
deleted file mode 100644
index 4dede8e..0000000
--- a/docs/templates/sdk/architecture.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-
-Architecture
-------------
-Describe the architecture and design of the SDK.
diff --git a/docs/templates/sdk/build.rst b/docs/templates/sdk/build.rst
deleted file mode 100644
index e8af74e..0000000
--- a/docs/templates/sdk/build.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-
-Building a Component using the SDK
-==================================
diff --git a/docs/templates/sdk/index.rst b/docs/templates/sdk/index.rst
deleted file mode 100644
index 0cc7441..0000000
--- a/docs/templates/sdk/index.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-Software Development Kit
-========================
-Provide an overview of SDK capabilities here.
-
-.. toctree::
-   :maxdepth: 1
-
-   architecture.rst
-   offeredapis.rst
-   libraries.rst
-   logging.rst
-   build.rst
diff --git a/docs/templates/sdk/libraries.rst b/docs/templates/sdk/libraries.rst
deleted file mode 100644
index 618c044..0000000
--- a/docs/templates/sdk/libraries.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-Libraries
----------
-Provide library package and Nexus groupID names
-
diff --git a/docs/templates/sdk/logging.rst b/docs/templates/sdk/logging.rst
deleted file mode 100644
index 4b272ad..0000000
--- a/docs/templates/sdk/logging.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-Logging & Diagnostic Information
---------------------------------
-
-Error / Warning Messages
-++++++++++++++++++++++++
diff --git a/docs/templates/sdk/offeredapis.rst b/docs/templates/sdk/offeredapis.rst
deleted file mode 100644
index 4e72427..0000000
--- a/docs/templates/sdk/offeredapis.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-
-Offered APIs
-------------
diff --git a/docs/templates/sections/adminstration.rst b/docs/templates/sections/adminstration.rst
new file mode 100644
index 0000000..94a7407
--- /dev/null
+++ b/docs/templates/sections/adminstration.rst
@@ -0,0 +1,24 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Administration
+==============
+
+
+.. note::
+   * This section is used to describe a software component from the perspective of on-going
+     operation including regular processes and actions that are taken to configure and manage
+     the component. 
+   
+   * This section is typically: provided for platform-component or applications; and
+     referenced in user guides
+   
+   * This note must be removed after content has been added.
+
+
+Processes
+---------
+
+
+Actions
+-------
diff --git a/docs/templates/sections/apiexample/dcaecdap.rst b/docs/templates/sections/apiexample/dcaecdap.rst
new file mode 100644
index 0000000..bc7f7bf
--- /dev/null
+++ b/docs/templates/sections/apiexample/dcaecdap.rst
@@ -0,0 +1,757 @@
+===============
+CDAP Broker API
+===============
+
+:Date:   2017-10-09
+
+.. contents::
+   :depth: 3
+..
+
+Overview
+========
+
+Version information
+-------------------
+
+*Version* : 4.0.10
+
+Paths
+=====
+
+GET /
+-----
+
+Description
+~~~~~~~~~~~
+
+shows some information about this service
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP    | Description                                        | Schema         |
+| Code    |                                                    |                |
++=========+====================================================+================+
+| **200** | successful response                                | `info <#_info> |
+|         |                                                    | `__            |
++---------+----------------------------------------------------+----------------+
+
+GET /application
+----------------
+
+Description
+~~~~~~~~~~~
+
+get all applications registered with this broker
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP    | Description                                        | Schema         |
+| Code    |                                                    |                |
++=========+====================================================+================+
+| **200** | successful response                                | <              |
+|         |                                                    | `appname <#_ap |
+|         |                                                    | pname>`__      |
+|         |                                                    | > array        |
++---------+----------------------------------------------------+----------------+
+
+PUT /application\*/{appname}
+----------------------------
+
+Description
+~~~~~~~~~~~
+
+(This is a hacky way of supporting "oneOf" because Swagger does not
+support oneOf https://github.com/OAI/OpenAPI-Specification/issues/333.
+This is the same endpoint as PUT /application/appname, except the PUT
+body is different.)
+
+Register a hydrator app for service and configuration discovery. This
+will light up a metrics and health endpoint for this app. ``appname`` is
+assumed to also be the key in consul.
+
+Parameters
+~~~~~~~~~~
+
++---------+-------------+--------------------------------------+------------------+
+| Type    | Name        | Description                          | Schema           |
++=========+=============+======================================+==================+
+| **Path* | | **appname | Name of the application.             | string (text)    |
+| *       | **          |                                      |                  |
+|         | | *required |                                      |                  |
+|         | *           |                                      |                  |
++---------+-------------+--------------------------------------+------------------+
+| **Body* | | **putbody | required put body                    | `hydratorappput  |
+| *       | **          |                                      | <#_hydratorapppu |
+|         | | *required |                                      | t>`__            |
+|         | *           |                                      |                  |
++---------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP    | Description                                        | Schema         |
+| Code    |                                                    |                |
++=========+====================================================+================+
+| **200** | Successful response                                | `Application < |
+|         |                                                    | #_application> |
+|         |                                                    | `__            |
++---------+----------------------------------------------------+----------------+
+| **400** | put was performed but the appname was already      | No Content     |
+|         | registered with the broker, or Invalid PUT body    |                |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+-  ``application/json``
+
+Produces
+~~~~~~~~
+
+-  ``application/json``
+
+POST /application/delete
+------------------------
+
+Description
+~~~~~~~~~~~
+
+endpoint to delete multiple applications at once. Returns an array of
+status codes, where statuscode[i] = response returned from
+DELETE(application/i)
+
+Parameters
+~~~~~~~~~~
+
++---------+-------------+--------------------------------------+------------------+
+| Type    | Name        | Description                          | Schema           |
++=========+=============+======================================+==================+
+| **Body* | | **postbod | required post body                   | `multideleteput  |
+| *       | y**         |                                      | <#_multideletepu |
+|         | | *required |                                      | t>`__            |
+|         | *           |                                      |                  |
++---------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP    | Description                                        | Schema         |
+| Code    |                                                    |                |
++=========+====================================================+================+
+| **200** | successful response                                | <              |
+|         |                                                    | `returncode <# |
+|         |                                                    | _returncode>`_ |
+|         |                                                    | _              |
+|         |                                                    | > array        |
++---------+----------------------------------------------------+----------------+
+
+GET /application/{appname}
+--------------------------
+
+Description
+~~~~~~~~~~~
+
+Returns the representation of the application resource, including the
+links for healthcheck and metrics.
+
+Parameters
+~~~~~~~~~~
+
++---------+-------------+--------------------------------------+------------------+
+| Type    | Name        | Description                          | Schema           |
++=========+=============+======================================+==================+
+| **Path* | | **appname | Name of the application.             | string (text)    |
+| *       | **          |                                      |                  |
+|         | | *required |                                      |                  |
+|         | *           |                                      |                  |
++---------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP    | Description                                        | Schema         |
+| Code    |                                                    |                |
++=========+====================================================+================+
+| **200** | Successful response                                | `Application < |
+|         |                                                    | #_application> |
+|         |                                                    | `__            |
++---------+----------------------------------------------------+----------------+
+| **404** | no app with name 'appname' registered with this    | No Content     |
+|         | broker.                                            |                |
++---------+----------------------------------------------------+----------------+
+
+PUT /application/{appname}
+--------------------------
+
+Description
+~~~~~~~~~~~
+
+Register an app for service and configuration discovery. This will light
+up a metrics and health endpoint for this app. ``appname`` is assumed to
+also be the key in consul.
+
+Parameters
+~~~~~~~~~~
+
++---------+-------------+--------------------------------------+------------------+
+| Type    | Name        | Description                          | Schema           |
++=========+=============+======================================+==================+
+| **Path* | | **appname | Name of the application.             | string (text)    |
+| *       | **          |                                      |                  |
+|         | | *required |                                      |                  |
+|         | *           |                                      |                  |
++---------+-------------+--------------------------------------+------------------+
+| **Body* | | **putbody | required put body                    | `appput <#_apppu |
+| *       | **          |                                      | t>`__            |
+|         | | *required |                                      |                  |
+|         | *           |                                      |                  |
++---------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP    | Description                                        | Schema         |
+| Code    |                                                    |                |
++=========+====================================================+================+
+| **200** | Successful response                                | `Application < |
+|         |                                                    | #_application> |
+|         |                                                    | `__            |
++---------+----------------------------------------------------+----------------+
+| **400** | put was performed but the appname was already      | No Content     |
+|         | registered with the broker, or Invalid PUT body    |                |
++---------+----------------------------------------------------+----------------+
+
+Consumes
+~~~~~~~~
+
+-  ``application/json``
+
+Produces
+~~~~~~~~
+
+-  ``application/json``
+
+DELETE /application/{appname}
+-----------------------------
+
+Description
+~~~~~~~~~~~
+
+Remove an app for service and configuration discovery. This will remove
+the metrics and health endpoints for this app.
+
+Parameters
+~~~~~~~~~~
+
++---------+-------------+--------------------------------------+------------------+
+| Type    | Name        | Description                          | Schema           |
++=========+=============+======================================+==================+
+| **Path* | | **appname | Name of the application.             | string (text)    |
+| *       | **          |                                      |                  |
+|         | | *required |                                      |                  |
+|         | *           |                                      |                  |
++---------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP    | Description                                        | Schema         |
+| Code    |                                                    |                |
++=========+====================================================+================+
+| **200** | Successful response                                | No Content     |
++---------+----------------------------------------------------+----------------+
+| **404** | no app with name 'appname' registered with this    | No Content     |
+|         | broker.                                            |                |
++---------+----------------------------------------------------+----------------+
+
+GET /application/{appname}/healthcheck
+--------------------------------------
+
+Description
+~~~~~~~~~~~
+
+Perform a healthcheck on the running app appname.
+
+Parameters
+~~~~~~~~~~
+
++---------+-------------+--------------------------------------+------------------+
+| Type    | Name        | Description                          | Schema           |
++=========+=============+======================================+==================+
+| **Path* | | **appname | Name of the application to get the   | string (test)    |
+| *       | **          | healthcheck for.                     |                  |
+|         | | *required |                                      |                  |
+|         | *           |                                      |                  |
++---------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP    | Description                                        | Schema         |
+| Code    |                                                    |                |
++=========+====================================================+================+
+| **200** | Successful response, healthcheck pass              | No Content     |
++---------+----------------------------------------------------+----------------+
+| **404** | no app with name 'appname' registered with this    | No Content     |
+|         | broker, or the healthcheck has failed (though I    |                |
+|         | would like to disambiguiate from the first case,   |                |
+|         | CDAP returns a 404 for this).                      |                |
++---------+----------------------------------------------------+----------------+
+
+GET /application/{appname}/metrics
+----------------------------------
+
+Description
+~~~~~~~~~~~
+
+Get live (real-time) app specific metrics for the running app appname.
+Metrics are customized per each app by the component developer
+
+Parameters
+~~~~~~~~~~
+
++---------+-------------+--------------------------------------+------------------+
+| Type    | Name        | Description                          | Schema           |
++=========+=============+======================================+==================+
+| **Path* | | **appname | Name of the application to get       | string (test)    |
+| *       | **          | metrics for.                         |                  |
+|         | | *required |                                      |                  |
+|         | *           |                                      |                  |
++---------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP    | Description                                        | Schema         |
+| Code    |                                                    |                |
++=========+====================================================+================+
+| **200** | Successful response                                | `MetricsObject |
+|         |                                                    |  <#_metricsobj |
+|         |                                                    | ect>`__        |
++---------+----------------------------------------------------+----------------+
+| **404** | no app with name 'appname' registered with this    | No Content     |
+|         | broker.                                            |                |
++---------+----------------------------------------------------+----------------+
+
+PUT /application/{appname}/reconfigure
+--------------------------------------
+
+Description
+~~~~~~~~~~~
+
+Reconfigures the application.
+
+Parameters
+~~~~~~~~~~
+
++---------+-------------+--------------------------------------+------------------+
+| Type    | Name        | Description                          | Schema           |
++=========+=============+======================================+==================+
+| **Path* | | **appname | Name of the application.             | string (text)    |
+| *       | **          |                                      |                  |
+|         | | *required |                                      |                  |
+|         | *           |                                      |                  |
++---------+-------------+--------------------------------------+------------------+
+| **Body* | | **putbody | required put body                    | `reconfigput <#_ |
+| *       | **          |                                      | reconfigput>`__  |
+|         | | *required |                                      |                  |
+|         | *           |                                      |                  |
++---------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP    | Description                                        | Schema         |
+| Code    |                                                    |                |
++=========+====================================================+================+
+| **200** | Successful response                                | No Content     |
++---------+----------------------------------------------------+----------------+
+| **400** | Bad request. Can happen with 1) {appname} is not   | No Content     |
+|         | registered with the broker, 2) the required PUT    |                |
+|         | body is wrong, or 3) the smart interface was       |                |
+|         | chosen and none of the config keys match anything  |                |
+|         | in app\_config or app\_preferences                 |                |
++---------+----------------------------------------------------+----------------+
+
+Definitions
+===========
+
+Application
+-----------
+
++-------------+---------------------------------------------+------------------+
+| Name        | Description                                 | Schema           |
++=============+=============================================+==================+
+| | **appname | application name                            | string           |
+| **          |                                             |                  |
+| | *optional |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **connect | input URL that you can POST data into (URL  | string           |
+| ionurl**    | of the CDAP stream)                         |                  |
+| | *optional |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **healthc | fully qualified url to perform healthcheck  | string           |
+| heckurl**   |                                             |                  |
+| | *optional |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **metrics | fully qualified url to get metrics from     | string           |
+| url**       |                                             |                  |
+| | *optional |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **service | a list of HTTP services exposed by this     | <                |
+| endpoints** | CDAP application                            | `service\_method |
+| | *optional |                                             |  <#_service_meth |
+| *           |                                             | od>`__           |
+|             |                                             | > array          |
++-------------+---------------------------------------------+------------------+
+| | **url**   | fully qualified url of the resource         | string           |
+| | *optional |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+
+MetricsObject
+-------------
+
+key,value object where the key is 'appmetrics' and the value is an app
+dependent json and specified by the component developer
+
++--------------------------------+-------------------------------------------+
+| Name                           | Schema                                    |
++================================+===========================================+
+| | **appmetrics**               | object                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+
+appname
+-------
+
+an application name
+
+*Type* : string
+
+appput
+------
+
++-------------+---------------------------------------------+------------------+
+| Name        | Description                                 | Schema           |
++=============+=============================================+==================+
+| | **app\_co | the application config JSON                 | object           |
+| nfig**      |                                             |                  |
+| | *optional |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **app\_pr | the application preferences JSON            | object           |
+| eferences** |                                             |                  |
+| | *optional |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **artifac | the name of the CDAP artifact to be added   | string           |
+| t\_name**   |                                             |                  |
+| | *optional |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **cdap\_a | denotes whether this is a program-flowlet   | enum             |
+| pplication\ | style application or a hydrator pipeline.   | (program-flowlet |
+| _type**     | For program-flowlet style apps, this value  | )                |
+| | *optional | must be "program-flowlet"                   |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **jar\_ur | the URL that the JAR you’re deploying       | string           |
+| l**         | resides                                     |                  |
+| | *optional |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **namespa | the cdap namespace this is deployed into    | string           |
+| ce**        |                                             |                  |
+| | *optional |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **program |                                             | <                |
+| \_preferenc |                                             | `programpref <#_ |
+| es**        |                                             | programpref>`__  |
+| | *optional |                                             | > array          |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **program |                                             | <                |
+| s**         |                                             | `programs <#_pro |
+| | *optional |                                             | grams>`__        |
+| *           |                                             | > array          |
++-------------+---------------------------------------------+------------------+
+| | **service |                                             | <                |
+| s**         |                                             | `service\_endpoi |
+| | *optional |                                             | nt <#_service_en |
+| *           |                                             | dpoint>`__       |
+|             |                                             | > array          |
++-------------+---------------------------------------------+------------------+
+| | **streamn | name of the CDAP stream to ingest data into | string           |
+| ame**       | this app. Should come from the developer    |                  |
+| | *optional | and Tosca model.                            |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+
+hydratorappput
+--------------
+
++-------------+---------------------------------------------+------------------+
+| Name        | Description                                 | Schema           |
++=============+=============================================+==================+
+| | **cdap\_a | denotes whether this is a program-flowlet   | enum             |
+| pplication\ | style application or a hydrator pipeline.   | (hydrator-pipeli |
+| _type**     | For hydrator, this value must be            | ne)              |
+| | *required | "hydrator-pipeline"                         |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **depende | represents a list of dependencies to be     | <                |
+| ncies**     | loaded for this pipeline. Not required.     | `hydratordep <#_ |
+| | *optional |                                             | hydratordep>`__  |
+| *           |                                             | > array          |
++-------------+---------------------------------------------+------------------+
+| | **namespa | the cdap namespace this is deployed into    | string           |
+| ce**        |                                             |                  |
+| | *required |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **pipelin | the URL of the config.json for this         | string           |
+| e\_config\_ | pipeline                                    |                  |
+| json\_url** |                                             |                  |
+| | *required |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **streamn | name of the CDAP stream to ingest data into | string           |
+| ame**       | this app. Should come from the developer    |                  |
+| | *required | and Tosca model.                            |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+
+hydratordep
+-----------
+
+represents a hydrator pipeline dependency. An equivelent to the
+following CURLs are formed with the below four params shown in CAPS
+"curl -v -w"\\n" -X POST
+http://cdapurl:11015/v3/namespaces/setelsewhere/artifacts/ARTIFACT_NAME
+-H "Artifact-Extends:ARTIFACT\_EXTENDS\_HEADER" -H
+“Artifact-Version:ARTIFACT\_VERSION\_HEADER” –data-binary @(DOWNLOADED
+FROM ARTIFACT\_URL)","curl -v -w"\\n" -X PUT
+http://cdapurl:11015/v3/namespaces/setelsewhere/artifacts/ARTIFACT_NAME/versions/ARTIFACT_VERSION_HEADER/properties
+-d (DOWNLOADED FROM UI\_PROPERTIES\_URL)"
+
++-------------+---------------------------------------------+------------------+
+| Name        | Description                                 | Schema           |
++=============+=============================================+==================+
+| | **artifac | the value of the header that gets passed in | string           |
+| t\_extends\ | for artifact-extends, e.g.,                 |                  |
+| _header**   | "Artifact-Extends:system:cdap-data-pipeline |                  |
+| | *required | [4.0.1,5.0.0)"                              |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **artifac | the name of the artifact                    | string           |
+| t\_name**   |                                             |                  |
+| | *required |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **artifac | the URL of the artifact JAR                 | string           |
+| t\_url**    |                                             |                  |
+| | *required |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **artifac | the value of the header that gets passed in | string           |
+| t\_version\ | for artifact-version, e.g.,                 |                  |
+| _header**   | "Artifact-Version:1.0.0-SNAPSHOT"           |                  |
+| | *required |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **ui\_pro | the URL of the properties.json if the       | string           |
+| perties\_ur | custom artifact has UI properties. This is  |                  |
+| l**         | optional.                                   |                  |
+| | *optional |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+
+info
+----
+
+some broker information
+
++-------------+---------------------------------------------+------------------+
+| Name        | Description                                 | Schema           |
++=============+=============================================+==================+
+| | **broker  | the API version of this running broker      | string           |
+|   API       |                                             |                  |
+|   version** |                                             |                  |
+| | *optional |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **cdap    | The GUI port of the CDAP cluster this       | integer          |
+|   GUI       | broker is managing. Mostly to help users of |                  |
+|   port**    | this API check their application in cdap.   |                  |
+| | *optional | Note, will return UNKNOWN\_CDAP\_VERSION if |                  |
+| *           | it cannot be determined.                    |                  |
++-------------+---------------------------------------------+------------------+
+| | **cdap    | the version of the CDAP cluster this broker | string           |
+|   cluster   | is managing. Note, will return              |                  |
+|   version** | UKNOWN\_CDAP\_VERSION if it cannot be       |                  |
+| | *optional | determined.                                 |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **managed | the url of the CDAP cluster API this broker | string           |
+|   cdap      | is managing                                 |                  |
+|   url**     |                                             |                  |
+| | *optional |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **number  |                                             | integer          |
+|   of        |                                             |                  |
+|   applicati |                                             |                  |
+| ons         |                                             |                  |
+|   registere |                                             |                  |
+| d**         |                                             |                  |
+| | *optional |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **uptime  |                                             | integer          |
+|   (s)**     |                                             |                  |
+| | *optional |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+
+multideleteput
+--------------
+
++--------------------------------+-------------------------------------------+
+| Name                           | Schema                                    |
++================================+===========================================+
+| | **appnames**                 | < `appname <#_appname>`__ > array         |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+
+programpref
+-----------
+
+the list of programs in this CDAP app
+
++-------------+---------------------------------------------+------------------+
+| Name        | Description                                 | Schema           |
++=============+=============================================+==================+
+| | **program | the name of the program                     | string           |
+| \_id**      |                                             |                  |
+| | *optional |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **program | the preference JSON to set for this program | object           |
+| \_pref**    |                                             |                  |
+| | *optional |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **program | must be one of flows, mapreduce, schedules, | string           |
+| \_type**    | spark, workflows, workers, or services      |                  |
+| | *optional |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+
+programs
+--------
+
+the list of programs in this CDAP app
+
++-------------+---------------------------------------------+------------------+
+| Name        | Description                                 | Schema           |
++=============+=============================================+==================+
+| | **program | the name of the program                     | string           |
+| \_id**      |                                             |                  |
+| | *optional |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **program | must be one of flows, mapreduce, schedules, | string           |
+| \_type**    | spark, workflows, workers, or services      |                  |
+| | *optional |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+
+reconfigput
+-----------
+
++-------------+---------------------------------------------+------------------+
+| Name        | Description                                 | Schema           |
++=============+=============================================+==================+
+| | **config* | the config JSON                             | object           |
+| *           |                                             |                  |
+| | *required |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **reconfi | the type of reconfiguration                 | enum             |
+| guration\_t |                                             | (program-flowlet |
+| ype**       |                                             | -app-config,     |
+| | *required |                                             | program-flowlet- |
+| *           |                                             | app-preferences, |
+|             |                                             | program-flowlet- |
+|             |                                             | smart)           |
++-------------+---------------------------------------------+------------------+
+
+returncode
+----------
+
+an httpreturncode
+
+*Type* : integer
+
+service\_endpoint
+-----------------
+
+descirbes a service endpoint, including the service name, the method
+name, and the method type (GET, PUT, etc, most of the time will be GET)
+
++-------------+---------------------------------------------+------------------+
+| Name        | Description                                 | Schema           |
++=============+=============================================+==================+
+| | **endpoin | GET, POST, PUT, etc                         | string           |
+| t\_method** |                                             |                  |
+| | *optional |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **service | the name of the endpoint on the service     | string           |
+| \_endpoint* |                                             |                  |
+| *           |                                             |                  |
+| | *optional |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **service | the name of the service                     | string           |
+| \_name**    |                                             |                  |
+| | *optional |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+
+service\_method
+---------------
+
+a URL and HTTP method exposed via a CDAP service
+
++-------------+---------------------------------------------+------------------+
+| Name        | Description                                 | Schema           |
++=============+=============================================+==================+
+| | **method* | HTTP method you can perform on the URL,     | string           |
+| *           | e.g., GET, PUT, etc                         |                  |
+| | *optional |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **url**   | the fully qualified URL in CDAP for this    | string           |
+| | *optional | service                                     |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
diff --git a/docs/templates/sections/apiexample/httpdomain.rst b/docs/templates/sections/apiexample/httpdomain.rst
new file mode 100644
index 0000000..f06d006
--- /dev/null
+++ b/docs/templates/sections/apiexample/httpdomain.rst
@@ -0,0 +1,10 @@
+
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+
+Sphinx httpdomain directive
+===========================
+
+.. http:get:: path
+
+   For more information see `<https://pythonhosted.org/sphinxcontrib-httpdomain>`_
+
diff --git a/docs/templates/sections/apiexample/swagger2markup.rst b/docs/templates/sections/apiexample/swagger2markup.rst
new file mode 100644
index 0000000..b83bd4d
--- /dev/null
+++ b/docs/templates/sections/apiexample/swagger2markup.rst
@@ -0,0 +1,24 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+
+
+Swagger2Markup(asciidoc) to Asciidoctor(docbook) to Pandoc(RST)
+===============================================================
+
+vfc-nfvo-lcm
+------------
+
+.. toctree::
+   :maxdepth: 1
+   :titlesonly:
+
+   vfcexample.rst
+
+
+DCAE and YAML intput
+--------------------
+
+.. toctree::
+   :maxdepth: 1
+   :titlesonly:
+
+   dcaecdap.rst
diff --git a/docs/templates/sections/apiexample/swaggerv2doc.rst b/docs/templates/sections/apiexample/swaggerv2doc.rst
new file mode 100644
index 0000000..a0f13e0
--- /dev/null
+++ b/docs/templates/sections/apiexample/swaggerv2doc.rst
@@ -0,0 +1,11 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+
+
+
+Sphinx swaggerv2doc directive
+-----------------------------
+Here is an example of vfc-nfvo-lcm API.
+
+.. swaggerv2doc:: https://gerrit.onap.org/r/gitweb?p=vfc/nfvo/lcm.git;a=blob_plain;f=lcm/swagger/vfc.nslcm.swagger.json
+
+
diff --git a/docs/templates/sections/apiexample/vfcexample.rst b/docs/templates/sections/apiexample/vfcexample.rst
new file mode 100644
index 0000000..71d3b78
--- /dev/null
+++ b/docs/templates/sections/apiexample/vfcexample.rst
@@ -0,0 +1,768 @@
+=================================================
+ONAP VFC Network Service Lifecycle Management API
+=================================================
+
+:Date:   2017-10-09
+
+.. contents::
+   :depth: 3
+..
+
+Overview
+========
+
+VFC Network Service Lifecycle Management Rest API.
+
+Version information
+-------------------
+
+*Version* : 1.0.0
+
+Contact information
+-------------------
+
+| *Contact* : ONAP VFC team
+| *Contact Email* : onap-discuss@lists.onap.org
+
+URI scheme
+----------
+
+| *BasePath* : /api/nslcm/v1
+| *Schemes* : HTTP, HTTPS
+
+Consumes
+--------
+
+-  ``application/json``
+
+Produces
+--------
+
+-  ``application/json``
+
+Paths
+=====
+
+jobstatus
+---------
+
+::
+
+    GET /jobs/{jobId}
+
+Parameters
+~~~~~~~~~~
+
++---------+-------------+--------------------------------------+------------------+
+| Type    | Name        | Description                          | Schema           |
++=========+=============+======================================+==================+
+| **Path* | | **jobId** | job Id                               | string           |
+| *       | | *required |                                      |                  |
+|         | *           |                                      |                  |
++---------+-------------+--------------------------------------+------------------+
+| **Query | | **respons | job response message id              | string           |
+| **      | eId**       |                                      |                  |
+|         | | *required |                                      |                  |
+|         | *           |                                      |                  |
++---------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++-------------------------+--------------------------------------------------+
+| HTTP Code               | Schema                                           |
++=========================+==================================================+
+| **202**                 | `JobDetailInfo <#_jobdetailinfo>`__              |
++-------------------------+--------------------------------------------------+
+
+Tags
+~~~~
+
+-  job
+
+ns create
+---------
+
+::
+
+    POST /ns
+
+Description
+~~~~~~~~~~~
+
+ns create
+
+Parameters
+~~~~~~~~~~
+
++---------+-------------+--------------------------------------+------------------+
+| Type    | Name        | Description                          | Schema           |
++=========+=============+======================================+==================+
+| **Body* | | **NSCreat | NS Instance Create Request           | `NsCreateRequest |
+| *       | eRequest**  |                                      |  <#_nscreaterequ |
+|         | | *required |                                      | est>`__          |
+|         | *           |                                      |                  |
++---------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP    | Description                                        | Schema         |
+| Code    |                                                    |                |
++=========+====================================================+================+
+| **200** | successful operation                               | `NsCreateRespo |
+|         |                                                    | nse <#_nscreat |
+|         |                                                    | eresponse>`__  |
++---------+----------------------------------------------------+----------------+
+| **404** | URL not found                                      | No Content     |
++---------+----------------------------------------------------+----------------+
+
+Tags
+~~~~
+
+-  ns
+
+ns get
+------
+
+::
+
+    GET /ns
+
+Description
+~~~~~~~~~~~
+
+ns get
+
+Parameters
+~~~~~~~~~~
+
++---------+-------------+--------------------------------------+------------------+
+| Type    | Name        | Description                          | Schema           |
++=========+=============+======================================+==================+
+| **Query | | **csarId* | job response message id              | string           |
+| **      | *           |                                      |                  |
+|         | | *required |                                      |                  |
+|         | *           |                                      |                  |
++---------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP    | Description                                        | Schema         |
+| Code    |                                                    |                |
++=========+====================================================+================+
+| **200** | successful operation                               | `NsInstancesIn |
+|         |                                                    | fo <#_nsinstan |
+|         |                                                    | cesinfo>`__    |
++---------+----------------------------------------------------+----------------+
+| **404** | URL not found                                      | No Content     |
++---------+----------------------------------------------------+----------------+
+
+Tags
+~~~~
+
+-  ns
+
+ns Instantiate
+--------------
+
+::
+
+    POST /ns/{nsInstanceId}/Instantiate
+
+Description
+~~~~~~~~~~~
+
+ns Instantiate
+
+Parameters
+~~~~~~~~~~
+
++---------+-------------+--------------------------------------+------------------+
+| Type    | Name        | Description                          | Schema           |
++=========+=============+======================================+==================+
+| **Path* | | **nsInsta |                                      | string           |
+| *       | nceId**     |                                      |                  |
+|         | | *required |                                      |                  |
+|         | *           |                                      |                  |
++---------+-------------+--------------------------------------+------------------+
+| **Body* | | **NSInsta | NS Instantiate Request Body          | `NsInstantiateRe |
+| *       | ntiateReque |                                      | quest <#_nsinsta |
+|         | st**        |                                      | ntiaterequest>`_ |
+|         | | *required |                                      | _                |
+|         | *           |                                      |                  |
++---------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP    | Description                                        | Schema         |
+| Code    |                                                    |                |
++=========+====================================================+================+
+| **200** |                                                    | `JobInfo <#_jo |
+|         |                                                    | binfo>`__      |
++---------+----------------------------------------------------+----------------+
+| **201** | Invalid Request                                    | No Content     |
++---------+----------------------------------------------------+----------------+
+| **404** | URL not found                                      | No Content     |
++---------+----------------------------------------------------+----------------+
+
+Tags
+~~~~
+
+-  ns
+
+ns scale
+--------
+
+::
+
+    POST /ns/{nsInstanceId}/scale
+
+Description
+~~~~~~~~~~~
+
+ns scale
+
+Parameters
+~~~~~~~~~~
+
++---------+-------------+--------------------------------------+------------------+
+| Type    | Name        | Description                          | Schema           |
++=========+=============+======================================+==================+
+| **Path* | | **nsInsta |                                      | string           |
+| *       | nceId**     |                                      |                  |
+|         | | *required |                                      |                  |
+|         | *           |                                      |                  |
++---------+-------------+--------------------------------------+------------------+
+| **Body* | | **ScaleNS | Scale NS Request Body                | `NsScaleRequest  |
+| *       | Request**   |                                      | <#_nsscalereques |
+|         | | *required |                                      | t>`__            |
+|         | *           |                                      |                  |
++---------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP    | Description                                        | Schema         |
+| Code    |                                                    |                |
++=========+====================================================+================+
+| **200** |                                                    | `JobInfo <#_jo |
+|         |                                                    | binfo>`__      |
++---------+----------------------------------------------------+----------------+
+| **201** | Invalid Request                                    | No Content     |
++---------+----------------------------------------------------+----------------+
+| **404** | URL not found                                      | No Content     |
++---------+----------------------------------------------------+----------------+
+
+Tags
+~~~~
+
+-  ns
+
+ns get
+------
+
+::
+
+    GET /ns/{ns_instance_id}
+
+Description
+~~~~~~~~~~~
+
+ns get
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP    | Description                                        | Schema         |
+| Code    |                                                    |                |
++=========+====================================================+================+
+| **200** | successful operation                               | `NsInstanceInf |
+|         |                                                    | o <#_nsinstanc |
+|         |                                                    | einfo>`__      |
++---------+----------------------------------------------------+----------------+
+
+Tags
+~~~~
+
+-  ns
+
+ns delete
+---------
+
+::
+
+    DELETE /ns/{ns_instance_id}
+
+Description
+~~~~~~~~~~~
+
+ns delete
+
+Parameters
+~~~~~~~~~~
+
++---------+-------------+--------------------------------------+------------------+
+| Type    | Name        | Description                          | Schema           |
++=========+=============+======================================+==================+
+| **Path* | | **ns\_ins | Identifier of the NS instance.       | string           |
+| *       | tance\_id** |                                      |                  |
+|         | | *required |                                      |                  |
+|         | *           |                                      |                  |
++---------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP    | Description                                        | Schema         |
+| Code    |                                                    |                |
++=========+====================================================+================+
+| **204** | The NS instance resource and the associated NS     | No Content     |
+|         | identifier were deleted successfully.              |                |
++---------+----------------------------------------------------+----------------+
+
+Tags
+~~~~
+
+-  ns
+
+ns heal
+-------
+
+::
+
+    POST /ns/{ns_instance_id}/heal
+
+Description
+~~~~~~~~~~~
+
+ns heal
+
+Parameters
+~~~~~~~~~~
+
++---------+-------------+--------------------------------------+------------------+
+| Type    | Name        | Description                          | Schema           |
++=========+=============+======================================+==================+
+| **Path* | | **ns\_ins | Identifier of the NS instance.       | string           |
+| *       | tance\_id** |                                      |                  |
+|         | | *required |                                      |                  |
+|         | *           |                                      |                  |
++---------+-------------+--------------------------------------+------------------+
+| **Body* | | **healVnf | healVnfData                          | `NsHealRequest < |
+| *       | Data**      |                                      | #_nshealrequest> |
+|         | | *required |                                      | `__              |
+|         | *           |                                      |                  |
++---------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP    | Description                                        | Schema         |
+| Code    |                                                    |                |
++=========+====================================================+================+
+| **202** |                                                    | `JobInfo <#_jo |
+|         |                                                    | binfo>`__      |
++---------+----------------------------------------------------+----------------+
+| **404** | URL not found                                      | No Content     |
++---------+----------------------------------------------------+----------------+
+| **500** | the url is invalid                                 | No Content     |
++---------+----------------------------------------------------+----------------+
+
+Tags
+~~~~
+
+-  ns
+
+ns terminate
+------------
+
+::
+
+    POST /ns/{ns_instance_id}/terminate
+
+Description
+~~~~~~~~~~~
+
+ns terminate
+
+Parameters
+~~~~~~~~~~
+
++---------+-------------+--------------------------------------+------------------+
+| Type    | Name        | Description                          | Schema           |
++=========+=============+======================================+==================+
+| **Path* | | **ns\_ins | Identifier of the NS instance.       | string           |
+| *       | tance\_id** |                                      |                  |
+|         | | *required |                                      |                  |
+|         | *           |                                      |                  |
++---------+-------------+--------------------------------------+------------------+
+| **Body* | | **NsTermi | NsTerminateRequest                   | `NsTerminateRequ |
+| *       | nateRequest |                                      | est <#_nstermina |
+|         | **          |                                      | terequest>`__    |
+|         | | *required |                                      |                  |
+|         | *           |                                      |                  |
++---------+-------------+--------------------------------------+------------------+
+
+Responses
+~~~~~~~~~
+
++---------+----------------------------------------------------+----------------+
+| HTTP    | Description                                        | Schema         |
+| Code    |                                                    |                |
++=========+====================================================+================+
+| **202** |                                                    | `JobInfo <#_jo |
+|         |                                                    | binfo>`__      |
++---------+----------------------------------------------------+----------------+
+| **500** | the url is invalid                                 | No Content     |
++---------+----------------------------------------------------+----------------+
+
+Tags
+~~~~
+
+-  ns
+
+Definitions
+===========
+
+JobDetailInfo
+-------------
+
++--------------------------------+-------------------------------------------+
+| Name                           | Schema                                    |
++================================+===========================================+
+| | **jobId**                    | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **responseDescriptor**       | `responseDescriptor <#_jobdetailinfo_resp |
+| | *optional*                   | onsedescriptor>`__                        |
++--------------------------------+-------------------------------------------+
+
+**responseDescriptor**
+
++--------------------------------+-------------------------------------------+
+| Name                           | Schema                                    |
++================================+===========================================+
+| | **errorCode**                | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **progress**                 | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **responseHistoryList**      | < `jobResponseInfo <#_jobresponseinfo>`__ |
+| | *optional*                   | > array                                   |
++--------------------------------+-------------------------------------------+
+| | **responseId**               | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **status**                   | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **statusDescription**        | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+
+JobInfo
+-------
+
++--------------------------------+-------------------------------------------+
+| Name                           | Schema                                    |
++================================+===========================================+
+| | **jobId**                    | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+
+LocationConstraint
+------------------
+
++--------------------------------+-------------------------------------------+
+| Name                           | Schema                                    |
++================================+===========================================+
+| | **locationConstraints**      | `locationConstraints <#_locationconstrain |
+| | *optional*                   | t_locationconstraints>`__                 |
++--------------------------------+-------------------------------------------+
+| | **vnfProfileId**             | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+
+**locationConstraints**
+
++--------------------------------+-------------------------------------------+
+| Name                           | Schema                                    |
++================================+===========================================+
+| | **vimid**                    | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+
+NsCreateRequest
+---------------
+
++-------------+---------------------------------------------+------------------+
+| Name        | Description                                 | Schema           |
++=============+=============================================+==================+
+| | **csarId* | the NS package ID                           | string           |
+| *           |                                             |                  |
+| | *optional |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **descrip |                                             | string           |
+| tion**      |                                             |                  |
+| | *optional |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+| | **nsName* |                                             | string           |
+| *           |                                             |                  |
+| | *optional |                                             |                  |
+| *           |                                             |                  |
++-------------+---------------------------------------------+------------------+
+
+NsCreateResponse
+----------------
+
++--------------------------------+-------------------------------------------+
+| Name                           | Schema                                    |
++================================+===========================================+
+| | **nsInstanceId**             | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+
+NsHealRequest
+-------------
+
++--------------------------------+-------------------------------------------+
+| Name                           | Schema                                    |
++================================+===========================================+
+| | **additionalParams**         | `additionalParams <#_nshealrequest_additi |
+| | *optional*                   | onalparams>`__                            |
++--------------------------------+-------------------------------------------+
+| | **cause**                    | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **vnfInstanceId**            | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+
+**additionalParams**
+
++--------------------------------+-------------------------------------------+
+| Name                           | Schema                                    |
++================================+===========================================+
+| | **action**                   | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **actionvminfo**             | `actionvminfo <#_nshealrequest_actionvmin |
+| | *optional*                   | fo>`__                                    |
++--------------------------------+-------------------------------------------+
+
+**actionvminfo**
+
++--------------------------------+-------------------------------------------+
+| Name                           | Schema                                    |
++================================+===========================================+
+| | **vmid**                     | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **vmname**                   | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+
+NsInstanceInfo
+--------------
+
++--------------------------------+-------------------------------------------+
+| Name                           | Schema                                    |
++================================+===========================================+
+| | **description**              | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **nsInstanceId**             | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **nsName**                   | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **nsState**                  | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **nsdId**                    | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **vlInfo**                   | < `vlInfo <#_vlinfo>`__ > array           |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **vnfInfo**                  | < `vnfInfo <#_vnfinfo>`__ > array         |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **vnffgInfo**                | < `vnffgInfo <#_vnffginfo>`__ > array     |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+
+NsInstancesInfo
+---------------
+
+*Type* : < `NsInstanceInfo <#_nsinstanceinfo>`__ > array
+
+NsInstantiateRequest
+--------------------
+
++--------------------------------+-------------------------------------------+
+| Name                           | Schema                                    |
++================================+===========================================+
+| | **LocationConstraints**      | <                                         |
+| | *optional*                   | `LocationConstraint <#_locationconstraint |
+|                                | >`__                                      |
+|                                | > array                                   |
++--------------------------------+-------------------------------------------+
+| | **additionalParamForNs**     | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+
+NsScaleByStepsData
+------------------
+
++--------------------------------+-------------------------------------------+
+| Name                           | Schema                                    |
++================================+===========================================+
+| | **aspectId**                 | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **numberOfSteps**            | integer                                   |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **scalingDirection**         | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+
+NsScaleRequest
+--------------
+
++--------------------------------+-------------------------------------------+
+| Name                           | Schema                                    |
++================================+===========================================+
+| | **scaleNsByStepsData**       | `NsScaleByStepsData <#_nsscalebystepsdata |
+| | *optional*                   | >`__                                      |
++--------------------------------+-------------------------------------------+
+| | **scaleType**                | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+
+NsTerminateRequest
+------------------
+
++--------------------------------+-------------------------------------------+
+| Name                           | Schema                                    |
++================================+===========================================+
+| | **gracefulTerminationTimeout | string                                    |
+| **                             |                                           |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **terminationType**          | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+
+cpInfo
+------
+
++--------------------------------+-------------------------------------------+
+| Name                           | Schema                                    |
++================================+===========================================+
+| | **cpInstanceId**             | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **cpInstanceName**           | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **cpdId**                    | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+
+jobResponseInfo
+---------------
+
++--------------------------------+-------------------------------------------+
+| Name                           | Schema                                    |
++================================+===========================================+
+| | **errorCode**                | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **progress**                 | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **responseId**               | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **status**                   | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **statusDescription**        | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+
+vlInfo
+------
+
++--------------------------------+-------------------------------------------+
+| Name                           | Schema                                    |
++================================+===========================================+
+| | **relatedCpInstanceId**      | < `cpInfo <#_cpinfo>`__ > array           |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **vlInstanceId**             | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **vlInstanceName**           | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **vldId**                    | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+
+vnfInfo
+-------
+
++--------------------------------+-------------------------------------------+
+| Name                           | Schema                                    |
++================================+===========================================+
+| | **vnfInstanceId**            | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **vnfInstanceName**          | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **vnfdId**                   | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+
+vnffgInfo
+---------
+
++--------------------------------+-------------------------------------------+
+| Name                           | Schema                                    |
++================================+===========================================+
+| | **cpId**                     | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **nfp**                      | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **pnfId**                    | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **virtualLinkId**            | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **vnfId**                    | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
+| | **vnffgInstanceId**          | string                                    |
+| | *optional*                   |                                           |
++--------------------------------+-------------------------------------------+
diff --git a/docs/templates/sections/apiexample/worddoc2rst.rst b/docs/templates/sections/apiexample/worddoc2rst.rst
new file mode 100644
index 0000000..2e1f814
--- /dev/null
+++ b/docs/templates/sections/apiexample/worddoc2rst.rst
@@ -0,0 +1,11 @@
+
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+
+Word Document Converted to RST
+------------------------------
+This is an example of an APPC API Guide.
+
+.. toctree:: 
+   :maxdepth: 1
+
+   ../../../submodules/appc.git/docs/APPC API Guide/APPC API Guide
diff --git a/docs/templates/sections/architecture.rst b/docs/templates/sections/architecture.rst
new file mode 100644
index 0000000..8daa0d3
--- /dev/null
+++ b/docs/templates/sections/architecture.rst
@@ -0,0 +1,27 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Architecture
+============
+
+.. note::
+   * This section is used to describe a software component from a high level
+     view of capability, common usage scenarios, and interactions with other
+     components required in the usage scenarios.  
+   
+   * The architecture section is typically: provided in a platform-component
+     and sdk collections; and referenced from developer and user guides.
+   
+   * This note must be removed after content has been added.
+
+
+Capabilities
+------------
+
+
+Usage Scenarios
+---------------
+
+
+Interactions
+------------
diff --git a/docs/templates/sections/build.rst b/docs/templates/sections/build.rst
new file mode 100644
index 0000000..99a061c
--- /dev/null
+++ b/docs/templates/sections/build.rst
@@ -0,0 +1,23 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Build
+=====
+
+.. note::
+   * This section is used to describe how a software component is built from source
+     into something ready for use either in a run-time environment or to build other
+     components.
+
+   * This section is typically provided for a platform-component, application, and sdk; and
+     referenced in developer guides.
+
+   * This note must be removed after content has been added.
+
+
+Environment
+-----------
+
+
+Steps
+-----
diff --git a/docs/templates/sections/configuration.rst b/docs/templates/sections/configuration.rst
new file mode 100644
index 0000000..085f9c6
--- /dev/null
+++ b/docs/templates/sections/configuration.rst
@@ -0,0 +1,27 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Configuration
+=============
+
+.. note::
+   * This section is used to describe the options a software component offers for configuration.
+
+   * Configuration is typically: provided for platform-component and sdk projects;
+     and referenced in developer and user guides.
+   
+   * This note must be removed after content has been added.
+
+
+
+Example ...
+
+You can provide the following in ``basic.conf``
+
+``host=ADDRESS``
+  The address of the host
+
+``port=PORT``
+  The port used for signaling
+
+  Optional. Default: ``8080``
diff --git a/docs/templates/sections/consumedapis.rst b/docs/templates/sections/consumedapis.rst
new file mode 100644
index 0000000..c2af4c2
--- /dev/null
+++ b/docs/templates/sections/consumedapis.rst
@@ -0,0 +1,16 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Consumed APIs
+=============
+
+.. note::
+   * This section is used to reference APIs that a software component depends on
+     and uses from other sources.  
+   
+   * Consumed APIs should be a specific link to the offered APIs from another component
+     or external source.
+
+   * This note must be removed after content has been added.
+
+
diff --git a/docs/templates/sections/delivery.rst b/docs/templates/sections/delivery.rst
new file mode 100644
index 0000000..f3f083a
--- /dev/null
+++ b/docs/templates/sections/delivery.rst
@@ -0,0 +1,44 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Delivery
+========
+
+.. note::
+   * This section is used to describe a software component packaging.
+     For a run-time component this might be executable images, containers, etc.
+     For an SDK this might be libraries.
+
+   * This section is typically provided for a platform-component and sdk;
+     and referenced in developer and user guides
+   
+   * This note must be removed after content has been added.
+
+Example use of a block diagram.
+
+.. blockdiag::
+   
+
+   blockdiag layers {
+   orientation = portrait
+   a -> m;
+   b -> n;
+   c -> x;
+   m -> y;
+   m -> z;
+   group l1 {
+	color = blue;
+	x; y; z;
+	}
+   group l2 {
+	color = yellow;
+	m; n; 
+	}
+   group l3 {
+	color = orange;
+	a; b; c;
+	}
+
+   }
+
+
diff --git a/docs/templates/sections/design.rst b/docs/templates/sections/design.rst
new file mode 100644
index 0000000..f173a2f
--- /dev/null
+++ b/docs/templates/sections/design.rst
@@ -0,0 +1,13 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Design
+======
+
+.. note::
+   * This section is used to describe the internal design structure of a software component.
+
+   * This section is typically provided: for a platform-component and sdk; and
+     referenced in developer guides.
+
+   * This note must be removed after content has been added.
diff --git a/docs/templates/sections/humaninsterfaces.rst b/docs/templates/sections/humaninsterfaces.rst
new file mode 100644
index 0000000..4292846
--- /dev/null
+++ b/docs/templates/sections/humaninsterfaces.rst
@@ -0,0 +1,17 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Human Interfaces
+================
+
+.. note::
+   * This section is used to describe a software component's command line and graphical
+     user interfaces.
+   
+   * This section is typically: provided for a platform-component and application; and
+     referenced from  user guides.
+   
+   * This note must be removed after content has been added.
+
+
+
diff --git a/docs/templates/sections/installation.rst b/docs/templates/sections/installation.rst
new file mode 100644
index 0000000..be64a63
--- /dev/null
+++ b/docs/templates/sections/installation.rst
@@ -0,0 +1,20 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Installation
+============
+
+.. note::
+   * This section is used to describe how a software component is acquired and installed.
+   
+   * This section is typically: provided for a platform-component and application; and
+     referenced in user guides.
+
+   * This note must be removed after content has been added.
+
+Environment
+-----------
+
+
+Steps
+-----
diff --git a/docs/templates/sections/logging.rst b/docs/templates/sections/logging.rst
new file mode 100644
index 0000000..39eabfb
--- /dev/null
+++ b/docs/templates/sections/logging.rst
@@ -0,0 +1,22 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Logging
+=======
+
+.. note::
+   * This section is used to describe the informational or diagnostic messages emitted from 
+     a software component and the methods or collecting them.
+   
+   * This section is typically: provided for a platform-component and sdk; and
+     referenced in developer and user guides
+   
+   * This note must be removed after content has been added.
+
+
+Where to Access Information
+---------------------------
+
+
+Error / Warning Messages
+------------------------
diff --git a/docs/templates/sections/offeredapis.rst b/docs/templates/sections/offeredapis.rst
new file mode 100644
index 0000000..b1b8f41
--- /dev/null
+++ b/docs/templates/sections/offeredapis.rst
@@ -0,0 +1,26 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Offered APIs
+============
+
+.. note::
+   * This section is used to describe the external interfaces offered by a software component
+   
+   * This section is typically: provided for a  platform-component and sdk; and 
+     referenced in developer guides and api reference manuals.
+   
+   * This note must be removed after content has been added.
+
+
+
+Here are several examples:
+
+.. toctree::
+   :maxdepth: 1
+   :titlesonly:
+
+   apiexample/swaggerv2doc.rst
+   apiexample/swagger2markup.rst
+   apiexample/worddoc2rst.rst
+   apiexample/httpdomain.rst
diff --git a/docs/templates/sections/release-notes.rst b/docs/templates/sections/release-notes.rst
new file mode 100644
index 0000000..ca25731
--- /dev/null
+++ b/docs/templates/sections/release-notes.rst
@@ -0,0 +1,46 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+
+Release Notes
+=============
+
+.. note::
+	* This Release Notes must be updated each time the team decides to Release new artifacts.
+	* The scope of this Release Notes is for this particular component. In other words, each ONAP component has its Release Notes.
+	* This Release Notes is cumulative, the most recently Released artifact is made visible in the top of this Release Notes.
+	* Except the date and the version number, all the other sections are optional but there must be at least one section describing the purpose of this new release.
+	* This note must be removed after content has been added.
+
+
+Version: x.y.z
+--------------
+
+
+:Release Date: yyyy-mm-dd
+
+
+
+**New Features**
+
+One or two sentences explaining the purpose of this Release.
+
+**Bug Fixes**
+	- `CIMAN-65 <https://jira.onap.org/browse/CIMAN-65>`_ and a sentence explaining what this defect is addressing.
+**Known Issues**
+	- `CIMAN-65 <https://jira.onap.org/browse/CIMAN-65>`_ and two, three sentences.
+	  One sentences explaining what is the issue.
+	  
+	  Another sentence explaining the impact of the issue.
+	  
+	  And an optional sentence providing a workaround.
+
+**Security Issues**
+	You may want to include a reference to CVE (Common Vulnerabilities and Exposures) `CVE <https://cve.mitre.org>`_
+
+
+**Upgrade Notes**
+
+**Deprecation Notes**
+
+**Other**
+
+===========
