Extend exception handler to report details

On failed requests, log and return details in the HTTP error response.
Extend documentation to pull in the OpenAPI specification document.
On store, overwrite ID in body with ID from path to ensure consistency.

Signed-off-by: Lott, Christopher (cl778h) <cl778h@att.com>
Change-Id: I630360bcf90c80b84392c6afb1e59347fccd13ef
diff --git a/docs/api-spec.rst b/docs/api-spec.rst
new file mode 100644
index 0000000..2191c4d
--- /dev/null
+++ b/docs/api-spec.rst
@@ -0,0 +1,16 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. SPDX-License-Identifier: CC-BY-4.0
+
+A1 Mediator API
+===============
+
+This page shows the Open API specification for the A1 Mediator.
+Alternately, if you have checked out the code and are running the server,
+you can see a formatted version at this URL: ``http://localhost:10000/ui/``.
+
+OpenAPI Specification
+---------------------
+
+.. literalinclude:: ../a1/openapi.yaml
+   :language: yaml
+   :linenos:
diff --git a/docs/developer-guide.rst b/docs/developer-guide.rst
index 63ddde3..5e18ca5 100644
--- a/docs/developer-guide.rst
+++ b/docs/developer-guide.rst
@@ -1,8 +1,8 @@
 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
 .. http://creativecommons.org/licenses/by/4.0
 
-Developer-Guide
-===============
+A1 Developer Guide
+==================
 
 .. contents::
    :depth: 3
@@ -14,10 +14,10 @@
 -  OpenAPI3
 -  Connexion
 -  Flask with Gevent serving
--  Python3.7
+-  Python3.8
 
-Version bumping
----------------
+Version bumping A1
+------------------
 
 This project follows semver. When changes are made, the versions are in:
 
@@ -34,16 +34,18 @@
 6) in the ric-plt repo that contains a1 helm chart, ``values.yaml``, ``Chart.yml``
 
 
-Version bumping rmr
+Version bumping RMR
 -------------------
+
 As of 2020/02/13, A1 (Dockerfile), Dockerfile-Unit-Test,  and all three integration test receivers use a base image from o-ran-sc.
 The rmr version is in that base image.
 When version changes are made in that image, rebuilding those 5 containers in the A1 repo will pick it up (or just A1 itself for prod usage).
 
 However, there are two items in this repo that must be kept in sync:  ``rmr-version.yaml``, which  controls what rmr gets installed for unit testing in Jenkins, and ``integration_tests/install_rmr.sh`` which is a useful script for a variety of local testing.
 
-Version bumping python itself
------------------------------
+Version bumping Python
+----------------------
+
 If you want to update the version of python itself (ie just done from 37 to 38):
 
 1) ``Dockerfile``
@@ -54,6 +56,7 @@
 
 Unit Testing
 ------------
+
 Note,  before this will work, for the first time on the machine running the tests, run ``./install_deps.sh``. This is only needed once on the machine.
 Also, this requires the python packages ``tox`` and ``pytest``.
 
@@ -70,6 +73,7 @@
 
 Integration testing
 -------------------
+
 This tests A1’s external API with three test receivers. This depends on helm+k8s.
 
 Build all the containers:
diff --git a/docs/index.rst b/docs/index.rst
index 5513baa..40e4463 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -1,20 +1,18 @@
 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
 .. SPDX-License-Identifier: CC-BY-4.0
 
-Welcome to O-RAN SC A1 Documentation
-=====================================
+RIC Platform A1 Mediator
+========================
 
 .. toctree::
    :maxdepth: 2
    :caption: Contents:
 
    overview.rst
-   developer-guide.rst
    installation-guide.rst
+   api-spec.rst
+   developer-guide.rst
    release-notes.rst
-..
-   user-guide.rst
-   api-docs.rst
 
 * :ref:`genindex`
 * :ref:`modindex`
diff --git a/docs/installation-guide.rst b/docs/installation-guide.rst
index babd4fb..d59cb87 100644
--- a/docs/installation-guide.rst
+++ b/docs/installation-guide.rst
@@ -2,8 +2,8 @@
 .. http://creativecommons.org/licenses/by/4.0
 .. Copyright (C) 2019 AT&T Intellectual Property
 
-Installation Guide
-==================
+A1 Installation Guide
+=====================
 
 .. contents::
    :depth: 3
diff --git a/docs/overview.rst b/docs/overview.rst
index 73f8ed9..ac751e7 100644
--- a/docs/overview.rst
+++ b/docs/overview.rst
@@ -1,19 +1,20 @@
 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
 .. SPDX-License-Identifier: CC-BY-4.0
 
-A1 Mediator
+A1 Overview
 ===========
 
+The RAN Intelligent Controller (RIC) Platform's A1 Mediator component listens for policy
+type and policy instance requests sent via HTTP (the "northbound" interface),
+and publishes those requests to running xApps via RMR messages (the "southbound" interface).
+
 Code
 ----
+
+Code is managed in this Gerrit repository:
+
 https://gerrit.o-ran-sc.org/r/admin/repos/ric-plt/a1
 
-API
----
-
-You can see the API (OpenAPI3 spec) at ``a1/openapi.yml``. You can also
-see the “pretty” version if you run the container at
-``http://localhost:10000/ui/``.
 
 Policy Overview
 ----------------
diff --git a/docs/release-notes.rst b/docs/release-notes.rst
index 660f781..3ced56e 100644
--- a/docs/release-notes.rst
+++ b/docs/release-notes.rst
@@ -14,11 +14,14 @@
    :depth: 3
    :local:
 
-[2.1.7] - 2020-04-22
+[2.1.7] - 2020-04-27
 --------------------
 
 * Upgrade to rmr 3.8.0
 * Upgrade integration tests to xapp-frame-go version 0.4.8 which drops NNG
+* Extend exception handler to return error details in HTTP response
+* Ensure that policy type ID on path matches ID in object
+* Add OpenAPI spec to RST documentation
 
 [2.1.6] - 4/7/2020
 -------------------