pulumi/developer-docs/providers/resource-lifecycle.svg

82 lines
20 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="795px" preserveAspectRatio="none" style="width:1385px;height:795px;background:#FFFFFF;" version="1.1" viewBox="0 0 1385 795" width="1385px" zoomAndPan="magnify"><defs><filter height="300%" id="f1ht2b1gslamyn" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><ellipse cx="453" cy="16" fill="#000000" filter="url(#f1ht2b1gslamyn)" rx="10" ry="10" style="stroke:none;stroke-width:1.0;"/><rect fill="#FEFECE" filter="url(#f1ht2b1gslamyn)" height="150.4883" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="256" x="7" y="368"/><rect fill="#FFFFFF" height="118" rx="12.5" ry="12.5" style="stroke:#FFFFFF;stroke-width:1.0;" width="250" x="10" y="397.4883"/><line style="stroke:#A80036;stroke-width:1.5;" x1="7" x2="263" y1="394.4883" y2="394.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="34" x="118" y="386.5352">Read</text><rect fill="#FEFECE" filter="url(#f1ht2b1gslamyn)" height="40" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="228" x="19" y="406.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="218" x="24" y="431.7793">Read(reg.URN, reg.ID, reg.State)</text><ellipse cx="133" cy="492.4883" filter="url(#f1ht2b1gslamyn)" rx="10" ry="10" style="stroke:#000000;stroke-width:1.0;fill:none;"/><ellipse cx="133.5" cy="492.9883" fill="#000000" rx="6" ry="6" style="stroke:none;stroke-width:1.0;"/><!--MD5=[a9f1eddd24a2a537be099c93a63c087b]
link read_read to *end*Read--><path d="M133,446.6883 C133,456.4483 133,468.1083 133,477.0783 " fill="none" id="read_read-to-*end*Read" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="133,482.2883,137,473.2883,133,477.2883,129,473.2883,133,482.2883" style="stroke:#A80036;stroke-width:1.0;"/><rect fill="#FEFECE" filter="url(#f1ht2b1gslamyn)" height="302.4883" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="310" x="298" y="292"/><rect fill="#FFFFFF" height="270" rx="12.5" ry="12.5" style="stroke:#FFFFFF;stroke-width:1.0;" width="304" x="301" y="321.4883"/><line style="stroke:#A80036;stroke-width:1.5;" x1="298" x2="608" y1="318.4883" y2="318.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="46" x="430" y="310.5352">Import</text><rect fill="#FEFECE" filter="url(#f1ht2b1gslamyn)" height="40" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="159" x="371.5" y="330.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="149" x="376.5" y="355.7793">Read(reg.URN, reg.ID)</text><rect fill="#FEFECE" filter="url(#f1ht2b1gslamyn)" height="40" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="282" x="310" y="406.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="272" x="315" y="431.7793">Check(reg.URN, reg.Inputs, read.Inputs)</text><rect fill="#FEFECE" filter="url(#f1ht2b1gslamyn)" height="40" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="271" x="315.5" y="482.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="261" x="320.5" y="507.7793">Diff(reg.URN, check.Inputs, read.State)</text><ellipse cx="451" cy="568.4883" filter="url(#f1ht2b1gslamyn)" rx="10" ry="10" style="stroke:#000000;stroke-width:1.0;fill:none;"/><ellipse cx="451.5" cy="568.9883" fill="#000000" rx="6" ry="6" style="stroke:none;stroke-width:1.0;"/><!--MD5=[ae6d5a98713f46cd29b3aff73c0432aa]
link import_read to import_check--><path d="M451,370.5483 C451,379.8783 451,391.2283 451,401.1783 " fill="none" id="import_read-to-import_check" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="451,406.2383,455,397.2383,451,401.2383,447,397.2383,451,406.2383" style="stroke:#A80036;stroke-width:1.0;"/><!--MD5=[430f2e2903cceea4610401c9d1b5b4d3]
link import_check to import_diff--><path d="M451,446.5483 C451,455.8783 451,467.2283 451,477.1783 " fill="none" id="import_check-to-import_diff" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="451,482.2383,455,473.2383,451,477.2383,447,473.2383,451,482.2383" style="stroke:#A80036;stroke-width:1.0;"/><!--MD5=[95fe03e3183800fd46e941677e7205f9]
link import_diff to *end*Import--><path d="M451,522.6883 C451,532.4483 451,544.1083 451,553.0783 " fill="none" id="import_diff-to-*end*Import" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="451,558.2883,455,549.2883,451,553.2883,447,549.2883,451,558.2883" style="stroke:#A80036;stroke-width:1.0;"/><rect fill="#FEFECE" filter="url(#f1ht2b1gslamyn)" height="680.4883" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="730" x="643" y="103"/><rect fill="#FFFFFF" height="648" rx="12.5" ry="12.5" style="stroke:#FFFFFF;stroke-width:1.0;" width="724" x="646" y="132.4883"/><line style="stroke:#A80036;stroke-width:1.5;" x1="643" x2="1373" y1="129.4883" y2="129.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="54" x="981" y="121.5352">Manage</text><rect fill="#FEFECE" filter="url(#f1ht2b1gslamyn)" height="40" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="281" x="673" y="141.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="271" x="678" y="166.7793">Check(reg.URN, reg.Inputs, last?.Inputs)</text><rect fill="#FEFECE" filter="url(#f1ht2b1gslamyn)" height="40" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="215" x="655" y="292.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="205" x="660" y="317.7793">Create(reg.URN, check.Inputs)</text><rect fill="#FEFECE" filter="url(#f1ht2b1gslamyn)" height="40" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="314" x="790.5" y="234.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="304" x="795.5" y="259.7793">Diff(reg.URN, check.Inputs, last.ID, last.State)</text><rect fill="#FEFECE" filter="url(#f1ht2b1gslamyn)" height="40" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="245" x="778" y="408.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="235" x="783" y="433.7793">Update(reg.URN, last.ID, last.State)</text><rect fill="#FEFECE" filter="url(#f1ht2b1gslamyn)" height="40" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="196" x="948.5" y="350.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="186" x="953.5" y="375.7793">Check(reg.URN, reg.Inputs)</text><rect fill="#FEFECE" filter="url(#f1ht2b1gslamyn)" height="40" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="199" x="932" y="466.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="189" x="937" y="491.7793">Create(reg.URN, reg.Inputs)</text><g id="Manage.manage_replace_delete_after_create"><rect fill="#FEFECE" filter="url(#f1ht2b1gslamyn)" height="50.6211" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="391" x="832" y="601.4883"/><line style="stroke:#A80036;stroke-width:1.5;" x1="832" x2="1223" y1="627.9766" y2="627.9766"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="229" x="913" y="620.0234">Delete(reg.URN, last.ID, last.State)</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="371" x="837" y="644.5781">note that this step happens once the Pulumi program has exited</text></g><rect fill="#FEFECE" filter="url(#f1ht2b1gslamyn)" height="40" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="138" x="1161.5" y="466.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="128" x="1166.5" y="491.7793">Delete dependents</text><rect fill="#FEFECE" filter="url(#f1ht2b1gslamyn)" height="40" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="239" x="1118" y="543.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="229" x="1123" y="568.7793">Delete(reg.URN, last.ID, last.State)</text><rect fill="#FEFECE" filter="url(#f1ht2b1gslamyn)" height="40" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="215" x="1050" y="670.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="205" x="1055" y="695.7793">Create(reg.URN, check.Inputs)</text><ellipse cx="878.5" cy="757.4883" filter="url(#f1ht2b1gslamyn)" rx="10" ry="10" style="stroke:#000000;stroke-width:1.0;fill:none;"/><ellipse cx="879" cy="757.9883" fill="#000000" rx="6" ry="6" style="stroke:none;stroke-width:1.0;"/><!--MD5=[6a24f9d7a6384fcc9dfe0e40779635cd]
link manage_check to manage_create--><path d="M795.02,181.6183 C790.65,187.0283 786.42,193.1883 783.5,199.4883 C770.37,227.8683 765.45,263.8883 763.6,287.3083 " fill="none" id="manage_check-to-manage_create" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="763.24,292.3983,767.8976,283.7203,763.6115,287.4121,759.9197,283.126,763.24,292.3983" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="78" x="784.5" y="213.0566">no last state</text><!--MD5=[6c1279eb02b9d63b68e4e867d2945e06]
link manage_check to manage_diff--><path d="M841.59,181.5683 C863.03,196.1283 892.61,216.2083 915.06,231.4583 " fill="none" id="manage_check-to-manage_diff" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="919.45,234.4383,914.2332,226.0845,915.3074,231.6385,909.7535,232.7127,919.45,234.4383" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="84" x="893.5" y="213.0566">has last state</text><!--MD5=[75cf380d1867293c2c38d7b5794ac0ca]
link manage_diff to manage_update--><path d="M923.37,274.5383 C918.28,279.7883 913.53,285.8783 910.5,292.4883 C894.09,328.2883 894.88,375.0683 897.38,403.1083 " fill="none" id="manage_diff-to-manage_update" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="897.87,408.1183,901.005,398.7817,897.3993,403.1405,893.0405,399.5348,897.87,408.1183" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="96" x="911.5" y="317.5566">can be updated</text><!--MD5=[475bf7a6d5f74542d3094a3e4c006f3f]
link manage_diff to manage_replace_check--><path d="M990.26,274.5983 C998.35,279.5883 1006.23,285.5483 1012.5,292.4883 C1026.08,307.5283 1034.92,328.8583 1040.18,345.2583 " fill="none" id="manage_diff-to-manage_replace_check" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="1041.69,350.1783,1042.8602,340.3992,1040.2166,345.4003,1035.2154,342.7567,1041.69,350.1783" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="108" x="1035.5" y="317.5566">must be replaced</text><!--MD5=[0cac4c5aae92b7da67549b590f22b20b]
link manage_replace_check to manage_replace_create_before_delete--><path d="M1043.99,390.5683 C1041.44,409.9683 1037.47,440.0983 1034.7,461.1883 " fill="none" id="manage_replace_check-to-manage_replace_create_before_delete" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="1034.02,466.3483,1039.168,457.952,1034.6771,461.3916,1031.2374,456.9007,1034.02,466.3483" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="124" x="1041.5" y="433.5566">create before delete</text><!--MD5=[bb163b3a3cac95fb1660d5b3316a4ec8]
link manage_replace_check to manage_replace_delete_dependents--><path d="M1135.31,390.5783 C1147.7,395.3183 1159.83,401.1983 1170.5,408.4883 C1190.45,422.1183 1206.79,444.4583 1217.36,461.5683 " fill="none" id="manage_replace_check-to-manage_replace_delete_dependents" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="1220.18,466.2483,1218.9411,456.4776,1217.5907,461.9709,1212.0974,460.6205,1220.18,466.2483" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="113" x="1209.5" y="433.5566">delete after craete</text><!--MD5=[fd5f046217bb41c91b57f94b75c028e6]
link manage_replace_create_before_delete to manage_replace_delete_after_create--><path d="M1030.94,506.7483 C1030.28,529.8783 1029.15,568.9583 1028.36,596.0383 " fill="none" id="manage_replace_create_before_delete-to-manage_replace_delete_after_create" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="1028.21,601.2883,1032.4654,592.4062,1028.3528,596.2903,1024.4687,592.1777,1028.21,601.2883" style="stroke:#A80036;stroke-width:1.0;"/><!--MD5=[d9dd268e8ab66b521b1fbb3d30a1afd6]
link manage_replace_delete_dependents to manage_replace_delete_before_create--><path d="M1232.3,506.7983 C1233.19,516.3383 1234.28,527.9483 1235.22,538.0883 " fill="none" id="manage_replace_delete_dependents-to-manage_replace_delete_before_create" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="1235.7,543.2383,1238.8325,533.9009,1235.228,538.2606,1230.8682,534.6561,1235.7,543.2383" style="stroke:#A80036;stroke-width:1.0;"/><!--MD5=[4c01834528a54528affee7556f74f604]
link manage_replace_delete_before_create to manage_replace_create_after_delete--><path d="M1239.33,583.7683 C1240.14,602.8883 1238.58,632.1883 1224.5,652.4883 C1220.58,658.1483 1215.5,663.0283 1209.89,667.2183 " fill="none" id="manage_replace_delete_before_create-to-manage_replace_create_after_delete" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="1205.51,670.2883,1215.1765,668.4018,1209.6055,667.42,1210.5873,661.849,1205.51,670.2883" style="stroke:#A80036;stroke-width:1.0;"/><!--MD5=[58bd43061bbf4734b2332235cc2ce9d5]
link manage_create to *end*Manage--><path d="M762.5,332.8483 C762.5,355.5283 762.5,394.2383 762.5,427.4883 C762.5,427.4883 762.5,427.4883 762.5,691.4883 C762.5,737.3183 832.25,751.1583 863.58,755.0583 " fill="none" id="manage_create-to-*end*Manage" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="868.61,755.6383,860.1256,750.6367,863.6427,755.0673,859.2121,758.5844,868.61,755.6383" style="stroke:#A80036;stroke-width:1.0;"/><!--MD5=[f306adc3f87ccc87da18b0dfd6870354]
link manage_update to *end*Manage--><path d="M868.26,448.5483 C844.58,465.2483 816.5,491.9083 816.5,524.4883 C816.5,524.4883 816.5,524.4883 816.5,691.4883 C816.5,719.2883 846.56,739.8883 864.81,749.8383 " fill="none" id="manage_update-to-*end*Manage" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="869.62,752.3583,863.4961,744.6448,865.1886,750.0425,859.7909,751.735,869.62,752.3583" style="stroke:#A80036;stroke-width:1.0;"/><!--MD5=[dfbdada2b400b3d1f7c1a8b46fc52c5b]
link manage_replace_delete_after_create to *end*Manage--><path d="M998.77,652.7683 C965.49,681.4583 912.32,727.3183 889.5,747.0083 " fill="none" id="manage_replace_delete_after_create-to-*end*Manage" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="885.6,750.3683,895.025,747.5102,889.3832,747.0991,889.7943,741.4572,885.6,750.3683" style="stroke:#A80036;stroke-width:1.0;"/><!--MD5=[ecbac8beeac4b28b80eae4b88efdf6ad]
link manage_replace_create_after_delete to *end*Manage--><path d="M1075.68,710.5483 C1011.27,725.5583 926.95,745.1983 893.3,753.0383 " fill="none" id="manage_replace_create_after_delete-to-*end*Manage" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="888.35,754.1983,898.0206,756.0638,893.221,753.0698,896.215,748.2702,888.35,754.1983" style="stroke:#A80036;stroke-width:1.0;"/><!--MD5=[a1863298862c1f16686f7212d047fbdc]
link *start to Read--><path d="M442.98,16.87 C416.9,17.05 345.92,20.93 303,56 C208.29,133.38 165.62,274.52 147.42,363.01 " fill="none" id="*start-to-Read" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="146.41,367.97,152.1064,359.9356,147.3961,363.0682,144.2635,358.3579,146.41,367.97" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="140" x="304" y="69.5684">read existing resource</text><!--MD5=[4d808eca49b36bf39c9ca2e13f8697a2]
link *start to Import--><path d="M453,26.27 C453,60.53 453,183.35 453,286.68 " fill="none" id="*start-to-Import" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="453,291.89,457,282.89,453,286.89,449,282.89,453,291.89" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="155" x="454" y="69.5684">import existing resource</text><!--MD5=[9fa6da595ff909d93bcc26d44388e242]
link *start to Manage--><path d="M462.96,17.49 C489.72,19.19 564.71,26.46 618,56 C641.43,68.99 664.42,83.78 686.79,99.83 " fill="none" id="*start-to-Manage" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="690.96,102.84,686.0037,94.3291,686.9059,99.9136,681.3214,100.8158,690.96,102.84" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="107" x="644" y="69.5684">manage resource</text><!--MD5=[318e06d7f4389017c1755234a013d98c]
@startuml
hide empty description
[*] - -> Read: read existing resource
[*] - -> Import: import existing resource
[*] - -> Manage: manage resource
state Read {
state "Read(reg.URN, reg.ID, reg.State)" as read_read
read_read - -> [*]
}
state Import {
state "Read(reg.URN, reg.ID)" as import_read
state "Check(reg.URN, reg.Inputs, read.Inputs)" as import_check
state "Diff(reg.URN, check.Inputs, read.State)" as import_diff
import_read - -> import_check
import_check - -> import_diff
import_diff - -> [*]
}
state Manage {
state "Check(reg.URN, reg.Inputs, last?.Inputs)" as manage_check
state "Create(reg.URN, check.Inputs)" as manage_create
state "Diff(reg.URN, check.Inputs, last.ID, last.State)" as manage_diff
state "Update(reg.URN, last.ID, last.State)" as manage_update
state "Check(reg.URN, reg.Inputs)" as manage_replace_check
state "Create(reg.URN, reg.Inputs)" as manage_replace_create_before_delete
state "Delete(reg.URN, last.ID, last.State)" as manage_replace_delete_after_create
state "Delete dependents" as manage_replace_delete_dependents
state "Delete(reg.URN, last.ID, last.State)" as manage_replace_delete_before_create
state "Create(reg.URN, check.Inputs)" as manage_replace_create_after_delete
manage_replace_delete_after_create: note that this step happens once the Pulumi program has exited
manage_check - -> manage_create: no last state
manage_check - -> manage_diff: has last state
manage_diff - -> manage_update: can be updated
manage_diff - -> manage_replace_check: must be replaced
manage_replace_check - -> manage_replace_create_before_delete: create before delete
manage_replace_check - -> manage_replace_delete_dependents: delete after craete
manage_replace_create_before_delete - -> manage_replace_delete_after_create
manage_replace_delete_dependents - -> manage_replace_delete_before_create
manage_replace_delete_before_create - -> manage_replace_create_after_delete
manage_create - -> [*]
manage_update - -> [*]
manage_replace_delete_after_create - -> [*]
manage_replace_create_after_delete - -> [*]
}
@enduml
PlantUML version 1.2021.9(Sun Jul 25 03:13:56 PDT 2021)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>