pulumi/sdk/go/common/resource/plugin/resource_lifecycle.svg
Pat Gavlin a641b93f96
Provider implementer's guide draft (#6322)
Add the beginnings of a document that describes the semantics
of the Pulumi resource provider model from an implementer's
point-of-view.
2021-04-13 14:11:02 -07:00

1 line
29 KiB
XML

<svg id="mermaid-1613174191913" width="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="714" style="max-width: 1848.171875px;" viewBox="0 0 1848.171875 714"><style>#mermaid-1613174191913{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-1613174191913 .error-icon{fill:#552222;}#mermaid-1613174191913 .error-text{fill:#552222;stroke:#552222;}#mermaid-1613174191913 .edge-thickness-normal{stroke-width:2px;}#mermaid-1613174191913 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-1613174191913 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-1613174191913 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-1613174191913 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-1613174191913 .marker{fill:#333333;}#mermaid-1613174191913 .marker.cross{stroke:#333333;}#mermaid-1613174191913 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-1613174191913 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-1613174191913 .label text{fill:#333;}#mermaid-1613174191913 .node rect,#mermaid-1613174191913 .node circle,#mermaid-1613174191913 .node ellipse,#mermaid-1613174191913 .node polygon,#mermaid-1613174191913 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-1613174191913 .node .label{text-align:center;}#mermaid-1613174191913 .node.clickable{cursor:pointer;}#mermaid-1613174191913 .arrowheadPath{fill:#333333;}#mermaid-1613174191913 .edgePath .path{stroke:#333333;stroke-width:1.5px;}#mermaid-1613174191913 .flowchart-link{stroke:#333333;fill:none;}#mermaid-1613174191913 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-1613174191913 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-1613174191913 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-1613174191913 .cluster text{fill:#333;}#mermaid-1613174191913 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80,100%,96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-1613174191913:root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}#mermaid-1613174191913 flowchart-v2{fill:apa;}</style><g transform="translate(0, 0)"><marker id="flowchart-pointEnd" class="marker flowchart" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker><marker id="flowchart-pointStart" class="marker flowchart" viewBox="0 0 10 10" refX="0" refY="5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker><marker id="flowchart-circleEnd" class="marker flowchart" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></circle></marker><marker id="flowchart-circleStart" class="marker flowchart" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></circle></marker><marker id="flowchart-crossEnd" class="marker cross flowchart" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"></path></marker><marker id="flowchart-crossStart" class="marker cross flowchart" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"></path></marker><g class="root"><g class="clusters"></g><g class="edgePaths"><path d="M375.703125,38.261951020603966L335.3971354166667,44.634959183836635C295.0911458333333,51.007967347069304,214.47916666666666,63.753983673534655,174.17317708333334,78.71032517010066C133.8671875,93.66666666666667,133.8671875,110.83333333333333,133.8671875,128C133.8671875,145.16666666666666,133.8671875,162.33333333333334,133.8671875,179.5C133.8671875,196.66666666666666,133.8671875,213.83333333333334,133.8671875,231C133.8671875,248.16666666666666,133.8671875,265.3333333333333,133.8671875,282.5C133.8671875,299.6666666666667,133.8671875,316.8333333333333,133.8671875,334C133.8671875,351.1666666666667,133.8671875,368.3333333333333,133.8671875,385.5C133.8671875,402.6666666666667,133.8671875,419.8333333333333,133.8671875,435.4166666666667C133.8671875,451,133.8671875,465,133.8671875,479C133.8671875,493,133.8671875,507,133.8671875,521C133.8671875,535,133.8671875,549,133.8671875,560.1666666666666C133.8671875,571.3333333333334,133.8671875,579.6666666666666,133.8671875,583.8333333333334L133.8671875,588" id="L-start-read_read" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-start LE-read_read" style="fill:none;" marker-end="url(#flowchart-pointEnd)"></path><path d="M459.578125,42L459.578125,47.75C459.578125,53.5,459.578125,65,459.578125,79.33333333333333C459.578125,93.66666666666667,459.578125,110.83333333333333,459.578125,128C459.578125,145.16666666666666,459.578125,162.33333333333334,459.578125,179.5C459.578125,196.66666666666666,459.578125,213.83333333333334,459.578125,231C459.578125,248.16666666666666,459.578125,265.3333333333333,459.578125,282.5C459.578125,299.6666666666667,459.578125,316.8333333333333,459.578125,334C459.578125,351.1666666666667,459.578125,368.3333333333333,459.578125,382.6666666666667C459.578125,397,459.578125,408.5,459.578125,414.25L459.578125,420" id="L-start-import_read" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-start LE-import_read" style="fill:none;" marker-end="url(#flowchart-pointEnd)"></path><path d="M543.453125,30.526166393475393L659.75,38.188471994562825C776.046875,45.850777595650264,1008.640625,61.17538879782513,1124.9375,74.58769439891256C1241.234375,88,1241.234375,99.5,1241.234375,105.25L1241.234375,111" id="L-start-manage_check" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-start LE-manage_check" style="fill:none;" marker-end="url(#flowchart-pointEnd)"></path><path d="M133.8671875,622L133.8671875,626.1666666666666C133.8671875,630.3333333333334,133.8671875,638.6666666666666,248.27604166666666,648.8745469546512C362.6848958333333,659.0824272426358,591.5026041666666,671.1648544852718,705.9114583333334,677.2060681065897L820.3203125,683.2472817279076" id="L-read_read-done" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-read_read LE-done" style="fill:none;" marker-end="url(#flowchart-pointEnd)"></path><path d="M459.578125,454L459.578125,458.1666666666667C459.578125,462.3333333333333,459.578125,470.6666666666667,459.578125,479C459.578125,487.3333333333333,459.578125,495.6666666666667,459.578125,499.8333333333333L459.578125,504" id="L-import_read-import_check" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-import_read LE-import_check" style="fill:none;" marker-end="url(#flowchart-pointEnd)"></path><path d="M459.578125,538L459.578125,542.1666666666666C459.578125,546.3333333333334,459.578125,554.6666666666666,459.578125,563C459.578125,571.3333333333334,459.578125,579.6666666666666,459.578125,583.8333333333334L459.578125,588" id="L-import_check-import_diff" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-import_check LE-import_diff" style="fill:none;" marker-end="url(#flowchart-pointEnd)"></path><path d="M459.578125,622L459.578125,626.1666666666666C459.578125,630.3333333333334,459.578125,638.6666666666666,519.7018229166666,648.2096640053227C579.8255208333334,657.7526613439787,700.0729166666666,668.5053226879573,760.1966145833334,673.8816533599467L820.3203125,679.2579840319361" id="L-import_diff-done" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-import_diff LE-done" style="fill:none;" marker-end="url(#flowchart-pointEnd)"></path><path d="M1089.328125,144.85120490037696L1037.2708333333333,150.62600408364747C985.2135416666666,156.40080326691796,881.0989583333334,167.950401633459,829.0416666666666,182.30853415006285C776.984375,196.66666666666666,776.984375,213.83333333333334,776.984375,231C776.984375,248.16666666666666,776.984375,265.3333333333333,776.984375,282.5C776.984375,299.6666666666667,776.984375,316.8333333333333,776.984375,334C776.984375,351.1666666666667,776.984375,368.3333333333333,776.984375,385.5C776.984375,402.6666666666667,776.984375,419.8333333333333,776.984375,435.4166666666667C776.984375,451,776.984375,465,776.984375,479C776.984375,493,776.984375,507,776.984375,521C776.984375,535,776.984375,549,776.984375,560.1666666666666C776.984375,571.3333333333334,776.984375,579.6666666666666,776.984375,583.8333333333334L776.984375,588" id="L-manage_check-manage_create" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-manage_check LE-manage_create" style="fill:none;" marker-end="url(#flowchart-pointEnd)"></path><path d="M1291.5019720873786,145L1308.5042475728155,150.75C1325.5065230582525,156.5,1359.5110740291263,168,1376.513349514563,179.5C1393.515625,191,1393.515625,202.5,1393.515625,208.25L1393.515625,214" id="L-manage_check-manage_diff" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-manage_check LE-manage_diff" style="fill:none;" marker-end="url(#flowchart-pointEnd)"></path><path d="M1290.5356492718447,248L1255.704186893204,253.75C1220.872724514563,259.5,1151.2097997572816,271,1116.3783373786407,285.3333333333333C1081.546875,299.6666666666667,1081.546875,316.8333333333333,1081.546875,334C1081.546875,351.1666666666667,1081.546875,368.3333333333333,1081.546875,385.5C1081.546875,402.6666666666667,1081.546875,419.8333333333333,1081.546875,435.4166666666667C1081.546875,451,1081.546875,465,1081.546875,479C1081.546875,493,1081.546875,507,1081.546875,521C1081.546875,535,1081.546875,549,1081.546875,560.1666666666666C1081.546875,571.3333333333334,1081.546875,579.6666666666666,1081.546875,583.8333333333334L1081.546875,588" id="L-manage_diff-manage_update" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-manage_diff LE-manage_update" style="fill:none;" marker-end="url(#flowchart-pointEnd)"></path><path d="M1446.6096783980583,248L1464.5679611650485,253.75C1482.5262439320388,259.5,1518.4428094660195,271,1536.4010922330096,282.5C1554.359375,294,1554.359375,305.5,1554.359375,311.25L1554.359375,317" id="L-manage_diff-manage_replace_check" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-manage_diff LE-manage_replace_check" style="fill:none;" marker-end="url(#flowchart-pointEnd)"></path><path d="M1504.4734526699028,351L1487.6002730582525,356.75C1470.727093446602,362.5,1436.980734223301,374,1420.1075546116506,388.3333333333333C1403.234375,402.6666666666667,1403.234375,419.8333333333333,1403.234375,435.4166666666667C1403.234375,451,1403.234375,465,1403.234375,476.1666666666667C1403.234375,487.3333333333333,1403.234375,495.6666666666667,1403.234375,499.8333333333333L1403.234375,504" id="L-manage_replace_check-manage_replace_create_before_delete" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-manage_replace_check LE-manage_replace_create_before_delete" style="fill:none;" marker-end="url(#flowchart-pointEnd)"></path><path d="M1604.2452973300972,351L1621.1184769417475,356.75C1637.991656553398,362.5,1671.738015776699,374,1688.6111953883494,385.5C1705.484375,397,1705.484375,408.5,1705.484375,414.25L1705.484375,420" id="L-manage_replace_check-manage_replace_delete_dependents" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-manage_replace_check LE-manage_replace_delete_dependents" style="fill:none;" marker-end="url(#flowchart-pointEnd)"></path><path d="M1403.234375,538L1403.234375,542.1666666666666C1403.234375,546.3333333333334,1403.234375,554.6666666666666,1403.234375,563C1403.234375,571.3333333333334,1403.234375,579.6666666666666,1403.234375,583.8333333333334L1403.234375,588" id="L-manage_replace_create_before_delete-manage_replace_delete_after_create" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-manage_replace_create_before_delete LE-manage_replace_delete_after_create" style="fill:none;" marker-end="url(#flowchart-pointEnd)"></path><path d="M1705.484375,454L1705.484375,458.1666666666667C1705.484375,462.3333333333333,1705.484375,470.6666666666667,1705.484375,479C1705.484375,487.3333333333333,1705.484375,495.6666666666667,1705.484375,499.8333333333333L1705.484375,504" id="L-manage_replace_delete_dependents-manage_replace_delete_before_create" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-manage_replace_delete_dependents LE-manage_replace_delete_before_create" style="fill:none;" marker-end="url(#flowchart-pointEnd)"></path><path d="M1705.484375,538L1705.484375,542.1666666666666C1705.484375,546.3333333333334,1705.484375,554.6666666666666,1705.484375,563C1705.484375,571.3333333333334,1705.484375,579.6666666666666,1705.484375,583.8333333333334L1705.484375,588" id="L-manage_replace_delete_before_create-manage_replace_create_after_delete" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-manage_replace_delete_before_create LE-manage_replace_create_after_delete" style="fill:none;" marker-end="url(#flowchart-pointEnd)"></path><path d="M776.984375,622L776.984375,626.1666666666666C776.984375,630.3333333333334,776.984375,638.6666666666666,792.0916418650794,647C807.1989087301587,655.3333333333334,837.4134424603175,663.6666666666666,852.5207093253968,667.8333333333334L867.6279761904761,672" id="L-manage_create-done" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-manage_create LE-done" style="fill:none;" marker-end="url(#flowchart-pointEnd)"></path><path d="M1081.546875,622L1081.546875,626.1666666666666C1081.546875,630.3333333333334,1081.546875,638.6666666666666,1066.4396081349207,647C1051.3323412698412,655.3333333333334,1021.1178075396825,663.6666666666666,1006.0105406746032,667.8333333333334L990.9032738095239,672" id="L-manage_update-done" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-manage_update LE-done" style="fill:none;" marker-end="url(#flowchart-pointEnd)"></path><path d="M1403.234375,622L1403.234375,626.1666666666666C1403.234375,630.3333333333334,1403.234375,638.6666666666666,1342.3971354166667,648.2243302345004C1281.5598958333333,657.781993802334,1159.8854166666667,668.563987604668,1099.0481770833333,673.954984505835L1038.2109375,679.345981407002" id="L-manage_replace_delete_after_create-done" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-manage_replace_delete_after_create LE-done" style="fill:none;" marker-end="url(#flowchart-pointEnd)"></path><path d="M1705.484375,622L1705.484375,626.1666666666666C1705.484375,630.3333333333334,1705.484375,638.6666666666666,1594.2721354166667,648.8508561804689C1483.0598958333333,659.0350456942712,1260.6354166666667,671.0700913885422,1149.4231770833333,677.0876142356778L1038.2109375,683.1051370828134" id="L-manage_replace_create_after_delete-done" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-manage_replace_create_after_delete LE-done" style="fill:none;" marker-end="url(#flowchart-pointEnd)"></path></g><g class="edgeLabels"><g class="edgeLabel" transform="translate(133.8671875, 334)"><g class="label" transform="translate(-16.1328125, -9.5)"><foreignObject width="32.265625" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">read</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(459.578125, 231)"><g class="label" transform="translate(-23.953125, -9.5)"><foreignObject width="47.90625" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">import</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1241.234375, 76.5)"><g class="label" transform="translate(-27.796875, -9.5)"><foreignObject width="55.59375" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">manage</span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(776.984375, 385.5)"><g class="label" transform="translate(-44.609375, -9.5)"><foreignObject width="89.21875" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">no last state</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1393.515625, 179.5)"><g class="label" transform="translate(-47.7578125, -9.5)"><foreignObject width="95.515625" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">has last state</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1081.546875, 437)"><g class="label" transform="translate(-55.65625, -9.5)"><foreignObject width="111.3125" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">can be updated</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1554.359375, 282.5)"><g class="label" transform="translate(-62.3359375, -9.5)"><foreignObject width="124.671875" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">must be replaced</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1403.234375, 437)"><g class="label" transform="translate(-74.6171875, -9.5)"><foreignObject width="149.234375" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">create before delete</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1705.484375, 385.5)"><g class="label" transform="translate(-68.875, -9.5)"><foreignObject width="137.75" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">delete after craete</span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g></g><g class="nodes"><g class="node default default" id="flowchart-start-56" transform="translate(459.578125, 25)"><rect class="basic label-container" style="" rx="5" ry="5" x="-83.875" y="-17" width="167.75" height="34"></rect><g class="label" style="" transform="translate(-76.375, -9.5)"><foreignObject width="152.75" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Resource registration</span></div></foreignObject></g></g><g class="node default default" id="flowchart-read_read-57" transform="translate(133.8671875, 605)"><rect class="basic label-container" style="" rx="5" ry="5" x="-125.8671875" y="-17" width="251.734375" height="34"></rect><g class="label" style="" transform="translate(-118.3671875, -9.5)"><foreignObject width="236.734375" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Read(reg.URN, reg.ID, reg.State)</span></div></foreignObject></g></g><g class="node default default" id="flowchart-import_read-58" transform="translate(459.578125, 437)"><rect class="basic label-container" style="" rx="5" ry="5" x="-87.3359375" y="-17" width="174.671875" height="34"></rect><g class="label" style="" transform="translate(-79.8359375, -9.5)"><foreignObject width="159.671875" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Read(reg.URN, reg.ID)</span></div></foreignObject></g></g><g class="node default default" id="flowchart-import_check-59" transform="translate(459.578125, 521)"><rect class="basic label-container" style="" rx="5" ry="5" x="-152.1328125" y="-17" width="304.265625" height="34"></rect><g class="label" style="" transform="translate(-144.6328125, -9.5)"><foreignObject width="289.265625" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Check(reg.URN, reg.Inputs, read.Inputs)</span></div></foreignObject></g></g><g class="node default default" id="flowchart-import_diff-60" transform="translate(459.578125, 605)"><rect class="basic label-container" style="" rx="5" ry="5" x="-149.84375" y="-17" width="299.6875" height="34"></rect><g class="label" style="" transform="translate(-142.34375, -9.5)"><foreignObject width="284.6875" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Diff(reg.URN, check.Inputs, read.State)</span></div></foreignObject></g></g><g class="node default default" id="flowchart-manage_check-61" transform="translate(1241.234375, 128)"><rect class="basic label-container" style="" rx="5" ry="5" x="-151.90625" y="-17" width="303.8125" height="34"></rect><g class="label" style="" transform="translate(-144.40625, -9.5)"><foreignObject width="288.8125" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Check(reg.URN, reg.Inputs, last?.Inputs)</span></div></foreignObject></g></g><g class="node default default" id="flowchart-manage_create-62" transform="translate(776.984375, 605)"><rect class="basic label-container" style="" rx="5" ry="5" x="-117.5625" y="-17" width="235.125" height="34"></rect><g class="label" style="" transform="translate(-110.0625, -9.5)"><foreignObject width="220.125" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Create(reg.URN, check.Inputs)</span></div></foreignObject></g></g><g class="node default default" id="flowchart-manage_diff-63" transform="translate(1393.515625, 231)"><rect class="basic label-container" style="" rx="5" ry="5" x="-175.0703125" y="-17" width="350.140625" height="34"></rect><g class="label" style="" transform="translate(-167.5703125, -9.5)"><foreignObject width="335.140625" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Diff(reg.URN, check.Inputs, last.ID, last.State)</span></div></foreignObject></g></g><g class="node default default" id="flowchart-manage_update-64" transform="translate(1081.546875, 605)"><rect class="basic label-container" style="" rx="5" ry="5" x="-137" y="-17" width="274" height="34"></rect><g class="label" style="" transform="translate(-129.5, -9.5)"><foreignObject width="259" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Update(reg.URN, last.ID, last.State)</span></div></foreignObject></g></g><g class="node default default" id="flowchart-manage_replace_check-65" transform="translate(1554.359375, 334)"><rect class="basic label-container" style="" rx="5" ry="5" x="-105.875" y="-17" width="211.75" height="34"></rect><g class="label" style="" transform="translate(-98.375, -9.5)"><foreignObject width="196.75" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Check(reg.URN, reg.Inputs)</span></div></foreignObject></g></g><g class="node default default" id="flowchart-manage_replace_create_before_delete-66" transform="translate(1403.234375, 521)"><rect class="basic label-container" style="" rx="5" ry="5" x="-108.359375" y="-17" width="216.71875" height="34"></rect><g class="label" style="" transform="translate(-100.859375, -9.5)"><foreignObject width="201.71875" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Create(reg.URN, reg.Inputs)</span></div></foreignObject></g></g><g class="node default default" id="flowchart-manage_replace_delete_after_create-67" transform="translate(1403.234375, 605)"><rect class="basic label-container" style="" rx="5" ry="5" x="-134.6875" y="-17" width="269.375" height="34"></rect><g class="label" style="" transform="translate(-127.1875, -9.5)"><foreignObject width="254.375" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Delete(reg.URN, last.ID, last.State)</span></div></foreignObject></g></g><g class="node default default" id="flowchart-manage_replace_delete_dependents-68" transform="translate(1705.484375, 437)"><rect class="basic label-container" style="" rx="5" ry="5" x="-75.0546875" y="-17" width="150.109375" height="34"></rect><g class="label" style="" transform="translate(-67.5546875, -9.5)"><foreignObject width="135.109375" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Delete dependents</span></div></foreignObject></g></g><g class="node default default" id="flowchart-manage_replace_delete_before_create-69" transform="translate(1705.484375, 521)"><rect class="basic label-container" style="" rx="5" ry="5" x="-134.6875" y="-17" width="269.375" height="34"></rect><g class="label" style="" transform="translate(-127.1875, -9.5)"><foreignObject width="254.375" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Delete(reg.URN, last.ID, last.State)</span></div></foreignObject></g></g><g class="node default default" id="flowchart-manage_replace_create_after_delete-70" transform="translate(1705.484375, 605)"><rect class="basic label-container" style="" rx="5" ry="5" x="-117.5625" y="-17" width="235.125" height="34"></rect><g class="label" style="" transform="translate(-110.0625, -9.5)"><foreignObject width="220.125" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Create(reg.URN, check.Inputs)</span></div></foreignObject></g></g><g class="node default default" id="flowchart-done-71" transform="translate(929.265625, 689)"><rect class="basic label-container" style="" rx="5" ry="5" x="-108.9453125" y="-17" width="217.890625" height="34"></rect><g class="label" style="" transform="translate(-101.4453125, -9.5)"><foreignObject width="202.890625" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Return new inputs and state</span></div></foreignObject></g></g></g></g></g></svg>