.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0

.. _apex-DecisionMakerExample:

APEX Examples Decision Maker
****************************

            .. container:: sectionbody

                  Click on the link to find the contents of each file to generate the Decision Maker Example.

                  .. container:: ulist

                     -  |apexConfigRESTClient_link|
                     -  |apexConfigRESTServer_link|
                     -  |answerInitiationEvent_link|
                     -  |makeDecision_Client_link|
                     -  |makeDecision_Server_link|
                     -  |makeDecisionExtraMode_Client_link|
                     -  |makeDecisionExtraMode_Server_link|

                     -  APEX Model (Policies)

                          - |answerInitTask_link|
                          - |ditheringAnswerTask_link|
                          - |makeDecisionStateTSL_link|
                          - |optimisticAnswerTask_link|
                          - |pessimisticAnswerTask_link|
                          - |randomAnswerTask_link|
                          - |roundRobinAnswerTask_link|


   .. container::
      :name: footer-text

      2.3.0-SNAPSHOT
      Last updated 2020-04-08 16:04:24 IST

.. |File > New to create a new Policy Model| image:: images/mfp/MyFirstPolicy_P1_newPolicyModel1.png
.. |Create a new Policy Model| image:: images/mfp/MyFirstPolicy_P1_newPolicyModel2.png
.. |ONAP| image:: ../../../images/logos.png
   :class: builtBy
   :target: http://www.onap.org/
.. |apexConfigRESTClient_link| raw:: html

  <a href="https://github.com/onap/policy-apex-pdp/blob/master/examples/examples-decisionmaker/src/main/resources/examples/config/DecisionMaker/ApexConfigRESTClient.json" target="_blank">APEX Configuration: Rest Client</a>
.. |apexConfigRESTServer_link| raw:: html

  <a href="https://github.com/onap/policy-apex-pdp/blob/master/examples/examples-decisionmaker/src/main/resources/examples/config/DecisionMaker/ApexConfigRESTServer.json" target="_blank">APEX Configuration: Rest Server</a>

.. |answerInitiationEvent_link| raw:: html

  <a href="https://github.com/onap/policy-apex-pdp/blob/master/examples/examples-decisionmaker/src/main/resources/examples/config/DecisionMaker/AnswerInitiationEvent.json" target="_blank">Initiation Event</a>

.. |makeDecision_Client_link| raw:: html

  <a href="https://github.com/onap/policy-apex-pdp/blob/master/examples/examples-decisionmaker/src/main/resources/examples/html/DecisionMaker/MakeDecision_Client.html" target="_blank">HTML Client</a>

.. |makeDecision_Server_link| raw:: html

  <a href="https://github.com/onap/policy-apex-pdp/blob/master/examples/examples-decisionmaker/src/main/resources/examples/html/DecisionMaker/MakeDecision_Server.html" target="_blank">HTML Server</a>

.. |makeDecisionExtraMode_Client_link| raw:: html

  <a href="https://github.com/onap/policy-apex-pdp/blob/master/examples/examples-decisionmaker/src/main/resources/examples/html/DecisionMaker/MakeDecisionExtraMode_Client.html" target="_blank">HTML Client: Extra Mode</a>

.. |makeDecisionExtraMode_Server_link| raw:: html

  <a href="https://github.com/onap/policy-apex-pdp/blob/master/examples/examples-decisionmaker/src/main/resources/examples/html/DecisionMaker/MakeDecisionExtraMode_Server.html" target="_blank">HTML Server: Extra Mode</a>

.. |apexConfigRESTServer_link| raw:: html

  <a href="https://github.com/onap/policy-apex-pdp/blob/master/examples/examples-decisionmaker/src/main/resources/examples/config/DecisionMaker/ApexConfigRESTServer.json" target="_blank">APEX Configuration: Rest Server</a>

.. |answerInitTask_link| raw:: html

  <a href="https://github.com/onap/policy-apex-pdp/blob/master/examples/examples-decisionmaker/src/main/resources/logic/AnswerInitTask.js" target="_blank">Task Logic: Answer Init</a>

.. |ditheringAnswerTask_link| raw:: html

  <a href="https://github.com/onap/policy-apex-pdp/blob/master/examples/examples-decisionmaker/src/main/resources/logic/DitheringAnswerTask.js" target="_blank">Task Logic: Dithering Answer</a>

.. |makeDecisionStateTSL_link| raw:: html

  <a href="https://github.com/onap/policy-apex-pdp/blob/master/examples/examples-decisionmaker/src/main/resources/logic/MakeDecisionStateTSL.js" target="_blank">Task Selection Logic: Make Decision State</a>

.. |optimisticAnswerTask_link| raw:: html

  <a href="https://github.com/onap/policy-apex-pdp/blob/master/examples/examples-decisionmaker/src/main/resources/logic/OptimisticAnswerTask.js" target="_blank">Task Logic: Optimistic Answer</a>

.. |pessimisticAnswerTask_link| raw:: html

  <a href="https://github.com/onap/policy-apex-pdp/blob/master/examples/examples-decisionmaker/src/main/resources/logic/PessimisticAnswerTask.js" target="_blank">Task Logic: Pessimistic Answer</a>

.. |randomAnswerTask_link| raw:: html

  <a href="https://github.com/onap/policy-apex-pdp/blob/master/examples/examples-decisionmaker/src/main/resources/logic/RandomAnswerTask.js" target="_blank">Task Logic: Random Answer</a>

.. |roundRobinAnswerTask_link| raw:: html

  <a href="https://github.com/onap/policy-apex-pdp/blob/master/examples/examples-decisionmaker/src/main/resources/logic/RoundRobinAnswerTask.js" target="_blank">Task Logic: RoundRobin Answer</a>





