REST Plugin and client documentation
[policy/parent.git] / docs / apex / APEX-User-Manual.rst
index 50468a2..b10dcf8 100644 (file)
@@ -28,11 +28,11 @@ Installation Requirements
                .. container:: ulist
 
                   -  Downloaded distribution: JAVA runtime environment
                .. container:: ulist
 
                   -  Downloaded distribution: JAVA runtime environment
-                     (JRE, Java 8 or later, APEX is tested with the
-                     Oracle Java)
+                     (JRE, Java 11 or later, APEX is tested with the
+                     OpenJDK Java)
 
                   -  Building from source: JAVA development kit (JDK,
 
                   -  Building from source: JAVA development kit (JDK,
-                     Java 8 or later, APEX is tested with the Oracle
+                     Java 11 or later, APEX is tested with the OpenJDK
                      Java)
 
                   -  A web archive capable webserver, for instance for
                      Java)
 
                   -  A web archive capable webserver, for instance for
@@ -65,12 +65,6 @@ Installation Requirements
                               -  Windows for instance
                                  `7Zip <http://www.7-zip.org/>`__
 
                               -  Windows for instance
                                  `7Zip <http://www.7-zip.org/>`__
 
-                        -  RPM to install from the RPM distribution
-
-                           .. container:: ulist
-
-                              -  Install: ``sudo apt-get install rpm``
-
                         -  DPKG to install from the DEB distribution
 
                            .. container:: ulist
                         -  DPKG to install from the DEB distribution
 
                            .. container:: ulist
@@ -172,11 +166,6 @@ Build APEX
       repository. The first standard build (and any first specific build) requires Internet access to download those
       dependencies.
 
       repository. The first standard build (and any first specific build) requires Internet access to download those
       dependencies.
 
-   .. important::
-      Building RPM distributions
-      RPM images are only build if the ``rpm`` package is installed (Unix). To install  ``rpm`` run ``sudo apt-get install rpm``,
-      then build APEX.
-
    .. container:: paragraph
 
       Use Maven to for a standard build without any tests.
    .. container:: paragraph
 
       Use Maven to for a standard build without any tests.
@@ -305,7 +294,7 @@ Install APEX
 
    .. container:: ulist
 
 
    .. container:: ulist
 
-      -  Unix: automatically using ``rpm`` or ``dpkg`` from ``.rpm`` or
+      -  Unix: automatically using ``dpkg`` from
          ``.deb`` archive
 
       -  Windows, Unix, Cygwin: manually from a ``.tar.gz`` archive
          ``.deb`` archive
 
       -  Windows, Unix, Cygwin: manually from a ``.tar.gz`` archive
@@ -313,11 +302,14 @@ Install APEX
       -  Windows, Unix, Cygwin: build from source using Maven, then
          install manually
 
       -  Windows, Unix, Cygwin: build from source using Maven, then
          install manually
 
-Install with RPM and DPKG
-#########################
+Install with DPKG
+#################
 
       .. container:: paragraph
 
 
       .. container:: paragraph
 
+         You can get the APEX debian package from the
+         `ONAP Nexus Repository <https://nexus.onap.org/content/groups/public/org/onap/policy/apex-pdp/packages/apex-pdp-package-full/>`__.
+
          The install distributions of APEX automatically install the
          system. The installation directory is
          ``/opt/app/policy/apex-pdp``. Log files are located in
          The install distributions of APEX automatically install the
          system. The installation directory is
          ``/opt/app/policy/apex-pdp``. Log files are located in
@@ -332,29 +324,6 @@ Install with RPM and DPKG
          the standard APEX start scripts to run APEX with this user’s
          permissions.
 
          the standard APEX start scripts to run APEX with this user’s
          permissions.
 
-         +-----------------------------------------------------------------------+
-         | RPM Installation                                                      |
-         +=======================================================================+
-         | .. container::                                                        |
-         |                                                                       |
-         |    .. container:: listingblock                                        |
-         |                                                                       |
-         |       .. container:: content                                          |
-         |                                                                       |
-         |          .. code::                                                    |
-         |             :number-lines:                                            |
-         |                                                                       |
-         |             # sudo rpm -i apex-pdp-package-full-2.0.0-SNAPSHOT.rpm    |
-         |             ********************preinst*******************            |
-         |             arguments 1                                               |
-         |             **********************************************            |
-         |             creating group apexuser . . .                             |
-         |             creating user apexuser . . .                              |
-         |             ********************postinst****************              |
-         |             arguments 1                                               |
-         |             ***********************************************           |
-         +-----------------------------------------------------------------------+
-
 +--------------------------------------------------------------------------------------+
 | DPKG Installation                                                                    |
 +======================================================================================+
 +--------------------------------------------------------------------------------------+
 | DPKG Installation                                                                    |
 +======================================================================================+
@@ -393,7 +362,10 @@ Install Manually from Archive (Unix, Cygwin)
 
    .. container:: paragraph
 
 
    .. container:: paragraph
 
-      Download a ``tar.gz`` archive. Create a directory where APEX
+      You can download a ``tar.gz`` archive from the
+      `ONAP Nexus Repository <https://nexus.onap.org/content/groups/public/org/onap/policy/apex-pdp/packages/apex-pdp-package-full/>`__.
+
+      Create a directory where APEX
       should be installed. Extract the ``tar`` archive. The following
       example shows how to install APEX in ``/opt/apex`` and create a
       link to ``/opt/apex/apex`` for the most recent installation.
       should be installed. Extract the ``tar`` archive. The following
       example shows how to install APEX in ``/opt/apex`` and create a
       link to ``/opt/apex/apex`` for the most recent installation.
@@ -417,7 +389,10 @@ Install Manually from Archive (Windows, 7Zip, GUI)
 
    .. container:: paragraph
 
 
    .. container:: paragraph
 
-      Download a ``tar.gz`` archive and copy the file into the install
+      You can download a ``tar.gz`` archive from the
+      `ONAP Nexus Repository <https://nexus.onap.org/content/groups/public/org/onap/policy/apex-pdp/packages/apex-pdp-package-full/>`__.
+
+      Copy the ``tar.gz`` file into the install
       folder (in this example ``C:\apex``). Assuming you are using 7Zip,
       right click on the file and extract the ``tar`` archive. Note: the
       screenshots might show an older version than you have.
       folder (in this example ``C:\apex``). Assuming you are using 7Zip,
       right click on the file and extract the ``tar`` archive. Note: the
       screenshots might show an older version than you have.
@@ -455,7 +430,10 @@ Install Manually from Archive (Windows, 7Zip, CMD)
 
    .. container:: paragraph
 
 
    .. container:: paragraph
 
-      Download a ``tar.gz`` archive and copy the file into the install
+      You can download a ``tar.gz`` archive from the
+      `ONAP Nexus Repository <https://nexus.onap.org/content/groups/public/org/onap/policy/apex-pdp/packages/apex-pdp-package-full/>`__.
+
+      Copy the ``tar.gz`` file into the install
       folder (in this example ``C:\apex``). Start ``cmd``, for instance
       typing ``Windows+R`` and then ``cmd`` in the dialog. Assuming
       ``7Zip`` is installed in the standard folder, simply run the
       folder (in this example ``C:\apex``). Start ``cmd``, for instance
       typing ``Windows+R`` and then ``cmd`` in the dialog. Assuming
       ``7Zip`` is installed in the standard folder, simply run the
@@ -492,11 +470,6 @@ Build and Install Manually (Unix, Windows, Cygwin)
          from the created artifacts (``rpm``, ``deb``, ``tar.gz``, or
          copying manually).
 
          from the created artifacts (``rpm``, ``deb``, ``tar.gz``, or
          copying manually).
 
-      .. important::
-         Building RPM distributions
-         RPM images are only build if the ``rpm`` package is installed (Unix). To install ``rpm`` run
-         ``sudo apt-get install rpm``, then build APEX.
-
       .. container:: paragraph
 
          The following example shows how to build the APEX system,
       .. container:: paragraph
 
          The following example shows how to build the APEX system,
@@ -1138,14 +1111,14 @@ Verify Installation - run an Example
 
    Terminate APEX by simply using ``CTRL+C`` in the console.
 
 
    Terminate APEX by simply using ``CTRL+C`` in the console.
 
-Verify a Full Installation - REST Editor
+Verify a Full Installation - REST Client
 ########################################
 
    .. container:: paragraph
 
 ########################################
 
    .. container:: paragraph
 
-      APEX has a REST application for viewing policy models. The
+      APEX has a REST application for deploying, monitoring, and viewing policy models. The
       application can also be used to create new policy models close to
       application can also be used to create new policy models close to
-      the engine native policy language. Start the REST editor as
+      the engine native policy language. Start the REST client as
       follows.
 
    .. container:: listingblock
       follows.
 
    .. container:: listingblock
@@ -1155,7 +1128,7 @@ Verify a Full Installation - REST Editor
          .. code::
             :number-lines:
 
          .. code::
             :number-lines:
 
-            # $APEX_HOME/bin/apexApps.sh rest-editor
+            # $APEX_HOME/bin/apexApps.sh full-client
 
 .. container:: listingblock
 
 
 .. container:: listingblock
 
@@ -1164,13 +1137,13 @@ Verify a Full Installation - REST Editor
       .. code::
             :number-lines:
 
       .. code::
             :number-lines:
 
-            >%APEX_HOME%\bin\apexApps.bat rest-editor
+            >%APEX_HOME%\bin\apexApps.bat full-client
 
 .. container:: paragraph
 
    The script will start a simple web server
    (`Grizzly <https://javaee.github.io/grizzly/>`__) and deploy a
 
 .. container:: paragraph
 
    The script will start a simple web server
    (`Grizzly <https://javaee.github.io/grizzly/>`__) and deploy a
-   ``war`` web archive in it. Once the editor is started, it will be
+   ``war`` web archive in it. Once the client is started, it will be
    available on ``localhost:18989``. The last few line of the messages
    should be:
 
    available on ``localhost:18989``. The last few line of the messages
    should be:
 
@@ -1181,29 +1154,30 @@ Verify a Full Installation - REST Editor
       .. code::
          :number-lines:
 
       .. code::
          :number-lines:
 
-         Apex Editor REST endpoint (ApexEditorMain: Config=[ApexEditorParameters: URI=http://localhost:18989/apexservices/, TTL=-1sec], State=READY) starting at http://localhost:18989/apexservices/ . . .
-         Sep 05, 2018 10:35:57 PM org.glassfish.grizzly.http.server.NetworkListener start
+         Apex Editor REST endpoint (ApexServicesRestMain: Config=[ApexServicesRestParameters: URI=http://localhost:18989/apexservices/, TTL=-1sec], State=READY) starting at http://localhost:18989/apexservices/ . . .
+         Jul 02, 2020 2:57:39 PM org.glassfish.grizzly.http.server.NetworkListener start
          INFO: Started listener bound to [localhost:18989]
          INFO: Started listener bound to [localhost:18989]
-         Sep 05, 2018 10:35:57 PM org.glassfish.grizzly.http.server.HttpServer start
+         Jul 02, 2020 2:57:39 PM org.glassfish.grizzly.http.server.HttpServer start
          INFO: [HttpServer] Started.
          INFO: [HttpServer] Started.
-         Apex Editor REST endpoint (ApexEditorMain: Config=[ApexEditorParameters: URI=http://localhost:18989/apexservices/, TTL=-1sec], State=RUNNING) started at http://localhost:18989/apexservices/
+         Apex Editor REST endpoint (ApexServicesRestMain: Config=[ApexServicesRestParameters: URI=http://localhost:18989/apexservices/, TTL=-1sec], State=RUNNING) started at http://localhost:18989/apexservices/
+
 
 .. container:: paragraph
 
    Now open a browser (Firefox, Chrome, Opera, Internet Explorer) and
    use the URL ``http://localhost:18989/``. This will connect the
 
 .. container:: paragraph
 
    Now open a browser (Firefox, Chrome, Opera, Internet Explorer) and
    use the URL ``http://localhost:18989/``. This will connect the
-   browser to the started REST editor. The start screen should be as
+   browser to the started REST client. Click on the "Policy Editor" button and the Policy Editor start screen should be as
    follows.
 
 .. container:: imageblock
 
    .. container:: content
 
    follows.
 
 .. container:: imageblock
 
    .. container:: content
 
-      |REST Editor Start Screen|
+      |Policy Editor Start Screen|
 
    .. container:: title
 
 
    .. container:: title
 
-      Figure 1. REST Editor Start Screen
+      Figure 1. Policy Editor Start Screen
 
 .. container:: paragraph
 
 
 .. container:: paragraph
 
@@ -1218,32 +1192,32 @@ Verify a Full Installation - REST Editor
 
    .. container:: content
 
 
    .. container:: content
 
-      |REST Editor with loaded SampleDomain Policy Model|
+      |Policy Editor with loaded SampleDomain Policy Model|
 
    .. container:: title
 
 
    .. container:: title
 
-      Figure 2. REST Editor with loaded SampleDomain Policy Model
+      Figure 2. Policy Editor with loaded SampleDomain Policy Model
 
 .. container:: paragraph
 
 
 .. container:: paragraph
 
-   Now you can use the REST editor. To finish this verification, simply
+   Now you can use the Policy editor. To finish this verification, simply
    terminate your browser (or the tab), and then use ``CTRL+C`` in the
    terminate your browser (or the tab), and then use ``CTRL+C`` in the
-   console where you started the REST editor.
+   console where you started the Policy editor.
 
 
-Installing WAR Applications
----------------------------
+Installing the WAR Application
+------------------------------
 
    .. container:: paragraph
 
 
    .. container:: paragraph
 
-      APEX comes with a set of WAR files. These are complete
-      applications that can be installed and run in an application
-      server. All of these applications are realized as servlets. You
-      can find the WAR applications in ``$APEX_HOME/war`` (UNIX, Cygwin)
-      or ``%APEX_HOME%\war`` (Windows).
+      The three APEX clients are packaged in a WAR file. This is a complete
+      application that can be installed and run in an application
+      server. The application is realized as a servlet. You
+      can find the WAR application in the `ONAP Nexus Repository <https://nexus.onap.org/content/groups/public/org/onap/policy/apex-pdp/client/apex-client-full/>`__.
+
 
    .. container:: paragraph
 
 
    .. container:: paragraph
 
-      Installing and using the WAR applications requires a web server
+      Installing and using the WAR application requires a web server
       that can execute ``war`` web archives. We recommend to use `Apache
       Tomcat <https://tomcat.apache.org/>`__, however other web servers
       can be used as well.
       that can execute ``war`` web archives. We recommend to use `Apache
       Tomcat <https://tomcat.apache.org/>`__, however other web servers
       can be used as well.
@@ -1257,7 +1231,7 @@ Installing WAR Applications
 
    .. container:: paragraph
 
 
    .. container:: paragraph
 
-      There are multiple ways to install the APEX WAR applications:
+      There are multiple ways to install the APEX WAR application:
 
    .. container:: ulist
 
 
    .. container:: ulist
 
@@ -1287,23 +1261,7 @@ Installing WAR Applications
 
    .. container:: paragraph
 
 
    .. container:: paragraph
 
-      The current APEX version provides the following WAR applications:
-
-   .. container:: ulist
-
-      -  client-deployment-2.0.0-SNAPSHOT.war - a client to deploy new
-         policy models to a running engine
-
-      -  client-editor-2.0.0-SNAPSHOT.war - the standard policy REST
-         editor GUI
-
-      -  client-monitoring-2.0.0-SNAPSHOT.war - a client for monitoring
-         a running APEX engine
-
-      -  client-full-2.0.0-SNAPSHOT.war - a full client with a
-         one-stop-access to deployment, monitoring, and REST editor
-
-      -  examples-servlet-2.0.0-SNAPSHOT.war - an example APEX servlet
+      The WAR application file has a name similar to *apex-client-full-<VERSION>.war*.
 
 Running APEX in Docker
 ----------------------
 
 Running APEX in Docker
 ----------------------
@@ -1559,7 +1517,8 @@ Engine Service Parameters
                     "id"             :  45,  (3)
                     "instanceCount"  : 4,  (4)
                     "deploymentPort" : 12345,  (5)
                     "id"             :  45,  (3)
                     "instanceCount"  : 4,  (4)
                     "deploymentPort" : 12345,  (5)
-                    "policyModelFileName" : "examples/models/VPN/VPNPolicyModelJava.json", (6)
+                    "policyModelFileName" : "examples/models/VPN/VPNPolicyModelJava.json", (6a)
+                    "policy_type_impl" : {...}, (6b)
                     "periodicEventPeriod": 1000, (7)
                     "engineParameters":{ (8)
                       "executorParameters":{...}, (9)
                     "periodicEventPeriod": 1000, (7)
                     "engineParameters":{ (8)
                       "executorParameters":{...}, (9)
@@ -1601,8 +1560,19 @@ Engine Service Parameters
             |                                   | Websocket connection to the       |
             |                                   | engine                            |
             +-----------------------------------+-----------------------------------+
             |                                   | Websocket connection to the       |
             |                                   | engine                            |
             +-----------------------------------+-----------------------------------+
-            | **6**                             | the model file to load into the   |
-            |                                   | engine on startup (optional)      |
+            | **6a**                            | the APEX policy model file to     |
+            |                                   | load into the engine on startup   |
+            |                                   | when APEX is running native       |
+            |                                   | policies in standalone mode       |
+            |                                   | (optional)                        |
+            +-----------------------------------+-----------------------------------+
+            | **6b**                            | the APEX policy model as a JSON   |
+            |                                   | or YAML block to load into the    |
+            |                                   | engine on startup when            |
+            |                                   | APEX is running a policy that has |
+            |                                   | its logic and parameters          |
+            |                                   | specified in TOSCA                |
+            |                                   | (optional)                        |
             +-----------------------------------+-----------------------------------+
             | **7**                             | an optional timer for periodic    |
             |                                   | policies, in milliseconds (a      |
             +-----------------------------------+-----------------------------------+
             | **7**                             | an optional timer for periodic    |
             |                                   | policies, in milliseconds (a      |
@@ -2903,7 +2873,12 @@ REST Client Input
                             "org.onap.policy.apex.plugins.event.carrier.restclient.RESTClientCarrierTechnologyParameters",
                           "parameters" : {
                             "url" : "http://example.org:8080/triggers/events", (2)
                             "org.onap.policy.apex.plugins.event.carrier.restclient.RESTClientCarrierTechnologyParameters",
                           "parameters" : {
                             "url" : "http://example.org:8080/triggers/events", (2)
-                            "httpCodeFilter" : "[2][0-9][0-9]" (3)
+                            "httpMethod": "GET", (3)
+                            "httpCodeFilter" : "[2][0-9][0-9]", (4)
+                             "httpHeaders" : [ (5)
+                                ["Keep-Alive", "300"],
+                                ["Cache-Control", "no-cache"]
+                             ]
                           }
                         }
 
                           }
                         }
 
@@ -2914,7 +2889,14 @@ REST Client Input
                   +-------+--------------------------------------------------+
                   | **2** | the URL of the HTTP server for events            |
                   +-------+--------------------------------------------------+
                   +-------+--------------------------------------------------+
                   | **2** | the URL of the HTTP server for events            |
                   +-------+--------------------------------------------------+
-                  | **3** | use HTTP CODE FILTER for filtering status code   |
+                  | **3** | the HTTP method to use (GET/PUT/POST/DELETE),    |
+                  |       | optional, defaults to GET                        |
+                  +-------+--------------------------------------------------+
+                  | **4** | use HTTP CODE FILTER for filtering status code,  |
+                  |       | optional, defaults to [2][0-9][0-9]              |
+                  +-------+--------------------------------------------------+
+                  | **5** | HTTP headers to use on the REST request,         |
+                  |       | optional                                         |
                   +-------+--------------------------------------------------+
 
 REST Client Output
                   +-------+--------------------------------------------------+
 
 REST Client Output
@@ -2950,8 +2932,11 @@ REST Client Output
                           "parameters" : {
                             "url" : "http://example.com:8888/actions/events", (2)
                             "url" : "http://example.{site}.com:8888/{trig}/events", (2')
                           "parameters" : {
                             "url" : "http://example.com:8888/actions/events", (2)
                             "url" : "http://example.{site}.com:8888/{trig}/events", (2')
-                            "httpMethod" : "PUT" (3)
-                          }
+                            "httpMethod" : "PUT". (3)
+                            "httpHeaders" : [ (4)
+                               ["Keep-Alive", "300"],
+                               ["Cache-Control", "no-cache"]
+                            ]                          }
                         }
 
                .. container:: colist arabic
                         }
 
                .. container:: colist arabic
@@ -2963,7 +2948,11 @@ REST Client Output
                   +-------+--------------------------------------------------+
                   | **2'**| the tagged URL of the HTTP server for events     |
                   +-------+--------------------------------------------------+
                   +-------+--------------------------------------------------+
                   | **2'**| the tagged URL of the HTTP server for events     |
                   +-------+--------------------------------------------------+
-                  | **3** | use HTTP PUT (remove this line to use HTTP POST) |
+                  | **3** | the HTTP method to use (GET/PUT/POST/DELETE),    |
+                  |       | optional, defaults to POST                       |
+                  +-------+--------------------------------------------------+
+                  | **4** | HTTP headers to use on the REST request,         |
+                  |       | optional                                         |
                   +-------+--------------------------------------------------+
 
 REST Server IO
                   +-------+--------------------------------------------------+
 
 REST Server IO
@@ -3178,14 +3167,81 @@ REST Requestor IO
                APEX can act as REST requestor on the input as well as on
                the output interface. The media type is
                ``application/json``, so this plugin only works with
                APEX can act as REST requestor on the input as well as on
                the output interface. The media type is
                ``application/json``, so this plugin only works with
-               the JSON Event protocol.
+               the JSON Event protocol. This plugin allows APEX to send REST requests
+               and to receive the reply of that request without tying up APEX resources
+               while the request is being processed. The REST Requestor pairs a REST
+               requestor producer and consumer together to handle the REST request
+               and response. The REST request is created from an APEX output event
+               and the REST response is input into APEX as a new input event.
 
 
-REST Requestor Input
-====================
+REST Requestor Output (REST Request Producer)
+=============================================
 
                .. container:: paragraph
 
 
                .. container:: paragraph
 
-                  APEX will connect to a given URL to request an input.
+                  APEX sends a REST request when events are output by APEX, the REST
+                  request configuration is specified on the REST Request Consumer (see
+                  below).
+
+               .. container:: listingblock
+
+                  .. container:: content
+
+                     .. code::
+
+                        "carrierTechnologyParameters": {
+                          "carrierTechnology": "RESTREQUESTOR", (1)
+                          "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restrequestor.RESTRequestorCarrierTechnologyParameters"
+                        },
+
+               .. container:: colist arabic
+
+                  +-------+------------------------------------------+
+                  | **1** | set REST requestor as carrier technology |
+                  +-------+------------------------------------------+
+
+               .. container:: paragraph
+
+                  The settings below are required on the producer to
+                  define the event that triggers the REST request and
+                  to specify the peered consumer configuration for the
+                  REST request, for example:
+
+               .. container:: listingblock
+
+                  .. container:: content
+
+                     .. code::
+
+                        "eventNameFilter": "GuardRequestEvent", (1)
+                        "requestorMode": true, (2)
+                        "requestorPeer": "GuardRequestorConsumer", (3)
+                        "requestorTimeout": 500 (4)
+
+               .. container:: colist arabic
+
+                  +-------+-------------------------------------------+
+                  | **1** | a filter on the event                     |
+                  +-------+-------------------------------------------+
+                  | **2** | requestor mode must be set to *true*      |
+                  +-------+-------------------------------------------+
+                  | **3** | the peered consumer for REST requests,    |
+                  |       | that consumer specifies the full          |
+                  |       | configuration for REST requests           |
+                  +-------+-------------------------------------------+
+                  | **4** | the request timeout in milliseconds,      |
+                  |       | overridden by timeout on consumer if that |
+                  |       | is set, optional defaults to 500          |
+                  |       | millisconds                               |
+                  +-------+-------------------------------------------+
+
+REST Requestor Input (REST Request Consumer)
+============================================
+
+               .. container:: paragraph
+
+                  APEX will connect to a given URL to issue a REST request and
+                  wait for a REST response.
                   The URL can be configured statically or tagged
                   as ``?example.{site}.org:8080/{trig}/events``,
                   all tags such as ``site`` and ``trig`` in the URL
                   The URL can be configured statically or tagged
                   as ``?example.{site}.org:8080/{trig}/events``,
                   all tags such as ``site`` and ``trig`` in the URL
@@ -3216,9 +3272,14 @@ REST Requestor Input
                             "url": "http://localhost:54321/some/path/to/rest/resource", (2)
                             "url": "http://localhost:54321/{site}/path/to/rest/{resValue}", (2')
                             "httpMethod": "POST", (3)
                             "url": "http://localhost:54321/some/path/to/rest/resource", (2)
                             "url": "http://localhost:54321/{site}/path/to/rest/{resValue}", (2')
                             "httpMethod": "POST", (3)
-                            "restRequestTimeout": 2000, (4)
-                            "httpCodeFilter" : "[2][0-9][0-9]" (5)
-                          }
+                            "requestorMode": true, (4)
+                            "requestorPeer": "GuardRequestorProducer", (5)
+                            "restRequestTimeout": 2000, (6)
+                            "httpCodeFilter" : "[2][0-9][0-9]" (7)
+                            "httpHeaders" : [ (8)
+                               ["Keep-Alive", "300"],
+                               ["Cache-Control", "no-cache"]
+                            ]                          }
                         },
 
                .. container:: colist arabic
                         },
 
                .. container:: colist arabic
@@ -3230,17 +3291,31 @@ REST Requestor Input
                   +-------+--------------------------------------------------+
                   | **2'**| the tagged URL of the HTTP server for events     |
                   +-------+--------------------------------------------------+
                   +-------+--------------------------------------------------+
                   | **2'**| the tagged URL of the HTTP server for events     |
                   +-------+--------------------------------------------------+
-                  | **3** | use HTTP PUT (remove this line to use HTTP POST) |
+                  | **3** | the HTTP method to use (GET/PUT/POST/DELETE),    |
+                  |       | optional, defaults to GET                        |
+                  +-------+--------------------------------------------------+
+                  | **4** | requestor mode must be set to *true*             |
+                  +-------+--------------------------------------------------+
+                  | **5** | the peered producer for REST requests, that      |
+                  |       | producer specifies the APEX output event that    |
+                  |       | triggers the REST request                        |
                   +-------+--------------------------------------------------+
                   +-------+--------------------------------------------------+
-                  | **4** | request timeout in milliseconds                  |
+                  | **6** | request timeout in milliseconds, overrides any   |
+                  |       | value set in the REST Requestor Producer,        |
+                  |       | optional, defaults to 500 millisconds            |
                   +-------+--------------------------------------------------+
                   +-------+--------------------------------------------------+
-                  | **5** | use HTTP CODE FILTER for filtering status code   |
+                  | **7** | use HTTP CODE FILTER for filtering status code   |
+                  |       | optional, defaults to [2][0-9][0-9]              |
+                  +-------+--------------------------------------------------+
+                  | **8** | HTTP headers to use on the REST request,         |
+                  |       | optional                                         |
                   +-------+--------------------------------------------------+
 
                .. container:: paragraph
 
                   +-------+--------------------------------------------------+
 
                .. container:: paragraph
 
-                  Further settings are required on the consumer to
-                  define the event that is requested, for example:
+                  Further settings may be required on the consumer to
+                  define the input event that is produced and forwarded into
+                  APEX, for example:
 
                .. container:: listingblock
 
 
                .. container:: listingblock
 
@@ -3249,10 +3324,7 @@ REST Requestor Input
                      .. code::
 
                         "eventName": "GuardResponseEvent", (1)
                      .. code::
 
                         "eventName": "GuardResponseEvent", (1)
-                        "eventNameFilter": "GuardResponseEvent", (2)
-                        "requestorMode": true, (3)
-                        "requestorPeer": "GuardRequestorProducer", (4)
-                        "requestorTimeout": 500 (5)
+                        "eventNameFilter": "GuardResponseEvent" (2)
 
                .. container:: colist arabic
 
 
                .. container:: colist arabic
 
@@ -3261,65 +3333,6 @@ REST Requestor Input
                   +-------+---------------------------+
                   | **2** | a filter on the event     |
                   +-------+---------------------------+
                   +-------+---------------------------+
                   | **2** | a filter on the event     |
                   +-------+---------------------------+
-                  | **3** | the mode of the requestor |
-                  +-------+---------------------------+
-                  | **4** | a peer for the requestor  |
-                  +-------+---------------------------+
-                  | **5** | a general request timeout |
-                  +-------+---------------------------+
-
-REST Requestor Output
-=====================
-
-               .. container:: paragraph
-
-                  APEX will connect to a given URL to send events, but
-                  not receive any events.
-
-               .. container:: listingblock
-
-                  .. container:: content
-
-                     .. code::
-
-                        "carrierTechnologyParameters": {
-                          "carrierTechnology": "RESTREQUESTOR", (1)
-                          "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restrequestor.RESTRequestorCarrierTechnologyParameters"
-                        },
-
-               .. container:: colist arabic
-
-                  +-------+------------------------------------------+
-                  | **1** | set REST requestor as carrier technology |
-                  +-------+------------------------------------------+
-
-               .. container:: paragraph
-
-                  Further settings are required on the consumer to
-                  define the event that is requested, for example:
-
-               .. container:: listingblock
-
-                  .. container:: content
-
-                     .. code::
-
-                        "eventNameFilter": "GuardRequestEvent", (1)
-                        "requestorMode": true, (2)
-                        "requestorPeer": "GuardRequestorConsumer", (3)
-                        "requestorTimeout": 500 (4)
-
-               .. container:: colist arabic
-
-                  +-------+---------------------------+
-                  | **1** | a filter on the event     |
-                  +-------+---------------------------+
-                  | **2** | the mode of the requestor |
-                  +-------+---------------------------+
-                  | **3** | a peer for the requestor  |
-                  +-------+---------------------------+
-                  | **4** | a general request timeout |
-                  +-------+---------------------------+
 
 gRPC IO
 #######
 
 gRPC IO
 #######
@@ -4224,250 +4237,13 @@ The APEX CLI Tosca Editor
 
                   %APEX_HOME%/\bin/\apexCLIToscaEditor.bat -c %APEX_HOME%\examples\PolicyModel.apex -ot %APEX_HOME%\examples\test.json  -l %APEX_HOME%\examples\test.log -ac %APEX_HOME%\examples\RESTServerStandaloneJsonEvent.json -t %APEX_HOME%\examples\ToscaTemplate.json
 
 
                   %APEX_HOME%/\bin/\apexCLIToscaEditor.bat -c %APEX_HOME%\examples\PolicyModel.apex -ot %APEX_HOME%\examples\test.json  -l %APEX_HOME%\examples\test.log -ac %APEX_HOME%\examples\RESTServerStandaloneJsonEvent.json -t %APEX_HOME%\examples\ToscaTemplate.json
 
-The APEX REST Editor
---------------------
-
-         .. container:: paragraph
-
-            The standard way to use the APEX REST Editor is via an
-            installation of the *war* file on a webserver. However, the
-            REST editor can also be started via command line. This will
-            start a Grizzly webserver with the *war* deployed. Access to
-            the REST Editor is then via the provided URL
-
-         .. container:: paragraph
-
-            On UNIX and Cygwin systems use:
-
-         .. container:: ulist
-
-            -  ``apexRESTEditor.sh`` - simply starts the webserver with
-               the REST editor
-
-            -  ``apexApps.sh rest-editor`` - simply starts the webserver
-               with the REST editor
-
-         .. container:: paragraph
-
-            On Windows systems use:
-
-         .. container:: ulist
-
-            -  ``apexRESTEditor.bat`` - simply starts the webserver with
-               the REST editor
-
-            -  ``apexApps.bat rest-editor`` - simply starts the
-               webserver with the REST editor
-
-         .. container:: paragraph
-
-            Summary of alternatives to start the APEX REST Editor:
-
-         +-------------------------------------------------------------+---------------------------------------------------------------+
-         | Unix, Cygwin                                                | Windows                                                       |
-         +=============================================================+===============================================================+
-         | .. container::                                              | .. container::                                                |
-         |                                                             |                                                               |
-         |    .. container:: listingblock                              |    .. container:: listingblock                                |
-         |                                                             |                                                               |
-         |       .. container:: content                                |       .. container:: content                                  |
-         |                                                             |                                                               |
-         |          .. code::                                          |          .. code::                                            |
-         |                                                             |                                                               |
-         |             # $APEX_HOME/bin/apexRESTEditor.sh.sh [args]    |             > %APEX_HOME%\bin\apexRESTEditor.bat [args]       |
-         |             # $APEX_HOME/bin/apexApps.sh rest-editor [args] |             > %APEX_HOME%\bin\apexApps.bat rest-editor [args] |
-         +-------------------------------------------------------------+---------------------------------------------------------------+
-
-         .. container:: paragraph
-
-            The option ``-h`` provides a help screen with all command
-            line arguments.
-
-         .. container:: listingblock
-
-            .. container:: content
-
-               .. code::
-
-                  usage: org.onap.policy.apex.client.editor.rest.ApexEditorMain [options...]
-                  -h,--help                        outputs the usage of this command
-                  -l,--listen <ADDRESS>            the IP address to listen on.  Default value is localhost to restrict access to the
-                                                   local machine only.
-                  -p,--port <PORT>                 port to use for the Apex RESTful editor REST calls.
-                  -t,--time-to-live <TIME_TO_LIVE> the amount of time in seconds that the server will run for before terminating. Default
-                                                   value is -1 to run indefinitely.
-
-         .. container:: paragraph
-
-            If the REST Editor is started without any arguments the
-            final messages will look similar to this:
-
-         .. container:: listingblock
-
-            .. container:: content
-
-               .. code::
-
-                  Apex Editor REST endpoint (ApexEditorMain: Config=[ApexEditorParameters: URI=http://localhost:18989/apexservices/, TTL=-1sec], State=READY) starting at http://localhost:18989/apexservices/ . . .
-                  Sep 05, 2018 11:24:30 PM org.glassfish.grizzly.http.server.NetworkListener start
-                  INFO: Started listener bound to [localhost:18989]
-                  Sep 05, 2018 11:24:30 PM org.glassfish.grizzly.http.server.HttpServer start
-                  INFO: [HttpServer] Started.
-                  Apex Editor REST endpoint (ApexEditorMain: Config=[ApexEditorParameters: URI=http://localhost:18989/apexservices/, TTL=-1sec], State=RUNNING) started at http://localhost:18989/apexservices/
-
-         .. container:: paragraph
-
-            The last line states the URL on which the REST Editor can be
-            accessed. The example above stated
-            ``http://0.0.0.0:18989/apex/``. In a web browser use the URL
-            ``http://localhost:18989`` and the REST Editor will start.
-
-The APEX Monitoring Client
---------------------------
-
-         .. container:: paragraph
-
-            The standard way to use the APEX Monitoring Client is via an
-            installation of the *war* file on a webserver. However, the
-            Monitoring Client can also be started via command line. This
-            will start a Grizzly webserver with the *war* deployed.
-            Access to the Monitoring Client is then via the provided URL
-
-         .. container:: paragraph
-
-            On UNIX and Cygwin systems use:
-
-         .. container:: ulist
-
-            -  ``apexApps.sh eng-monitoring`` - simply starts the
-               webserver with the Monitoring Client
-
-         .. container:: paragraph
-
-            On Windows systems use:
-
-         .. container:: ulist
-
-            -  ``apexApps.bat eng-monitoring`` - simply starts the
-               webserver with the Monitoring Client
-
-         .. container:: paragraph
-
-            The option ``-h`` provides a help screen with all command
-            line arguments.
-
-         .. container:: listingblock
-
-            .. container:: content
-
-               .. code::
 
 
-                  usage: org.onap.policy.apex.client.monitoring.rest.ApexMonitoringRestMain [options...]
-                  -h,--help                        outputs the usage of this command
-                  -p,--port <PORT>                 port to use for the Apex Services REST calls
-                  -t,--time-to-live <TIME_TO_LIVE> the amount of time in seconds that the server will run for before terminating
-
-         .. container:: paragraph
-
-            If the Monitoring Client is started without any arguments
-            the final messages will look similar to this:
-
-         .. container:: listingblock
-
-            .. container:: content
-
-               .. code::
-
-                  Apex Services REST endpoint (ApexMonitoringRestMain: Config=[ApexMonitoringRestParameters: URI=http://localhost:18989/apexservices/, TTL=-1sec], State=READY) starting at http://localhost:18989/apexservices/ . . .
-                  Sep 05, 2018 11:26:20 PM org.glassfish.grizzly.http.server.NetworkListener start
-                  INFO: Started listener bound to [localhost:18989]
-                  Sep 05, 2018 11:26:20 PM org.glassfish.grizzly.http.server.HttpServer start
-                  INFO: [HttpServer] Started.
-                  Apex Services REST endpoint (ApexMonitoringRestMain: Config=[ApexMonitoringRestParameters: URI=http://localhost:18989/apexservices/, TTL=-1sec], State=RUNNING) started at http://localhost:18989/apexservices/
-
-         .. container:: paragraph
-
-            The last line states the URL on which the Monitoring Client
-            can be accessed. The example above stated
-            ``http://localhost:18989/apexservices``. In a web browser
-            use the URL ``http://localhost:18989``.
-
-The APEX Deployment Client
---------------------------
-
-         .. container:: paragraph
-
-            The standard way to use the APEX Deployment Client is via an
-            installation of the *war* file on a webserver. However, the
-            Deployment Client can also be started via command line. This
-            will start a Grizzly webserver with the *war* deployed.
-            Access to the Deployment Client is then via the provided URL
-
-         .. container:: paragraph
-
-            On UNIX and Cygwin systems use:
-
-         .. container:: ulist
-
-            -  ``apexApps.sh eng-deployment`` - simply starts the
-               webserver with the Deployment Client
-
-         .. container:: paragraph
-
-            On Windows systems use:
-
-         .. container:: ulist
-
-            -  ``apexApps.bat eng-deployment`` - simply starts the
-               webserver with the Deployment Client
-
-         .. container:: paragraph
-
-            The option ``-h`` provides a help screen with all command
-            line arguments.
-
-         .. container:: listingblock
-
-            .. container:: content
-
-               .. code::
-
-                  usage: org.onap.policy.apex.client.deployment.rest.ApexDeploymentRestMain [options...]
-                  -h,--help                        outputs the usage of this command
-                  -p,--port <PORT>                 port to use for the Apex Services REST calls
-                  -t,--time-to-live <TIME_TO_LIVE> the amount of time in seconds that the server will run for before terminating
-
-         .. container:: paragraph
-
-            If the Deployment Client is started without any arguments
-            the final messages will look similar to this:
-
-         .. container:: listingblock
-
-            .. container:: content
-
-               .. code::
-
-                  Apex Services REST endpoint (ApexDeploymentRestMain: Config=[ApexDeploymentRestParameters: URI=http://localhost:18989/apexservices/, TTL=-1sec], State=READY) starting at http://localhost:18989/apexservices/ . . .
-                  Sep 05, 2018 11:27:09 PM org.glassfish.grizzly.http.server.NetworkListener start
-                  INFO: Started listener bound to [localhost:18989]
-                  Sep 05, 2018 11:27:09 PM org.glassfish.grizzly.http.server.HttpServer start
-                  INFO: [HttpServer] Started.
-                  Apex Services REST endpoint (ApexDeploymentRestMain: Config=[ApexDeploymentRestParameters: URI=http://localhost:18989/apexservices/, TTL=-1sec], State=RUNNING) started at http://localhost:18989/apexservices/
-
-         .. container:: paragraph
-
-            The last line states the URL on which the Deployment Client
-            can be accessed. The example above stated
-            ``http://localhost:18989/apexservices``. In a web browser
-            use the URL ``http://localhost:18989``.
-
-The APEX Full Client
+The APEX Client
 --------------------
 
          .. container:: paragraph
 
 --------------------
 
          .. container:: paragraph
 
-            The APEX Full Client combines the REST Editor, the
+            The APEX Client combines the Policy Editor, the
             Monitoring Client, and the Deployment Client into a single
             application. The standard way to use the APEX Full Client is
             via an installation of the *war* file on a webserver.
             Monitoring Client, and the Deployment Client into a single
             application. The standard way to use the APEX Full Client is
             via an installation of the *war* file on a webserver.
@@ -4540,7 +4316,7 @@ The APEX Application Launcher
 
          .. container:: paragraph
 
 
          .. container:: paragraph
 
-            The standard applications (Engine, CLI Editor, REST Editor)
+            The standard applications (Engine and CLI Editor)
             come with dedicated start scripts. For all other APEX
             applications, we provide an application launcher.
 
             come with dedicated start scripts. For all other APEX
             applications, we provide an application launcher.
 
@@ -5967,13 +5743,5 @@ Send Events
    .. container::
       :name: footer-text
 
    .. container::
       :name: footer-text
 
-      2.0.0-SNAPSHOT
-      Last updated 2018-09-10 15:38:16 IST
-
-.. |Extract the TAR archive| image:: images/install-guide/win-extract-tar-gz.png
-.. |Extract the APEX distribution| image:: images/install-guide/win-extract-tar.png
-.. |REST Editor Start Screen| image:: images/install-guide/rest-start.png
-.. |REST Editor with loaded SampleDomain Policy Model| image:: images/install-guide/rest-loaded.png
-.. |APEX Configuration Matrix| image:: images/apex-intro/ApexEngineConfig.png