Update apex-pdp kafka io docs
[policy/parent.git] / docs / apex / APEX-User-Manual.rst
index f6a5d23..7503246 100644 (file)
@@ -8,8 +8,8 @@ APEX User Manual
 .. contents::
     :depth: 3
 
-Installation
-^^^^^^^^^^^^
+Installation of Apex
+^^^^^^^^^^^^^^^^^^^^
 
 Requirements
 ------------
@@ -226,13 +226,14 @@ Build APEX
 +----------------------------------------------------------------------------------------------------------------+
 | Unix, Cygwin                                                                                                   |
 +================================================================================================================+
-| .. container::                                                                                                 |
+| .. container:: content                                                                                         |
 |                                                                                                                |
 | .. container:: listingblock                                                                                    |
 |                                                                                                                |
 | .. container:: content                                                                                         |
 |                                                                                                                |
 | .. code::                                                                                                      |
+|                                                                                                                |
 | :number-lines:                                                                                                 |
 |                                                                                                                |
 | -rwxrwx---+ 1 esvevan Domain Users       772 Sep  3 11:55 apex-pdp-package-full_2.0.0~SNAPSHOT_all.changes*    |
@@ -1401,7 +1402,7 @@ Run in a docker container
          :number-lines:
 
           # docker run -p 6969:6969 -v $APEX_HOME/ToscaPolicy.json:/tmp/policy/ToscaPolicy.json \
-            --name apex -it nexus3.onap.org:10001/onap/policy-apex-pdp:latest /bin/bash \
+            --name apex -it nexus3.onap.org:10001/onap/policy-apex-pdp:latest \
             -c "/opt/app/policy/apex-pdp/bin/apexEngine.sh -p /tmp/policy/ToscaPolicy.json"
 
 APEX Configurations Explained
@@ -1781,6 +1782,52 @@ Input and Output Interfaces
             | **18** | any other output configuration (e.g. event name filter, see below) |
             +--------+--------------------------------------------------------------------+
 
+Event Name
+##########
+
+            .. container:: paragraph
+
+               Any event defined in APEX has to be unique. The "name" of
+               of an event is used as an identifier for an ApexEvent. Every
+               event has to be tagged to an eventName. This can be done in different
+               ways. Either the actual event can have a field called "name". Or, the
+               event has some other field that can act as the identifier, which can be
+               specified using "nameAlias". But in other cases, where a "name" or "nameAlias"
+               cannot be specified, the incoming event coming over an endpoint can be
+               manually tagged to an "eventName" before consuming it.
+
+            .. container:: paragraph
+
+               The "eventName" can have a single event's name if the event coming
+               over the endpoint has to be always mapped to the specified eventName's
+               definition. Otherwise, if different events can come over the endpoint,
+               then "eventName" field can consist of multiple event names separated by
+               "|" symbol. In this case, based on the received event's structure, it is
+               mapped to any one of the event name specified in the "eventName" field.
+
+            .. container:: paragraph
+
+               The following code shows some examples on how to specify the eventName field:
+
+            .. container:: listingblock
+
+               .. container:: content
+
+                  .. code::
+
+                     "eventInputParameters": {
+                       "Input1": {
+                         "carrierTechnologyParameters" : {...},
+                         "eventProtocolParameters":{...},
+                         "eventName" : "VesEvent" (1)
+                       },
+                       "Input2": {
+                         "carrierTechnologyParameters" : {...},
+                         "eventProtocolParameters":{...},
+                         "eventName" : "AAISuccessResponseEvent|AAIFailureResponseEvent" (2)
+                       }
+                     }
+
 Event Filters
 #############
 
@@ -2533,6 +2580,36 @@ Kafka Input
                                 "org.apache.kafka.common.serialization.StringDeserializer", (9)
                             "valueDeserializer" :
                                 "org.apache.kafka.common.serialization.StringDeserializer" (10)
+                            "kafkaProperties": [  (11)
+                                                 [
+                                                   "security.protocol",
+                                                   "SASL_SSL"
+                                                 ],
+                                                 [
+                                                   "ssl.truststore.type",
+                                                   "JKS"
+                                                 ],
+                                                 [
+                                                   "ssl.truststore.location",
+                                                   "/opt/app/policy/apex-pdp/etc/ssl/test.jks"
+                                                 ],
+                                                 [
+                                                   "ssl.truststore.password",
+                                                   "policy0nap"
+                                                 ],
+                                                 [
+                                                   "sasl.mechanism",
+                                                   "SCRAM-SHA-512"
+                                                 ],
+                                                 [
+                                                   "sasl.jaas.config",
+                                                   "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"policy\" password=\"policy\";"
+                                                 ],
+                                                 [
+                                                   "ssl.endpoint.identification.algorithm",
+                                                   ""
+                                                 ]
+                                               ]
                           }
                         }
 
@@ -2559,6 +2636,13 @@ Kafka Input
                   +--------+-------------------------------------+
                   | **10** | value for the Kafka de-serializer   |
                   +--------+-------------------------------------+
+                  | **11** | properties for Kafka connectivity   |
+                  +--------+-------------------------------------+
+
+               .. container:: paragraph
+
+                  Kindly note that the above Kafka properties is just a reference,
+                  and the actual properties required depends on the Kafka server installation.
 
 Kafka Output
 ============
@@ -2591,32 +2675,69 @@ Kafka Output
                                 "org.apache.kafka.common.serialization.StringSerializer", (9)
                             "valueSerializer"   :
                                 "org.apache.kafka.common.serialization.StringSerializer" (10)
+                            "kafkaProperties": [  (11)
+                                                 [
+                                                   "security.protocol",
+                                                   "SASL_SSL"
+                                                 ],
+                                                 [
+                                                   "ssl.truststore.type",
+                                                   "JKS"
+                                                 ],
+                                                 [
+                                                   "ssl.truststore.location",
+                                                   "/opt/app/policy/apex-pdp/etc/ssl/test.jks"
+                                                 ],
+                                                 [
+                                                   "ssl.truststore.password",
+                                                   "policy0nap"
+                                                 ],
+                                                 [
+                                                   "sasl.mechanism",
+                                                   "SCRAM-SHA-512"
+                                                 ],
+                                                 [
+                                                   "sasl.jaas.config",
+                                                   "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"policy\" password=\"policy\";"
+                                                 ],
+                                                 [
+                                                   "ssl.endpoint.identification.algorithm",
+                                                   ""
+                                                 ]
+                                               ]
                           }
                         }
 
                .. container:: colist arabic
 
-                  +--------+---------------------------------+
-                  | **1**  | set Kafka as carrier technology |
-                  +--------+---------------------------------+
-                  | **2**  | bootstrap server and port       |
-                  +--------+---------------------------------+
-                  | **3**  | acknowledgement strategy        |
-                  +--------+---------------------------------+
-                  | **4**  | number of retries               |
-                  +--------+---------------------------------+
-                  | **5**  | batch size                      |
-                  +--------+---------------------------------+
-                  | **6**  | time to linger in milliseconds  |
-                  +--------+---------------------------------+
-                  | **7**  | buffer memory in byte           |
-                  +--------+---------------------------------+
-                  | **8**  | producer topic                  |
-                  +--------+---------------------------------+
-                  | **9**  | key for the Kafka serializer    |
-                  +--------+---------------------------------+
-                  | **10** | value for the Kafka serializer  |
-                  +--------+---------------------------------+
+                  +--------+-----------------------------------+
+                  | **1**  | set Kafka as carrier technology   |
+                  +--------+-----------------------------------+
+                  | **2**  | bootstrap server and port         |
+                  +--------+-----------------------------------+
+                  | **3**  | acknowledgement strategy          |
+                  +--------+-----------------------------------+
+                  | **4**  | number of retries                 |
+                  +--------+-----------------------------------+
+                  | **5**  | batch size                        |
+                  +--------+-----------------------------------+
+                  | **6**  | time to linger in milliseconds    |
+                  +--------+-----------------------------------+
+                  | **7**  | buffer memory in byte             |
+                  +--------+-----------------------------------+
+                  | **8**  | producer topic                    |
+                  +--------+-----------------------------------+
+                  | **9**  | key for the Kafka serializer      |
+                  +--------+-----------------------------------+
+                  | **10** | value for the Kafka serializer    |
+                  +--------+-----------------------------------+
+                  | **11** | properties for Kafka connectivity |
+                  +--------+-----------------------------------+
+            
+               .. container:: paragraph
+
+                  Kindly note that the above Kafka properties is just a reference,
+                  and the actual properties required depends on the Kafka server installation.
 
 JMS IO
 ######
@@ -5777,6 +5898,3 @@ Send Events
 
    .. container::
       :name: footer-text
-
-
-