Design and Public API documentation completed.
The draw.io diagrams are in Gerrit. If the page is ever deleted, they
will be lost. They ae now saved in XML format in gerrit.
The design documentation links to the examples in github rather than
quoting them in the document. General tidy up and cleaning of links,
rewording, and reformatting of desgin document.
Added missing diagram to the Design document.
Updated and tidied up the internal PAP/PDP document.
General improvement of documentation.
Issue-ID: POLICY-1676
Change-Id: Ie5c9f32693f047beafe14a3e412a32cdf9ed6fde
Signed-off-by: liamfallon <liam.fallon@est.tech>
diff --git a/docs/architecture/draw.io/ClassStructure.xml b/docs/architecture/draw.io/ClassStructure.xml
new file mode 100644
index 0000000..9619a8e
--- /dev/null
+++ b/docs/architecture/draw.io/ClassStructure.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<mxGraphModel dx="1395" dy="808" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="1169" pageHeight="827" background="#ffffff" math="0" shadow="0"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="36" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>MicroService</b></p><hr size="1"><div style="height: 2px"></div><hr size="1"><div style="height: 2px"></div>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="520" y="170" width="100" height="65" as="geometry"/></mxCell><mxCell id="3" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>PDPGroup</b></p><hr size="1"><div style="height: 2px"></div><hr size="1"><div style="height: 2px"></div>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="180" y="80" width="140" height="60" as="geometry"/></mxCell><mxCell id="5" value="" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;exitX=0.5;exitY=1;" parent="1" source="3" target="8" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="20" y="100" as="sourcePoint"/><mxPoint x="150" y="340" as="targetPoint"/></mxGeometry></mxCell><mxCell id="6" value="1" style="resizable=0;html=1;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;" parent="5" connectable="0" vertex="1"><mxGeometry x="-1" relative="1" as="geometry"><mxPoint x="10" as="offset"/></mxGeometry></mxCell><mxCell id="7" value="1..n" style="resizable=0;html=1;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;" parent="5" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"><mxPoint x="30" y="-40" as="offset"/></mxGeometry></mxCell><mxCell id="8" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>PDPSubGroup</b></p><hr size="1"><div style="height: 2px"></div><hr size="1"><div style="height: 2px"></div>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="400" y="265" width="110" height="60" as="geometry"/></mxCell><mxCell id="9" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>PDP</b></p><hr size="1"><div style="height: 2px"></div><hr size="1"><div style="height: 2px"></div>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="430" y="400" width="50" height="60" as="geometry"/></mxCell><mxCell id="10" value="" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" parent="1" source="8" target="9" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="100" y="90" as="sourcePoint"/><mxPoint x="460" y="240" as="targetPoint"/></mxGeometry></mxCell><mxCell id="11" value="1" style="resizable=0;html=1;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;" parent="10" connectable="0" vertex="1"><mxGeometry x="-1" relative="1" as="geometry"><mxPoint x="10" as="offset"/></mxGeometry></mxCell><mxCell id="12" value="1..n" style="resizable=0;html=1;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;" parent="10" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"><mxPoint x="30" y="-40" as="offset"/></mxGeometry></mxCell><mxCell id="13" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>&lt;&lt;enumeration&gt;&gt;<br>PDPType</b></p><hr size="1">PDP-X<br><div style="height: 2px">PDP-D<br>PDP-A<br></div>" style="verticalAlign=top;align=center;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="175" y="265" width="140" height="90" as="geometry"/></mxCell><mxCell id="14" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;entryX=1;entryY=0.5;exitX=0;exitY=0.25;" parent="1" source="8" target="13" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="-10" y="470" as="sourcePoint"/><mxPoint x="150" y="470" as="targetPoint"/></mxGeometry></mxCell><mxCell id="15" value="1" style="resizable=0;html=1;align=left;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="14" connectable="0" vertex="1"><mxGeometry x="-1" relative="1" as="geometry"><mxPoint x="-20" y="-5" as="offset"/></mxGeometry></mxCell><mxCell id="16" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="14" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"/></mxCell><mxCell id="17" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>PDP-X</b></p><hr size="1"><div style="height: 2px"></div><hr size="1"><div style="height: 2px"></div>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="360" y="510" width="50" height="60" as="geometry"/></mxCell><mxCell id="18" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>PDP-D</b></p><hr size="1"><div style="height: 2px"></div><hr size="1">" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="430" y="510" width="50" height="60" as="geometry"/></mxCell><mxCell id="19" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>PDP-A</b></p><hr size="1"><div style="height: 2px"></div><hr size="1">" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="490" y="510" width="60" height="60" as="geometry"/></mxCell><mxCell id="20" value="" style="endArrow=block;endSize=8;endFill=0;html=1;entryX=0.5;entryY=1;exitX=0.5;exitY=0;" parent="1" source="17" target="9" edge="1"><mxGeometry width="160" relative="1" as="geometry"><mxPoint x="-20" y="590" as="sourcePoint"/><mxPoint x="140" y="590" as="targetPoint"/></mxGeometry></mxCell><mxCell id="21" value="" style="endArrow=block;endSize=8;endFill=0;html=1;exitX=0.5;exitY=0;entryX=0.5;entryY=1;" parent="1" source="18" target="9" edge="1"><mxGeometry width="160" relative="1" as="geometry"><mxPoint x="395" y="520" as="sourcePoint"/><mxPoint x="450" y="410" as="targetPoint"/></mxGeometry></mxCell><mxCell id="22" value="" style="endArrow=block;endSize=8;endFill=0;html=1;exitX=0.5;exitY=0;entryX=0.5;entryY=1;" parent="1" source="19" target="9" edge="1"><mxGeometry width="160" relative="1" as="geometry"><mxPoint x="465" y="520" as="sourcePoint"/><mxPoint x="520" y="460" as="targetPoint"/></mxGeometry></mxCell><mxCell id="24" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>Kubernetes</b></p><hr size="1"><div style="height: 2px"></div><hr size="1"><div style="height: 2px"></div>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#f5f5f5;strokeColor=#666666;gradientColor=#b3b3b3;" parent="1" vertex="1"><mxGeometry x="385" y="95" width="100" height="30" as="geometry"/></mxCell><mxCell id="39" value="manages" style="endArrow=open;html=1;endSize=12;startArrow=none;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;exitX=1;exitY=0.5;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitDx=0;exitDy=0;" parent="1" source="24" target="36" edge="1"><mxGeometry x="0.0345" y="-20" relative="1" as="geometry"><mxPoint x="580" y="165" as="sourcePoint"/><mxPoint x="500" y="200" as="targetPoint"/><mxPoint as="offset"/><Array as="points"><mxPoint x="570" y="110"/></Array></mxGeometry></mxCell><mxCell id="40" value="" style="resizable=0;html=1;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;" parent="39" connectable="0" vertex="1"><mxGeometry x="-1" relative="1" as="geometry"/></mxCell><mxCell id="41" value="<div>0..n</div>" style="resizable=0;html=1;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;" parent="39" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"><mxPoint y="-30" as="offset"/></mxGeometry></mxCell><mxCell id="42" value="" style="endArrow=block;endSize=8;endFill=0;html=1;entryX=0.25;entryY=1;exitX=0.75;exitY=0;" parent="1" source="8" target="36" edge="1"><mxGeometry width="160" relative="1" as="geometry"><mxPoint x="395" y="520" as="sourcePoint"/><mxPoint x="465" y="470" as="targetPoint"/></mxGeometry></mxCell><mxCell id="49" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>PolicyImpl</b></p><hr size="1"><div style="height: 2px"></div><hr size="1"><div style="height: 2px"></div>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="15" y="400" width="85" height="60" as="geometry"/></mxCell><mxCell id="50" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>XACMLPolicyImpl<br></b></p><hr size="1"><div style="height: 2px"></div><hr size="1"><div style="height: 2px"></div>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="-155" y="510" width="135" height="60" as="geometry"/></mxCell><mxCell id="51" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>DroolsPolicyImpl</b></p><hr size="1"><div style="height: 2px"></div><hr size="1">" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="-5" y="510" width="120" height="60" as="geometry"/></mxCell><mxCell id="52" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>ApexPolicyImpl</b></p><hr size="1"><div style="height: 2px"></div><hr size="1">" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="130" y="510" width="115" height="60" as="geometry"/></mxCell><mxCell id="53" value="" style="endArrow=block;endSize=8;endFill=0;html=1;entryX=0.5;entryY=1;exitX=0.5;exitY=0;strokeWidth=1;" parent="1" source="50" target="49" edge="1"><mxGeometry width="160" relative="1" as="geometry"><mxPoint x="-365" y="590" as="sourcePoint"/><mxPoint x="-205" y="590" as="targetPoint"/></mxGeometry></mxCell><mxCell id="54" value="" style="endArrow=block;endSize=8;endFill=0;html=1;exitX=0.5;exitY=0;entryX=0.5;entryY=1;strokeWidth=1;" parent="1" source="51" target="49" edge="1"><mxGeometry width="160" relative="1" as="geometry"><mxPoint x="50" y="520" as="sourcePoint"/><mxPoint x="105" y="410" as="targetPoint"/></mxGeometry></mxCell><mxCell id="55" value="" style="endArrow=block;endSize=8;endFill=0;html=1;exitX=0.5;exitY=0;entryX=0.5;entryY=1;" parent="1" source="52" target="49" edge="1"><mxGeometry width="160" relative="1" as="geometry"><mxPoint x="120" y="520" as="sourcePoint"/><mxPoint x="175" y="460" as="targetPoint"/></mxGeometry></mxCell><mxCell id="56" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;entryX=0;entryY=0.5;exitX=1;exitY=0.25;" parent="1" source="49" target="13" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="410" y="290" as="sourcePoint"/><mxPoint x="320" y="355" as="targetPoint"/></mxGeometry></mxCell><mxCell id="57" value="1" style="resizable=0;html=1;align=left;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="56" connectable="0" vertex="1"><mxGeometry x="-1" relative="1" as="geometry"><mxPoint x="10" y="15" as="offset"/></mxGeometry></mxCell><mxCell id="58" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="56" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"/></mxCell><mxCell id="60" value="executes" style="endArrow=open;html=1;endSize=12;startArrow=none;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;entryX=1;entryY=0.75;exitX=0;exitY=0.25;" parent="1" source="9" target="49" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="350" y="420" as="sourcePoint"/><mxPoint x="190" y="460" as="targetPoint"/></mxGeometry></mxCell><mxCell id="61" value="" style="resizable=0;html=1;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;" parent="60" connectable="0" vertex="1"><mxGeometry x="-1" relative="1" as="geometry"/></mxCell><mxCell id="62" value="<div>0..n</div>" style="resizable=0;html=1;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;" parent="60" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"><mxPoint x="30" y="-6" as="offset"/></mxGeometry></mxCell><mxCell id="79" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>PolicySet</b></p><hr size="1"><div style="height: 2px"></div><hr size="1"><div style="height: 2px"></div>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="-40" y="160" width="80" height="60" as="geometry"/></mxCell><mxCell id="83" value="executes" style="endArrow=openThin;html=1;endSize=12;startArrow=none;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;strokeWidth=1;exitX=0;exitY=0.5;entryX=1;entryY=0.25;endFill=0;" parent="1" source="3" target="79" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="-170" y="90" as="sourcePoint"/><mxPoint x="-270" y="180" as="targetPoint"/></mxGeometry></mxCell><mxCell id="84" value="1" style="resizable=0;html=1;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;" parent="83" connectable="0" vertex="1"><mxGeometry x="-1" relative="1" as="geometry"><mxPoint x="-30" as="offset"/></mxGeometry></mxCell><mxCell id="85" value="1" style="resizable=0;html=1;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;" parent="83" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"><mxPoint x="20" y="2.5" as="offset"/></mxGeometry></mxCell><mxCell id="86" value="" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" parent="1" source="79" target="49" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="260" y="150" as="sourcePoint"/><mxPoint x="465" y="275" as="targetPoint"/><Array as="points"><mxPoint y="330"/><mxPoint x="58" y="330"/></Array></mxGeometry></mxCell><mxCell id="87" value="1" style="resizable=0;html=1;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;" parent="86" connectable="0" vertex="1"><mxGeometry x="-1" relative="1" as="geometry"><mxPoint x="10" as="offset"/></mxGeometry></mxCell><mxCell id="88" value="1..n" style="resizable=0;html=1;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;" parent="86" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"><mxPoint x="30" y="-40" as="offset"/></mxGeometry></mxCell><mxCell id="91" value="All the PDPs in a given PDPSubGroup instance must be of the same type" style="shape=note;whiteSpace=wrap;html=1;size=14;verticalAlign=top;align=left;spacingTop=-6;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"><mxGeometry x="530" y="330" width="160" height="50" as="geometry"/></mxCell><mxCell id="93" value="" style="endArrow=none;dashed=1;html=1;entryX=1;entryY=0.75;exitX=0;exitY=0.5;strokeColor=#97D077;" parent="1" source="91" target="8" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="-180" y="800" as="sourcePoint"/><mxPoint x="-130" y="750" as="targetPoint"/></mxGeometry></mxCell><mxCell id="94" value="" style="endArrow=none;dashed=1;html=1;entryX=1;entryY=0.25;exitX=0;exitY=0.5;strokeColor=#97D077;" parent="1" source="91" target="9" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="570" y="410" as="sourcePoint"/><mxPoint x="520" y="320" as="targetPoint"/></mxGeometry></mxCell><mxCell id="WxIZwHBQDS0929NCy7-o-94" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>PolicyTypeImpl<br></b></p><hr size="1"><div style="height: 2px"></div><hr size="1"><div style="height: 2px"></div>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="-330" y="408.5" width="140" height="58" as="geometry"/></mxCell><mxCell id="WxIZwHBQDS0929NCy7-o-98" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>&lt;&lt;TOSCA&gt;&gt;<br>Policy</b></p><hr size="1"><div style="height: 2px"></div><hr size="1"><div style="height: 2px"></div>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="-328" y="329" width="95" height="52" as="geometry"/></mxCell><mxCell id="WxIZwHBQDS0929NCy7-o-99" value="has implementation" style="endArrow=openThin;html=1;endSize=12;startArrow=none;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;strokeWidth=1;endFill=0;exitX=0;exitY=0.867;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;exitPerimeter=0;" parent="1" source="49" target="WxIZwHBQDS0929NCy7-o-94" edge="1"><mxGeometry x="0.1923" y="-10" relative="1" as="geometry"><mxPoint x="-252" y="340" as="sourcePoint"/><mxPoint x="-290" y="413" as="targetPoint"/><mxPoint as="offset"/><Array as="points"><mxPoint x="-110" y="452"/><mxPoint x="-110" y="423"/></Array></mxGeometry></mxCell><mxCell id="WxIZwHBQDS0929NCy7-o-100" value="<div>n</div>" style="resizable=0;html=1;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;" parent="WxIZwHBQDS0929NCy7-o-99" connectable="0" vertex="1"><mxGeometry x="-1" relative="1" as="geometry"><mxPoint x="-20" y="-25" as="offset"/></mxGeometry></mxCell><mxCell id="WxIZwHBQDS0929NCy7-o-101" value="1" style="resizable=0;html=1;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;" parent="WxIZwHBQDS0929NCy7-o-99" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"><mxPoint x="27.5" y="-23" as="offset"/></mxGeometry></mxCell><mxCell id="WxIZwHBQDS0929NCy7-o-102" value="is specified by" style="endArrow=openThin;html=1;endSize=12;startArrow=none;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;strokeWidth=1;endFill=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;" parent="1" source="49" target="WxIZwHBQDS0929NCy7-o-98" edge="1"><mxGeometry x="-0.0333" relative="1" as="geometry"><mxPoint x="-10" y="455" as="sourcePoint"/><mxPoint x="-280" y="423" as="targetPoint"/><mxPoint as="offset"/><Array as="points"><mxPoint x="-90" y="430"/><mxPoint x="-90" y="342"/></Array></mxGeometry></mxCell><mxCell id="WxIZwHBQDS0929NCy7-o-103" value="<div>n</div>" style="resizable=0;html=1;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;" parent="WxIZwHBQDS0929NCy7-o-102" connectable="0" vertex="1"><mxGeometry x="-1" relative="1" as="geometry"><mxPoint x="-20" y="-25" as="offset"/></mxGeometry></mxCell><mxCell id="WxIZwHBQDS0929NCy7-o-104" value="1" style="resizable=0;html=1;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;" parent="WxIZwHBQDS0929NCy7-o-102" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"><mxPoint x="27.5" y="-23" as="offset"/></mxGeometry></mxCell><mxCell id="yHxFdaB63uvkelnHd-nB-94" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>&lt;&lt;TOSCA&gt;&gt;<br>PolicyType</b></p><hr size="1"><div style="height: 2px"></div><hr size="1"><div style="height: 2px"></div>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="-330" y="209" width="95" height="52" as="geometry"/></mxCell><mxCell id="yHxFdaB63uvkelnHd-nB-100" value="is defined by" style="endArrow=openThin;html=1;endSize=12;startArrow=none;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;strokeWidth=1;endFill=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="WxIZwHBQDS0929NCy7-o-98" target="yHxFdaB63uvkelnHd-nB-94" edge="1"><mxGeometry x="0.1714" relative="1" as="geometry"><mxPoint x="-390" y="290" as="sourcePoint"/><mxPoint x="-230" y="280" as="targetPoint"/><mxPoint as="offset"/><Array as="points"><mxPoint x="-282" y="320"/><mxPoint x="-282" y="320"/></Array></mxGeometry></mxCell><mxCell id="yHxFdaB63uvkelnHd-nB-101" value="<div>n</div>" style="resizable=0;html=1;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;" parent="yHxFdaB63uvkelnHd-nB-100" connectable="0" vertex="1"><mxGeometry x="-1" relative="1" as="geometry"><mxPoint x="-18" y="-30" as="offset"/></mxGeometry></mxCell><mxCell id="yHxFdaB63uvkelnHd-nB-102" value="1" style="resizable=0;html=1;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;" parent="yHxFdaB63uvkelnHd-nB-100" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"><mxPoint x="22" as="offset"/></mxGeometry></mxCell></root></mxGraphModel>
\ No newline at end of file
diff --git a/docs/architecture/draw.io/DesignTimeComponents.xml b/docs/architecture/draw.io/DesignTimeComponents.xml
new file mode 100644
index 0000000..032d855
--- /dev/null
+++ b/docs/architecture/draw.io/DesignTimeComponents.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<mxGraphModel dx="2595" dy="1608" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="1169" pageHeight="827" background="#ffffff" math="0" shadow="0"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="12" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>&lt;&lt;enumeration&gt;&gt;<br>PDPType</b></p><hr size="1">PDP-X<br><div style="height: 2px">PDP-D<br>PDP-A<br></div>" style="verticalAlign=top;align=center;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"><mxGeometry x="-900" y="-9.5" width="140" height="90" as="geometry"/></mxCell><mxCell id="28" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>XACMLPolicy<br></b></p><hr size="1"><div style="height: 2px"></div><hr size="1"><div style="height: 2px"></div>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="-440" y="-164.5" width="100" height="60" as="geometry"/></mxCell><mxCell id="29" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>DroolsPolicy</b></p><hr size="1"><div style="height: 2px"></div><hr size="1">" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="-330" y="-164.5" width="90" height="60" as="geometry"/></mxCell><mxCell id="30" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>ApexPolicy</b></p><hr size="1"><div style="height: 2px"></div><hr size="1">" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="-230" y="-164.5" width="80" height="60" as="geometry"/></mxCell><mxCell id="31" value="" style="endArrow=block;endSize=8;endFill=0;html=1;exitX=0.5;exitY=0;strokeWidth=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="28" target="JLu5tQw5rpazg5sk-l6F-103" edge="1"><mxGeometry width="160" relative="1" as="geometry"><mxPoint x="-615" y="40" as="sourcePoint"/><mxPoint x="-215" y="-100" as="targetPoint"/></mxGeometry></mxCell><mxCell id="32" value="" style="endArrow=block;endSize=8;endFill=0;html=1;exitX=0.5;exitY=0;entryX=0.5;entryY=1;strokeWidth=1;entryDx=0;entryDy=0;" parent="1" source="29" target="JLu5tQw5rpazg5sk-l6F-103" edge="1"><mxGeometry width="160" relative="1" as="geometry"><mxPoint x="-200" y="-30" as="sourcePoint"/><mxPoint x="-215" y="-100" as="targetPoint"/></mxGeometry></mxCell><mxCell id="33" value="" style="endArrow=block;endSize=8;endFill=0;html=1;exitX=0.5;exitY=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="30" target="JLu5tQw5rpazg5sk-l6F-103" edge="1"><mxGeometry width="160" relative="1" as="geometry"><mxPoint x="-130" y="-30" as="sourcePoint"/><mxPoint x="-215" y="-100" as="targetPoint"/></mxGeometry></mxCell><mxCell id="34" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;entryX=1;entryY=0.5;exitX=0;exitY=0.75;dashed=1;strokeColor=#7EA6E0;exitDx=0;exitDy=0;" parent="1" source="JLu5tQw5rpazg5sk-l6F-103" target="12" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="10" y="-260" as="sourcePoint"/><mxPoint x="-80" y="-195" as="targetPoint"/><Array as="points"><mxPoint x="-460" y="-243"/><mxPoint x="-460" y="40"/><mxPoint x="-760" y="40"/></Array></mxGeometry></mxCell><mxCell id="35" value="1" style="resizable=0;html=1;align=left;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="34" connectable="0" vertex="1"><mxGeometry x="-1" relative="1" as="geometry"><mxPoint x="-20" y="20" as="offset"/></mxGeometry></mxCell><mxCell id="36" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="34" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"><mxPoint x="25" y="-6" as="offset"/></mxGeometry></mxCell><mxCell id="54" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>XACMLImpl<br></b></p><hr size="1"><div style="height: 2px"></div><hr size="1"><div style="height: 2px"></div>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="-772.5" y="-61.5" width="100" height="36" as="geometry"/></mxCell><mxCell id="55" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>DroolsImpl<br></b></p><hr size="1"><div style="height: 2px"></div><hr size="1"><div style="height: 2px"></div>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="-662.5" y="-61.5" width="100" height="35" as="geometry"/></mxCell><mxCell id="56" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>ApexImpl<br></b></p><hr size="1"><div style="height: 2px"></div><hr size="1"><div style="height: 2px"></div>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="-552.5" y="-61.5" width="80" height="36" as="geometry"/></mxCell><mxCell id="59" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>PolicyTypeImpl<br></b></p><hr size="1"><div style="height: 2px"></div><hr size="1"><div style="height: 2px"></div>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="-675" y="-164.5" width="140" height="58" as="geometry"/></mxCell><mxCell id="60" value="" style="endArrow=block;endSize=8;endFill=0;html=1;exitX=0.5;exitY=0;strokeWidth=1;entryX=0.5;entryY=1;" parent="1" source="54" target="59" edge="1"><mxGeometry width="160" relative="1" as="geometry"><mxPoint x="-775" y="204.5" as="sourcePoint"/><mxPoint x="-625" y="94.5" as="targetPoint"/></mxGeometry></mxCell><mxCell id="61" value="" style="endArrow=block;endSize=8;endFill=0;html=1;strokeWidth=1;entryX=0.5;entryY=1;" parent="1" source="55" target="59" edge="1"><mxGeometry width="160" relative="1" as="geometry"><mxPoint x="-670" y="204.5" as="sourcePoint"/><mxPoint x="-685" y="174.5" as="targetPoint"/></mxGeometry></mxCell><mxCell id="62" value="" style="endArrow=block;endSize=8;endFill=0;html=1;exitX=0.5;exitY=0;entryX=0.5;entryY=1;" parent="1" source="56" target="59" edge="1"><mxGeometry width="160" relative="1" as="geometry"><mxPoint x="-575" y="204.5" as="sourcePoint"/><mxPoint x="-660" y="154.5" as="targetPoint"/></mxGeometry></mxCell><mxCell id="63" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;entryX=0.5;entryY=0;exitX=0;exitY=0.75;dashed=1;strokeColor=#7EA6E0;entryDx=0;entryDy=0;exitDx=0;exitDy=0;" parent="1" source="59" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="-350" y="-110" as="sourcePoint"/><mxPoint x="-805" y="-9" as="targetPoint"/><Array as="points"><mxPoint x="-805" y="-117"/></Array></mxGeometry></mxCell><mxCell id="64" value="1" style="resizable=0;html=1;align=left;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="63" connectable="0" vertex="1"><mxGeometry x="-1" relative="1" as="geometry"><mxPoint x="-20" y="-4" as="offset"/></mxGeometry></mxCell><mxCell id="65" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="63" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"/></mxCell><mxCell id="66" value="<b>PolicyTypeXACML<br></b><hr size="1"><div style="height: 2px" align="left"><br></div>" style="verticalAlign=top;align=center;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="-1245" y="-61.5" width="130" height="37" as="geometry"/></mxCell><mxCell id="69" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>&lt;&lt;TOSCA&gt;&gt;<br>PolicyType<br></b></p><hr size="1"><div style="height: 2px"></div><hr size="1"><div style="height: 2px"></div>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="-1115" y="-165.5" width="140" height="56" as="geometry"/></mxCell><mxCell id="70" value="" style="endArrow=block;endSize=8;endFill=0;html=1;exitX=0.5;exitY=0;strokeWidth=1;entryX=0.5;entryY=1;" parent="1" source="66" target="69" edge="1"><mxGeometry width="160" relative="1" as="geometry"><mxPoint x="-1215" y="200.5" as="sourcePoint"/><mxPoint x="-1065" y="90.5" as="targetPoint"/></mxGeometry></mxCell><mxCell id="71" value="" style="endArrow=block;endSize=8;endFill=0;html=1;strokeWidth=1;entryX=0.5;entryY=1;exitX=0.5;exitY=0;" parent="1" source="74" target="69" edge="1"><mxGeometry width="160" relative="1" as="geometry"><mxPoint x="-1051" y="-59.5" as="sourcePoint"/><mxPoint x="-1125" y="170.5" as="targetPoint"/></mxGeometry></mxCell><mxCell id="72" value="" style="endArrow=block;endSize=8;endFill=0;html=1;exitX=0.5;exitY=0;entryX=0.5;entryY=1;" parent="1" target="69" edge="1"><mxGeometry width="160" relative="1" as="geometry"><mxPoint x="-935" y="-59.5" as="sourcePoint"/><mxPoint x="-1100" y="150.5" as="targetPoint"/></mxGeometry></mxCell><mxCell id="73" value="" style="resizable=0;html=1;align=left;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="1" connectable="0" vertex="1"><mxGeometry x="-960" y="-109.5" as="geometry"><mxPoint x="171" y="188" as="offset"/></mxGeometry></mxCell><mxCell id="74" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>PolicyTypeDrools<br></b></p><hr size="1"><div style="height: 2px"><br></div>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="-1105" y="-61.5" width="120" height="38" as="geometry"/></mxCell><mxCell id="75" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>PolicyTypeApex<br></b></p><hr size="1"><div style="height: 2px"><i><br></i></div>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="-975" y="-61.5" width="110" height="38" as="geometry"/></mxCell><mxCell id="78" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;dashed=1;strokeColor=#7EA6E0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=1;exitY=0.75;exitDx=0;exitDy=0;" parent="1" source="69" target="12" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="-950" y="-100" as="sourcePoint"/><mxPoint x="-900" y="40" as="targetPoint"/><Array as="points"><mxPoint x="-830" y="-119"/></Array></mxGeometry></mxCell><mxCell id="79" value="1" style="resizable=0;html=1;align=left;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="78" connectable="0" vertex="1"><mxGeometry x="-1" relative="1" as="geometry"><mxPoint x="10" as="offset"/></mxGeometry></mxCell><mxCell id="80" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="78" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"><mxPoint x="25" y="-6" as="offset"/></mxGeometry></mxCell><mxCell id="82" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>PolicyCreator<br></b></p><hr size="1"><div style="height: 2px"></div><hr size="1"><div style="height: 2px"></div>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="-850" y="-410" width="120" height="60" as="geometry"/></mxCell><mxCell id="83" value="applies" style="endArrow=open;html=1;endSize=12;startArrow=none;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;strokeWidth=1;entryX=0.5;entryY=0;endFill=0;exitX=1;exitY=0.75;exitDx=0;exitDy=0;" parent="1" source="82" target="59" edge="1"><mxGeometry x="-0.2222" y="30" relative="1" as="geometry"><mxPoint x="-730" y="-160" as="sourcePoint"/><mxPoint x="235" y="-230" as="targetPoint"/><mxPoint x="-30" y="30" as="offset"/></mxGeometry></mxCell><mxCell id="84" value="1" style="resizable=0;html=1;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;" parent="83" connectable="0" vertex="1"><mxGeometry x="-1" relative="1" as="geometry"><mxPoint x="-10" as="offset"/></mxGeometry></mxCell><mxCell id="85" value="1" style="resizable=0;html=1;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;" parent="83" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"><mxPoint y="-30" as="offset"/></mxGeometry></mxCell><mxCell id="86" value="parameterizes" style="endArrow=open;html=1;endSize=12;startArrow=none;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;strokeWidth=1;entryX=0.75;entryY=0;endFill=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="82" target="69" edge="1"><mxGeometry x="-0.1579" y="60" relative="1" as="geometry"><mxPoint x="-370" y="220" as="sourcePoint"/><mxPoint x="-980" y="-150" as="targetPoint"/><mxPoint x="-60" y="60" as="offset"/></mxGeometry></mxCell><mxCell id="87" value="1" style="resizable=0;html=1;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;" parent="86" connectable="0" vertex="1"><mxGeometry x="-1" relative="1" as="geometry"><mxPoint x="10" y="5" as="offset"/></mxGeometry></mxCell><mxCell id="88" value="1" style="resizable=0;html=1;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;" parent="86" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"><mxPoint y="-30" as="offset"/></mxGeometry></mxCell><mxCell id="89" value="creates" style="endArrow=open;html=1;endSize=12;startArrow=none;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;strokeWidth=1;endFill=0;exitX=1;exitY=0.25;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="82" target="JLu5tQw5rpazg5sk-l6F-103" edge="1"><mxGeometry x="0.1183" relative="1" as="geometry"><mxPoint x="-570" y="-440" as="sourcePoint"/><mxPoint x="-330" y="-395" as="targetPoint"/><mxPoint as="offset"/><Array as="points"><mxPoint x="-285" y="-395"/></Array></mxGeometry></mxCell><mxCell id="90" value="1" style="resizable=0;html=1;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;" parent="89" connectable="0" vertex="1"><mxGeometry x="-1" relative="1" as="geometry"><mxPoint x="10" y="-20" as="offset"/></mxGeometry></mxCell><mxCell id="91" value="1" style="resizable=0;html=1;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;" parent="89" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"><mxPoint y="-30" as="offset"/></mxGeometry></mxCell><mxCell id="92" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>PDPXCreator<br></b></p><hr size="1"><div style="height: 2px"></div><hr size="1"><div style="height: 2px"></div>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="-945" y="-270" width="100" height="60" as="geometry"/></mxCell><mxCell id="93" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>PDPDCreator</b></p><hr size="1"><div style="height: 2px"></div><hr size="1">" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="-835" y="-270" width="95" height="60" as="geometry"/></mxCell><mxCell id="94" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>PDPACreator</b></p><hr size="1"><div style="height: 2px"></div><hr size="1">" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="-735" y="-270" width="95" height="60" as="geometry"/></mxCell><mxCell id="95" value="" style="endArrow=block;endSize=8;endFill=0;html=1;entryX=0.5;entryY=1;exitX=0.5;exitY=0;strokeWidth=1;" parent="1" source="92" target="82" edge="1"><mxGeometry width="160" relative="1" as="geometry"><mxPoint x="-1180" y="-170" as="sourcePoint"/><mxPoint x="-780" y="-310" as="targetPoint"/></mxGeometry></mxCell><mxCell id="96" value="" style="endArrow=block;endSize=8;endFill=0;html=1;exitX=0.5;exitY=0;strokeWidth=1;entryX=0.5;entryY=1;" parent="1" source="93" target="82" edge="1"><mxGeometry width="160" relative="1" as="geometry"><mxPoint x="-765" y="-240" as="sourcePoint"/><mxPoint x="-770" y="-350" as="targetPoint"/></mxGeometry></mxCell><mxCell id="97" value="" style="endArrow=block;endSize=8;endFill=0;html=1;exitX=0.5;exitY=0;entryX=0.5;entryY=1;" parent="1" source="94" target="82" edge="1"><mxGeometry width="160" relative="1" as="geometry"><mxPoint x="-695" y="-240" as="sourcePoint"/><mxPoint x="-780" y="-310" as="targetPoint"/></mxGeometry></mxCell><mxCell id="98" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;exitX=1;exitY=0.5;dashed=1;strokeColor=#7EA6E0;startArrow=none;startFill=0;endFill=0;" parent="1" source="82" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="-550" y="-120" as="sourcePoint"/><mxPoint x="-760" y="36" as="targetPoint"/><Array as="points"><mxPoint x="-460" y="-380"/><mxPoint x="-460" y="40"/><mxPoint x="-760" y="40"/></Array></mxGeometry></mxCell><mxCell id="99" value="1" style="resizable=0;html=1;align=left;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="98" connectable="0" vertex="1"><mxGeometry x="-1" relative="1" as="geometry"><mxPoint x="10" as="offset"/></mxGeometry></mxCell><mxCell id="100" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="98" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"><mxPoint x="25" y="-6" as="offset"/></mxGeometry></mxCell><mxCell id="WnAEskrEjoqfPgaEkT4R-103" value="implements" style="endArrow=none;html=1;endSize=12;startArrow=none;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;strokeWidth=1;endFill=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;exitX=0;exitY=0.25;exitDx=0;exitDy=0;" parent="1" source="59" target="69" edge="1"><mxGeometry x="-0.0507" relative="1" as="geometry"><mxPoint x="-740" y="-170" as="sourcePoint"/><mxPoint x="-910" y="-130" as="targetPoint"/><mxPoint as="offset"/><Array as="points"><mxPoint x="-675" y="-151"/></Array></mxGeometry></mxCell><mxCell id="WnAEskrEjoqfPgaEkT4R-104" value="m" style="resizable=0;html=1;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;" parent="WnAEskrEjoqfPgaEkT4R-103" connectable="0" vertex="1"><mxGeometry x="-1" relative="1" as="geometry"><mxPoint x="-30" y="-25" as="offset"/></mxGeometry></mxCell><mxCell id="WnAEskrEjoqfPgaEkT4R-105" value="n" style="resizable=0;html=1;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;" parent="WnAEskrEjoqfPgaEkT4R-103" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"><mxPoint x="15" y="-21" as="offset"/></mxGeometry></mxCell><mxCell id="JLu5tQw5rpazg5sk-l6F-103" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><b>&lt;&lt;TOSCA&gt;&gt;<br>Policy</b></p><hr size="1"><div style="height: 2px"></div><hr size="1"><div style="height: 2px"></div>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="-332.5" y="-280" width="95" height="52" as="geometry"/></mxCell></root></mxGraphModel>
\ No newline at end of file
diff --git a/docs/architecture/draw.io/PFDesignAndAdmin.xml b/docs/architecture/draw.io/PFDesignAndAdmin.xml
new file mode 100644
index 0000000..9ba4350
--- /dev/null
+++ b/docs/architecture/draw.io/PFDesignAndAdmin.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<mxGraphModel dx="995" dy="808" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" background="#ffffff" math="0" shadow="0"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="2" value="PolicyDevelopment" style="html=1;fillColor=#fff2cc;strokeColor=#d6b656;gradientColor=#ffd966;" parent="1" vertex="1"><mxGeometry x="260" y="220" width="150" height="30" as="geometry"/></mxCell><mxCell id="3" value="Portal" style="html=1;fillColor=#f5f5f5;strokeColor=#666666;gradientColor=#b3b3b3;" parent="1" vertex="1"><mxGeometry x="150" y="120" width="50" height="30" as="geometry"/></mxCell><mxCell id="4" value="PolicyDevAPIUser" style="html=1;fillColor=#f5f5f5;strokeColor=#666666;gradientColor=#b3b3b3;" parent="1" vertex="1"><mxGeometry x="210" y="120" width="120" height="30" as="geometry"/></mxCell><mxCell id="5" value="PolicyDistribution" style="html=1;fillColor=#fff2cc;strokeColor=#d6b656;gradientColor=#ffd966;" parent="1" vertex="1"><mxGeometry x="340" y="120" width="120" height="30" as="geometry"/></mxCell><mxCell id="8" value="SDC" style="html=1;fillColor=#f5f5f5;strokeColor=#666666;gradientColor=#b3b3b3;" parent="1" vertex="1"><mxGeometry x="375" y="70" width="50" height="30" as="geometry"/></mxCell><mxCell id="10" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" parent="1" source="8" target="5" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="80" y="270" as="sourcePoint"/><mxPoint x="450" y="130" as="targetPoint"/></mxGeometry></mxCell><mxCell id="12" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="10" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"/></mxCell><mxCell id="14" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" parent="1" source="3" target="2" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="580" y="90" as="sourcePoint"/><mxPoint x="580" y="130" as="targetPoint"/><Array as="points"><mxPoint x="175" y="170"/><mxPoint x="335" y="170"/></Array></mxGeometry></mxCell><mxCell id="15" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="14" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"/></mxCell><mxCell id="16" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;entryX=0.5;entryY=0;exitX=0.5;exitY=1;" parent="1" source="4" target="2" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="390" y="150" as="sourcePoint"/><mxPoint x="445" y="230" as="targetPoint"/><Array as="points"><mxPoint x="270" y="170"/><mxPoint x="335" y="170"/></Array></mxGeometry></mxCell><mxCell id="17" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="16" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"/></mxCell><mxCell id="18" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;entryX=0.5;entryY=0;exitX=0.5;exitY=1;" parent="1" source="5" target="2" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="395" y="160" as="sourcePoint"/><mxPoint x="445" y="230" as="targetPoint"/><Array as="points"><mxPoint x="400" y="170"/><mxPoint x="335" y="170"/></Array></mxGeometry></mxCell><mxCell id="19" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="18" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"/></mxCell><mxCell id="20" value="PolicyDevGUI" style="html=1;fillColor=#fff2cc;strokeColor=#d6b656;gradientColor=#ffd966;" parent="1" vertex="1"><mxGeometry x="40" y="120" width="100" height="30" as="geometry"/></mxCell><mxCell id="21" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" parent="1" source="20" target="2" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="255" y="160" as="sourcePoint"/><mxPoint x="440" y="220" as="targetPoint"/><Array as="points"><mxPoint x="90" y="170"/><mxPoint x="335" y="170"/></Array></mxGeometry></mxCell><mxCell id="22" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="21" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"/></mxCell><mxCell id="24" value="PolicyDB" style="shape=cylinder;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;fillColor=#f5f5f5;strokeColor=#666666;gradientColor=#b3b3b3;" parent="1" vertex="1"><mxGeometry x="502" y="290" width="80" height="30" as="geometry"/></mxCell><mxCell id="31" value="PolicyAdminGUI" style="html=1;fillColor=#fff2cc;strokeColor=#d6b656;gradientColor=#ffd966;" parent="1" vertex="1"><mxGeometry x="472" y="80" width="110" height="30" as="geometry"/></mxCell><mxCell id="33" value="PolicyAdministration" style="html=1;fillColor=#fff2cc;strokeColor=#d6b656;gradientColor=#ffd966;" parent="1" vertex="1"><mxGeometry x="522" y="220" width="140" height="30" as="geometry"/></mxCell><mxCell id="34" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;exitX=0.5;exitY=1;" parent="1" source="31" target="33" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="372" y="160" as="sourcePoint"/><mxPoint x="307" y="230" as="targetPoint"/><Array as="points"><mxPoint x="527" y="130"/><mxPoint x="592" y="130"/></Array></mxGeometry></mxCell><mxCell id="35" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="34" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"/></mxCell><mxCell id="46" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;entryX=0.5;entryY=0;exitX=0.75;exitY=1;" parent="1" source="2" target="24" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="270" y="280" as="sourcePoint"/><mxPoint x="425" y="375" as="targetPoint"/><Array as="points"><mxPoint x="370" y="250"/><mxPoint x="370" y="270"/><mxPoint x="542" y="270"/></Array></mxGeometry></mxCell><mxCell id="47" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="46" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"/></mxCell><mxCell id="48" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;entryX=0.5;entryY=0;exitX=0.5;exitY=1;" parent="1" source="33" target="24" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="670" y="310" as="sourcePoint"/><mxPoint x="730" y="360" as="targetPoint"/><Array as="points"><mxPoint x="592" y="270"/><mxPoint x="542" y="270"/></Array></mxGeometry></mxCell><mxCell id="49" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="48" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"/></mxCell><mxCell id="58" value="PolicyAdminAPIUser" style="html=1;fillColor=#f5f5f5;strokeColor=#666666;gradientColor=#b3b3b3;" parent="1" vertex="1"><mxGeometry x="597" y="80" width="135" height="30" as="geometry"/></mxCell><mxCell id="59" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" parent="1" source="58" target="33" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="537" y="160" as="sourcePoint"/><mxPoint x="522" y="200" as="targetPoint"/><Array as="points"><mxPoint x="665" y="130"/><mxPoint x="592" y="130"/></Array></mxGeometry></mxCell><mxCell id="60" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="59" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"/></mxCell><mxCell id="62" value="PolicyExecution" style="html=1;fillColor=#fff2cc;strokeColor=#d6b656;gradientColor=#ffd966;" parent="1" vertex="1"><mxGeometry x="920" y="220" width="100" height="30" as="geometry"/></mxCell><mxCell id="63" value="DMaaP" style="html=1;fillColor=#f5f5f5;strokeColor=#666666;gradientColor=#b3b3b3;" parent="1" vertex="1"><mxGeometry x="770" y="305" width="100" height="30" as="geometry"/></mxCell><mxCell id="64" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;exitX=0;exitY=0.5;entryX=1;entryY=0.5;" parent="1" source="63" target="33" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="410" y="160" as="sourcePoint"/><mxPoint x="710" y="235" as="targetPoint"/><Array as="points"><mxPoint x="750" y="320"/><mxPoint x="750" y="235"/></Array></mxGeometry></mxCell><mxCell id="65" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="64" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"/></mxCell><mxCell id="66" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;exitX=0;exitY=0.5;entryX=1;entryY=0.5;" parent="1" source="62" target="63" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="780" y="245" as="sourcePoint"/><mxPoint x="710" y="245" as="targetPoint"/></mxGeometry></mxCell><mxCell id="67" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="66" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"/></mxCell><mxCell id="68" value="AsyncCaller" style="html=1;fillColor=#f5f5f5;strokeColor=#666666;gradientColor=#b3b3b3;" parent="1" vertex="1"><mxGeometry x="870" y="120" width="90" height="30" as="geometry"/></mxCell><mxCell id="69" value="SyncCaller" style="html=1;fillColor=#f5f5f5;strokeColor=#666666;gradientColor=#b3b3b3;" parent="1" vertex="1"><mxGeometry x="970" y="120" width="80" height="30" as="geometry"/></mxCell><mxCell id="70" value="" style="endArrow=classic;startArrow=classic;html=1;entryX=0.5;entryY=1;exitX=0.75;exitY=0;" parent="1" source="62" target="69" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="50" y="440" as="sourcePoint"/><mxPoint x="100" y="390" as="targetPoint"/></mxGeometry></mxCell><mxCell id="73" value="" style="endArrow=classic;html=1;entryX=0.25;entryY=0;exitX=0.5;exitY=1;" parent="1" source="68" target="62" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="50" y="440" as="sourcePoint"/><mxPoint x="100" y="390" as="targetPoint"/></mxGeometry></mxCell><mxCell id="74" value="" style="endArrow=classic;html=1;entryX=0.75;entryY=1;exitX=0.5;exitY=0;" parent="1" source="62" target="68" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="900" y="400" as="sourcePoint"/><mxPoint x="955" y="230" as="targetPoint"/></mxGeometry></mxCell><mxCell id="75" value="" style="endArrow=classic;html=1;entryX=0.25;entryY=0;exitX=0;exitY=0.75;" parent="1" source="68" target="63" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="980" y="230" as="sourcePoint"/><mxPoint x="948" y="160" as="targetPoint"/></mxGeometry></mxCell><mxCell id="76" value="" style="endArrow=classic;html=1;entryX=0.25;entryY=1;exitX=0.5;exitY=0;" parent="1" source="63" target="68" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="930" y="460" as="sourcePoint"/><mxPoint x="910" y="150" as="targetPoint"/></mxGeometry></mxCell><mxCell id="78" value="<div>Policy Artifacts and Metadata</div><div>PDP Group and Subgroup Definitions</div><div>Policy to PDP Group and Subgroup Mappings<br></div>" style="shape=note;whiteSpace=wrap;html=1;size=14;verticalAlign=top;align=left;spacingTop=-6;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"><mxGeometry x="352" y="341.5" width="240" height="60" as="geometry"/></mxCell><mxCell id="80" value="" style="endArrow=none;dashed=1;html=1;entryX=0.5;entryY=0;exitX=0.5;exitY=1;strokeColor=#97D077;" parent="1" source="24" target="78" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="535" y="425" as="sourcePoint"/><mxPoint x="135" y="505" as="targetPoint"/></mxGeometry></mxCell><mxCell id="82" value="CRUD API for Policy Groups and Sub-Groups<br>API for Policy Deployment" style="shape=note;whiteSpace=wrap;html=1;size=14;verticalAlign=top;align=left;spacingTop=-6;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"><mxGeometry x="630" y="150" width="190" height="50" as="geometry"/></mxCell><mxCell id="84" value="<div>Policies for a given</div><div>domain execute in a</div><div> PDP Group. PDP Groups</div><div> have subgroups for each</div><div> PDP type in a PDP group<br></div>" style="shape=note;whiteSpace=wrap;html=1;size=14;verticalAlign=top;align=left;spacingTop=-6;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"><mxGeometry x="960" y="311" width="160" height="89" as="geometry"/></mxCell><mxCell id="85" value="" style="endArrow=none;dashed=1;html=1;entryX=0.75;entryY=0;exitX=0.75;exitY=1;strokeColor=#97D077;" parent="1" source="62" target="84" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="550" y="360" as="sourcePoint"/><mxPoint x="590" y="390" as="targetPoint"/></mxGeometry></mxCell><mxCell id="87" value="" style="endArrow=none;dashed=1;html=1;entryX=1;entryY=0.5;exitX=0.5;exitY=0;" parent="1" source="2" target="90" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="260" y="233" as="sourcePoint"/><mxPoint x="333" y="402" as="targetPoint"/></mxGeometry></mxCell><mxCell id="88" value="<div>Deploy</div><div>Retire</div><div>Archive<br>Upgrade</div><div>Rollback<br></div>" style="shape=note;whiteSpace=wrap;html=1;size=14;verticalAlign=top;align=left;spacingTop=-6;fillColor=#D5E8D4;strokeColor=#82b366;" parent="1" vertex="1"><mxGeometry x="673" y="297.5" width="68" height="75" as="geometry"/></mxCell><mxCell id="89" value="" style="endArrow=none;dashed=1;html=1;entryX=0.5;entryY=0;strokeColor=#97D077;" parent="1" target="88" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="662" y="235" as="sourcePoint"/><mxPoint x="565" y="402" as="targetPoint"/></mxGeometry></mxCell><mxCell id="90" value="CRUD API for Policy Artifacts" style="shape=note;whiteSpace=wrap;html=1;size=14;verticalAlign=top;align=left;spacingTop=-6;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"><mxGeometry x="130" y="185" width="110" height="35" as="geometry"/></mxCell><mxCell id="93" value="" style="endArrow=none;dashed=1;html=1;entryX=0;entryY=0.5;exitX=0.5;exitY=0;strokeColor=#97D077;" parent="1" source="33" target="82" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="672" y="253" as="sourcePoint"/><mxPoint x="700" y="335" as="targetPoint"/></mxGeometry></mxCell><mxCell id="94" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="10" y="278" width="30" height="13" as="geometry"/></mxCell><mxCell id="95" value="Policy Framework Component" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"><mxGeometry x="32" y="274" width="200" height="20" as="geometry"/></mxCell><mxCell id="97" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;gradientColor=#b3b3b3;" parent="1" vertex="1"><mxGeometry x="10" y="295" width="30" height="13" as="geometry"/></mxCell><mxCell id="98" value="Other Component" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"><mxGeometry x="32" y="291" width="128" height="20" as="geometry"/></mxCell></root></mxGraphModel>
\ No newline at end of file
diff --git a/docs/architecture/draw.io/PFHighestLevel.xml b/docs/architecture/draw.io/PFHighestLevel.xml
new file mode 100644
index 0000000..a307574
--- /dev/null
+++ b/docs/architecture/draw.io/PFHighestLevel.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<mxGraphModel dx="995" dy="808" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" background="#ffffff" math="0" shadow="0"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="3" value="PolicyDevelopment" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="50" y="50" width="130" height="30" as="geometry"/></mxCell><mxCell id="4" value="PolicyDB" style="shape=cylinder;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;fillColor=#f5f5f5;strokeColor=#666666;gradientColor=#b3b3b3;" parent="1" vertex="1"><mxGeometry x="230" y="115" width="70" height="30" as="geometry"/></mxCell><mxCell id="7" value="" style="endArrow=none;html=1;entryX=0.5;entryY=1;exitX=0.5;exitY=0;" parent="1" source="4" target="3" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="185" y="125" as="sourcePoint"/><mxPoint x="120" y="90" as="targetPoint"/></mxGeometry></mxCell><mxCell id="8" value="PolicyAdministration" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="270" y="50" width="135" height="30" as="geometry"/></mxCell><mxCell id="9" value="" style="endArrow=none;html=1;entryX=0.5;entryY=1;exitX=0.5;exitY=0;" parent="1" source="4" target="8" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="275" y="125" as="sourcePoint"/><mxPoint x="120" y="90" as="targetPoint"/></mxGeometry></mxCell><mxCell id="13" value="PolicyExecution" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="470" y="50" width="140" height="30" as="geometry"/></mxCell><mxCell id="14" value="" style="endArrow=none;html=1;entryX=0;entryY=0.5;exitX=1;exitY=0.5;" parent="1" source="8" target="13" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="40" y="220" as="sourcePoint"/><mxPoint x="90" y="170" as="targetPoint"/></mxGeometry></mxCell><mxCell id="15" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="388" y="112" width="30" height="13" as="geometry"/></mxCell><mxCell id="16" value="Policy Framework Component" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"><mxGeometry x="410" y="108" width="200" height="20" as="geometry"/></mxCell><mxCell id="17" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;gradientColor=#b3b3b3;" parent="1" vertex="1"><mxGeometry x="388" y="129" width="30" height="13" as="geometry"/></mxCell><mxCell id="18" value="Other Component" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"><mxGeometry x="410" y="125" width="128" height="20" as="geometry"/></mxCell></root></mxGraphModel>
\ No newline at end of file
diff --git a/docs/architecture/draw.io/PolicyExecution.xml b/docs/architecture/draw.io/PolicyExecution.xml
new file mode 100644
index 0000000..1dbf4da
--- /dev/null
+++ b/docs/architecture/draw.io/PolicyExecution.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<mxGraphModel dx="1395" dy="1208" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="1169" pageHeight="827" background="#ffffff" math="0" shadow="0"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="31" value="PDPGroup" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;strokeColor=#B8B8B8;" parent="1" vertex="1"><mxGeometry x="328" y="-80" width="120" height="310" as="geometry"/></mxCell><mxCell id="30" value="PDPGroup" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;strokeColor=#B8B8B8;" parent="1" vertex="1"><mxGeometry x="318" y="-90" width="120" height="310" as="geometry"/></mxCell><mxCell id="14" value="PDPGroup" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;strokeColor=#B8B8B8;" parent="1" vertex="1"><mxGeometry x="308" y="-100" width="120" height="310" as="geometry"/></mxCell><mxCell id="27" value="PDPSubGroup" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;strokeColor=#B8B8B8;" parent="1" vertex="1"><mxGeometry x="318" y="110" width="100" height="90" as="geometry"/></mxCell><mxCell id="21" value="PDPSubGroup" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;strokeColor=#B8B8B8;" parent="1" vertex="1"><mxGeometry x="318" y="-70" width="100" height="80" as="geometry"/></mxCell><mxCell id="11" value="" style="group" parent="1" vertex="1" connectable="0"><mxGeometry x="328" y="-40" width="70" height="40" as="geometry"/></mxCell><mxCell id="4" value="PDP-X" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="11" vertex="1"><mxGeometry x="10" y="10" width="60" height="30" as="geometry"/></mxCell><mxCell id="6" value="PDP-X" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="11" vertex="1"><mxGeometry width="60" height="30" as="geometry"/></mxCell><mxCell id="13" value="" style="group" parent="1" vertex="1" connectable="0"><mxGeometry x="323" y="140" width="80" height="50" as="geometry"/></mxCell><mxCell id="10" value="PDP-A" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="13" vertex="1"><mxGeometry x="20" y="20" width="60" height="30" as="geometry"/></mxCell><mxCell id="9" value="PDP-A" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="13" vertex="1"><mxGeometry x="10" y="10" width="60" height="30" as="geometry"/></mxCell><mxCell id="5" value="PDP-A" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="13" vertex="1"><mxGeometry width="60" height="30" as="geometry"/></mxCell><mxCell id="22" value="PDPSubGroup" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;strokeColor=#B8B8B8;" parent="1" vertex="1"><mxGeometry x="318" y="20" width="100" height="80" as="geometry"/></mxCell><mxCell id="23" value="" style="group" parent="1" vertex="1" connectable="0"><mxGeometry x="328" y="45" width="80" height="50" as="geometry"/></mxCell><mxCell id="24" value="PDP-D" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="23" vertex="1"><mxGeometry x="20" y="20" width="60" height="30" as="geometry"/></mxCell><mxCell id="25" value="PDP-D" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="23" vertex="1"><mxGeometry x="10" y="10" width="60" height="30" as="geometry"/></mxCell><mxCell id="26" value="PDP-D" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="23" vertex="1"><mxGeometry width="60" height="30" as="geometry"/></mxCell><mxCell id="32" value="PolicyAdministration" style="html=1;fillColor=#fff2cc;strokeColor=#d6b656;gradientColor=#ffd966;" parent="1" vertex="1"><mxGeometry x="-90" y="-10" width="140" height="30" as="geometry"/></mxCell><mxCell id="33" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="1" connectable="0" vertex="1"><mxGeometry x="10" y="491.5" as="geometry"/></mxCell><mxCell id="34" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="1" connectable="0" vertex="1"><mxGeometry x="-40" y="618.5" as="geometry"/></mxCell><mxCell id="37" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="1" connectable="0" vertex="1"><mxGeometry x="10" y="491.5" as="geometry"/></mxCell><mxCell id="39" value="DMaaP" style="html=1;fillColor=#f5f5f5;strokeColor=#666666;gradientColor=#b3b3b3;" parent="1" vertex="1"><mxGeometry x="120" y="180" width="100" height="30" as="geometry"/></mxCell><mxCell id="40" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;fillColor=#fff2cc;strokeColor=#d6b656;entryX=1;entryY=0.5;exitX=0;exitY=0.75;" parent="1" source="39" target="32" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="60" y="220" as="sourcePoint"/><mxPoint x="-10" y="-90" as="targetPoint"/><Array as="points"><mxPoint x="80" y="203"/><mxPoint x="80" y="5"/></Array></mxGeometry></mxCell><mxCell id="41" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="40" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"/></mxCell><mxCell id="42" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;entryX=1;entryY=0.75;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" target="39" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="328" y="-20" as="sourcePoint"/><mxPoint x="128" y="516.5" as="targetPoint"/><Array as="points"><mxPoint x="270" y="-20"/><mxPoint x="270" y="203"/></Array></mxGeometry></mxCell><mxCell id="43" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="42" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"/></mxCell><mxCell id="44" value="<div>AsyncCaller</div>" style="html=1;fillColor=#f5f5f5;strokeColor=#666666;gradientColor=#b3b3b3;" parent="1" vertex="1"><mxGeometry x="-90" y="-55" width="140" height="30" as="geometry"/></mxCell><mxCell id="61" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;exitX=0;exitY=0.75;fillColor=#fff2cc;strokeColor=#d6b656;entryX=1;entryY=0.75;" parent="1" source="5" target="39" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="338" y="-15" as="sourcePoint"/><mxPoint x="180" y="195" as="targetPoint"/><Array as="points"><mxPoint x="270" y="163"/><mxPoint x="270" y="203"/></Array></mxGeometry></mxCell><mxCell id="62" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="61" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"/></mxCell><mxCell id="63" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;exitX=0;exitY=0.75;entryX=1;entryY=0.75;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" source="26" target="39" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="348" y="-5" as="sourcePoint"/><mxPoint x="220" y="220" as="targetPoint"/><Array as="points"><mxPoint x="270" y="68"/><mxPoint x="270" y="203"/></Array></mxGeometry></mxCell><mxCell id="64" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="63" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"/></mxCell><mxCell id="67" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;fillColor=#dae8fc;strokeColor=#6c8ebf;entryX=1;entryY=0.5;exitX=0;exitY=0.25;" parent="1" source="39" target="44" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="140" y="40" as="sourcePoint"/><mxPoint y="15" as="targetPoint"/><Array as="points"><mxPoint x="100" y="188"/><mxPoint x="100" y="-40"/></Array></mxGeometry></mxCell><mxCell id="68" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="67" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"/></mxCell><mxCell id="69" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;fillColor=#dae8fc;strokeColor=#6c8ebf;exitX=1;exitY=0.25;" parent="1" source="39" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="98" y="198" as="sourcePoint"/><mxPoint x="328" y="-25" as="targetPoint"/><Array as="points"><mxPoint x="230" y="188"/><mxPoint x="230" y="-25"/></Array></mxGeometry></mxCell><mxCell id="70" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="69" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"/></mxCell><mxCell id="71" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;fillColor=#dae8fc;strokeColor=#6c8ebf;exitX=1;exitY=0.25;" parent="1" source="39" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="108" y="208" as="sourcePoint"/><mxPoint x="328" y="60" as="targetPoint"/><Array as="points"><mxPoint x="230" y="188"/><mxPoint x="230" y="60"/></Array></mxGeometry></mxCell><mxCell id="72" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="71" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"/></mxCell><mxCell id="73" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;fillColor=#dae8fc;strokeColor=#6c8ebf;exitX=1;exitY=0.25;" parent="1" source="39" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="190" y="190" as="sourcePoint"/><mxPoint x="323" y="155" as="targetPoint"/><Array as="points"><mxPoint x="230" y="188"/><mxPoint x="230" y="155"/></Array></mxGeometry></mxCell><mxCell id="74" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="73" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"/></mxCell><mxCell id="77" value="SyncCaller" style="html=1;fillColor=#f5f5f5;strokeColor=#666666;gradientColor=#b3b3b3;" parent="1" vertex="1"><mxGeometry x="-90" y="-100" width="80" height="30" as="geometry"/></mxCell><mxCell id="80" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;fillColor=#cdeb8b;strokeColor=#97D077;exitX=1;exitY=0.5;entryX=0;entryY=0.25;" parent="1" source="77" target="6" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="198" y="198" as="sourcePoint"/><mxPoint x="320" y="-40" as="targetPoint"/><Array as="points"><mxPoint x="200" y="-80"/><mxPoint x="200" y="-32"/></Array></mxGeometry></mxCell><mxCell id="81" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="80" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"/></mxCell><mxCell id="82" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;fillColor=#cdeb8b;strokeColor=#97D077;entryX=0;entryY=0.25;" parent="1" target="26" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="180" y="-80" as="sourcePoint"/><mxPoint x="338" y="-22" as="targetPoint"/><Array as="points"><mxPoint x="200" y="-80"/><mxPoint x="200" y="53"/></Array></mxGeometry></mxCell><mxCell id="83" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="82" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"/></mxCell><mxCell id="84" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;fillColor=#cdeb8b;strokeColor=#97D077;entryX=0;entryY=0.25;exitX=1;exitY=0.5;" parent="1" source="77" target="5" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="200" y="-110" as="sourcePoint"/><mxPoint x="338" y="63" as="targetPoint"/><Array as="points"><mxPoint x="200" y="-80"/><mxPoint x="200" y="148"/></Array></mxGeometry></mxCell><mxCell id="85" value="" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="84" connectable="0" vertex="1"><mxGeometry x="1" relative="1" as="geometry"/></mxCell><mxCell id="86" value="Each PDP is deployed as a Kubernetes <i><b>Pod</b></i>" style="shape=note;whiteSpace=wrap;html=1;size=14;verticalAlign=top;align=left;spacingTop=-6;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"><mxGeometry x="500" width="110" height="50" as="geometry"/></mxCell><mxCell id="87" value="In Kubernetes, a PDPSubGroup is a Kubernetes <b><i>Deployment</i></b> " style="shape=note;whiteSpace=wrap;html=1;size=14;verticalAlign=top;align=left;spacingTop=-6;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"><mxGeometry x="500" y="-100" width="130" height="60" as="geometry"/></mxCell><mxCell id="88" value="" style="endArrow=none;dashed=1;html=1;entryX=0;entryY=0.5;exitX=1;exitY=0.25;strokeColor=#97D077;" parent="1" source="21" target="87" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="-90" y="300" as="sourcePoint"/><mxPoint x="-40" y="250" as="targetPoint"/></mxGeometry></mxCell><mxCell id="89" value="" style="endArrow=none;dashed=1;html=1;entryX=0;entryY=0.5;exitX=1;exitY=0.75;strokeColor=#97D077;" parent="1" source="6" target="86" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="428" y="-40" as="sourcePoint"/><mxPoint x="510" y="-60" as="targetPoint"/></mxGeometry></mxCell></root></mxGraphModel>
\ No newline at end of file
diff --git a/docs/architecture/draw.io/TOSCAPolicyConcepts.xml b/docs/architecture/draw.io/TOSCAPolicyConcepts.xml
new file mode 100644
index 0000000..0d3900d
--- /dev/null
+++ b/docs/architecture/draw.io/TOSCAPolicyConcepts.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<mxfile modified="2019-05-29T11:50:35.523Z" host="wiki.onap.org" agent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:67.0) Gecko/20100101 Firefox/67.0" version="10.6.3" etag="yEDpeBBf71gBWF177uGV" type="atlas"><mxAtlasLibraries/><diagram id="04337635-102b-1824-bf5a-1496629f81aa" name="Page-1">7VttT+M4EP41le4+UOW1Lx9pYfdOYiV0IB18WrmJm1jrxpHrQru//saJnfewKWQD6IKQiMfjsT3PeGY8CRN7vTt+5SgOvzEf04ll+MeJfTWxLNNeuvBHUk4pZWEsUkLAia+YcsId+YkV0VDUA/HxvsQoGKOCxGWix6IIe6JEQ5yz5zLbltHyrDEK1IxGTrjzEMU1tn+JL0K1C7fA/RcmQahnNg3Vs0Hej4CzQ6Tmm1j2NvlJu3dIy1L8+xD57LlAsq8n9pozJtKn3XGNqdStVls67ktLb7ZujiPRZYBexxOiB7X3W0aJd1LLEyetkv0z2VEUQWu1ZZG4Uz0GtL2QUP8GndhBzrkXoAPdWoWMk5/Ajyh0mUCAbi4U4tZMSiOUrhllPJlHqsvyvNLIOylRzcXxHsbe6g2aFdI3dCwx3qC90KtklKJ4TzbJuuXAHeIBiVZMCLZTTHvB2Q9cWI4/28xcucy6ZpWynzAX+FggKU1/xWyHBQdNGrp3rrStToXpzNP2c25jlq14wqJ9GY6ybWXXQSY7xxYeFLwtUJs1qCfWSu6Jsxj2QOSBu1QNuWofb0lEBGERNCgBRVZtAvYtXlRaG7aIkiACGsVbKUCqkMDpu1RkwWIpNkYeiYKbhOfKySn/KM1IEoOxW5ocoZD4Po4k9EwggTaZfcaMRCLRnLuCX1Dw2pi6ExeWtIa2mbfhV7JzsWYR7AqRBGsMRvSMpSE1WEF2gn5tBgp2sPpOqGu+N4FutYAOpzDAUimXCaQc1Jpo52oEuReQXWtAkO02kDkJAswVyqo1HuY+cZ4vhsPZbgvW96cYjwG7/4B9sSgH7CHDtd0pXOftMWJ3PeT2h47Y9hix3wfkISO2PUbsd8N5yIjt1CN2DUVZLoi7B6us6KE0PCkWDhqDmO2+8tppzYy3q8Csx7F7bdZjxvKLjMXpbt2DJCVmW3DCT7Dm70LmocX4ZBl/JD3wEKEd/nN0YU1pafe89B3yEbMtVO29EPsHqgC/Jzv8dyQwB74R5V5QHjIhMZ0Xs87vABBgm0KtT7SijWD3AfagdYQ2sCGz8NPrYwK0l+8XGhQd9vUqw4j2WVFap2A6GA8Ct9sOd7bDEe/firfGdhC8Zy14x5gT5qsEDXSP+MUhImIqIHaPQPcDtDtkqWjemo0DBUlHrgoJsFfcdOMaQX4VyIshS0WLFpBBUpidZnXdGuHtAV7LGDIXW7bAi7w8Ectu00zWAmW5H6VF/hHvPvC2B0zGnKbce0blXnzyBI9BgmCMPbIFCFKY034QXWBpGMW2bawVO8GRfym/koJWxJJ6Wyh2unoGnap2Zlq6mFbhLhbYTEcTvhC56wRh7AdYl+8AvZAFLEL0Oqeu8JGIBz0jPD/KkVNjOUtXUJQVgYofkm5XNx91H4y8hawGYJC304TWcBtTCmAH7ikNaHjT660+9ylNLv5Fu9GFVWNqm4Yqj3BMAawnXJqxyVCUuFuWptlZkXZZLtI6i0rtNV29GpbbW01SVZBpVQSlW35BkGZk2+0el3gS484U0c3e65cPDUduj0khteAgCtbYyTNRtMF0lX16V/Zw8uM7VVBWFttsJfpkNpfXz3ptbJ5pE52dRz2zN6bTehzooE+eurXPodBz9VkxaHUSLiyrPKQfA29Kwmuu2UPylfwGd/bl6tUf9uWw0yfy62f57ofC82PG1s2D23UPrstuZ3hwuJk7/Xjw7BtgXdGrWFtXB36RBadq8eCdPHj9AvJapzOAE5+/mxNvC+xlMC+qSWQ/GNVvER85MPQGUk8YWRWInN8AkX4JX4Ao+9jj8/hxc2oYTsmTT03TLXpzYFiWPLppZa6/mqq/On23GtL3c50/rNTUN/0M+Xk/BlX90F/Pc34ssNyyJHd+ZixQkqpyKgvqx8Trn3p83Eihz+P/LFLol8qfI1L0B1I/GFnLCkTLt0MEzfz/vVL2/J/q7Ov/AA==</diagram></mxfile>
\ No newline at end of file