From 3ea3d289721c39ee73867694feef4bb960d43b4f Mon Sep 17 00:00:00 2001 From: Miren Esnaola Date: Thu, 9 Mar 2023 13:37:08 +0100 Subject: [PATCH 1/5] Removed unnecessary files --- .../cloud-operations/apigee/bundle-export.zip | Bin 68946 -> 0 bytes .../cloud-operations/apigee/bundle-gcs2bq.zip | Bin 71026 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 blueprints/cloud-operations/apigee/bundle-export.zip delete mode 100644 blueprints/cloud-operations/apigee/bundle-gcs2bq.zip diff --git a/blueprints/cloud-operations/apigee/bundle-export.zip b/blueprints/cloud-operations/apigee/bundle-export.zip deleted file mode 100644 index 8b090adfc03af60f1f337664fa94bda6c0cae1f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68946 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ΠQ&QtG|zuzo^W9F2deO1u_ z`GY;uVf#w*3ZR`?(;JbWp(9jE1(l=29haowtOwefH*i60f#ghzNbb+s7=hDd71Q84 zH~2LUC7Vc^*^?cO4w}2IQLylxRV|*tB0C?-N=FrSWYqHiG!4^ITK-exJK}xW&dcX+^WoNU@9oz_c2MRo z+w2=SOQ&dpVR$N42)+mL0ziJtYqPTC*=%|1Gymp0YQuGV+x+XPX6c)kXj0oLtBcnE z*Ha~Lmu4f~mdabl-7{)mDS^M2t8OHL>C?qk%Nrp@wTI$x+Vw7? ztUMz&Ko)3)=~sip zY8tFy?A!435756(88b)$E3qF!e;o4n`N3ad{m5zhLif4_zKq63cFKX&0>mLdHJaJ3 zUKi_5}6`;sQcV0 zh2pgzF~*!yM0LN@L(MqiY;+&y`nDixlVH8EZOhQ@)_F4*{m)Gr!c`vjLXIl zd&F+OH{yrgR}~N*Gn|B-aRH$-#+ppR@&xbBB!toPiCd5sJ$IE(G0*MRKAe@2 zGUII~ej=GYisqBN_PHSb2%Hy!!1VgxSgSe6WM~$Y6Ojy4y+LWmJ(>q$lB_lhhd$6f zY$aB`heT*gQx+9T`_kcsQpR>Q5F!EvQ_zf9x)~WDIh9bG$}ZRv90};#eBg^f3H>2Q z;1)aWS2lC-q1KNVg243p-?i@d7~Dj0*296g3eK>GH6cft0%y=Wy=8W*#=+25Ws%%O zX*Ej*i6g;*^s6~^s6@avIWDJAgeSc7hTP3WKLf*(+5r8?T_G=>xUrq-EurS$KJ*v5 zHo~!d$BO>Cb#?w!3jW#RL5z|F;tQ3jk=j!$i<{(2TLtt7en67_K>fm}_xG-T*Aen9 z-p76HRHq#v9bhu_>1B+lZkS;w9rvh$FHr`UgtD+mq{ZDq?vol?0H$-q8Ns@ z@XgQ{(A~+yHZ`z{7T+IVagauV+uszguU7i+)Ae4--tc%DTvz>wWW7FBs=j1on?|z} zAd)QYf?y=2ULv}O&KUM6D=Z6)KDvIKGmVGv@X(t&iW#u9-{%%7O_)Z`*zLRvV{=)N zA-@=#@!eQ|lE5lo>vfOWD&KY>_zcI#awzWTUVwZZjm?~>ala#TZlbkKx8?ONLWjdD z?|rTqJh)KeDCR{MOb%yOHXVe?;X~k@EW6nrLu0+ndMqa!Hs8^##uB)eZ-jVT5F_`` ze0uxAFPrD@?V4lUF>z)aUq+K$J2k_{v<@8%wU) zDpHT^`FK9!S?wlkMqyWn^C7f!se0ap?I;GOHX(8pj^<7|XvUts_%fT=7o=IE8 zu7|ZKc@zuy;&P2^Oj?;;R7Xp^R}bL6EFB4mA!)uYfTQeThc=AAFJkdjrRkq15nc#h zAxKB(ZR?dZ5&T`?&dgAUBD0Z$UgnwY-0`<(Z*5|}v}bv8SE(gogsZ60S-V^%jH;-r z?k~H84)0O(IODe`x-->a;~yrQA71;eIN)dRjy?A7&r~k}JYQd{iH<;l&oG+@XH+7G z&5(AyEF-z>n zd=;5>8EA3MYStt{&edS-mmqa&a-3xtf8e}bapv3OTW z&Jb+|={?-{w!cx+;MG+9*=!*GU=LKj{z(4aoVeY*)^HtB|61apf?lm6WveL@9piGc zo8(58y4-HEJ4s|kIh$iJ!?VI)P3TG^sFEjmoEi=gxjTp<7R1C{VNC%}6`BfR__Si% zH=@@2l$5uKf9}TkFK?Lq{@FMld>IQc`vX6?2(KXkw~K4(rV%TT4;Kof%-crs=3D(t zzy{h50?DuCO?JQz$a--|XR2>k8CK)1Ub1K0gD4v=vF%Z=&gIeEu?)2-7E7O5^#WSJ zYHRJjw^_gVK%VEX^N`v4Z=;IRJTJko41>Ryy{;55KwthJTfz*egm}kOi{s%)(q%>Z z#UNzOY=s?ARkMH%N-8VZZliia%!1lY3%p^(%{mtYQJytnyOL&39j6fCCfs?B?ol_6 z!SCg+#IXb88a?pU3V%%9zoUCW;dL}t`L~Nn;lw-Ah*r5J#(<|D_R9IdiP4;gx;?U+ zx8`hL9YUGN4jB_JS;fL|vg415nnbC}psQ}P7CjRcCk7&%UCqdURVij(w<>XT&xZSn+)2 zY>RDz5d%}FC(xNdYq(cAyB)Tf(Fp2HTg;I|y8>E?2^J|B?>udAw5gRFw=NRJegL&9N+a=v~kcI~cK3Vi!DQY6B z?{@Rygd9X`4NBYI>~c3b09z0pnEBA{NLB7>OUG(N6(<5}6pNk6tw!Q*mWJg_opWxa z&j?(L=>4`_;V23G0?bY6{(Qf9B(v$6=riy^RgcYSG6#1J9o17M%^)vnfFdmE2;5-- z9Gn5`;LLrKGK&@2Aj7e#Wyo54AXxb265PO>gH2iInQVb-F2T-1%g8dT^8$ObU;N9X zEx!%K0so*6Br(4a#JN)W8B9i+{F_Pq`_?db6Yesr;kymun{)HK z@SbltktJW(8-f48LX~Y6RPlRPx(ZDyM+ZC>;L}kZyA?UJEinMLth*9Cd9qV~b;=vh2zqiXK?KeWe0~$_ydEs_!6I`PPPN^;T$eCt&A^>}D zzV?Z-A&VaOG!3$n$S4+DnB;ds%tnWBAzH;Qle<1vUDViE7FunXc zy%G4CY4Az$>KIJzT6I!hbR$5n^ zNeB!!<)6YT)ltZs>E((MIlXgJ>L9W4E&?Ld3yjDTs^(0I=3?JqOF1F4yaPn6iZzqB zJ%6{EnTvmc7M0%D*#3M5Vh_lZuVgRiy$q&TYCofQ3O5o%yN5FxPI|a!5L6h>XvN^s zayU235F3KkjA2YMC-6a7p0;PAr_VfRf~d$cvu#|H+=}5gi)bIupo867TiYBNrqKCD z-Feez_s18FPrgNe_UC+SI{8KSuYwswnW#WvuPRfu(6H@0Mbl?lCr~GuXAi8Y+}ot*E8EL61Grz%-x+B zJ=&hO(KdFSw%$f;ZOEDK0_}FYm0Pd0^{)O^O$F=^gp51&vNE|g?wRI>6&ap0{ie?s z{0Dtx>;LpCuE2iwV0!(QpFsvtYO_TYa6i+PaJIBq!#QV@GCRq(%xC~O7e!?+mf?Az zSg0#Covv7OFF0)&bL+`zNzbZN%$F#=oE_GvgQX{U{(929 z-v??sNqdXYy!EKO{4=}!^ClUwHR8ZFYG<0}$qPzxU^(fNj};jiwDbiN-hAfeCw<0y z^bh{PLb{OzrcW2sE0v#lTN#b9bOGsPAG~s{Y>%sbo$Ce^>;u6v95WDh(1N$~U97F( zm};H#&el=1N+qTj@ZFF%c41N+Sm=x^8r90~w@dbWN7^etF6aEy=x1EtcFFqO?(~Sf zbVnDM-jBux)9&SzWH3SsSLCXwChcz@n^d1SFiBCn`}MIBGuV%8nggEn8UHWRa~8$NU- zEjTg&6(`NIBq$%9L?dHW9B1kV<;{rnaC?z4L5oji_&%T7vqv_E)N-zPTNjaJHfB4B zw+8QV6L^QJ``se4ELvD8J5e%pTRo?z6CLlA(-GV->bx=N!hz_?wr@Rq01U3*2H1(* z3?gc`(27V=0$}NNj!Z_HqJLLx@JSl{PI)38P@Z1NUXXhkOs~{_#&5!DWIm_t2+_49 zQFN9_kS1qUzN%4u&kpC!KGcVK!$W$?G27Pl!;ou^(X#EURNCRiP#lJJjS~y1Y|^^e z``XSNDQ(z}lTU9+yZ;8h>GS^FJTi7#C$0S2xt?k_E6SVdzfWljw*dS%a>zpg{CCg0 zthA>W4nO@l{8_cA5$kA_w3<)jAo()l4t^*C5W)Y06-84qsjc4h|ko} z+4K2A;n(n{*A@^wakwMCS*~HZSSRzy5md4`?^~^rdnHT|Mosbsy=fTNisoEF8wXZh zo=t4zlFFy`Q}a*w0cG%i{P$1n<&PdhzbxT$7byN24`+WKDY*7b^v1+n`Y>D;4hpg2x+EwPj z9B^(zXM4fHjy0GG_{fF*I-M_ke8e|8=JBf zrKG3o6xSMfZfV>?PyUX-H`8BJoTtwDumAeejrH#7PZ`>m>5qJf2L6!Bb@O0_URrv{DcB8q6`o&sfN{Ld0G5sUDEqqc}@7aXl%1vj|6u%-6Ih=NwdD zRt$bDrQ?q76}^|y*aQzFB6mHy!^5KqYn|ovD3iAyEM#*FIC1`3UW@V~*(bdxRcsd> z4mIeW46rEc%`i!@npfs4_p~FJG+E3x>};*|IPe>_dNg`LH8spCi<>Xc+Q&jI-xGhv z@$S~xK+E~T>=2cQ9nvhYSt}bdIZr@0bRfwfa+56-rAlyVUP z5{jrAtQyv5^wV!By&4Wim%smA}5>b7sR=SpME8@k;g?#oH!%rS>y^>m@%( z2b!j({iL4}1BuK*+6H^wB=Y&9XSEE7(BsiQdifCsV7d~ksN%~4kHyuw?8}3gLQcqH z**qr1RM*Zd}XnjQ|B*GEtKiaSJuaopA1n zEMXQ7FYPQlqd{C~;mUQ&B~{J~DDy>ivXPfnx8%(9j2!113@kV?JsK#|Eqq-AX>*gM z<@ZIw-sn(YSg;;2V7-#PfblXI8^%k^42&FRvcO{TL1s_hahsb}V9X=iFtL*-o*fj< z@re-Fh=w$XdEUwR|3|;Fq`J1h3yjoXgb%xwTqRJ_Q ztD*WU^&fgnL-_P7uDE{o;EM5x<3JAePSqTsop0F+NO)c`J9IL^RSZwNs!u$;s4}VU zFgDPO4vEyBSoB#~#!iJo>NC9~@bP~Raoi%oEMM~o#)rH7 z&%1Xss=UmSpnCBJy)~lTf7CQ82b=x;xr;>ZU7NN)*W3HzgBOXrc9P(^1k2x{_nCM1 zpMGs_{r$({%yHJLZDVzR>ch0jc{+U)&yTlitx&=|+O@HJM{!Z`6 zp4{Azc-bFXPg5%nzL6^aku`N8{dQehad4F`MyxGsAfC3ETeQ!pzOvADBT3T(AF+`)Bptv-W_i#pBuIw(QV$*2Bz=tjIGhFr*p2|5zb~3QJA5w&sf*& zg6>eILluxVqMe5W!sMF5&LNV)U?}Qrvzl9spnHP4I%!ouNsd^shN_iv)@X+6>*YwR zqG`lNYB~1wIUC}Aq2b4He_9)#flWMAH|9bRm|p*z660#cG;usb(d|lJaljE`3f3@= zjIm~;?PkN9M!P9#meE;2VoML}@v5n{mAWbi%zirx zQ<@I?ka+)jnhrWnh$j_k!Lmj)OII#?s-#8cC*)l7ux+N`JB4z58Ch`rd{M>y$sEq^ z0Vj4F_=rscdB2hLQ7fS>c1}$|9En7F75mFw z*{~e2t87~&ki=Rl+2YXSY{AOFaCCw1WAvXISlaei$|n4nS?7i9P562mTn~>C7K}LF zRhzY}E>%gH%|g3W0TIEAI1SvOUP_ZwS0>5H%4DHm3vGQm=luapVZdAh+gZJs&rg8I z)AmWlg-vN>0yNQ&^O5t>&C1RwZ@m?+?YZ7=ad%zto?71hcAAcD8kaZ8SLUV1BC0L~ zFYIWNd~6KWx;yog9Fds{lKR>P!lPBsy1bo{tKdi#Ho1>2^mMQz@Gv2cLyLubbP-30 zvQMNnLt-Q#~L+iA*e(KFMgsqkkX&d}ac=8xeZ1I(y345$3TTua1 zps1$U$lhz4Hq15@-_b@Xo9Zz_#YviE@*p?0Tqzwxpo6uNcBELwOm-5FTxb-FInNcG z9_DqwL|er_vjqz44X`ozVIOhPY^11J1-3J_d?QVr*MdjC@7oQ2<|=(u_!}K-SQ@G4 zOuy}r0X-yA+!F?-Z-&>z;1M%_ReIHVl9ff)duie`reLgS%z{abpRAPmPS4IXgL&H~ z--}7Y^82hGTo$pcdFvF^qU=fl?$0}Paj*eaiBZE7JNY*br;#ZzrO{2z%>H_(MjyiO zM)Zo^?eZFHKLWR+;1@OBA3Pa6B@$~>jHK}hQ#x7Eva`)$7pFi(c?>Sb1&MN|n1jGV z>o=Wg*Xit_w9$q*;*n47VBL#=+A1kM7%7pMeSN+4E`k4Vw|BjZA^4Cw_@*iM`wraK z77cljJAb_tHUI7U8tKa}9mAgH(RcFo@3*sOq8Da9U5I%WMc)N8-iPlzn{e-*UxOK4=gC$F{`s`6{y)J1|H6{yD;XAl zNZ7igd(ZeLpW@?$u0a5m1+Lo|pHu53UMG!P^bt!>03{Y3X^9mA6>l}%Uo8d32Y4L7 zJxXKuc$m>UT7yiXKn$c;PqJu=nYLzjv&Ry?>|AW(fFD38NRP!1VR{njt!3XDB9{1(6>2kg!~rUO8jY-bvg#-%vQP zTNj7aUL-Va7elfQQQKlfaVBO&5qBpVQP&DGIRy#C5JEAt7HJS|{g~Rszd0VquB~e; zw{QD0A`hYWj`q_UySsC3C^Z7f#UWVr_*!t3VU}&v$XfH0_#m&bHV+s_#{e72A_Dfk=s~%vU=BJvOCCh+_c4A#{|?x@yH|6-2ydhAf~n?U`^p&t zX46dOIcWxgY9@JHU@{5h6THKZx&-ixm0zmMrRsOaq@8d3#%v1rq$#bV0>JWkV5=pI z?}atc(!YsT`5m-R-NQcLxZwx9Aum*)VZ2;l8`_WXiyVzK>-n&cq%*q;0?<84V53U3 zp0|a&Se~^5USX^-4+60Y3SY{2pH1Ij%|jV3W@SSkY`iE;w)_mv{{ORZo5S3_X32H)>%cZr6mAcAtHv6wx|z{=r5Z# z`ChKQ3qQPV#`v2}y~*>etgC5WI+atl&a~>2I7p*v>c-zU8~xx#er3(oS^PZw@Q05I zPvZ>AWwoR4Tkujd9dnzK=w4a-zvK7JsW9IvH0xV)Qnamh)zBr4~QEkGptHe$sLk~CCKv_#=kOcbiia1tFpOmTcB7H(Nvdag<@fM^s*?U(TjOO1u(J3~=H&J1KTu)g8%}>y((92>z}J#q zqeA~GHj>VhL%6AvIkwSZJe$v$1w*eH>U5gPGre$FQKwprsFg`*B5efhdqdD9P*Q|m ztCO|70nLeFs|wwk6(rHd>W4OYFSV#Xf9cr+72a&5 z7$0ujy1>_D*34%!!tMYXw*}9SBvQ+TZPO+5{dVh3*oXicwCqiC3mh|eG9VkOYYIjH zCWRzQ?st`s8^ z3znTEg2}d?u|4l(zQj%TARi)BCg}oVCV6h|GaQ^89b%dSdf~wxi_y-Qr!Z;uPV#eE>h?rTkR+G zpC{SdyH_{H2;xu{FrQK;HqYU8-f!Xg^2}O0bH(DV)$dmk zXqjDM?aDx{zi$)pZ3!Lx5AuijJrM6o=v=A%{PNocWYz2%E#p-w@intNaEC$ZcYVBB zH{_N)aMT=I$qb(n8;U(B8x8Z^Jg_<;Nd&;2hl*Gh4H{zz&x`p|F6TjojI==Awxr$?xgmWOQ}7*k@%TOMWGFi7|M*;6jI1Iv#nTd z)`qKOyIr@CMLL%!Oh?zq96lhe(3ncmC`g;Em0iww8$BoHF{3e!1Qmk8pTt_q5Bf-R z{EH3&|H1x{_bP<#Ys>`hZxD#HPVrBMIs_S3>_8}?YskgjeC$ArPW0!R5 zo1Xe_(ABzs_rxuon|%TNgZ|C|n7lNn#oj%55zycKhPP#M-qpmp%!IeD?OVBvx6N#8 zqi!na<>x$LG98;Vb)9eHVFTD6sCn$remE3pcJ@}i zL8)Ya)LUy^wb{W~@dZ$!XPv_UU6-(W!1v^NF4n757J*u?8ARJFKXiP1GIi8O9avwU z*w7<2>+UIE7xn9KdL#KWAUfOZm)lTRgRoN9U>jqpyu__e-8Td6d9f)POmo_h9ujp+ zUDOVW6@lS;2&I8tP84I%Ofx$j8x#geK$mRQOC56L;{Hch<6YkRp_|94e2Y3?{AEi#AtNA)N!rM2~-GT)bvm73=4@+bj(aBP=1pf zH;8v&ZFWVRnOxFzbyIE2SX@$Nl$|%Uvkd_K#C6TSJ|l6sRusb-~b_u!>ka*l^_$0+V*VZ_}MWgMkT~En-GPOn9xYY508R z^AlqyHV`QO6T~%fn0|r7v$gEy~rqxNPJpeu^#UbXTd=U=N$t>U))r{hpmIt%bL~YYE z2s6V+6&3$y`EIJ*K2NQzEWfTch&<$GyeE9Y_HKCX7BT`|OFUYt*7;PkqV!-!?tNxY z^*k*gffPcgU?7+IAvhqlc@jH)IU{!iw?#I&xaPNKA1=BAj(PrM2%AGk7TaJJDikwqoe=V;(QpoEa?Po5$-Wgrk zt5(XRNa2#iL8&_T&dAJH^FnWWo}Da}6|bb6x@KqPviE}7xdCd|OA5$=EN*y49v*3qj0bk+&`2>9=bm-G>c*W@L{cC{ym?>)(t0t{>TFP%}Oz;o# zrrJ0wbOo$QI`0#6D3l%2th+6>K0&(~0cDzzxy1@kMeG3L=UDHKnB?#59n3klb_Pzu z=pfk-Q|VTN_n$mj-~REJ{CL2?@s9d4FYa#L*f7GZHke6_BSDuBRk7z7&)lp{#ab^h zOEfY9Rt(K?C4JW}U{|DO^RPL}bZX1^7DyDzjDA&KY-BX(QykGXDgP_*ZXIlY58fT+ zD}s09s{}W~u|PwtIxJ+bwQ7Q|Or(W%2+hM`3)M%*tj)Et@g~kfRK@w(GuN4HD)3e& zAuF=bm|sGIyAC;f66*Zk%fKQ%pj)RLskBseWBzi5-d?ft1NZCV!H-SESHiDQUWcQL z8wEj?F~tsSP1ZVjJLw2nwghuH=EcTg4(yHQxSz4J+TSu>q!c9y_PUbI)<+!!`FK)s zv9w*SY*y|v5Sq89pvs5u>(G3N?fM*$hYr^_q;HVi-MH2t8*#My(OxH1NDFz!Cf3!G zhx;ASY1-Mya=Mx?R7iKD4KbgD;DkW=Ih*G-gjpq|`5q>4ra8+Z726aswh+Tf)8s%W zj4j&!)_3&RzoBm`F8+k-v)_Cw8tpqjc(9N%8(nxK?tL0W$yR@P;ZPmQz+{`$s;_)mx*ee*@1 zF%x@q$9N+9#LC;?+A@E{ZgE72gCwu4B4SD^XVM+nHnN@+P1B;8E($s8D44;PC6Xbm zMb6`cf$SHz(kO zO4vvGFU)vzcdSZ=xso;6&jPPH z6=9^OMR45s$)=NmgkG(4{NVU;jTA8!)4^i_(Jz1TsO{mGLF>BS%PM-uTg& z)z}nV$zIjCzfyVO+$xl33OY$a2f(dGE97_HKrBw();*xsY=PMpTg15&D<)5pWVm2Y zaCi))d1vXUEn(TBJH(4vHP1g7*qYoa4e#rwe~*>BcqMzm;AJqj^hLIyCdRg+!eIy# z5uJWu)F!-m$VQ3Y^fmJ^tWbxer=H-WJEW7BRn`&-Whq8;!TV zpsY+@^M5|n2D&^BuJQVR{nwX53U|+6+iZVQXzJNp1i$wd71h&`1ijZT?`!)Ye?D2P zKL&fv{(yh`ZxC|p%`_@>_HG`f|2yvP4Y2>2;_kj;^EXY;;fHcw?wg*&+S&B9e ztsqb-ZUUpM7F%w064tEO3Kp;~!_1whi&(5{7d66tTLk+#v8$Zaw6e^q11ze4?MJI5ozE&tySb^LN(zYS=4$o2My^zAUbyD`Pbx!#JL znz#Fytm;NwwT@7w_$sydecPfSRB(nR47*qaChP8OkrS|hyLI2rmTp@UAh48DI4{IS z#oNmu^K^DkPQ;Uu`2un-i0ykqpd|LuZd12m!_maD7ko_V!mL)Gj;k@Ar`>n!xn=>birE*im|f zH=Mnk$5DlCkGqBvL*&G4L?pz(Qt8Y_pxV>9nwJK9T)|G>R7TyNK+`xK=OCn2Y{4%I zU>RerSZ-9l=rhJO0XRz z;7)}s%n4dqnGoG^^{E6QX}(9OwUmXPheTBzgUcz|S8`@7t$dWMJ%lh|*gF^vx0ert4tS1UD}_`Owxj zDubl{vb+=cPy}~;xvg+4vv4^=Zot)#?;!p|7dLvC&+ts395}*bZ zvl;HGNRpE*Dako&Ye}eztNl_6R!76)A`H{;##}0m#2^d09x154M!vr@b&rLZxV5An z1@q`Kj`%}X%=#qxg1>sV%jFd8TI$T-zz@igRIT-mKzH z70n^vSL|rAj*omT#>bj$F}tmXCA?tw#bP}Pb^vn(^<5dqyCY^h>;D}^c$80sl3(|W`IQYnUib^gB5P1!Q>?s2EQ6X zKJaCHD$KtlE3?3M(mHU1Z(K)@SjO)OU$*GG;aFc>Pn<)QY7&G16-0$Dl3rr16>5?->2(55q$=BtjvW}&%P%gU7wm^jitFRsgudFXeqWGqWc9no`jZ4!nSFB#VZY|fGf`mr za(O*{u%8)29C0*nm1DH#HQ3j7EB%}md+&f3Cb^i9EkoCVy;)E2C|jwFk*5cKe!?uF zn(V>>op*?F(pDP^Yru}Dk$F8yWw!fXS-x)o@VO)f;SX5!U&vlic)p(Ai2aO%LKXz9 z@Eqv?6r{}0$JR9=>?}esSZ@x@sbuGfO9Ikt2G5q;2J3SH0+AkMCFWp2c%Rjs+@CZw zIO<+_Tt#fjYrywr-`kITZENr{{_WHoyO%bp?Ua?3m0uazuMH<2n0_yGFVMdXrZ;jw zV?UXra%jv}60`w{jiL7jo}=qFY&N)n6#z^d6gUa8HUv7++EmK0X_t&?Q~{95Mjmux zT*D~L6_rp(Ar<3(Bgo(nbMU!5;#Z6C_eRDW$twbvi?JrdJnUif=*v~(c3LcSk~N7D zYl~01hK~iT8Nj2>(_*|^nlTn;z%iDBSz;1~r$z^gSTOj3*fxXHOWR@}Rdd82YT;iH z+t-xA*GqQxP>1y!$qQoFi|K4!Uv<0`)V@cM9n@PSk?)}8JXzPB4uK?tE1avv8g#TX zLW`jwfMjPCIF1jlR<7i%VRxeo*Z@|9V+j@MmQ=Im+tgl+JWKA%9Y06pj)1NXzRG5~ zhQR(l9P&c(f?FNL(;JDOVT(>KAYeYtmD-BK^g?9RAlMiaoa|^|N$e(DYCG4gIO;vb zoY`=MSKy9y@@*K*7uLksBU?zC_p3FYW2&`2V(X+#N9v5+;V{CULT3Vt7)aX5P=5wlCr<4VytF%Bo(ZH6cMP|*pfP)o7rsnv8;vtn^ZVZna zxJcht>d{?7wjlt(TA_EuIpEB4Ra@WdNtYj5O%tc|zC+}JJ>r$_6C6*YvFdfcIVmj{ zDUdx;7`9!CMP`dudK1j+*oA;(!tyUSm1crK3M=fy3 zj>@r@eKjQ@|2NY5-@t3t*AesTW|{sBJMys;sR`^0XiZ>G$#JLAMz>_eDP75!HAO$j zwYkp}uSRvwLC)x822Tp8S~fkhM>op|!_>XK-iRj$H6$I7clIP|j&mPmYzfFknBbya zuQ)%5K~DyGJE&^lDhFL|{0vuX#DRTT6ltEkl+S%iF!;ts_y4l@9#4up+rQxc{S_U( zd;~4;78COmAV7c|a)`w@LS6zn)f4vzbjHS4YZEW}ZBG?B5HP z-@OPJe|!6)&l@0p&a!n3t0BI;NprF;bR_H`yJ56pVJ>Mt2!cf1G2gVOB4vmt6 zS9F5(B)!G+!S0>mWySpP&=c7h`de$<|7U(CO`1F7CVv_^4!vaM{Y~{e{@#u+SrP`=B$ho8=X?{E z{5AlVDqV7brU00>9CiK-pJ_yFtoL-e6mqK|RU)cI8E-v;S*^J_Sn1GuHI2X}0YW~q zUsS~?t{ANToBjLX`0z`szKIPXUSpeYRL|hO9bZ!R4`7;xwqOtN(Tq2;(l$6>><{Ur z_2i~Vz|MBuBDT?NB*Bo4^(01=`8D**8~aQ$;JYu)v_yrc}UD4e4w%X z@|{K5MOVG=SBL9Qu~82a`#*^5`TME#X!iZ(M7mUzeMkTQzD=zEYe?O!^M7T}`T8rn z*el7~c*we;yVeMmGhntY+%%_}4bIdWJW?tt!4Zc$iibT=WYq5H2MS|p)H)Jns8x$S zQV{?v324)n_I!d`ekO@qdy7cZ+U-UAdr_i|BRhAW@8aQ?HVnV10^|4NORVpJtw3_B z1lL-iMdFL`LS(0kj4?@j3f9&%?lGaof}-eISix27hJADXM(`^@^cZN1{jFI%$xVF@6Pnqa>dfIve}C8 ztXUqMIaUydlq##fbflIJSbpl%@(4*5EPoOm5Tvu4P$>b!HTWPi>LtOAPcz^NiQ^Xp9bHo=D>?LTBHdFmVEs=x)Qvn34(dmPVSxj*eKJ z3#u4CZtWUCAvuBFSOT5SmUOh*?>6qCS=T%=?`wNEu>xSdw0r>NOEYor$ z;1Y4{<>u3P8R8d2zF^AxLLL}@I2m85{ux$fHjSe-<_h(4hThxrI;TgVvp3jYBE|vV?9+PPbuTPkl}`(iz`vc4mr<2=Gp>yG@f%xZXZL z2>syQ&+!Ju!=d{24{nsX`S_;FOY`v`-NlGs5cPug<1G&1uy0YVg2DCc{_AOcgJ5aGm?_LK-!;dYK-l#?R<@S*ta$of4vKXB)Z zF#mgPxMS&u^B(``CLcE}Z^L@P!gasndB5>lt$3gJb9jG!pbv~co{f<&ZtFju^_QlA zdlo7i* zBQhzY)4UD0_9(|r9|gf5Py6h0=NhMVRhT`o>`x)zTT&bB8YHl07A-)6OU%&(K@> zM2BnGmS=cBn~*$WX9Y8%>usA+y|D1{1t2e%D}z=@5-@v!t!4{)Q}CL#@Q3%?^}`eM zEyM5!KkpxZz&E)UNq&3*7y7rrP2NP3x08!{cp$6v} zy&g)%fgeql_QaB@I)~!29M!9X=o|}n!mII`)=6cq&cxLklT{Uw0*2z5-R$?8_!*BU zbx z{47A+4j<&`c#1@^UU|^ScBM&<%G|M*lF5vpl^&|>GA+;+X6aU7NkOC)A>cf*7&u02 zezO~Cx(hhjA+kox%3m10PE^uvNs&vDF`kZ_@1ySTbTinCc>F0!`9gUZHqt>mG|rAK zQIO==kUmX!XsWIYUxk?yz32;A%#JZ?N``faM|(zRY#o)oIj`hs#qs;t1lPPO_j?&5j>@<$kXPQ9tr67+-FSzjU^T9>YHNeE;sVSFY z78%lOD>t&lWw#pAQy3k!+Dgn1nOnC7Dz8&JN_>4^E4zuj$oR0BW1|*}M=8IkUE<(P zAQ!Ls$$p|1#Jm|G!ry&-mZt~TF5l9(eDRX_@^l;)Paih({5=oMCsUqNWs%#y-Tqnx z?G_vhf2mUNxjNd1d$(^ht1=izp_Q9Ay%PEP!Ow;19u=DY6zu$#9qsW9yF=y8b+5SU z6Ph%C7FL720ozjmt$5L~CvlqF8nH{$7zRQ?j;+$@ zO)@U>lwgx+bP|l#>bOwyI(Y{B4c#ROsdu`#Jr%R9?E#bdX2@RhT3P(&f^(gX5b+DT zvkhNr-hWW)LFb+2-4hp7KEy`jpL_Ph3(n&XzjwmCM1h9I+olMWM62mc)EBzEZ9#HmgfND-S#2V4Ca9pF_r4_>Q9;V{V5X~*Z{*Z$vG+&p5Q6|I$$bI ztlnDr)fz0=z3T`7n85^(&1YNn=q%xN5xR$Cx)T(hEme5IlAFfm2&ZhrK%-(pu?=CT zv8@<{d6JMyg~Z_r(CELNO7Gm}=ReTZW-@rZ4Cs`P^Y57m_JYd!@jEUe>FxL;hz(FG z;|r(?aZ3;QZh43;qcLlTC*n*Kx0AA)`GDn}CJG%jISL^{0xQX!_hzk4se!Vx%cGx8 zXTG#!*5Ov%h+9gPqoXx|p?zWx-_P+OK!4<2kEM@SEV<8Ka)$c%$x)BnUt#7w3QFWW@Q$OaB2tCNIY$|nJ`_b^O|8#UFt`p ziF;x<8&p^=zgTylbLnTW{M!TY?HyNCuE#^YO?zm1*d9u$n+V2cgh@Fya}3tYoz280 zQ2ek}49_%FoO5@_Q%0zsQ2>V>gh%ta*6#^%!K~`jow_T?vP3|E zu(z3AAO{T4VWBj23y~b*0DA<85Eeia0xj`Wv9{q=UOGhnynObhgwQxjP3I=1fxn1P zYyMSE{b1dMe?jmslz28NACP?nHu!IV{gM22$o)PYgTr9Q9J)^TO=7}ghcF(6t1We4 zj~No~aad6c4Fof!(Iz6l!`2W%sumxT65&hQso5!zaiX^Ffn6-91kB7zp97g_{X_;yhuba9@1b-{+%6tW@3%Dhx0c`Bm z)(nDC0nOp%e$>#mtMZ#;-QoRuDr(!KIvVYDDRO=ES!12rnnPV0`_Vo^&3`?3^g{xqsdgaLp##|K+j;p~kXcw2R{ zoW^nlrXkgH{%m&Is;i^i3P=-^*l4%;s$KfKX(Yp(C0yrS6TGW(QDu1b44m97+8@(yf$Uy~z6ZHx+k(~=d z@q$)2Q|ARTu-lKgwJ;b#Nm1^MI2OMvm+>1B`%kU$QU>m*x+glc0&37%H% z7C5t&6^GeCtyb{yw%PHcg)5DCdU3XDq4v3^NLU9`c+B$K*;13H--ntVJ z_;#|qWp?}TKyslDjIX~#L5QM*w#!aC*UF0Upc9a|H>ZZn+65-RJ}3x1*us z@94;`XNyi=t-?8{$yP#wP>I&_HL;!mnD4-zQRi(?tqh-JH+h^;@><@(<=)Y7ZFDTE zNI%JhxjRhk?Jh!^Wjdq2h2oYy?!U8Morzy|o@Fp}t-@D=y~30jBpqQ%Th10)XZNONH`NeBao)i&@liWnT@%S+1X@W+rEtU$3qW^uH%?xelYBq(}jqxXtAMP z+g5XN>8Pg^SmB$ni#jY)PeEk=OU;Kz+gA6)^iaP zWeoEZPOA{7?8vofmYb8BcEH}~XFa``O5}>4Pmh~jAG1WwFQ?nlF0=L~r%P*~mMSYJ z#G`Q{eUt!Kz}IJ?`2h5lK1eLovt>HZlGdSj%Ci)S$|#mzpYeYfL} zg>5U8gwpz6!o}Kawg|CM@Eo7(s_0iIyij9)A#)n6=L8O=QaWjy#lpmATP%fUQ)BD zZq`f=8Z{px^85{S@20B9n$mmo*k59IBYu{fuSeq>!9RnCTk>8JO@*bWZGw^!2Flx! z+4}h@#!tIB+vX0vHW#>Pu8zp4uhbmDf=T2nL@mTCyNX8wW3rP?xzvDDlrr?3Rovma zf=@=kM?>?iNq2R>Z%LspW+U{1>z!@kdW3^mSEeo z2_br|kqk3tV@R>R={%|rh z6Yg>^87C{8YkKAN)5dM{I>0GZ7Q&e9VQ18?B24AY*si6yd)OENY^Y_wTN)u^FCCT; zxkx76!xAo{EiJ4h1U7l=*{XQcq&>6EypBP7vo9z9#S}B3-P}o8FezpouoA)u758Xh z63)7WKPI4YOf)Az$tfou6*-$LT3nkcrb=;4RLmT2CrnD5SdNYiU?oScVKTTTIGOpZ z-LaV;owP}w4*>{%Df0R&ePI0YY<#8rXE+vXZaMdA1jWeC=tecblm4OdmIBVn`}I`V zWqTW2>{wmz$SQIgFBTJutTPhw_n1e?T08fh6nQx1V&@jV z`~6&dd+a~B8UH}|4DR`N=sw(?qAJBjtX;t;a4p5VqVE!nKH4S#9&#yeW?Mg_xs@3b zr-^<-&6t&feaD*>su_!N>e8E9hXB4j^s5zy6Xw44)=vl7^Wr}*+MV9%zSRI4Xl63d z-Q2*m6@8CS2YAAZJPSm7_H^epoR`_9~gv*IMS(%jAo+P$DvXO%>igYH} zQ>*R;m9{owA+Oi|sCw4!8w-EfsmBbn!CvmFcp$A!}$glt~y z<)fYNxCJ}WxdqQIce{x;mzN{oKYC^Bk9LL#g9;;C!Kk0t^8><2LWEh}5nL+U1Y$RM zV4c3|L*KqIkIg9T-QS6mZtfV5w_UF!8T|H57jz!oxI|eD7%7VbVY5U(qDT%VVdWHO z@ET*-B26om>8;5skfeUbAP1S<9`T&=iylnX^mt;`Em}ca#Nn1Hn9Y_PQSidD3#zEg z9&AkC7xYKS;J>I3N$~y>nbTR$Jr&~%kw3S1zA&LV4$l>kI@x*UPH6mODEUg%X1y6u z<_M*bQ3{LGUEvn`l1*S@L6J%!a|NP{ytQYU13J=H9$uL8Jga9TWM4dM@h3s$F;|3N zF&%uR4~*|lFZn+P*bf*cC^p3mSBn`3b@PC(J8*i)ajl6nPCv~jQ;TXqqR}dUPBc{F znTK{$X>sB!Z05^&QBRW?*UV- zSli9V=Mx!1fyJ`)GVUoH*x4GG9d zB1_ZW8_5=_c}ej@>o6*X*^$a-p88Q>6z@i(eqe7se4P7Z@e2lkM-Hdp8Dx2<(kw*N|*5*Vm z@DYBp%~nIy%8eVdIgW^tyxI(KBY%)z9JzC>O%)5=ChsubeHj|?=J;)E%T{s1^&|Z;GOIlkl!bl(%u6Q+3xvYVI+6}Ka#(bmc7(2vM~qYjVg^f&KWC+BT32$l zXXM1iw+nnXVBht--tL1eWX}VjKbMjH4B_Y6y~APrQ#simPnptxyQJ)oryySLJSZ#s z8$jVymj165*RRL`sh=`}tz0|4#TZWTn zU$10aPf4DwB~Bus+{p$k{+Bw|j_YP)_f%cV{ys=?bE!mM*nu0H<1#nT_`EqIfSd!X^-#fSJ--+k1Ic}af_?{8;ℜs(gyre+5Hc6Z~b&TyNuQWi>2Oz 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 diff --git a/blueprints/cloud-operations/apigee/bundle-gcs2bq.zip b/blueprints/cloud-operations/apigee/bundle-gcs2bq.zip deleted file mode 100644 index 19a037898bf5b9800d0d2a95955086a96f39f98a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71026 zcmV)aK&rn`O9KQH00;mG0000XiU0rr000000000000;m80BLSyWq2-XbBtAgZ`w!` z{+~}VilW-IW=*5&RbMK4M`+Tchu|)zt*XE&i#;~m+Pm)VI+P;5`)POWU=pdis#5Um zGqcY;^JBy3&pYrO#-iLwmTfd#^e_7GUWhD5m`=wXu;)`2BUhL}#S@gEHwdGW#v5!- z0{DbdF~Q-2^uafPv-;?)`^JRWi3$q311>aF3PEp}f|TV5_#?(r1LF{jqRbiPF~XMV zjlHLiLQIS=bqulAlyRUCi*g4dZ3BVonza45(YhRj;dZ+v)G{VQW?}BIDx6NnSF`A< zcR~8K*GHbCQXuhr#Uv)M-T^JkoW*pVBjj`oLITYsVggzi)?3Lm<5>VoqQxdZlE_cc-SlNdwbxIK;QKSra3VVw(! zB~p!3YxVaX0N}L10eD%gF4o_@z?hVlNDDQ9+m4-?eQg;)DMgG*5v3DR=>T%P$9w=D z_&c`D& z29Gd}*<44}j>iv;2)UriIQn!gMe%+d`3cojp`IiGXfxgR2P^O|Dm60>0j#U|8|uI= zDx+K%tcZ?4fts2aFmzS`B`O)?wU7nX1MtStC$H8>ePiVmX~KARBerS)F9U0Lrv?3S zNs}9lg-py@zu#~CY;z5o3jk7vxxu&tXRQm7i`Y))0FD{}9IWtAw+1m~@$VLLX9ipg zs|lR%U80BZeBY#cFuU!1eH}r-ZFjF-jOY7W!UG}X&J?>*sTs7ocbnPt+n9QY zYe+ryCy3jxV!eVP&@E-hm@a)%7xGxpZhc@m`FBTh%k#$>-8EPvgkKXOP7dGw=@O%f z|Ih=$L**UA6JPiu3vmlm&UqhZftHC5k zp6Ly|g?_i`hW5qYm2(hrTuF(^z=Id?A)3$3Kr)`ObXUjhIwk;mBgNJ#Zhd|4+C0ax zsPe=<(`&Tdfr;sa)53c$#-U^WcaE!`*nM_&k6im_ZpWMj^%(lcvn~wZnk0^j)N^DB zmsBeBFRL^~Nm40_mZz;XDNrd>Ci4-1x26jJ_sZ)MEh3w&-+fvcZzi;P=Nwr34c5mq4{u8cVEW_?^xBcG#SNoT*4$GeTNqaw6``7J{SO4wf<;7vy zqa|DROrp!4?*hL*bo>2&f7#RGi7k|mFFII0l2IL0r(dMjIb>NotldWlQZC2+4g|4Z$c?bRt00960P)i30 zjW&`a;{*TzbqW9gP)h>@6aWYS2mk;8A&LM10000000000000pH003}dV{2h&Wi4!P zV{0yIb8l|!{n?W8N|P=KpYN-9?L91t)I5Fm*ZxZk0s$I8LLl0DwP}{nJWF)#b?t2k zG81xCvesAC*1JwJLkh_QJ?`P*;o;%&fB%nPzkWwrX#M`juiuW5!+QGrU(fd{E6cq& zI^Tw#z$fr>H;4`2_5w?JsfD}ynU$7aX63*C@vF#6tGkzIhOar@y>lzSe*JzaecWbu z|HF2>n!q!xDDPfkrSa>1(@Lz!v?9a1X{)RGcPEaWz#1AsT$+IHIcaHS?U}$I_!Ibq zywG^}tX)P%;l)utv@NxYe*N`XZ3I6=GAa)!ta)x>twOaQLf1pqB%}2a@BQN4i zbFAxcBJLl(Ap<>;PZ0L|TKB(RKHiEPFM9jkQEYY;|L4C!c!%NhYyacsRF}zTHDxA|RWiKi$C-aJqU%9Jc5ImG8<1koamQc+H)|@a*nhE&5r7Y4N zyC$3+RjANx!6w^+(eZJ3RN53)IHV*XU1&Gtc;mUo*x|NnJmK5bUW<_d0j~e;-+Bqt z7Sa=GzR%keM@^=7Yg1psO8T4ld9^}oMcyih-*`&{nbDM}(QbfHv_ znrNNIeV|0B z^fnBFQD%%dKkF1<3g}BWxlwI~s|6R83g2n@U%!4I^I;MDR+L}$=dA+!XR{Z$tJR|1 z8|FnD+%5(I9&~aa=@o{PB+tJ zCxD_&};20mSZ)^m1*D;cKc*rCP|zX`LJVf_YC%g{MRt{jfj23 z;Iq&nKWFeQ<<17VxgK^jzi0T`rniMTs2Gzjn6)t`$KzHlAY0uvQc8PE*pMdpX)+>t z#7Oe#h^{tGLY;(}gU6tENg@6`QAz+z9>1Hj&s28M5L3_GgdgS(S|WkH*_&?rh;{O3zL?EGB-4YHL+LhJ(X&H#K&sWHY>+p(V#3LJhQ9 z)W!m5mH8u3+kGzQjdwz^a!tusYlM0@hq$7TiedmNlTcHVn`Z%qyiOLO^)KpXlG`!CmJV2Fm0Ds zhId$?yJcuHfYhjWibMCJd+1(JI9CDP&mUgyJstBO!{6KS@tKe4BVOElje4`F|rY_Z~XxAf{6uEnu_*xc4&H>73cY3k;Or9^=7@(OL}SB*SdG> z3OD`xy%Nb{!^$s};1dKrK|k%}e?agP3_pRt{^LJ>{Q;p*5OFF0#Pk2LV*jjH|JC8| z(m*#OJQuqD++*mow=oxEI_c3%JyVm&VmAtMqA)sWl!cfb6RT=+R9ePH5IMU;CGSVl zEaAPJ!3GT$4q|>*S;WyEK^9)|qr+&M6HHHI@ZA`7w2b1@LF#WC(cX?)&>PRrb@YMX zE--yHoLzsLRu=9s@bpZ(E{BnCAIz*GYloSYmR5dg2YdV53(Jb`ANfxmraoSx`*?Z? zJz_wA*BUVV=5HoA$RRg+@$$rW7xomS@m=x{d>_SRt{KAl3mqLr#YZI#ihq) zJAAdt|A3w#@?N!d$lU0+cXroJ184cgpU~Ud(2Km#%b$J7@V)I5M?>3-yxhGo>JRv> z@;r|w!^C%n<;9^%yzM`^6;?0n56II8i>L3VAfGJz>ZKQ$K%N;usCm)Z%>36c-x;38 z_F{~_fAz=R1AM4^T$iFhb5MbIa6Z;2u1x^Lmv!$8+3$rPS@RNScmNrO)hb8XR>u!O z!pK0d7*E9AY$t6RkQ}HUjG;|ZX$YJMThPf)jxMS}PD+eB*=^U3no*P4!5Oe~(4Y3S z&i=C|GXF_~L|hD$EKWY@falKXnZNs)qPOFOkqkqt&`hn+KK|a`BgyqaM{BN4VfXdl zcJ!nSlTW|@C$lK(KXZ6`7Yg$CS=L`Qbki9xH~L!HBmJZ=oN@`~?7=bx08C(l$C$}x z>zi|UnS0jJkN1Miv&9ykvE-_@IKnI%&sC_9kPTJXD{LdWUKT~9Tq2>D0!mLS`!mh; z`ws|wf`4Mc{6*%zyp~v2Hu?1TzQ*PJ%cFAf-;?YA4^6H=D_!c$~+$rX6a|^Q`CHY{biNy>0JA zBkF?9tio`w_4pIH55XO z%j7i6+X?O|wX9URixm3a_Ko5YjiTcYYfJ0|0f>)Cmdg-w8_TRkkl7*!;TgxZgB3IA zDJ(Bt<^y}5mxT{%8M}7F zWV>B2#Kknr<6|0=2)Z=d5xyrhC~Qj4AU&v9?i=It9=#E}h z!4l(6>i;Xox1Wpu-Av{)Zv9-|KWpU7u9u6x%klG#f5`dpC>big@<_nf39vrSg2|*^ z`HGJ$t9TkyB^x)=QC%&xeCCY}ml}xaMwtlX*_NrMY}&?7Fc?`WyIP^bVov{HIsQSr z;db8l8MHqi1U_lwg6yT-0o!9RI6>p%=2)!Tk)W;y*gB&orpnrxxf)pniXS(!YHR8i z=d8V-CdAfObKtm#@PJ{I(}56Y(?yjY_*C6a3mpopNnNAK&w%|gsIL+AA3=H_WB(YW z*A{@`b7|O7{T@zl>J^AtZQa>gK@xFHYK8}>0|sBh>jki_jJ?~2N79J|l2zCCK{`~7 zjo?tbM@Kt;8|d?s7H!wc+GMCrv#SyUb_bPc2m&Rd4D(fK=2d#)9K6~kgP-{k1Hr$*z+3W{aqH!B2=-$oX3|xBs3Q#)TV!fe__m>rte+s>0f*&nu7F^I z)XGTY_t+95$gR$M`&qFKvmr%LVziwna_lAz<_qeDnqj`SHVfh?9dCXzVBh6$?oUEBP0!)zI>eQH) zOJ}~*O^Der^{y_^z(fU=6L%%1A$tpi!Wq3?jm^~M0x^K8MSonnr4lRjisDn%4c!H_ zJp#^cBf#+PvJ;;k#`2M}%xEK%P^B&?!B)!s44-Z!*_^JRM#*_6P5g$-bym|)Qj9q9 z_&8xJ%bHb~2_kWbP~3`uHfEU3_~Q(dHr7Z4`uC}4U*SIopN={(y!`KrNDv&AeUk1i zJ;}Y}j)262HdZaxm|}4R)z~Chx7cou&sI8;hk`jBf*yR?xLMvb? zIwPi;2&}nGdb%Y(Q^s9f!2RHM`=}Rn`@&xy>}6rx;uOT%=R1HNii>_r{mg~)|87e~ z54AQi^?|SKgMD65=3qmKw#+szG&OnOi8mHj2z$H$AsY(Rolq?zNt}#=8H_^f)yZf@ zGv?)74^~^VJkF#kx;bU?Vb)(RUlIN1NamG3Fnlicl}_K3EZY#xtXy~ur$~B4f>420 z%#v7+0L(FATdlIjEf=aova2kNC}}C};o@K_xH9nbGT5aOq3w?&W3vyCdLB=x{Hrx9{kOF9c(O$stIZ!kpI44Km9ranNqJwtt*qmYB~~qB`SVC-VFAMe$cqxdI?nPQqKs{S5wkK32*`Y#MAhzpKts!v%8Ot z`$Vd!N0iPx`e(EI^=f#b`#qlYN{u56PeObh)`ysOtd{q4!;q;pO79M9T&(PRgAg+r z&v0h96`eB0^KHn_Bu;^M8G%FbIvzFkY^LFp4HiR_G1b?Tarp=%jv~wG+)V#+XCK@< zFnWbhyruZDw;X*!e!lDSo_1%>cctNl-uF-&rlqzOy4=N6CmFGl-0Z4U&6O5K(TR{+ zuE!uYheQ?x(%}M!H&V;{+o<6d`}umeS+Do7wV}`uYa#Z~PU_K7p_smA*~3`A#%6wm z<=c4BAA)%$ezyECrQwy}_h{m}bdW_&X6bPgp=5x8(q^DFPL_svx@XuXGwG!^!$oc3 zBZE`9%@E8T1&&NqLbx!>a3D-IcC;$y3XlfzlxA4j`kCM6P2}rG!u$MLxs_GcFfX*i zGloW-J$rJ_A4`7lUYdVK@s`qKto-oDe9BzpfrX`Sn!925ySm}E(eDLd(r~Ui;OShh zIgXi+~`pVuG=1(>%6573~w&FMZg|I$^5WZQ{7{f zU1^`jwbf*mi&Lm1cp-U$%|WvWur05JMzv{G_ZP#H)lv4(8M$?!`S&j}=U?ByTs!ef4FcYm82%(nwW?V;~ z3kL*0!H>Aw-_Zw#w^zdp-S4rPEx9>kR|txct=bMMfG3?}Y0m|mlMc(Vuul#KHruni zT}zgMS=*r)QDl{nkaNInN>XZ4RYykQ*b5leV3VK)&iYx8z3V_9_Ri2Ov*3r_^7);= z(fe>i_>A`Xe_zLgHAc4-7qCVNr{HoO?(#SVLjP63C%4uk4Q(m6xBj@ z?H*cQD^W$A6=REDRXYgai{ojrz;Hr4H1@Ke2zsBU26-?<;g#+g1uwMvMkJ`{o>4Jn zL6F#}mOA>(xov z()vowrRCBYl)XT>4hkR20{H|%Pt>C@oGAmt?%(iA>U$u@n`93|fIl-&MFm9N#V)XRudA7?h`y?hZ~&#T=38S_m+`^})Hki6C}`yL$SK z7y0?;W}y~%r}J3XWq2HZ5yuEWp^wYQ$1QbGeN@pUZ0aFHvm;@!#A!g098AJ;8Yb`( zo3eQvm)q${A1&PV`ZSp$M~U6|ct$z-35>U~pR(HxT0$Gd0`ADKe8_K zo<1v|GhC^|gxjUeXslB;NYqN{Fhos7wsve* zr4mMt%qEV6=hZk0aYd^K+`)|}<7Fh+{lIxM0r9s5+WYymdZ3LR1Qx*~#3Q7CkR& zt0&~$y4|qQGRG>0x$9km>#>I-gYcUjm|t+kFs!8bJSYgc35e>=j0?>(4=$x)N9TL! zMU^gGS%X7ZSvF-QO^}H=24?MGJIDnZTG6FUhJLsyt9roGV@b32)AfL#8wx{Y0w3V1 zp*0G!Ev>NDYJWfsq{XUdyxx5%*q`td^n~1PpN%XhF1+U$KJW>@$pqJzC%?d_K9Lxj z5oez*q?1qN0|R_Vv13S_MZ=E9_v|1}Ofo;YQK~L8Up2Q!2AZ>welkI&b*8gD88ANT zV<&}6=hJv94a5N zlY)JbfU9}k(wJc#>xih9;W9xJG4pVBYKavrZgDK9bIZ~91?xrOgqiG}yNTV``|MuO zzwB)7l3WlkC9-GCb+>6~sB51F58)3@#^FgIs<*Ih8F_gLp()wJ6zK4%#-AbvsVz; zwymL+`oP#uw=lp~NgM3_ZApyhBY$*+Y{2u)lRhETHO?%zy4Oq^ORYvgqoQ`zX7MCg z_Z&HGEiZh}bLTgF@-crxM;$dfqA z<17cPB-X9WI{9AIPcVk|dH(k4C=cJ^^aJ^LrhAo>>(#KM_r1968gSWQu-itxwt9pAc%!9 zZrgL^;nG_^4Z8kDP5$g<&bphezYuu6@$1*`I4Qh1>IApQO6#TSfAwH+lzW#nrJs&u zkNAvU$v)@I?k97p>l z>^SKoDjP3o8Orpdr%ZI%O_$7^S67Ww_$0sGGzWw|)Dwik`J&PHhxIs$BoA8o&48W6 zt|f~v&@0xp4vV!k?Ws!NCmg?Ifp{nAy&3SeF8o~MUDAW!!1w>Z>cD@4`Y<$TX0T=eJ>kn9_1KcB~C|GG+zM@@B%# z=Pm6(pbcW0#3&=(n5Huu5cf4SJ<^9k3IqCd`N=QM+dEG`%Db#eO zif%(je83F`e7Z4~__%43t!5uXmo=B(-22X_`m){g?-Ysbvfb}e=qnD0Sx)Q1BT2AH zJ=CH(o}}9is)3_crodCInybL7?5x_NNTq}7p*|>fBRI`2TkZGzq%EBl=<)}Hn&BgF zgpH7BTmB?fbT0*Yw=e877s1ch!fxnx@&7MZovWb78dz;-z%egss^L8VEG%xGZFYp2 zpO967(HmFg53p4yni;ton_!_%uUvr^2UFV2$3%f1@H)*WN<|HJxD!GXp9-gKPglXq zHaYMKLY{i5qDu3EE*0b1@H2;9Z~5Hm@<=lCkDEAy`(Z`jgys`&0xmrs#Vs$fPM#z~ zD^Ua_*`92{ytG+qA08#AQu25U7inV@Ym1hw(k{8oCIJ#P<_u!bW1zKcS<}lR0ic5cFB70A|+vah5qwn%05=+)r z0A)_W373cHP~YcEwAIorQ5?N_pf{VzK}hD{az_ou)*jV2w6+K7s42jrfw?T%B)fX8 zi8ULr(sbdfTTJ}gbAH{A^2HuP>;e7xLiKgWOSgj%>!U^KWumFUJR%EJQgmTHZU;Ix zST3DvgH~BSAuGMgbZ@;#a>8CtWdG<-vKBvjV76Tx$Dn`Gc}rZ?rzR!6Hi=OvwRU%t zh*wejKVC%b&UF8DF4s>aZ7YlOmmOU?&W%(;3+t*i+f zpO|P6^RCOp>7ZRBBi@Yil|)P1W@UJS4pmN-%yU+N%zVmwGtSXaqQ%9MbjWBUn5b78h$u~u zJI@BvTK8S@SdSMcyq%1yVv8=tHk!hd-^bcO{v)ZKxrKNkB`3ZE$6YxY+P0RDuY@HcV2Wt4aqbRJ7c_3KTBhbRf3p&>!=x;y_DbpDb)D|NS`cvtbv zsgI|b_yfU99YtVx`9JJvd@tzwn3x8cxzHAosMF#An#P4%rH5QcEF-{b4x~wz~lZDZRF+T7y?s*HXUZ9ShT2cys@0+bFQb4HM|k3zkp=;x!d}YNP+M? z=!ALSeKK;A;Gl@J+r>mKg%rRJq+#a%X;B{SI<*Da&uX?l66}VRlE_~~GA^|XR2+-Z zjEkA$m@-XQ3$Ufass&w8gx7%B*YR(9rWw}IY7#BFe(I-gn+J5~J@K>tyuWkt-Sp6* z-nbO!6UNErdtwe(Qx?FQMutNd~B0Gl8^sF@{Dv> z=zI7KBYWe7Z;IMG9Ol!5Zs;;=9FEhC!j2=VO@U;>_;NsD0NtD>P^68Ff+th~Co_)& zoRu_DiQLRMy(Qh)rYCAyrow;EZ2rcXO)o)xoiSgsD&38Bo@H4ChF&Y-A4uqBnR9sl zoI*R>44;P#Ll1d1KX2w$l0T^Iyca#R$7z#ny-95XjgQllROD!RMpg!;h?#HrgbWe_ z+kj4V3>S1Xk7Q-fuV+YQS3AD+4y<37)G}L|G~_Loc5cf`GsXFD^y*icp|9tC{~V=j z66kC4=L?zdKOZcnlguv600hKI}ZbF;iC#31Kc;G76{W(Lcb{ zddwNiT6eaP@688VDY074Z}!}3x7X~w_lfiOwR3lP{Q95&cAtFcRgT|<eHVr0d&^z_i!0n z5DaxM`fN7)m>=|oDlmL4_w{}f!hq4oo|}!Z-ArdxD>sTdl$V-?XM)F`!V}~fnYCLC zK#e9=3%g9+X&%Ee6&Z=a6en(7oc1=np3O>Yx0uOlo@PC*kLMF8o+0@lCx>GdLoYhZ zWq#RS_y_cH0?~iEBiqmlSIctmGjRvI!=!)CyDQa>ch~Z;qxC)Sl8lqrN@7GgP@EWt zQG6xAH6P!!{-NFJh*Oe=zfDYB_2ob_1QVI;XNx17OwcucT6mdvsx*&2O42+Ka(aO0 zybJf_-6a#)@7G7~6Xg?JbFC*P$+6}u;wxx95H7igGjpL+Pk{e$j2H=dqrPW5T+L{_CYY>M#H0+7> z+rzToo!j@p5!l3C(we?3`RE+4ANH&Zy4~L&MHv`@S9+iDnRqDaRY&p6=kxy|(J#rB zU~Hy1X$ZN(?Gs3?;wS*@lfM?)<4P(4Qg_9Py)Hlt1g1JnBJxs%K_-W}G#2xWl4=^G zuxvA?2W#%68dNkA2aBHJjn|WsYtJm6d)6CA)A@;Hc$SCX|M=+KlseOHs)?R1gZuN4 z{=Ny@4c(3nFIRo1ZuDe2rz?0VxpTmnuq`|j2T{VDkPXh1z;>K(1>lJKDorUVkGAg2 zWCjNZufwC2;%Tt00&Qt#%BXe@{rVzZf!#r#NkCD7xnM+B+@KJsQFj!FJ z%~D5CA{IycT49ir5{7cj8-hI>55}8GVlRO$Mxr+7Amm{_)~3O-Cx`Bjl>hT=JN!H@ zxOX4vbJqL=I_itF=6h%>Q)mYWUG5MKu6g}1XG`vo$cA&Am8&gKj#faa8wZ9G_WC3y zZ5tKHR!Ojt4O+HDmeW{`u@q$*!c-~2S}|fNUmvFdBX+5X3c8?4YNMYXmW=7#AsWFN3qx>vx$620#MYU{aC;k z)?_>~69~q~PEO@qlS)TNZ8tsR{kokmrv7Z)JfX-F`0M}o>*v|-d+u(zbIg5gl0K#v zp2=Qv%3LpoU_XrjNLhuNdEKu0ksZ6USM1JP_V-KZ?LypVQ{KlpawdGkif+jZ z>SyS=tcXmfVonw#ik6|(fZwJ?Ezn7hhCY0Vb&}$Cdv1Q5?;I-h0tPsuaUMnM)qXS{ zF(V%+Ds~1GTZ0OP?ZOjBuDI{N_Wc74W8eD>y|cVMFzM__cDS7joz(W2ZmI`lwrwLI zCLMdZ2%=z5I7E}8PAlMoRJt>9scEx3pN-(unQSG{5uHM=;`XqT3yRipbBwySL757s zWqxG$0jx3sR>z*QyXeDRIvFHl8J@Vtl4bq2)kl#@{>aJ+B#%(Pl90O7#Hk*l`T0W z&c2Rg{%SQ9eL^1SiTA6i9gXk5T-@xKc`0oXYf`KiVioZ!u`qnAfR12+38j!TCs91* zmOsJZLqMimn_(L#G8dfvfS3W*nCD%~tsC3#ssEl=Q=tcrp}`;9rt)rj z{#y6fcC2*!w7&32Jz|kwX?85_N<*-pEgG}p$;rFJWZVmgV^6sWa3mrK#fe3 zq5=kv#G0JB%oj0OqGMa-nT6O6P-)4P<8)TTbraEp?S^xZg46*0J8@1vbEQ7EsC_2b zeR*Q`UD$SrXpW1x*-pH85j!+JOR`xqE)+IgxQXZkSv)?OI%2af4gon3iMhSOQmAf4!;sYvC(5r`dkyKKZ#J{!H`?@3q)DPI?&O#gsS|>S;e`t+p}< ze&BA9*drKLw*j6#Dk9~Ebb++o{*fa1mJ%l2^;_ZpX_FiFcd9uP0gOu4jLA!sX}OvJ5lV&Svw~oBGwc z4&Wm(S|2n33_rSi3AX5=S0l{{kd2z@e1-dK-&(Lqf%A()OBVHN1i)2s!dsp?pw(tM z=TTsNSg=z)ja_;rIrY+v{Jc~VAEQk(!2*ZOl~^%)8m@09?tfrCBe5)NXnR@y`Dp}? zY+HOLddBlw?7LZU$JHUVayQ#}u-j@Ieo$@7shrM8iggZ&t4O?WGLEI=xdcp6A)Bx~ zQK00QwrXj; zj_S$S@d6E6H9b#GAlD=+Q`HXM9$Sc?Ax&Y$=?O^ooe4%>A;kn#520<1V`;=UyjHaj|Jl=(36^St0 z#^^!f2w=T5q_E^x6G69=Ic9srW;+W_Ad@HdAS(+X*Sv|ho?42`J9N01nzYb>{{$2I ztv>x2KJfY!Qr55wyz_l|(f_%(m`I#Ka9WA0+OYo|jlp<#f%f}h9a+iG9^$M@>J`I?HAKC`=O!V^gU9n3X(gOl_ z+(5D4QX-Qra0m)*(6dLY(Pl>m+pV$*m^jceXScE0=}OZ_fu2y!p~}+3>OkiMzF{KW zUdPtVB0<2VX(s1O z`Bludy~Cud=A(%AlAwaEzmwq7K=P)C|rr2F}xPLsJ}>s&O$y*?x$tN=^yO#~$Q8@aDx!5Jyr^4jz6a#Rakex9~SKXl6BX)xKq%t|6 zf>qAy3@3vbYqcTZ=j?%7#O8J;NaF**NRiwandR$MnmOjS2^IpEct>q{P>%E>+hwyH zz!xnkaAkX>zB98fzw#Q!(iuXZc|;y_&wbRuD>`?#`?~M8$;nua_i?b@8GMP&3x%7j z=6-Rcvt!OsV^HIxv^=OPTJ8X)1VgXI)Oc6v3W8#DtyC(5-bTr$bUDsQWn(6&@Zcvx z*30n7zdjTYI?t*flChVw0AI?(3$gE!OBrJi?iar448#%A91n*XP%ouYhQw&SYcOIU zE7FnWLUv`s?HIsEtvU_FdJ*NpBrkWRL?RDWo!RC|=7rkte|&UE zsg>X5BzqS`W#whz1+P=yyJ+aEYvcKZX|T%@`OKl0U-mA*`<6ppjQ7ipr(=HKxMM|D zrd_rIUY>lu^T>guA9_>14pOvE${D>`$*`I{|&Z z=$rcqp`vJM+q)Cl@X%-rzy?7@R5YUIlT!>vp1MsNylK;I)W&qQZrfcV$mU^cd1J#R zN23yhumY_U>JU1Lt+)|29VI{M+C44dJn*7oSb4cu#M#idK22zXJc!~u`W>9_?hcWD zxQ6RNUZ%^1(pqIbQ|GjK+XM+rj~g*dziNwYzdh_UPaIFRicBZ- zWznLjJ{hD6#EPgqs0Yn{(|_gs4+wsO;cG5Us0%)RJ`B2Vj>oh5us)Mj>Y>c<7m^*Y z=faTcm(qP-8-*Fl0xq%D_+(Nf1hy@IVlyF2c~zm7v3F|FF%WKCn<`TafS@TGake!| zjgWYqSM{jBI_y8pJX<}V+2fBGkR8nqwyxA!-92naU&)Ph@1w#v!Aa==n!Yn#Djp7y z-Vp)8#oO$cTug$gCnYJ>k|{r7(7 z-dC^{+GhbX&_fx-&jina6`FI|<@h~X8oR=nh6uG<(GU>S0(cZnr>MtQF_cc_W|fI7 z5QEr?IN?rA*y9>n;L~-eFHt63z_dj8j=})T>0wveBikGYoFV=Mt)78bA7$PDxSKwt zLf=w(4ZeVQOJG%3gH#Woen z#ge5#mV*a7xGB`RxfH?!YHo0Q+TW)JprdgR!x3DAFHa_A zo(d~>saQQhtKCjWPCci4H@hbOVnD$+VE@gQ_w&}5>#mpH_H{jgZGWxPtJ9iLKu!hO z)QtALV9AAuW?;ZmCxWK6dc1d1OC$7&=fNPYX6z_qOkm!C94r_oT!J8ItTF!9(7~U` z=6TZF^nvWVqd3V&oUR`o!AbV$a`39FVX^6i_G8!xcjE<%({5N&mVi&s{2jOrqIe9YiL?|7Xfp9 z3VQ2n3a!G8&1b&9$wT#BTBnZTudpEZU)>$rUc|3{)GnZtxO*gvn|7#~<|Pxr`5W%) zKhGO=f8yt#&|Q+i&vpsi)?1ey+ug35`z?xZ&Vzk(_EYyn(H%m5meJV$kZtGJ%iMb5 z%ufqwJEZ!7Xn{z?|OeE$;T)_56ocS&<2KY?{tfmJ!Z5v zlCG(E-BL%Gc1IR4r<5@T)vIth8jrVtGZCUCPpdP`&1-=et(HfSnj6?$ib;z@nC-Ypwlt<2N!ah!Cg*M`)&WE{JGC`X2GmhtTNmU} z4lMLB=EkN&nqRL(c0aYSnqt`59^R+NF+a8m=so#oc!qv_gUnbcj$4!;CdK^HqJJk=jD?l9d>lQ^?0p zOZXdr?hU7pp?M?@=a%ppl$*=Gn**?NZ)_F22-X}E?Z#AE0(s@{Dr6>`uxM}HC4h)4 zU*&0wVDxms6$l1lbFG=;)@DVZGc(UTuP%?CR-4)g8YNR!>gf~z+`9d%M(kfR2ER0j zUUPZ=`4^ITKEKpYX#U%*`AcTa=TQD{XWQ6bWDd*E0!7e=g5s_;FAC^f>caJVe7~3o zHEpf|HQ2A=>PTvcOR`=vDbT4JIdQpJ|=|c}_$^ z_0gLXj80XOu&dTKUxbo|&f!hGma}Z{Rp#~(_GF8f4-GBoPX74)k86%Hq#uU0mYLRP zW;^)U`1(xsg5sq-1pAGwdbyc_b}}k9b4eZxv}ED#1jfi>TIx)^S?TD3r*XdFlsR9+ zj$qXDn5tV%4^G@kps^Fx(9{ZA@<$)w3!IZFO^tsN5z%uY;n{2RF>Kfavz?CO8M5>L zZo_+zxz1?;hijFC$ZX08rD-YXOmgKJyCydJi6-KczNJ`TKT1NvPaUqUov;nKdOvRt zi_lkM)sHmFgcD`2>_tBL#WWA$&#^d(7@8*}5jVt=Z?NKUcNHxGn zTN>{cSYAo1QuB1N*{>JODjW&AT#hr4v!SIY#>tGMc#k=H>S(Onng%m2u4mR7r+GzY z!LP?xM{B(JGou1~$aiod2@J1=Zqcnrf0B=d0@DlO5OeEvqsA>}ailR`$BtTSryZ}Z z)&#sBfqt#w)qI|nsy_=|x6Oi+9yo`(I42j%x4$XnaJ z`_kdnnd&@ePklH1dim`>xOWcYGw4Ixdd{PLHd%=u56)1ZoM4WT3`48XOs)7VO69R7 z)?317?%rJXU06MOo5g_f35#UrIC;S3m6q0)hJb|N7mH+a4Ap2$0D*^}yt-1VExZY` zal4MO$~P^MLJcz>B-|4N&kR(U4mQPbG+!IO^Sand#s|f7_4k) zdtWBW`gxw@H?+@8y1&yI`aKdSPg+JqMjU{sb9pU{w=19qg~NOU2FcQzWldZd^PQ3M zQ!@&Rl&SZM?M_E)3boi6L1}xP#9%h_J=ADf&n{FDcVVV~OacD%FTeidKYo#ye_bxn zr#{EQyv+yunR@@Zb$UnnitEdDr`~(msq2Mug5)E?NgzduR<)gB$0{nQLh|=Kxr9)& zSqGlKD8<CzLy<=f_pM8hNV?cABoNU}R3HHNT$Gc$u&?{X*f*ha@K57vfn)dQ_4 z$_$DR)=JxX7F5>O90fy)KGba8w4yFcd(@q0iYlE}4!DW21GXXdOP}2j#s(fwpe(f} zi>S^=Byh*WpKqV{B0KOL_f>V>E$QBF;=UW$LND@OPIiFLJ?)K4>Sfa&^1)2g%ZHkt z$3a@8ZObI840263=aP&FiHXm_QN7!6i-XOXZu`@$;}`w_VjD zzjUVCS1;9%1d;!wVlyfrv_!9{x4RY%276IaEn}d8M^MgDLYx#kjB1fhO}kr@0$l2Fz>%cEH$4N{ zF47xcqi3!s?R+l_&MTZ(Ugntr=w1Xo*F470p35mt{AnUM=s`|)iQvxv`kusN;+W0{ ztY$V53Vo%T&Q|%L6X)X@%_G^UE+o$obcG?_FAo)J7_R3bmm@gm*HJ zk-wJfpkBsCKRfWGIB`vRrzS!l?7gp+k3aYEx60su*&=d39e=il{M@1tm{&=?9<3*) z?0c}&381E8f*aw-Sm&6^4I*pYuOhlY0gV?6v{4G3)fU`#d*&fveX;0c;{kQJf@NKC zLBcjSsn(oMqfW8bT3$>IvH#3^@Kdz^0ZuFcbH&9=K25G!Jmj%>Ci;Z?_42mqPFNkN zA?6f7g7`?$?WQPvcIA7r05-hVp4BMu_Z5W4rP8MR1Y3C>La}nM*VyG}U zMGaaUMT_zmSk)wHCX0z``RRJO6WEI9tka2J%T^|uoO{{xO(+V>Aa#$?afB6T_LC&I ztK9tuw!14-O@6OD@l~eSqr&`(_7h`X-I?l!i|NRg4?&hN8WayX6XSxx%VxhtIl%&U zqiUl)u?FElPz2EN=woDUCBE|^2eUn7Yq@ILsDx%&8d8pDSaAaa*C($1A6XV3in{)f za5t|T*O~j_RlD-?Pq+*JT0Riq^p5tGyKnEzZ*;%sZhB!iD~s6GDYnT44!>+?=*(CQ z&`t#w+YkkJ1c}yc-SY@HsylgM^)Wc!ll3p4hNG z%J}C4$iS$$9CzeVT2_(KC@Rv`2YSr{oz4R)>r$AH?p1Zf%&uRFM!Li3f!F{9I8l-M z-%Xx3W|CxP;{wkX_BR%n`>R;yJ;naxSQ-NNP6Z%ihb+@atCeu z9ScJiRXRnq1g7>0txeCZUS*^GumAavTmOcC{D1%Pfr;bWyp7)tfntv z!;&+cKk+cZJBF~^IxR8o7B!vanv|91|J%g;Z){@zg&_TQ-hOsC_<0J-GtsLkJzY*s zH;DI8Lfwg*iXpj)Q~7h3b6=T7ar>E53X#3isXkLbA6O%wh~6;0U)~hY3Cm*) zbc|^%fKy^3`Z(;#PLTxT{4M`>)f#!oqZ%>R0r+C4hKjg?grX1>yO6exvn03Lwt{7>Hl;i>%~Z zoQVz)?a9_ISHYRpD4`wIlB`Qf00ieDJ}mhn-FtX@>O~zn&dm6X9f2NNo)bgfu1`jI zQbhro9#r&{ojXN*J_GHsLJzlgIpO32519@xq;)RZG{bB;M(s1NVDXcUl1`}~oO;+w z^{7$62p9a;7z3O>ql_MKr97At(eGm^tChx_OjBYqZZ%~6HvOU| z#$!>muL<8ldl^oRpoi#CoN?n@)cBf-fvLaFz4 zD9i|LN21*-6_y7aU{WK)hv>L0vlV7(D{Ay6u3xV^xIY^+UM*sOnu8t-oB5AfJl@t0 z{#gHfNb&hi_nGVW(Jggh0@KG4#N=fI=3~Aw_ROrcTo@Z&QaKnl&x+ic3zxyVq8Fh< z?$UZeGKAFdc)3m>D-Tg&Gtxy=_ZG^D>6WziMP#1Fuk()ICVqUT1mcfi@l5xQ#q;Q< z4C3Eo0j)`Jtjt*mB^D9K(wA|&g5{*%8#fFa~ z>O`n&PU(pOEIprhTUcI(1gHEzz}R|)DzDu6ef;Ux4?U7G_LlY&Uw+@1-^qT@o8vLM zB;9TkZ=e&`Z>%a`Z}-;BZsWF!H~L}NUhoZ)AJ*uFs4O)1?YQ2PXul;*$2RgD!+os+ zW(Y$Ma)3a{VhpirqUqsnc;|nFKVF+8xBlgGJ9pf9k%yn!7?6joM4vq4&ajU@xfM2; zz_@WpQ*_qOYO6`L2|4&%YpNa+N)%@9I_rO92d+=}jO&8=vvech?b4TIR0Jzg#pcgzLD z7NW)}APz`|0!j}VcrnN9STAR3yAFKGt}?4G@(XI9p3sBaY@b=)X6!O*Pc`L+;;4N2 zlLW$vljO@5Esqt>d!c#6U3!T?L+sKDwwxNFR_Jv8Gkyf#n@mAa~W{cHENj6#7N;}+E0d=zir39yOaA3S`5g_*N z;LdEK$<5I3W*d4`I6kmpvJtR}tG3yh;aw|!^~-5t(O0kkrq?#0xn_zE1 zVr1rEMVwe7>+v(|9WT_$`3wxwbnMo8n>fWJ2!7^~Sjc^9b{GwI0fhy|6ES&#snU8me_!sf#tvfOOCj-UFoj|Ufiw1l2xdt)WMupqcKNBSKK(5rxPJPBB1Nxr@8?0P%o{Z z9$iM)VFhE}#;^VX{cn-6!VIue=OOf`A^$po{4=Z{*-c;Q-j=|Z(bVWZITSl!sTJo| zx4NCYZpqZfflLFeMGlfDOTM&_%1YwS>3M-Qto_PooR5*CWERvkn z`6x*s%jt)4ON{K9#*>hM;^3PKe)se+J8)BT{!Lqqe?u_eJ>VIycekgC>S4bGL?T0s z$OzbT1|_>7rp*lJX!gl>81{IV&Fl|it=B0WkM`2ro2e9@GnTUuZ( zBvoq)1LCw_8}Xz5vl1DP8BU_!yn@i1Q%xpOb%v!20b$f?=9Pp^tz7ab=%V70eF(AI zwp8H8EZTBMY1)RTH`Iadp?o*n_m$FZv9#tdwF8}$jn-o=PuX>~qb6#2_mG*VLZ)_} z)s2}o^CnE)zdkCB{7Hf^^hbX1qphg#i5!39NuYq!(R|X^K32pZf%8fbnBV@JYBdMx9L>XOCJ<3(v?%3zCrjgJ>2|+%DUBLn zJGGl5BtQp>w8>aJRxZa^GA1=ZgzzLxLW||b%ZU&v$dugIPRUf@L_puBnq3u2=oc{o zx5Vu}vzdbrx&N;Of%)yfTS2=ixCz2yfJ0#$USJ(-BbKyy)}$n(qor-@VrZu_NMWIr znx~`465vP#^$OBz0dOpqEl3pMmi}c=NDCpz!Kfnlz%X%DC@ME;9d~|@$p6Fi_s2H3{yueYxx%;L}+?gy{WX8OW%GYf}>u zx1O3z*xJ9+(5~{oew*wj2-%y`njhi#Sj_q>x>q27kETYdH+aw!1v}Hbwm)!2AETqT zErx(CM;|VgBu+TN15@q7$d-%H1+0bc*>>8)DKdAPe838#WeSO6bY_X`#hywWv@S}%&X0a70P^=~gja$$ z2(rnEpGGat_&^H1g%uf4Y_)PY$Q*rGxxwM$?<_13j|@jhwOTFBXdAZ%<5b&}Ruxq> zf=#a(@Da663+`~HdP@!Wfi~NJ^V+Y9*nITv*kkYhO!W%D^YyLj)dUo{9CJ8uL8fxl zj#`w#%g)nUfivU_vd-Ad< zm4LD8aH2vom`M^o6(4yp$9syV@z#p@p^ov^t~nL>SA>E2>(Ts9@O$(XJJ`FaE1mM<-ZX z-x;EG5Bq&{zw{@zpw`?H2z8colM+s-fE3asM9F2P)TjKv2xIrnSrqd z(a#Dq&pcL|NoSF$Nq2t=7kFL<+Zk2sOS0mY98QiJL`a$tVPUddDU8L#nL?2f44=15 z_eRw!T(|nXQTWGhjQ{b5$?rd##)D5|0T#dD2Pfez1mJ#gs|qq<=5f(lp_NtFD*ozV zT$Zqjb|X)4J9(dLn1<}uTDDLFr_Qkk?~IDM;66k;aD^RCa($^zmc-EHzFcntdOPrF z39FqgeQmRT@qs+cultbM`X7_Z9X(IM&kTb<*S&5OuRve_pIRLUsQE>gG)NRFu+awvZ^iuY+LXW7I zB;eP2SL!;Ud5a$SY=%E}+-{1M}Uzsp4gmA?72%xq`w{3b8@9YIhGAU7nl7@&NV-6piYsGDHKul!BGg%$5Ti z32pJk7D=@L?{|5t)b4pWu_Z$IOZ!kjUmM_mxBmMWlShjCJkh)%al5*O>P%S1LOWS) z-9vduvE@iN*%@?a&<-9{*6GGWZnnI-(AO(O>$X5A(xFS^rFTqv^{mb|D?%hJ(O_i) zY?Di_=HwPeY7PELVBS=by4#-rKAYv0;1#Ygb*I`aBbiijKwCpe&g$#43oT6Qv{iu_ zr0%J0ZVGsLAq9;SdV=w{IIOMoqPQIFNS$2>6OIu^X4l4nzZeo-9=q<0cNOw=OZBJM z{>x6nM^<_Woak1&!QgyWLKpglKGJgHiRd%Rjy1m%`X1?8R2Qv=JEx>;bnepkm+b}= z+c3}$A%!c$%92o7zih}gk*cRo@T*)B`jaFHyvQv{)}m$*rD%ze^N>oynTq(Q?k8c7 zKak4X68^dC5&DHZpbNgxeFpC~nBU2LkKcK7npt9sj*3FhP6b)5R3hU+)o00*sDM(V zK!>wVcZ+&9Qx381Yo-GF*lclxTXwOJq-Y%K?HU>{t-eFSU^HDLoS01TTa=#V=BH9S z8T{Wxia%Z#9$HDCsos!(y1q5@o3NU4c!43oFR)Q{|h9s@V zGolIh4ipcA)fZl>0S6Er>DAavgenh|ZD0+e3Ns!x%e5r1+ljbam1(fO~kaIi!7A$Tp}JBJ8g9oT&1qC^7%zEcaKC{hc9~ zUq<7Azt9I#z28UU+^BpHCN0j2<#D|f^nylC=QUZ0sNbwMX=AL4HM-jGvRUU0tC=`l z$fzP~5KN;%&BwYH5X9~`u7dOj#@SssbPoWhve~YH3&-(KX1-U1z4uR!Vmg0^2RC-LInUn9QS6CYTY zU;5EaT8V2W7B4d`+BfM6+Z!;RuNL&0rgk)WJ}=~jQM!y^kR7&clv!jUT?`xtlh;L1 zRQN$}(w)2qt(obl3e{OPBvR(~o4}g1`{IQkIOcTM7w&E^JmDZ?Ho!S^)*47Uuy z!C&oyWz`bpfcv@**=cN+>jO-1={{k*Jpk+}ff%4V2F&i#_L*pVLF`8Hu5QK4b_uPk z_-*sc2WIWd1pL=^?RjIy%k29He?&D@VOp8q(`SnZ)Q71KZtY2(#%*M@cJ~QF3tb%` zGlI-dy5Rv(f(qt&9BC}uqzl{hP3a4!eSwDk+2-?Dyi;ahcb?2Hrp7ysti!04c%&7T z+NoWIFsY66XISom01`uO53W2Q->$LI&on5EOW8ZdGeu~<5GTy-iPVupC>Uu4twl7` ztuc>w=A`x+e{392vU%M#u9p);$@TLlG@DON!r(9L0dM#Hb&dvCY@*g%qsyvBfrWO5{Zk2w0uy z7U%eZv|m{3|AJFg_PX%>#}bG=pillLdqwYMaO(*>L8m-Ndy%F*?Se+L0Ul@s<;M$J z(|EiYFYPA6#&El!X-g=U_{eY0hs$!HE*xutsKC&RL(&lJmS*?s_?Rpp&FSoeV@-@z z=mWFq{rR&G^)nnTPqrkood&>ap3x$`T>=$juER=|Ei$h2KAuhLs% zhFS^0OztBgP{tq8<1NNg2=C`MO4>Ev~`vanY$AzIpi;c~g?j@g9`B`>k zS_ie-_t&-ee?pW)eDPp%y{=y%aNOzLJ{OMwTqw+m(YqK>s9w43_&98RK;j}$Ag<(SBG30I2 zwL)Hk)|^vFiN1vsvU4wzW1wiAiS)qZ(pa=kX^|{g8nh>v_0|~<8|G_o+HZbb_xY#M z_qe|8!t$}*=@EVD6Yleg(}jMjU{kN+L|^^Ll0Rjye|oVns|(lu+mqW`!|YDH|BS;-y=EBZ1JLl5~CJiYL|BHOT$h(ZgPW`EJNtmW;xKf#`^3+(GOC+ z*;ea9mFnb}vfe5`>CS1aF*V`2W(^x$p_m7`kp5e(NqIK+!Yr(VPo3rPn+&_j5dWro z#rOAUexvt2wz-y!v5!!PRY1n@=yW*C^$sAZo5ctpFUP)!ZRWHrYErYw)A>*?`ctOq ztKD`#v#O@$B3IPI6Ah3_+HR^P8KARxV!(>)&b_d@8<8GvQZOZQ@u^th$D+M>WO2xB z_lCE9RY?|8mV@MAay~nQB~(31>)5s_eyd1=Xc~@s$U7X{nW0O7p>_o_n`nyuSxLqxZSbqZ)AE7C({Hj@h!B#>@T~8RM$uAR}YxL+1ri#I~n+(+zbdN_aVz z+PG`*<(jP8tSOIyE?E<`4aaqh`8{*@U*Majq|eRC61Q`+I%wS6u6DPgyeT*Ql&f%$ z!hfTOJQT(M>hnIYocWc*Pk#=7R5EJ9Jes7f7Ps8G&-RJML!I!SXae)+t6Rv=gek=v zW+O!8(J*4!6-5g=SRq(|>CBf_y^~l$xacLG6Ip0m?S}w(PpD>eT_;gi#L}hxRdSm6& z_0*KY9ZOnpL6B>lmS>=Qgz{3)wm|{XNyO~Vq`syIGrWN6;1c?Br$}PIS56wEOFG*V zM@I@b{$l19h9qoy_QW+ZXXZaqm!{NADCS9+ev!iQNWr=%nm5dDS2yS81jLk+U}k%y zXZizEpAWFDDJOAN^$T=y$&3gsQ=Nt^Dqq=)nXLkOf-_ox=Z@P&1wfwY%Jq+f6<%TerQRf<7@xd>an&ADjU%ITIhRWDm0PM)c0hdlJcF8Z(bL zaXtfJzq;^Di{z($GA^S5h^?SLR5C8}XI#8c+qKW3Ga61CT8BLzwuNRLK=$?&OSLu9 z8qUtB{K&i5sR45ypSZpKmg?&v`jH5MDN5K2I6s(C@I!HZf6gd)T09>BESD**%iLv| zT*$F^R;#tb?cn{OuOWEmvL}4M*}-zTOINYWt3-J@c6uuhN|YkBnigwn-_o8Puh^0@ zHAdZBENr5VR?M5HZl&-8*2VwzKR(Aut)je2XwMofkY_{ViEL;grK`6EmC9vAh&0ycS;{I@T8*LVIZ z93Oe$fc#AKS(ffW`N)*RF&Pf7aG@1|I}Zmm1xG^kjD8`LYYvkKe}pzg0`_H;1RIKB z)*{4YwW?7&u)vTYXCTjx5N|tVMo1h^!Xnd!-K_k{B%El7xn_qIErbkX@RpRa7-%mzDoC&=scm=3;JGkvUS4d|Usu&kQ> zI7_jHQ&wB=EG_9QT`%^`Vy6!{@RQTWWc0#%Zd!Gow4ds(k45pnC;p7%t6NiJ_*a_M zBPs{GgjHgTPBvv?m4aU6LZZ1WET&YHIyF3#4fjP>p_^nAc%0DgB0}~E^ek$dmFiX- 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 Date: Thu, 9 Mar 2023 13:34:44 +0100 Subject: [PATCH 2/5] Update contributing guide with new test framework --- CONTRIBUTING.md | 335 ++++++++++++++++++++++++++++++++---- tests/examples/test_plan.py | 3 +- 2 files changed, 300 insertions(+), 38 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d34ad2d9..f1e08ab2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -578,7 +578,7 @@ variable "prefix" { } ``` -### Interacting with checks, tests and tools +### Interacting with checks and tools Our modules are designed for composition and live in a monorepo together with several end-to-end blueprints, so it was inevitable that over time we found ways of ensuring that a change does not break consumers. @@ -642,7 +642,7 @@ Options: The test workflow runs test suites in parallel. Refer to the next section for more details on running and writing tests. -#### Using and writing tests +## Using and writing tests Our testing approach follows a simple philosophy: we mainly test to ensure code works, and that it does not break due to changes to dependencies (modules) or provider resources. @@ -650,11 +650,239 @@ This makes testing very simple, as a successful `terraform plan` run in a test c As our testing needs are very simple, we also wanted to reduce the friction required to write new tests as much as possible: our tests are written in Python and use `pytest` which is the standard for the language, leveraging our [`tftest`](https://pypi.org/project/tftest/) library, which wraps the Terraform executable and returns familiar data structures for most commands. -Writing `pytest` unit tests to check plan results is really easy, but since wrapping modules and examples in dedicated fixtures and hand-coding checks gets annoying after a while, we developed a thin layer that allows us to use `tfvars` files to run tests, and `yaml` results to check results. In some specific situations you might still want to interact directly with `tftest` via Python, if that's the case skip to the legacy approach below. +Writing `pytest` unit tests to check plan results is really easy, but since wrapping modules and examples in dedicated fixtures and hand-coding checks gets annoying after a while, we developed additional ways that allows to simplify the overall process. -##### Testing end-to-end examples via `tfvars` and `yaml` +In the following sections we describe the three testing approaches we currently have: -Our new approach to testing requires you to: +- [Example-based tests](#testing-via-readmemd-example-blocks): this is the perhaps the easiest and most common way to test either a module or a blueprint. You simply have to provide an example call to your module and a few metadata values in the module's README.md. +- [tfvars-based tests](#testing-via-tfvars-and-yaml): allows you to test a module or blueprint by providing variables and an expected plan result. +- Python-based (legacy) tests: in some situations you might still want to interact directly with `tftest` via Python, if that's the case, use this method to write custom Python logic to test you module in any way you see fit. + +### Testing via README.md example blocks. + +This is the preferred method to write tests for modules and blueprints. Example-based tests are triggered from [HCL Markdown fenced code blocks](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks#syntax-highlighting) in any file named README.md, hence there's no need to create any additional files or revert to Python to write a test. Most of our documentation examples are using this method. + +To enable an example for testing just use the special `tftest` comment as the last line in the example, listing the number of modules and resources expected. + +A [few preset variables](./tests/examples/variables.tf) are available for use, as shown in this example from the `dns` module documentation. + +```hcl +module "private-dns" { + source = "./modules/dns" + project_id = "myproject" + type = "private" + name = "test-example" + domain = "test.example." + client_networks = [var.vpc.self_link] + recordsets = { + "A localhost" = { ttl = 300, records = ["127.0.0.1"] } + } +} +# tftest modules=1 resources=2 +``` + +This is enough to tell our test suite to run this example and assert that the resulting plan has one module (`modules=1`) and two resources (`resources=2`) + +Note that all HCL code examples in READMEs are automatically tested. To prevent this behavior, include `tftest skip` somewhere in the code. + +#### Testing examples against an inventory YAML + +If you want to go further, you can provide define a `yaml` "inventory" with the plan and output results you want to test. + +Continuing with the example above, imagine you want ensure the plan also includes the creation of the A record specified in the `recordsets` variable. To do this we add the `inventory` parameter to the `tftest` directive, as shown below. + +```hcl +module "private-dns" { + source = "./modules/dns" + project_id = "myproject" + type = "private" + name = "test-example" + domain = "test.example." + client_networks = [var.vpc.self_link] + recordsets = { + "A localhost" = { ttl = 300, records = ["127.0.0.1"] } + } +} +# tftest modules=1 resources=2 inventory=recordsets.yaml +``` + +Next define the corresponding "inventory" `yaml` file which will be used to assert values from the plan. The inventory is loaded from `tests/[module path]/examples/[inventory_name]`. In our example we have to create `tests/modules/dns/examples/recordsets.yaml`. + +In the inventory file you have three sections available, and all of them are optional: + +- `values` is a map of resource indexes (the same ones used by Terraform state) and their attribute name and values; you can define just the attributes you are interested in and the other will be ignored +- `counts` is a map of resource types (eg `google_compute_engine`) and the number of times each type occurs in the plan; here too just define the ones the that need checking +- `outputs` is a map of outputs and their values; where a value is unknown at plan time use the special `__missing__` token + +Going back to our example, we create the inventory with values for the recordset and we also include the zone for good measure. + +```yaml +# file: tests/modules/dns/examples/recordsets.yaml +values: + module.private-dns.google_dns_managed_zone.non-public[0]: + dns_name: test.example. + forwarding_config: [] + name: test-example + peering_config: [] + project: myproject + reverse_lookup: false + service_directory_config: [] + visibility: private + module.private-dns.google_dns_record_set.cloud-static-records["A localhost"]: + managed_zone: test-example + name: localhost.test.example. + project: myproject + routing_policy: [] + rrdatas: + - 127.0.0.1 + ttl: 300 + type: A + +counts: + google_dns_managed_zone: 1 + google_dns_record_set: 1 +``` + +#### Using external files + +In some situations you module might require additional files to properly test your module. This is a common situation with modules that implement [factories](blueprints/factories/README.md) that drive the creation of resource from YAML files. If you're in this situation, you can still example-based tests as described below: + +- create your regular hcl code block example and add the `tftest` directive as described above. +- create a new code block with the contents of you additional file and use the `tftest-file` directive. You have to specify a label for the file and a relative path where the file will live. +- update your hcl code block to use the `files` parameters and pass a comma separated list of file ids that you want to make available to the module. + +Continuing with the DNS example, imagine you want to load the recordsets from a YAML file + +```hcl +module "private-dns" { + source = "./modules/dns" + project_id = "myproject" + type = "private" + name = "test-example" + domain = "test.example." + client_networks = [var.vpc.self_link] + recordsets = yamldecode(file("records/example.yaml")) +} +# tftest modules=1 resources=2 files=records +``` +```yaml +# tftest-file id=records path=records/example.yaml +A localhost: + ttl: 300 + records: ["127.0.0.1"] +A myhost: + ttl: 600 + records: ["10.10.0.1"] +``` + +Note that you use the `files` parameters together with `inventory` to allow more fine-grained assertions. Please review the [subnet factory](modules/net-vpc#subnet-factory) in the `net-vpc` module for example of this. + +#### Running tests for specific examples + +As mentioned before, we use pytest as our test runner, so you can use any of the standard test selection options available in pytest. + +Example-based test are named based on the section within the README.md that contains. You can use this name to select specific tests. + +Here we show a few commonly used selection commands: +- Run all examples: + - `pytest tests/examples/` +- Run all examples for modules: + - `pytest -k modules/ tests/examples` +- Run all examples for the `net-vpc` module: + - `pytest -k 'net and vpc' tests/examples` +- Run a specific example in module `net-vpc`: + - `pytest -k 'modules and dns and private'` + - `pytest -v 'tests/examples/test_plan.py::test_example[modules/dns:Private Zone]'` +- Run tests for all blueprints expect those under the gke directory: + - `pytest -k 'blueprints and not gke'` + +Tip: you can use `pytest --collect-only` to fine tune your selection query without actually running the tests. Once you find the expression matching your desired tests, remove the `collect-only` flag. + +#### Generating the inventory automatically + +Building an inventory file by hand is difficult. To simplify this task, the default test runner for examples prints the inventory for the full plan if it succeeds. Therefore, you can start without an inventory and then run a test to get the full plan and extract the pieces you want to build the inventory file. + +Suppose you want to generate the inventory for the last DNS example above (the one creating the recordsets from a YAML file). Assuming that example is under the "Private Zone" section in the README for the `dns`, you can run the following command to build the inventory: + +```bash +pytest -s 'tests/examples/test_plan.py::test_example[modules/dns:Private Zone]' +``` + +which will generate a output similar to this: + +``` +==================================== test session starts ==================================== +platform ... -- Python 3.11.2, pytest-7.2.1, pluggy-1.0.0 +rootdir: ... +plugins: xdist-3.1.0 +collected 1 item + +tests/examples/test_plan.py + +values: + module.private-dns.google_dns_managed_zone.non-public[0]: + description: Terraform managed. + dns_name: test.example. + dnssec_config: [] + force_destroy: false + forwarding_config: [] + labels: null + name: test-example + peering_config: [] + private_visibility_config: + - gke_clusters: [] + networks: + - network_url: projects/xxx/global/networks/aaa + project: myproject + reverse_lookup: false + service_directory_config: [] + timeouts: null + visibility: private + module.private-dns.google_dns_record_set.cloud-static-records["A localhost"]: + managed_zone: test-example + name: localhost.test.example. + project: myproject + routing_policy: [] + rrdatas: + - 127.0.0.1 + ttl: 300 + type: A + module.private-dns.google_dns_record_set.cloud-static-records["A myhost"]: + managed_zone: test-example + name: myhost.test.example. + project: myproject + routing_policy: [] + rrdatas: + - 10.10.0.1 + ttl: 600 + type: A + +counts: + google_dns_managed_zone: 1 + google_dns_record_set: 2 + modules: 1 + resources: 3 + +outputs: {} + +. + +===================================== 1 passed in 3.46s ===================================== +``` + +You can use that output to build the inventory file. + +Note that for complex modules, the output can be very large and includes a lot of details about the resources. Extract only those resources and fields that are relevant to your test. There is a fine balance between asserting the critical bits related to your test scenario and including too many details that end up making the test too specific. + +#### Building tests for blueprints + +Generally blueprints are used as top-level modules which means that usually their READMEs include sample values for their variables but there are no examples showing how to use them as modules. + +If you want to test a blueprint using an example, we suggest adding a "Test" section at the end of the README and include the example there. See any existing module for a [concrete example](blueprints/cloud-operations/asset-inventory-feed-remediation#test). + +### Testing via it `tfvars` and `yaml` (aka `tftest`-based tests) + +The second approach to testing requires you to: - create a folder in the right `tests` hierarchy where specific test files will be hosted - define `tfvars` files each with a specific variable configuration to test @@ -663,11 +891,10 @@ Our new approach to testing requires you to: Let's go through each step in succession, assuming you are testing the new `net-glb` module. -First create a new folder under `tests/modules` replacing any dash in the module name with underscores. You also need to create an empty `__init__.py` file in it, since the folder represents a package from the point of view of `pytest`. Note that if you were testing a blueprint the folder would go in `tests/blueprints`. +First create a new folder under `tests/modules` replacing any dash in the module name with underscores. Note that if you were testing a blueprint the folder would go in `tests/blueprints`. ```bash mkdir tests/modules/net_glb -touch tests/modules/net_glb/__init__.py ``` Then define a `tfvars` file with one of the module configurations you want to test. If you have a lot of variables which are shared across different tests, you can group all the common variables in a single `tfvars` file and associate it with each test's specific `tfvars` file (check the [organization module test](./tests/modules/organization/tftest.yaml) for an example). @@ -683,10 +910,10 @@ backend_buckets_config = { } ``` -Next define the corresponding inventory `yaml` file which will be used to assert values from the plan that uses the `tfvars` file above. In the inventory file you have three sections available: +Next define the corresponding "inventory" `yaml` file which will be used to assert values from the plan that uses the `tfvars` file above. In the inventory file you have three sections available: - `values` is a map of resource indexes (the same ones used by Terraform state) and their attribute name and values; you can define just the attributes you are interested in and the other will be ignored -- `counts` is a map of resource types (eg `google_compute_engine`) and the number of times each type occurs in the plan; here too just define the ones the need checking +- `counts` is a map of resource types (eg `google_compute_engine`) and the number of times each type occurs in the plan; here too just define the ones the that need checking - `outputs` is a map of outputs and their values; where a value is unknown at plan time use the special `__missing__` token ```yaml @@ -721,17 +948,74 @@ module: modules/net-glb # common_tfvars: # - defaults.tfvars tests: + # run a test named `test-plan`, load the specified tfvars files + # use the default inventory file of `test-plan.yaml` test-plan: - tfvars: + tfvars: # if ommited, we load test-plan.tfvars by default - test-plan.tfvars - test-plan-extra.tfvars + inventory: + - test-plan.yaml + + # You can ommit the tfvars and inventory sections and they will + # default to the name of the test. The following two examples are equivalent: + # + # test-plan2: + # tfvars: + # - test-plan2.tfvars + # inventory: + # - test-plan2.yaml + # test-plan2: ``` A good example of tests showing different ways of leveraging our framework is in the [`tests/modules/organization`](./tests/modules/organization) folder. -##### Writing tests in Python (legacy approach) +#### Generating the inventory for `tftest`-based tests -Where possible, we recommend using the testing framework described in the previous section. However, if you need it, you can still write tests using Python directly. +Just as you can generate an initial inventory for example-based tests, you can do the same for `tftest`-based tests. Currently the process relies on an additional tool (`tools/plan_summary.py`) abut but we have plans to unify both cases through in the future. + +As an example, if you want to generate the inventory for the `organization` module using the `common.tfvars` and `audit_config.tfvars` found in `tests/modules/organization/`, simply run `plan_summary.py` as follows: + +```bash +$ python tools/plan_summary.py modules/organization \ + tests/modules/organization/common.tfvars \ + tests/modules/organization/audit_config.tfvars + +values: + google_organization_iam_audit_config.config["allServices"]: + audit_log_config: + - exempted_members: + - user:me@example.org + log_type: DATA_WRITE + - exempted_members: [] + log_type: DATA_READ + org_id: '1234567890' + service: allServices + +counts: + google_organization_iam_audit_config: 1 + modules: 0 + resources: 1 + +outputs: + custom_role_id: {} + custom_roles: {} + firewall_policies: {} + firewall_policy_id: {} + network_tag_keys: {} + network_tag_values: {} + organization_id: organizations/1234567890 + sink_writer_identities: {} + tag_keys: {} + tag_values: {} + +``` + +You can now use this output to create the inventory file for your test. As mentioned before, please only use those values relevant to your test scenario. + +### Writing tests in Python (legacy approach) + +Where possible, we recommend using the testing methods described in the previous sections. However, if you need it, you can still write tests using Python directly. In general, you should try to use the `plan_summary` fixture, which runs a a terraform plan and returns a `PlanSummary` object. The most important arguments to `plan_summary` are: - the path of the Terraform module you want to test, relative to the root of the repository @@ -756,32 +1040,9 @@ def test_name(plan_summary, tfvars_to_yaml, tmp_path): For more examples on how to write python tests, check the tests for the [`organization`](./tests/modules/organization/test_plan_org_policies.py) module. -#### Testing documentation examples - -Most of our documentation examples are also tested via the `examples` test suite. To enable an example for testing just use the special `tftest` comment as the last line in the example, listing the number of modules and resources expected. - -A [few preset variables](./tests/examples/variables.tf) are available for use, as shown in this example from the `dns` module documentation. - -```hcl -module "private-dns" { - source = "./modules/dns" - project_id = "myproject" - type = "private" - name = "test-example" - domain = "test.example." - client_networks = [var.vpc.self_link] - recordsets = { - "A localhost" = { ttl = 300, records = ["127.0.0.1"] } - } -} -# tftest modules=1 resources=2 -``` - -Note that all HCL code examples in READMEs are automatically tested. To prevent this behavior, include `tftest skip` somewhere in the code. - #### Running tests from a temporary directory - Most of the time you can run tests using the `pytest` command as described in previous. However, the `plan_summary` fixture allows copying the root module and running the test from a temporary directory. +Most of the time you can run tests using the `pytest` command as described in previous. However, the `plan_summary` fixture allows copying the root module and running the test from a temporary directory. To enable this option, just define the environment variable `TFTEST_COPY` and any tests using the `plan_summary` fixture will automatically run from a temporary directory. @@ -796,7 +1057,7 @@ Running tests from temporary directories is useful if: ``` -#### Fabric tools +## Fabric tools The main tool you will interact with in development is `tfdoc`, used to generate file, output and variable tables in README documents. diff --git a/tests/examples/test_plan.py b/tests/examples/test_plan.py index b12d82fc..f5e2b9b9 100644 --- a/tests/examples/test_plan.py +++ b/tests/examples/test_plan.py @@ -14,6 +14,7 @@ import re import subprocess +import yaml from pathlib import Path BASE_PATH = Path(__file__).parent @@ -49,7 +50,7 @@ def test_example(plan_validator, tmp_path, example): summary = plan_validator(module_path=tmp_path, inventory_paths=inventory, tf_var_files=[]) - import yaml + print("\n") print(yaml.dump({"values": summary.values})) print(yaml.dump({"counts": summary.counts})) print(yaml.dump({"outputs": summary.outputs})) From 789405fceed8f9bad8c999c875b5868e2016bf92 Mon Sep 17 00:00:00 2001 From: Julio Castillo Date: Thu, 9 Mar 2023 13:44:25 +0100 Subject: [PATCH 3/5] Update TOC --- CONTRIBUTING.md | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f1e08ab2..40ca44da 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,17 +4,26 @@ Contributors are the engine that keeps Fabric alive so if you were or are planni ## Table of Contents -[I just found a bug / have a feature request!](#i-just-found-a-bug--have-a-feature-request) - -[Quick developer workflow](#quick-developer-workflow) - -[Developer's Handbook](#developers-handbook) - -- [The Zen of Fabric](#the-zen-of-fabric) -- [Design principles in action](#design-principles-in-action) -- [FAST stage design](#fast-stage-design) -- [Style guide reference](#style-guide-reference) -- [Checks, tests and tools](#interacting-with-checks-tests-and-tools) +* [I just found a bug / have a feature request](#i-just-found-a-bug---have-a-feature-request) +* [Quick developer workflow](#quick-developer-workflow) +* [Developer's handbook](#developer-s-handbook) + + [The Zen of Fabric](#the-zen-of-fabric) + + [Design principles in action](#design-principles-in-action) + + [FAST stage design](#fast-stage-design) + + [Style guide reference](#style-guide-reference) + + [Interacting with checks and tools](#interacting-with-checks-and-tools) +* [Using and writing tests](#using-and-writing-tests) + + [Testing via README.md example blocks.](#testing-via-readmemd-example-blocks) + - [Testing examples against an inventory YAML](#testing-examples-against-an-inventory-yaml) + - [Using external files](#using-external-files) + - [Running tests for specific examples](#running-tests-for-specific-examples) + - [Generating the inventory automatically](#generating-the-inventory-automatically) + - [Building tests for blueprints](#building-tests-for-blueprints) + + [Testing via it `tfvars` and `yaml` (aka `tftest`-based tests)](#testing-via-it--tfvars--and--yaml---aka--tftest--based-tests-) + - [Generating the inventory for `tftest`-based tests](#generating-the-inventory-for--tftest--based-tests) + + [Writing tests in Python (legacy approach)](#writing-tests-in-python--legacy-approach-) + + [Running tests from a temporary directory](#running-tests-from-a-temporary-directory) +* [Fabric tools](#fabric-tools) ## I just found a bug / have a feature request @@ -1040,7 +1049,7 @@ def test_name(plan_summary, tfvars_to_yaml, tmp_path): For more examples on how to write python tests, check the tests for the [`organization`](./tests/modules/organization/test_plan_org_policies.py) module. -#### Running tests from a temporary directory +### Running tests from a temporary directory Most of the time you can run tests using the `pytest` command as described in previous. However, the `plan_summary` fixture allows copying the root module and running the test from a temporary directory. From 0989f20755b978c4633f421f7e344cccf23a617d Mon Sep 17 00:00:00 2001 From: Julio Castillo Date: Thu, 9 Mar 2023 14:40:51 +0100 Subject: [PATCH 4/5] Fix typos/grammar --- CONTRIBUTING.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 40ca44da..399483d7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -19,7 +19,7 @@ Contributors are the engine that keeps Fabric alive so if you were or are planni - [Running tests for specific examples](#running-tests-for-specific-examples) - [Generating the inventory automatically](#generating-the-inventory-automatically) - [Building tests for blueprints](#building-tests-for-blueprints) - + [Testing via it `tfvars` and `yaml` (aka `tftest`-based tests)](#testing-via-it--tfvars--and--yaml---aka--tftest--based-tests-) + + [Testing via `tfvars` and `yaml` (aka `tftest`-based tests)](#testing-via--tfvars--and--yaml---aka--tftest--based-tests-) - [Generating the inventory for `tftest`-based tests](#generating-the-inventory-for--tftest--based-tests) + [Writing tests in Python (legacy approach)](#writing-tests-in-python--legacy-approach-) + [Running tests from a temporary directory](#running-tests-from-a-temporary-directory) @@ -659,13 +659,13 @@ This makes testing very simple, as a successful `terraform plan` run in a test c As our testing needs are very simple, we also wanted to reduce the friction required to write new tests as much as possible: our tests are written in Python and use `pytest` which is the standard for the language, leveraging our [`tftest`](https://pypi.org/project/tftest/) library, which wraps the Terraform executable and returns familiar data structures for most commands. -Writing `pytest` unit tests to check plan results is really easy, but since wrapping modules and examples in dedicated fixtures and hand-coding checks gets annoying after a while, we developed additional ways that allows to simplify the overall process. +Writing `pytest` unit tests to check plan results is really easy, but since wrapping modules and examples in dedicated fixtures and hand-coding checks gets annoying after a while, we developed additional ways that allow us to simplify the overall process. In the following sections we describe the three testing approaches we currently have: -- [Example-based tests](#testing-via-readmemd-example-blocks): this is the perhaps the easiest and most common way to test either a module or a blueprint. You simply have to provide an example call to your module and a few metadata values in the module's README.md. -- [tfvars-based tests](#testing-via-tfvars-and-yaml): allows you to test a module or blueprint by providing variables and an expected plan result. -- Python-based (legacy) tests: in some situations you might still want to interact directly with `tftest` via Python, if that's the case, use this method to write custom Python logic to test you module in any way you see fit. +- [Example-based tests](#testing-via-readmemd-example-blocks): this is perhaps the easiest and most common way to test either a module or a blueprint. You simply have to provide an example call to your module and a few metadata values in the module's README.md. +- [tfvars-based tests](#testing-via-tfvars-and-yaml): allows you to test a module or blueprint by providing variables via tfvar files and an expected plan result in form of an inventory. This type of test is useful, for example, for FAST stages that don't have any examples within their READMEs. +- [Python-based (legacy) tests](#writing-tests-in-python--legacy-approach-): in some situations you might still want to interact directly with `tftest` via Python, if that's the case, use this method to write custom Python logic to test your module in any way you see fit. ### Testing via README.md example blocks. @@ -696,9 +696,9 @@ Note that all HCL code examples in READMEs are automatically tested. To prevent #### Testing examples against an inventory YAML -If you want to go further, you can provide define a `yaml` "inventory" with the plan and output results you want to test. +If you want to go further, you can define a `yaml` "inventory" with the plan and output results you want to test. -Continuing with the example above, imagine you want ensure the plan also includes the creation of the A record specified in the `recordsets` variable. To do this we add the `inventory` parameter to the `tftest` directive, as shown below. +Continuing with the example above, imagine you want to ensure the plan also includes the creation of the A record specified in the `recordsets` variable. To do this we add the `inventory` parameter to the `tftest` directive, as shown below. ```hcl module "private-dns" { @@ -719,8 +719,8 @@ Next define the corresponding "inventory" `yaml` file which will be used to asse In the inventory file you have three sections available, and all of them are optional: -- `values` is a map of resource indexes (the same ones used by Terraform state) and their attribute name and values; you can define just the attributes you are interested in and the other will be ignored -- `counts` is a map of resource types (eg `google_compute_engine`) and the number of times each type occurs in the plan; here too just define the ones the that need checking +- `values` is a map of resource indexes (the same ones used by Terraform state) and their attribute name and values; you can define just the attributes you are interested in and the rest will be ignored +- `counts` is a map of resource types (eg `google_compute_engine`) and the number of times each type occurs in the plan; here too only define the ones that need checking - `outputs` is a map of outputs and their values; where a value is unknown at plan time use the special `__missing__` token Going back to our example, we create the inventory with values for the recordset and we also include the zone for good measure. @@ -754,10 +754,10 @@ counts: #### Using external files -In some situations you module might require additional files to properly test your module. This is a common situation with modules that implement [factories](blueprints/factories/README.md) that drive the creation of resource from YAML files. If you're in this situation, you can still example-based tests as described below: +In some situations your module might require additional files to properly test it. This is a common situation with modules that implement [factories](blueprints/factories/README.md) that drive the creation of resource from YAML files. If you're in this situation, you can still use example-based tests as described below: -- create your regular hcl code block example and add the `tftest` directive as described above. -- create a new code block with the contents of you additional file and use the `tftest-file` directive. You have to specify a label for the file and a relative path where the file will live. +- create your regular `hcl` code block example and add the `tftest` directive as described above. +- create a new code block with the contents of the additional file and use the `tftest-file` directive. You have to specify a label for the file and a relative path where the file will live. - update your hcl code block to use the `files` parameters and pass a comma separated list of file ids that you want to make available to the module. Continuing with the DNS example, imagine you want to load the recordsets from a YAML file @@ -788,9 +788,9 @@ Note that you use the `files` parameters together with `inventory` to allow more #### Running tests for specific examples -As mentioned before, we use pytest as our test runner, so you can use any of the standard test selection options available in pytest. +As mentioned before, we use `pytest` as our test runner, so you can use any of the standard [test selection options](https://docs.pytest.org/en/latest/how-to/usage.html) available in `pytest`. -Example-based test are named based on the section within the README.md that contains. You can use this name to select specific tests. +Example-based test are named based on the section within the README.md that contains them. You can use this name to select specific tests. Here we show a few commonly used selection commands: - Run all examples: @@ -802,7 +802,7 @@ Here we show a few commonly used selection commands: - Run a specific example in module `net-vpc`: - `pytest -k 'modules and dns and private'` - `pytest -v 'tests/examples/test_plan.py::test_example[modules/dns:Private Zone]'` -- Run tests for all blueprints expect those under the gke directory: +- Run tests for all blueprints except those under the gke directory: - `pytest -k 'blueprints and not gke'` Tip: you can use `pytest --collect-only` to fine tune your selection query without actually running the tests. Once you find the expression matching your desired tests, remove the `collect-only` flag. @@ -889,7 +889,7 @@ Generally blueprints are used as top-level modules which means that usually thei If you want to test a blueprint using an example, we suggest adding a "Test" section at the end of the README and include the example there. See any existing module for a [concrete example](blueprints/cloud-operations/asset-inventory-feed-remediation#test). -### Testing via it `tfvars` and `yaml` (aka `tftest`-based tests) +### Testing via `tfvars` and `yaml` (aka `tftest`-based tests) The second approach to testing requires you to: From 0e6f496b482a78ca7fcf5e3eae87128388ca371d Mon Sep 17 00:00:00 2001 From: Julio Castillo Date: Thu, 9 Mar 2023 14:55:41 +0100 Subject: [PATCH 5/5] More typos --- CONTRIBUTING.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 399483d7..2c57668c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -754,7 +754,7 @@ counts: #### Using external files -In some situations your module might require additional files to properly test it. This is a common situation with modules that implement [factories](blueprints/factories/README.md) that drive the creation of resource from YAML files. If you're in this situation, you can still use example-based tests as described below: +In some situations your module might require additional files to properly test it. This is a common situation with modules that implement [factories](blueprints/factories/README.md) that drive the creation of resources from YAML files. If you're in this situation, you can still use example-based tests as described below: - create your regular `hcl` code block example and add the `tftest` directive as described above. - create a new code block with the contents of the additional file and use the `tftest-file` directive. You have to specify a label for the file and a relative path where the file will live. @@ -784,7 +784,7 @@ A myhost: records: ["10.10.0.1"] ``` -Note that you use the `files` parameters together with `inventory` to allow more fine-grained assertions. Please review the [subnet factory](modules/net-vpc#subnet-factory) in the `net-vpc` module for example of this. +Note that you can use the `files` parameters together with `inventory` to allow more fine-grained assertions. Please review the [subnet factory](modules/net-vpc#subnet-factory) in the `net-vpc` module for an example of this. #### Running tests for specific examples @@ -887,7 +887,7 @@ Note that for complex modules, the output can be very large and includes a lot o Generally blueprints are used as top-level modules which means that usually their READMEs include sample values for their variables but there are no examples showing how to use them as modules. -If you want to test a blueprint using an example, we suggest adding a "Test" section at the end of the README and include the example there. See any existing module for a [concrete example](blueprints/cloud-operations/asset-inventory-feed-remediation#test). +If you want to test a blueprint using an example, we suggest adding a "Test" section at the end of the README and include the example there. See any existing blueprint for a [concrete example](blueprints/cloud-operations/asset-inventory-feed-remediation#test). ### Testing via `tfvars` and `yaml` (aka `tftest`-based tests) @@ -981,7 +981,7 @@ A good example of tests showing different ways of leveraging our framework is in #### Generating the inventory for `tftest`-based tests -Just as you can generate an initial inventory for example-based tests, you can do the same for `tftest`-based tests. Currently the process relies on an additional tool (`tools/plan_summary.py`) abut but we have plans to unify both cases through in the future. +Just as you can generate an initial inventory for example-based tests, you can do the same for `tftest`-based tests. Currently the process relies on an additional tool (`tools/plan_summary.py`) but but we have plans to unify both cases in the future. As an example, if you want to generate the inventory for the `organization` module using the `common.tfvars` and `audit_config.tfvars` found in `tests/modules/organization/`, simply run `plan_summary.py` as follows: