12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761(* generated by: awso-codegen generate-all --botocore-data vendor/botocore/botocore/data -o aws --runtime-dir lib/runtime/awso --cli-dir awso-cli *)openAwsoopen!Import[@@@warning"-32"]letservice=Service.resiliencehubletapiVersion="2020-04-30"letendpointPrefix="resiliencehub"letserviceFullName="AWS Resilience Hub"letsignatureVersion="v4"letprotocol="rest_json"letglobalEndpoint=endpointPrefix^".amazonaws.com"letsimple_to_jsonto_valuex=Botodata.Json.value_to_json_scalar(to_valuex)letcomposed_to_jsonto_valuex=Botodata.Json.value_to_json(to_valuex)letto_queryto_valuex=Client.Query.of_value(to_valuex)letstructure_to_value_auxst~f=letfilter=function|(k,Somev)->Some(k,v)|_->Noneinletpairkv=(k,v)inletdefer_value(k,dv)=pairkdvin((List.filter_mapst~f:filter)|>(List.map~f:defer_value))|>(funx->`Structure(fx))letstructure_to_value=structure_to_value_aux~f:Fn.idletstructure_to_wrapped_value~wrapper~response=structure_to_value_aux~f:(funx->[(wrapper,(`Structurex));(response,(`Structure[]))])moduleString1024=structtypenonrect=stringletcontext_="String1024"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:1024)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"String1024"jletto_json=simple_to_jsonto_valueendmoduleComplianceStatus=structtypenonrect=|PolicyBreached|PolicyMet|NotApplicable|MissingPolicy|Non_static_idofstringletmakei=iletto_string=function|PolicyBreached->"PolicyBreached"|PolicyMet->"PolicyMet"|NotApplicable->"NotApplicable"|MissingPolicy->"MissingPolicy"|Non_static_ids->sletof_string=function|"PolicyBreached"->PolicyBreached|"PolicyMet"->PolicyMet|"NotApplicable"->NotApplicable|"MissingPolicy"->MissingPolicy|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration ComplianceStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ComplianceStatus"j)letto_json=simple_to_jsonto_valueendmoduleSeconds=structtypenonrect=intletmakei=letopenResultinok_or_failwith(check_int_mini~min:0);iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for Seconds"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleString500=structtypenonrect=stringletcontext_="String500"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:500)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"String500"jletto_json=simple_to_jsonto_valueendmoduleString255=structtypenonrect=stringletcontext_="String255"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:255)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"String255"jletto_json=simple_to_jsonto_valueendmoduleArn=structtypenonrect=stringletcontext_="Arn"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:([a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]):[0-9]{12}:[A-Za-z0-9/][A-Za-z0-9:_/+.-]{0,1023}$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"Arn"jletto_json=simple_to_jsonto_valueendmoduleEntityName=structtypenonrect=stringletcontext_="EntityName"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^[A-Za-z0-9][A-Za-z0-9_\\-]{1,59}$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"EntityName"jletto_json=simple_to_jsonto_valueendmoduleAwsRegion=structtypenonrect=stringletcontext_="AwsRegion"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^[a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"AwsRegion"jletto_json=simple_to_jsonto_valueendmoduleCustomerId=structtypenonrect=stringletcontext_="CustomerId"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^[0-9]{12}$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"CustomerId"jletto_json=simple_to_jsonto_valueendmodulePhysicalIdentifierType=structtypenonrect=|Arn|Native|Non_static_idofstringletmakei=iletto_string=function|Arn->"Arn"|Native->"Native"|Non_static_ids->sletof_string=function|"Arn"->Arn|"Native"->Native|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration PhysicalIdentifierType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"PhysicalIdentifierType"j)letto_json=simple_to_jsonto_valueendmoduleAdditionalInfoValueList=structtypenonrect=String1024.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:10)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:String1024.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:String1024.of_xml)letof_jsonj=list_of_json~kind:"AdditionalInfoValueList"~of_json:String1024.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleString128WithoutWhitespace=structtypenonrect=stringletcontext_="String128WithoutWhitespace"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^\\S{1,128}$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"String128WithoutWhitespace"jletto_json=simple_to_jsonto_valueendmoduleDisruptionCompliance=structtypenonrect={achievableRpoInSecs:Seconds.toption[@ocaml.doc"The Recovery Point Objective (RPO) that is achievable, in seconds."];achievableRtoInSecs:Seconds.toption[@ocaml.doc"The Recovery Time Objective (RTO) that is achievable, in seconds"];complianceStatus:ComplianceStatus.toption[@ocaml.doc"The current status of compliance for the resiliency policy."];currentRpoInSecs:Seconds.toption[@ocaml.doc"The current RPO, in seconds."];currentRtoInSecs:Seconds.toption[@ocaml.doc"The current RTO, in seconds."];message:String500.toption[@ocaml.doc"The disruption compliance message."];rpoDescription:String500.toption[@ocaml.doc"The RPO description."];rpoReferenceId:String500.toption[@ocaml.doc"Reference identifier of the RPO ."];rtoDescription:String500.toption[@ocaml.doc"The RTO description."];rtoReferenceId:String500.toption[@ocaml.doc"Reference identifier of the RTO."]}letmake?achievableRpoInSecs=fun?achievableRtoInSecs->fun?complianceStatus->fun?currentRpoInSecs->fun?currentRtoInSecs->fun?message->fun?rpoDescription->fun?rpoReferenceId->fun?rtoDescription->fun?rtoReferenceId->fun()->{achievableRpoInSecs;achievableRtoInSecs;complianceStatus;currentRpoInSecs;currentRtoInSecs;message;rpoDescription;rpoReferenceId;rtoDescription;rtoReferenceId}letto_valuex=structure_to_value[("achievableRpoInSecs",(Option.mapx.achievableRpoInSecs~f:Seconds.to_value));("achievableRtoInSecs",(Option.mapx.achievableRtoInSecs~f:Seconds.to_value));("complianceStatus",(Option.mapx.complianceStatus~f:ComplianceStatus.to_value));("currentRpoInSecs",(Option.mapx.currentRpoInSecs~f:Seconds.to_value));("currentRtoInSecs",(Option.mapx.currentRtoInSecs~f:Seconds.to_value));("message",(Option.mapx.message~f:String500.to_value));("rpoDescription",(Option.mapx.rpoDescription~f:String500.to_value));("rpoReferenceId",(Option.mapx.rpoReferenceId~f:String500.to_value));("rtoDescription",(Option.mapx.rtoDescription~f:String500.to_value));("rtoReferenceId",(Option.mapx.rtoReferenceId~f:String500.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letrtoReferenceId=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"rtoReferenceId")inletrtoDescription=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"rtoDescription")inletrpoReferenceId=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"rpoReferenceId")inletrpoDescription=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"rpoDescription")inletmessage=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"message")inletcurrentRtoInSecs=(Option.map~f:Seconds.of_xml)(Xml.childxml_arg0"currentRtoInSecs")inletcurrentRpoInSecs=(Option.map~f:Seconds.of_xml)(Xml.childxml_arg0"currentRpoInSecs")inletcomplianceStatus=(Option.map~f:ComplianceStatus.of_xml)(Xml.childxml_arg0"complianceStatus")inletachievableRtoInSecs=(Option.map~f:Seconds.of_xml)(Xml.childxml_arg0"achievableRtoInSecs")inletachievableRpoInSecs=(Option.map~f:Seconds.of_xml)(Xml.childxml_arg0"achievableRpoInSecs")inmake?rtoReferenceId?rtoDescription?rpoReferenceId?rpoDescription?message?currentRtoInSecs?currentRpoInSecs?complianceStatus?achievableRtoInSecs?achievableRpoInSecs()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letrtoReferenceId=field_mapjson__"rtoReferenceId"String500.of_jsoninletrtoDescription=field_mapjson__"rtoDescription"String500.of_jsoninletrpoReferenceId=field_mapjson__"rpoReferenceId"String500.of_jsoninletrpoDescription=field_mapjson__"rpoDescription"String500.of_jsoninletmessage=field_mapjson__"message"String500.of_jsoninletcurrentRtoInSecs=field_mapjson__"currentRtoInSecs"Seconds.of_jsoninletcurrentRpoInSecs=field_mapjson__"currentRpoInSecs"Seconds.of_jsoninletcomplianceStatus=field_mapjson__"complianceStatus"ComplianceStatus.of_jsoninletachievableRtoInSecs=field_mapjson__"achievableRtoInSecs"Seconds.of_jsoninletachievableRpoInSecs=field_mapjson__"achievableRpoInSecs"Seconds.of_jsoninmake?rtoReferenceId?rtoDescription?rpoReferenceId?rpoDescription?message?currentRtoInSecs?currentRpoInSecs?complianceStatus?achievableRtoInSecs?achievableRpoInSecs()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Defines the compliance against the resiliency policy for a disruption."]moduleDisruptionType=structtypenonrect=|Software|Hardware|AZ|Region|Non_static_idofstringletmakei=iletto_string=function|Software->"Software"|Hardware->"Hardware"|AZ->"AZ"|Region->"Region"|Non_static_ids->sletof_string=function|"Software"->Software|"Hardware"->Hardware|"AZ"->AZ|"Region"->Region|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration DisruptionType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"DisruptionType"j)letto_json=simple_to_jsonto_valueendmoduleCostFrequency=structtypenonrect=|Hourly|Daily|Monthly|Yearly|Non_static_idofstringletmakei=iletto_string=function|Hourly->"Hourly"|Daily->"Daily"|Monthly->"Monthly"|Yearly->"Yearly"|Non_static_ids->sletof_string=function|"Hourly"->Hourly|"Daily"->Daily|"Monthly"->Monthly|"Yearly"->Yearly|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration CostFrequency"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"CostFrequency"j)letto_json=simple_to_jsonto_valueendmoduleCurrencyCode=structtypenonrect=stringletcontext_="CurrencyCode"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:3)>>=(fun()->check_string_mini~min:0));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"CurrencyCode"jletto_json=simple_to_jsonto_valueendmoduleDouble=structtypenonrect=floatletmakei=iletof_string=Float.of_stringletto_valuex=`Doublexletto_queryv=to_queryto_valuevletto_headerx=Stdlib.Float.to_stringxletof_xmlxml_arg0=Float.of_string(string_of_xml~kind:"a double"xml_arg0)letof_jsonj=float_of_json~kind:"a double"jletto_json=simple_to_jsonto_valueendmoduleRecommendationDisruptionCompliance=structtypenonrect={expectedComplianceStatus:ComplianceStatus.toption[@ocaml.doc"The expected compliance status after applying the recommended configuration change."];expectedRpoDescription:String500.toption[@ocaml.doc"The expected Recovery Point Objective (RPO) description after applying the recommended configuration change."];expectedRpoInSecs:Seconds.toption[@ocaml.doc"The expected RPO after applying the recommended configuration change."];expectedRtoDescription:String500.toption[@ocaml.doc"The expected Recovery Time Objective (RTO) description after applying the recommended configuration change."];expectedRtoInSecs:Seconds.toption[@ocaml.doc"The expected RTO after applying the recommended configuration change."]}letmake?expectedComplianceStatus=fun?expectedRpoDescription->fun?expectedRpoInSecs->fun?expectedRtoDescription->fun?expectedRtoInSecs->fun()->{expectedComplianceStatus;expectedRpoDescription;expectedRpoInSecs;expectedRtoDescription;expectedRtoInSecs}letto_valuex=structure_to_value[("expectedComplianceStatus",(Option.mapx.expectedComplianceStatus~f:ComplianceStatus.to_value));("expectedRpoDescription",(Option.mapx.expectedRpoDescription~f:String500.to_value));("expectedRpoInSecs",(Option.mapx.expectedRpoInSecs~f:Seconds.to_value));("expectedRtoDescription",(Option.mapx.expectedRtoDescription~f:String500.to_value));("expectedRtoInSecs",(Option.mapx.expectedRtoInSecs~f:Seconds.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letexpectedRtoInSecs=(Option.map~f:Seconds.of_xml)(Xml.childxml_arg0"expectedRtoInSecs")inletexpectedRtoDescription=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"expectedRtoDescription")inletexpectedRpoInSecs=(Option.map~f:Seconds.of_xml)(Xml.childxml_arg0"expectedRpoInSecs")inletexpectedRpoDescription=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"expectedRpoDescription")inletexpectedComplianceStatus=(Option.map~f:ComplianceStatus.of_xml)(Xml.childxml_arg0"expectedComplianceStatus")inmake?expectedRtoInSecs?expectedRtoDescription?expectedRpoInSecs?expectedRpoDescription?expectedComplianceStatus()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letexpectedRtoInSecs=field_mapjson__"expectedRtoInSecs"Seconds.of_jsoninletexpectedRtoDescription=field_mapjson__"expectedRtoDescription"String500.of_jsoninletexpectedRpoInSecs=field_mapjson__"expectedRpoInSecs"Seconds.of_jsoninletexpectedRpoDescription=field_mapjson__"expectedRpoDescription"String500.of_jsoninletexpectedComplianceStatus=field_mapjson__"expectedComplianceStatus"ComplianceStatus.of_jsoninmake?expectedRtoInSecs?expectedRtoDescription?expectedRpoInSecs?expectedRpoDescription?expectedComplianceStatus()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Defines a disruption compliance recommendation."]moduleEntityDescription=structtypenonrect=stringletcontext_="EntityDescription"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:500)>>=(fun()->check_string_mini~min:0));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"EntityDescription"jletto_json=simple_to_jsonto_valueendmoduleLong=structtypenonrect=Int64.tletmakei=iletof_string=Int64.of_stringletto_valuex=`Longxletto_queryv=to_queryto_valuevletto_headerx=Int64.to_stringxletof_xmlxml_arg0=Int64.of_string(string_of_xml~kind:"a long"xml_arg0)letof_jsonj=Int64.of_float(float_of_json~kind:"a long"j)letto_json=simple_to_jsonto_valueendmoduleAppComponentNameList=structtypenonrect=String255.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:String255.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:String255.of_xml)letof_jsonj=list_of_json~kind:"AppComponentNameList"~of_json:String255.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleErrorMessage=structtypenonrect=stringletcontext_="ErrorMessage"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:500)>>=(fun()->check_string_mini~min:0));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ErrorMessage"jletto_json=simple_to_jsonto_valueendmoduleAlarm=structtypenonrect={alarmArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Amazon CloudWatch alarm."];source:String255.toption[@ocaml.doc"Indicates the source of the Amazon CloudWatch alarm. That is, it indicates if the alarm was created using Resilience Hub recommendation (AwsResilienceHub), or if you had created the alarm in Amazon CloudWatch (Customer)."]}letmake?alarmArn=fun?source->fun()->{alarmArn;source}letto_valuex=structure_to_value[("alarmArn",(Option.mapx.alarmArn~f:Arn.to_value));("source",(Option.mapx.source~f:String255.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsource=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"source")inletalarmArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"alarmArn")inmake?source?alarmArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsource=field_mapjson__"source"String255.of_jsoninletalarmArn=field_mapjson__"alarmArn"Arn.of_jsoninmake?source?alarmArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Indicates the Amazon CloudWatch alarm detected while running an assessment."]moduleBooleanOptional=structtypenonrect=boolletmakei=iletof_string=Bool.of_stringletto_valuex=`Booleanxletto_queryv=to_queryto_valuevletto_headerx=Bool.to_stringxletof_xmlxml_arg0=Bool.of_string(string_of_xml~kind:"a boolean"xml_arg0)letof_json=bool_of_jsonletto_json=simple_to_jsonto_valueendmoduleExcludeRecommendationReason=structtypenonrect=|AlreadyImplemented|NotRelevant|ComplexityOfImplementation|Non_static_idofstringletmakei=iletto_string=function|AlreadyImplemented->"AlreadyImplemented"|NotRelevant->"NotRelevant"|ComplexityOfImplementation->"ComplexityOfImplementation"|Non_static_ids->sletof_string=function|"AlreadyImplemented"->AlreadyImplemented|"NotRelevant"->NotRelevant|"ComplexityOfImplementation"->ComplexityOfImplementation|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration ExcludeRecommendationReason"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ExcludeRecommendationReason"j)letto_json=simple_to_jsonto_valueendmoduleExperiment=structtypenonrect={experimentArn:String255.toption[@ocaml.doc"Amazon Resource Name (ARN) of the FIS experiment."];experimentTemplateId:String255.toption[@ocaml.doc"Identifier of the FIS experiment template."]}letmake?experimentArn=fun?experimentTemplateId->fun()->{experimentArn;experimentTemplateId}letto_valuex=structure_to_value[("experimentArn",(Option.mapx.experimentArn~f:String255.to_value));("experimentTemplateId",(Option.mapx.experimentTemplateId~f:String255.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letexperimentTemplateId=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"experimentTemplateId")inletexperimentArn=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"experimentArn")inmake?experimentTemplateId?experimentArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letexperimentTemplateId=field_mapjson__"experimentTemplateId"String255.of_jsoninletexperimentArn=field_mapjson__"experimentArn"String255.of_jsoninmake?experimentTemplateId?experimentArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Indicates the FIS experiment detected while running an assessment."]moduleLogicalResourceId=structtypenonrect={eksSourceName:String255.toption[@ocaml.doc"Name of the Amazon Elastic Kubernetes Service cluster and namespace this resource belongs to. This parameter accepts values in \"eks-cluster/namespace\" format."];identifier:String255.t[@ocaml.doc"Identifier of the resource."];logicalStackName:String255.toption[@ocaml.doc"The name of the CloudFormation stack this resource belongs to."];resourceGroupName:EntityName.toption[@ocaml.doc"The name of the resource group that this resource belongs to."];terraformSourceName:String255.toption[@ocaml.doc"The name of the Terraform S3 state file this resource belongs to."]}letcontext_="LogicalResourceId"letmake?eksSourceName=fun?logicalStackName->fun?resourceGroupName->fun?terraformSourceName->fun~identifier->fun()->{eksSourceName;logicalStackName;resourceGroupName;terraformSourceName;identifier}letto_valuex=structure_to_value[("eksSourceName",(Option.mapx.eksSourceName~f:String255.to_value));("identifier",(Some(String255.to_valuex.identifier)));("logicalStackName",(Option.mapx.logicalStackName~f:String255.to_value));("resourceGroupName",(Option.mapx.resourceGroupName~f:EntityName.to_value));("terraformSourceName",(Option.mapx.terraformSourceName~f:String255.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letterraformSourceName=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"terraformSourceName")inletresourceGroupName=(Option.map~f:EntityName.of_xml)(Xml.childxml_arg0"resourceGroupName")inletlogicalStackName=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"logicalStackName")inletidentifier=String255.of_xml(Xml.child_exn~context:context_xml_arg0"identifier")inleteksSourceName=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"eksSourceName")inmake?terraformSourceName?resourceGroupName?logicalStackName~identifier?eksSourceName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letterraformSourceName=field_mapjson__"terraformSourceName"String255.of_jsoninletresourceGroupName=field_mapjson__"resourceGroupName"EntityName.of_jsoninletlogicalStackName=field_mapjson__"logicalStackName"String255.of_jsoninletidentifier=field_map_exnjson__"identifier"String255.of_jsoninleteksSourceName=field_mapjson__"eksSourceName"String255.of_jsoninmake?terraformSourceName?resourceGroupName?logicalStackName~identifier?eksSourceName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Defines a logical resource identifier."]modulePhysicalResourceId=structtypenonrect={awsAccountId:CustomerId.toption[@ocaml.doc"The Amazon Web Services account that owns the physical resource."];awsRegion:AwsRegion.toption[@ocaml.doc"The Amazon Web Services Region that the physical resource is located in."];identifier:String255.t[@ocaml.doc"Identifier of the physical resource."];type_:PhysicalIdentifierType.t[@ocaml.doc"Specifies the type of physical resource identifier. Arn The resource identifier is an Amazon Resource Name (ARN) and it can identify the following list of resources: AWS::ECS::Service AWS::EFS::FileSystem AWS::ElasticLoadBalancingV2::LoadBalancer AWS::Lambda::Function AWS::SNS::Topic Native The resource identifier is an Resilience Hub-native identifier and it can identify the following list of resources: AWS::ApiGateway::RestApi AWS::ApiGatewayV2::Api AWS::AutoScaling::AutoScalingGroup AWS::DocDB::DBCluster AWS::DocDB::DBGlobalCluster AWS::DocDB::DBInstance AWS::DynamoDB::GlobalTable AWS::DynamoDB::Table AWS::EC2::EC2Fleet AWS::EC2::Instance AWS::EC2::NatGateway AWS::EC2::Volume AWS::ElasticLoadBalancing::LoadBalancer AWS::RDS::DBCluster AWS::RDS::DBInstance AWS::RDS::GlobalCluster AWS::Route53::RecordSet AWS::S3::Bucket AWS::SQS::Queue"]}letcontext_="PhysicalResourceId"letmake?awsAccountId=fun?awsRegion->fun~identifier->fun~type_->fun()->{awsAccountId;awsRegion;identifier;type_}letto_valuex=structure_to_value[("awsAccountId",(Option.mapx.awsAccountId~f:CustomerId.to_value));("awsRegion",(Option.mapx.awsRegion~f:AwsRegion.to_value));("identifier",(Some(String255.to_valuex.identifier)));("type",(Some(PhysicalIdentifierType.to_valuex.type_)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettype_=PhysicalIdentifierType.of_xml(Xml.child_exn~context:context_xml_arg0"type")inletidentifier=String255.of_xml(Xml.child_exn~context:context_xml_arg0"identifier")inletawsRegion=(Option.map~f:AwsRegion.of_xml)(Xml.childxml_arg0"awsRegion")inletawsAccountId=(Option.map~f:CustomerId.of_xml)(Xml.childxml_arg0"awsAccountId")inmake~type_~identifier?awsRegion?awsAccountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettype_=field_map_exnjson__"type"PhysicalIdentifierType.of_jsoninletidentifier=field_map_exnjson__"identifier"String255.of_jsoninletawsRegion=field_mapjson__"awsRegion"AwsRegion.of_jsoninletawsAccountId=field_mapjson__"awsAccountId"CustomerId.of_jsoninmake~type_~identifier?awsRegion?awsAccountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Defines a physical resource identifier."]moduleString255List=structtypenonrect=String255.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:String255.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:String255.of_xml)letof_jsonj=list_of_json~kind:"String255List"~of_json:String255.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAdditionalInfoMap=structtypenonrect=(String128WithoutWhitespace.t*AdditionalInfoValueList.t)listletmakei=iletof_headerxs=make(List.filter_mapxs~f:(fun(k,v)->(Base.String.chop_prefixk~prefix:"x-amz-meta-")|>(Option.map~f:(funchopped->let(_:string)=vinlet(_:string)=choppedinfailwith"no of_header for complex types String128WithoutWhitespace AdditionalInfoValueList"))))letto_valuexs=(xs|>(List.map~f:(fun(x,y)->(String128WithoutWhitespace.to_valuex)|>(funx->(AdditionalInfoValueList.to_valuey)|>(funy->(x,y))))))|>(funx->`Mapx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for Map_shape objects"()letof_xml_=failwith"of_xml_converter_of_shape: Map_shape case not implemented"letof_jsonj=object_of_json~key_of_string:String128WithoutWhitespace.of_string~of_json:AdditionalInfoValueList.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleEntityName255=structtypenonrect=stringletcontext_="EntityName255"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^[A-Za-z0-9][A-Za-z0-9_\\-]{0,254}$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"EntityName255"jletto_json=simple_to_jsonto_valueendmoduleAssessmentCompliance=structtypenonrect=(DisruptionType.t*DisruptionCompliance.t)listletmakei=iletof_headerxs=make(List.filter_mapxs~f:(fun(k,v)->(Base.String.chop_prefixk~prefix:"x-amz-meta-")|>(Option.map~f:(funchopped->let(_:string)=vinlet(_:string)=choppedinfailwith"no of_header for complex types DisruptionType DisruptionCompliance"))))letto_valuexs=(xs|>(List.map~f:(fun(x,y)->(DisruptionType.to_valuex)|>(funx->(DisruptionCompliance.to_valuey)|>(funy->(x,y))))))|>(funx->`Mapx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for Map_shape objects"()letof_xml_=failwith"of_xml_converter_of_shape: Map_shape case not implemented"letof_jsonj=object_of_json~key_of_string:DisruptionType.of_string~of_json:DisruptionCompliance.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleConfigRecommendationOptimizationType=structtypenonrect=|LeastCost|LeastChange|BestAZRecovery|LeastErrors|BestAttainable|BestRegionRecovery|Non_static_idofstringletmakei=iletto_string=function|LeastCost->"LeastCost"|LeastChange->"LeastChange"|BestAZRecovery->"BestAZRecovery"|LeastErrors->"LeastErrors"|BestAttainable->"BestAttainable"|BestRegionRecovery->"BestRegionRecovery"|Non_static_ids->sletof_string=function|"LeastCost"->LeastCost|"LeastChange"->LeastChange|"BestAZRecovery"->BestAZRecovery|"LeastErrors"->LeastErrors|"BestAttainable"->BestAttainable|"BestRegionRecovery"->BestRegionRecovery|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration ConfigRecommendationOptimizationType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ConfigRecommendationOptimizationType"j)letto_json=simple_to_jsonto_valueendmoduleCost=structtypenonrect={amount:Double.toption[@ocaml.doc"The cost amount."];currency:CurrencyCode.toption[@ocaml.doc"The cost currency, for example USD."];frequency:CostFrequency.toption[@ocaml.doc"The cost frequency."]}letmake?amount=fun?currency->fun?frequency->fun()->{amount;currency;frequency}letto_valuex=structure_to_value[("amount",(Option.mapx.amount~f:Double.to_value));("currency",(Option.mapx.currency~f:CurrencyCode.to_value));("frequency",(Option.mapx.frequency~f:CostFrequency.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfrequency=(Option.map~f:CostFrequency.of_xml)(Xml.childxml_arg0"frequency")inletcurrency=(Option.map~f:CurrencyCode.of_xml)(Xml.childxml_arg0"currency")inletamount=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"amount")inmake?frequency?currency?amount()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfrequency=field_mapjson__"frequency"CostFrequency.of_jsoninletcurrency=field_mapjson__"currency"CurrencyCode.of_jsoninletamount=field_mapjson__"amount"Double.of_jsoninmake?frequency?currency?amount()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Defines a cost object."]moduleEntityId=structtypenonrect=stringletcontext_="EntityId"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^\\S{1,255}$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"EntityId"jletto_json=simple_to_jsonto_valueendmoduleHaArchitecture=structtypenonrect=|MultiSite|WarmStandby|PilotLight|BackupAndRestore|NoRecoveryPlan|Non_static_idofstringletmakei=iletto_string=function|MultiSite->"MultiSite"|WarmStandby->"WarmStandby"|PilotLight->"PilotLight"|BackupAndRestore->"BackupAndRestore"|NoRecoveryPlan->"NoRecoveryPlan"|Non_static_ids->sletof_string=function|"MultiSite"->MultiSite|"WarmStandby"->WarmStandby|"PilotLight"->PilotLight|"BackupAndRestore"->BackupAndRestore|"NoRecoveryPlan"->NoRecoveryPlan|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration HaArchitecture"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"HaArchitecture"j)letto_json=simple_to_jsonto_valueendmoduleRecommendationCompliance=structtypenonrect=(DisruptionType.t*RecommendationDisruptionCompliance.t)listletmakei=iletof_headerxs=make(List.filter_mapxs~f:(fun(k,v)->(Base.String.chop_prefixk~prefix:"x-amz-meta-")|>(Option.map~f:(funchopped->let(_:string)=vinlet(_:string)=choppedinfailwith"no of_header for complex types DisruptionType RecommendationDisruptionCompliance"))))letto_valuexs=(xs|>(List.map~f:(fun(x,y)->(DisruptionType.to_valuex)|>(funx->(RecommendationDisruptionCompliance.to_valuey)|>(funy->(x,y))))))|>(funx->`Mapx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for Map_shape objects"()letof_xml_=failwith"of_xml_converter_of_shape: Map_shape case not implemented"letof_jsonj=object_of_json~key_of_string:DisruptionType.of_string~of_json:RecommendationDisruptionCompliance.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleSpecReferenceId=structtypenonrect=stringletcontext_="SpecReferenceId"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:500)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"SpecReferenceId"jletto_json=simple_to_jsonto_valueendmoduleSuggestedChangesList=structtypenonrect=EntityDescription.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:EntityDescription.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:EntityDescription.of_xml)letof_jsonj=list_of_json~kind:"SuggestedChangesList"~of_json:EntityDescription.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleResiliencyScoreType=structtypenonrect=|Compliance|Test|Alarm|Sop|Non_static_idofstringletmakei=iletto_string=function|Compliance->"Compliance"|Test->"Test"|Alarm->"Alarm"|Sop->"Sop"|Non_static_ids->sletof_string=function|"Compliance"->Compliance|"Test"->Test|"Alarm"->Alarm|"Sop"->Sop|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration ResiliencyScoreType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ResiliencyScoreType"j)letto_json=simple_to_jsonto_valueendmoduleScoringComponentResiliencyScore=structtypenonrect={excludedCount:Long.toption[@ocaml.doc"Number of recommendations that were excluded from the assessment. For example, if the excludedCount for Alarms coverage scoring component is 7, it indicates that 7 Amazon CloudWatch alarms are excluded from the assessment."];outstandingCount:Long.toption[@ocaml.doc"Number of recommendations that must be implemented to obtain the maximum possible score for the scoring component. For SOPs, alarms, and tests, these are the number of recommendations that must be implemented. For compliance, these are the number of Application Components that have breached the resiliency policy. For example, if the outstandingCount for Alarms coverage scoring component is 5, it indicates that 5 Amazon CloudWatch alarms need to be implemented to achieve the maximum possible score."];possibleScore:Double.toption[@ocaml.doc"Maximum possible score that can be obtained for the scoring component. For example, if the possibleScore is 20 points, it indicates the maximum possible score you can achieve for the scoring component when you run a new assessment after implementing all the Resilience Hub recommendations."];score:Double.toption[@ocaml.doc"Resiliency score points given for the scoring component. The score is always less than or equal to the possibleScore."]}letmake?excludedCount=fun?outstandingCount->fun?possibleScore->fun?score->fun()->{excludedCount;outstandingCount;possibleScore;score}letto_valuex=structure_to_value[("excludedCount",(Option.mapx.excludedCount~f:Long.to_value));("outstandingCount",(Option.mapx.outstandingCount~f:Long.to_value));("possibleScore",(Option.mapx.possibleScore~f:Double.to_value));("score",(Option.mapx.score~f:Double.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letscore=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"score")inletpossibleScore=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"possibleScore")inletoutstandingCount=(Option.map~f:Long.of_xml)(Xml.childxml_arg0"outstandingCount")inletexcludedCount=(Option.map~f:Long.of_xml)(Xml.childxml_arg0"excludedCount")inmake?score?possibleScore?outstandingCount?excludedCount()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letscore=field_mapjson__"score"Double.of_jsoninletpossibleScore=field_mapjson__"possibleScore"Double.of_jsoninletoutstandingCount=field_mapjson__"outstandingCount"Long.of_jsoninletexcludedCount=field_mapjson__"excludedCount"Long.of_jsoninmake?score?possibleScore?outstandingCount?excludedCount()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Resiliency score of each scoring component. For more information about scoring component, see Calculating resiliency score."]moduleEventType=structtypenonrect=|ScheduledAssessmentFailure|DriftDetected|Non_static_idofstringletmakei=iletto_string=function|ScheduledAssessmentFailure->"ScheduledAssessmentFailure"|DriftDetected->"DriftDetected"|Non_static_ids->sletof_string=function|"ScheduledAssessmentFailure"->ScheduledAssessmentFailure|"DriftDetected"->DriftDetected|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration EventType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"EventType"j)letto_json=simple_to_jsonto_valueendmoduleIamRoleArn=structtypenonrect=stringletcontext_="IamRoleArn"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):iam::[0-9]{12}:role/(([^/][!-~]+/){1,511})?[A-Za-z0-9_+=,.@-]{1,64}$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"IamRoleArn"jletto_json=simple_to_jsonto_valueendmoduleAssessmentRiskRecommendation=structtypenonrect={appComponents:AppComponentNameList.toption[@ocaml.doc"Indicates the Application Components (AppComponents) that were assessed as part of the assessment and are associated with the identified risk and recommendation. This property is available only in the US East (N. Virginia) Region."];recommendation:String255.toption[@ocaml.doc"Indicates the recommendation provided by the Resilience Hub to address the identified risks in the application. This property is available only in the US East (N. Virginia) Region."];risk:String255.toption[@ocaml.doc"Indicates the description of the potential risk identified in the application as part of the Resilience Hub assessment. This property is available only in the US East (N. Virginia) Region."]}letmake?appComponents=fun?recommendation->fun?risk->fun()->{appComponents;recommendation;risk}letto_valuex=structure_to_value[("appComponents",(Option.mapx.appComponents~f:AppComponentNameList.to_value));("recommendation",(Option.mapx.recommendation~f:String255.to_value));("risk",(Option.mapx.risk~f:String255.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letrisk=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"risk")inletrecommendation=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"recommendation")inletappComponents=(Option.map~f:AppComponentNameList.of_xml)(Xml.childxml_arg0"appComponents")inmake?risk?recommendation?appComponents()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letrisk=field_mapjson__"risk"String255.of_jsoninletrecommendation=field_mapjson__"recommendation"String255.of_jsoninletappComponents=field_mapjson__"appComponents"AppComponentNameList.of_jsoninmake?risk?recommendation?appComponents()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Indicates a specific risk identified in the Resilience Hub assessment and the corresponding recommendation provided to address that risk. The assessment summary generated by large language models (LLMs) on Amazon Bedrock are only suggestions. The current level of generative AI technology is not perfect and LLMs are not infallible. Bias and incorrect answers, although rare, should be expected. Review each recommendation in the assessment summary before you use the output from an LLM. This property is available only in the US East (N. Virginia) Region."]moduleFailurePolicy=structtypenonrect={rpoInSecs:Seconds.t[@ocaml.doc"Recovery Point Objective (RPO) in seconds."];rtoInSecs:Seconds.t[@ocaml.doc"Recovery Time Objective (RTO) in seconds."]}letcontext_="FailurePolicy"letmake~rpoInSecs=fun~rtoInSecs->fun()->{rpoInSecs;rtoInSecs}letto_valuex=structure_to_value[("rpoInSecs",(Some(Seconds.to_valuex.rpoInSecs)));("rtoInSecs",(Some(Seconds.to_valuex.rtoInSecs)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letrtoInSecs=Seconds.of_xml(Xml.child_exn~context:context_xml_arg0"rtoInSecs")inletrpoInSecs=Seconds.of_xml(Xml.child_exn~context:context_xml_arg0"rpoInSecs")inmake~rtoInSecs~rpoInSecs()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letrtoInSecs=field_map_exnjson__"rtoInSecs"Seconds.of_jsoninletrpoInSecs=field_map_exnjson__"rpoInSecs"Seconds.of_jsoninmake~rtoInSecs~rpoInSecs()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Defines a failure policy."]moduleTagKey=structtypenonrect=stringletcontext_="TagKey"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:128)>>=(fun()->check_patterni~pattern:"^[^\\x00-\\x1f\\x22]+$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"TagKey"jletto_json=simple_to_jsonto_valueendmoduleTagValue=structtypenonrect=stringletcontext_="TagValue"letmakei=letopenResultinok_or_failwith((check_string_mini~min:0)>>=(fun()->(check_string_maxi~max:256)>>=(fun()->check_patterni~pattern:"^[^\\x00-\\x1f\\x22]*$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"TagValue"jletto_json=simple_to_jsonto_valueendmoduleResourceError=structtypenonrect={logicalResourceId:String255.toption[@ocaml.doc"Identifier of the logical resource."];physicalResourceId:String255.toption[@ocaml.doc"Identifier of the physical resource."];reason:ErrorMessage.toption[@ocaml.doc"This is the error message."]}letmake?logicalResourceId=fun?physicalResourceId->fun?reason->fun()->{logicalResourceId;physicalResourceId;reason}letto_valuex=structure_to_value[("logicalResourceId",(Option.mapx.logicalResourceId~f:String255.to_value));("physicalResourceId",(Option.mapx.physicalResourceId~f:String255.to_value));("reason",(Option.mapx.reason~f:ErrorMessage.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letreason=(Option.map~f:ErrorMessage.of_xml)(Xml.childxml_arg0"reason")inletphysicalResourceId=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"physicalResourceId")inletlogicalResourceId=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"logicalResourceId")inmake?reason?physicalResourceId?logicalResourceId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letreason=field_mapjson__"reason"ErrorMessage.of_jsoninletphysicalResourceId=field_mapjson__"physicalResourceId"String255.of_jsoninletlogicalResourceId=field_mapjson__"logicalResourceId"String255.of_jsoninmake?reason?physicalResourceId?logicalResourceId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Defines application resource errors."]moduleRecommendationItem=structtypenonrect={alreadyImplemented:BooleanOptional.toption[@ocaml.doc"Specifies if the recommendation has already been implemented."];discoveredAlarm:Alarm.toption[@ocaml.doc"Indicates the previously implemented Amazon CloudWatch alarm discovered by Resilience Hub."];excludeReason:ExcludeRecommendationReason.toption[@ocaml.doc"Indicates the reason for excluding an operational recommendation."];excluded:BooleanOptional.toption[@ocaml.doc"Indicates if an operational recommendation item is excluded."];latestDiscoveredExperiment:Experiment.toption[@ocaml.doc"Indicates the experiment created in FIS that was discovered by Resilience Hub, which matches the recommendation."];resourceId:String500.toption[@ocaml.doc"Identifier of the resource."];targetAccountId:CustomerId.toption[@ocaml.doc"Identifier of the target account."];targetRegion:AwsRegion.toption[@ocaml.doc"The target region."]}letmake?alreadyImplemented=fun?discoveredAlarm->fun?excludeReason->fun?excluded->fun?latestDiscoveredExperiment->fun?resourceId->fun?targetAccountId->fun?targetRegion->fun()->{alreadyImplemented;discoveredAlarm;excludeReason;excluded;latestDiscoveredExperiment;resourceId;targetAccountId;targetRegion}letto_valuex=structure_to_value[("alreadyImplemented",(Option.mapx.alreadyImplemented~f:BooleanOptional.to_value));("discoveredAlarm",(Option.mapx.discoveredAlarm~f:Alarm.to_value));("excludeReason",(Option.mapx.excludeReason~f:ExcludeRecommendationReason.to_value));("excluded",(Option.mapx.excluded~f:BooleanOptional.to_value));("latestDiscoveredExperiment",(Option.mapx.latestDiscoveredExperiment~f:Experiment.to_value));("resourceId",(Option.mapx.resourceId~f:String500.to_value));("targetAccountId",(Option.mapx.targetAccountId~f:CustomerId.to_value));("targetRegion",(Option.mapx.targetRegion~f:AwsRegion.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettargetRegion=(Option.map~f:AwsRegion.of_xml)(Xml.childxml_arg0"targetRegion")inlettargetAccountId=(Option.map~f:CustomerId.of_xml)(Xml.childxml_arg0"targetAccountId")inletresourceId=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"resourceId")inletlatestDiscoveredExperiment=(Option.map~f:Experiment.of_xml)(Xml.childxml_arg0"latestDiscoveredExperiment")inletexcluded=(Option.map~f:BooleanOptional.of_xml)(Xml.childxml_arg0"excluded")inletexcludeReason=(Option.map~f:ExcludeRecommendationReason.of_xml)(Xml.childxml_arg0"excludeReason")inletdiscoveredAlarm=(Option.map~f:Alarm.of_xml)(Xml.childxml_arg0"discoveredAlarm")inletalreadyImplemented=(Option.map~f:BooleanOptional.of_xml)(Xml.childxml_arg0"alreadyImplemented")inmake?targetRegion?targetAccountId?resourceId?latestDiscoveredExperiment?excluded?excludeReason?discoveredAlarm?alreadyImplemented()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettargetRegion=field_mapjson__"targetRegion"AwsRegion.of_jsoninlettargetAccountId=field_mapjson__"targetAccountId"CustomerId.of_jsoninletresourceId=field_mapjson__"resourceId"String500.of_jsoninletlatestDiscoveredExperiment=field_mapjson__"latestDiscoveredExperiment"Experiment.of_jsoninletexcluded=field_mapjson__"excluded"BooleanOptional.of_jsoninletexcludeReason=field_mapjson__"excludeReason"ExcludeRecommendationReason.of_jsoninletdiscoveredAlarm=field_mapjson__"discoveredAlarm"Alarm.of_jsoninletalreadyImplemented=field_mapjson__"alreadyImplemented"BooleanOptional.of_jsoninmake?targetRegion?targetAccountId?resourceId?latestDiscoveredExperiment?excluded?excludeReason?discoveredAlarm?alreadyImplemented()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Defines a recommendation."]moduleGroupingResource=structtypenonrect={logicalResourceId:LogicalResourceId.toption[@ocaml.doc"Indicates the logical identifier of the resource."];physicalResourceId:PhysicalResourceId.toption[@ocaml.doc"Indicates the physical identifier of the resource."];resourceName:String255.toption[@ocaml.doc"Indicates the resource name."];resourceType:String255.toption[@ocaml.doc"Indicates the resource type."];sourceAppComponentIds:String255List.toption[@ocaml.doc"Indicates the identifier of the source AppComponents in which the resources were previously grouped into."]}letmake?logicalResourceId=fun?physicalResourceId->fun?resourceName->fun?resourceType->fun?sourceAppComponentIds->fun()->{logicalResourceId;physicalResourceId;resourceName;resourceType;sourceAppComponentIds}letto_valuex=structure_to_value[("logicalResourceId",(Option.mapx.logicalResourceId~f:LogicalResourceId.to_value));("physicalResourceId",(Option.mapx.physicalResourceId~f:PhysicalResourceId.to_value));("resourceName",(Option.mapx.resourceName~f:String255.to_value));("resourceType",(Option.mapx.resourceType~f:String255.to_value));("sourceAppComponentIds",(Option.mapx.sourceAppComponentIds~f:String255List.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsourceAppComponentIds=(Option.map~f:String255List.of_xml)(Xml.childxml_arg0"sourceAppComponentIds")inletresourceType=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"resourceType")inletresourceName=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"resourceName")inletphysicalResourceId=(Option.map~f:PhysicalResourceId.of_xml)(Xml.childxml_arg0"physicalResourceId")inletlogicalResourceId=(Option.map~f:LogicalResourceId.of_xml)(Xml.childxml_arg0"logicalResourceId")inmake?sourceAppComponentIds?resourceType?resourceName?physicalResourceId?logicalResourceId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsourceAppComponentIds=field_mapjson__"sourceAppComponentIds"String255List.of_jsoninletresourceType=field_mapjson__"resourceType"String255.of_jsoninletresourceName=field_mapjson__"resourceName"String255.of_jsoninletphysicalResourceId=field_mapjson__"physicalResourceId"PhysicalResourceId.of_jsoninletlogicalResourceId=field_mapjson__"logicalResourceId"LogicalResourceId.of_jsoninmake?sourceAppComponentIds?resourceType?resourceName?physicalResourceId?logicalResourceId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Indicates the resource that will be grouped in the recommended Application Component (AppComponent)."]moduleUuid=structtypenonrect=stringletcontext_="Uuid"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"Uuid"jletto_json=simple_to_jsonto_valueendmoduleRenderRecommendationType=structtypenonrect=|Alarm|Sop|Test|Non_static_idofstringletmakei=iletto_string=function|Alarm->"Alarm"|Sop->"Sop"|Test->"Test"|Non_static_ids->sletof_string=function|"Alarm"->Alarm|"Sop"->Sop|"Test"->Test|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration RenderRecommendationType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"RenderRecommendationType"j)letto_json=simple_to_jsonto_valueendmoduleAppComponent=structtypenonrect={additionalInfo:AdditionalInfoMap.toption[@ocaml.doc"Additional configuration parameters for an Resilience Hub application. If you want to implement additionalInfo through the Resilience Hub console rather than using an API call, see Configure the application configuration parameters. Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account. Key: \"failover-regions\" Value: \"\\[\\{\"region\":\"<REGION>\", \"accounts\":\\[\\{\"id\":\"<ACCOUNT_ID>\"\\}\\]\\}\\]\""];id:EntityName255.toption[@ocaml.doc"Identifier of the Application Component."];name:EntityName255.toption[@ocaml.doc"Name of the Application Component."];type_:String255.toption[@ocaml.doc"The type of Application Component."]}letmake?additionalInfo=fun?id->fun?name->fun?type_->fun()->{additionalInfo;id;name;type_}letto_valuex=structure_to_value[("additionalInfo",(Option.mapx.additionalInfo~f:AdditionalInfoMap.to_value));("id",(Option.mapx.id~f:EntityName255.to_value));("name",(Option.mapx.name~f:EntityName255.to_value));("type",(Option.mapx.type_~f:String255.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettype_=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"type")inletname=(Option.map~f:EntityName255.of_xml)(Xml.childxml_arg0"name")inletid=(Option.map~f:EntityName255.of_xml)(Xml.childxml_arg0"id")inletadditionalInfo=(Option.map~f:AdditionalInfoMap.of_xml)(Xml.childxml_arg0"additionalInfo")inmake?type_?name?id?additionalInfo()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettype_=field_mapjson__"type"String255.of_jsoninletname=field_mapjson__"name"EntityName255.of_jsoninletid=field_mapjson__"id"EntityName255.of_jsoninletadditionalInfo=field_mapjson__"additionalInfo"AdditionalInfoMap.of_jsoninmake?type_?name?id?additionalInfo()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Defines an Application Component."]moduleEksNamespace=structtypenonrect=stringletcontext_="EksNamespace"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:63)>>=(fun()->check_patterni~pattern:"^[a-z0-9]([-a-z0-9]*[a-z0-9])?$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"EksNamespace"jletto_json=simple_to_jsonto_valueendmoduleS3Url=structtypenonrect=stringletcontext_="S3Url"letmakei=letopenResultinok_or_failwith((check_string_mini~min:0)>>=(fun()->(check_string_maxi~max:2000)>>=(fun()->check_patterni~pattern:"^((https://([^/]+)\\.s3((-|\\.)[^/]+)?\\.amazonaws\\.com(.cn)?)|(s3://([^/]+)))/\\S{1,2000}$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"S3Url"jletto_json=simple_to_jsonto_valueendmoduleConfigRecommendation=structtypenonrect={appComponentName:EntityId.toption[@ocaml.doc"Name of the Application Component."];compliance:AssessmentCompliance.toption[@ocaml.doc"The current compliance against the resiliency policy before applying the configuration change."];cost:Cost.toption[@ocaml.doc"The cost for the application."];description:EntityDescription.toption[@ocaml.doc"The optional description for an app."];haArchitecture:HaArchitecture.toption[@ocaml.doc"The architecture type."];name:EntityName.toption[@ocaml.doc"The name of the recommendation configuration."];optimizationType:ConfigRecommendationOptimizationType.toption[@ocaml.doc"The type of optimization."];recommendationCompliance:RecommendationCompliance.toption[@ocaml.doc"The expected compliance against the resiliency policy after applying the configuration change."];referenceId:SpecReferenceId.toption[@ocaml.doc"Reference identifier for the recommendation configuration."];suggestedChanges:SuggestedChangesList.toption[@ocaml.doc"List of the suggested configuration changes."]}letmake?appComponentName=fun?compliance->fun?cost->fun?description->fun?haArchitecture->fun?name->fun?optimizationType->fun?recommendationCompliance->fun?referenceId->fun?suggestedChanges->fun()->{appComponentName;compliance;cost;description;haArchitecture;name;optimizationType;recommendationCompliance;referenceId;suggestedChanges}letto_valuex=structure_to_value[("appComponentName",(Option.mapx.appComponentName~f:EntityId.to_value));("compliance",(Option.mapx.compliance~f:AssessmentCompliance.to_value));("cost",(Option.mapx.cost~f:Cost.to_value));("description",(Option.mapx.description~f:EntityDescription.to_value));("haArchitecture",(Option.mapx.haArchitecture~f:HaArchitecture.to_value));("name",(Option.mapx.name~f:EntityName.to_value));("optimizationType",(Option.mapx.optimizationType~f:ConfigRecommendationOptimizationType.to_value));("recommendationCompliance",(Option.mapx.recommendationCompliance~f:RecommendationCompliance.to_value));("referenceId",(Option.mapx.referenceId~f:SpecReferenceId.to_value));("suggestedChanges",(Option.mapx.suggestedChanges~f:SuggestedChangesList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsuggestedChanges=(Option.map~f:SuggestedChangesList.of_xml)(Xml.childxml_arg0"suggestedChanges")inletreferenceId=(Option.map~f:SpecReferenceId.of_xml)(Xml.childxml_arg0"referenceId")inletrecommendationCompliance=(Option.map~f:RecommendationCompliance.of_xml)(Xml.childxml_arg0"recommendationCompliance")inletoptimizationType=(Option.map~f:ConfigRecommendationOptimizationType.of_xml)(Xml.childxml_arg0"optimizationType")inletname=(Option.map~f:EntityName.of_xml)(Xml.childxml_arg0"name")inlethaArchitecture=(Option.map~f:HaArchitecture.of_xml)(Xml.childxml_arg0"haArchitecture")inletdescription=(Option.map~f:EntityDescription.of_xml)(Xml.childxml_arg0"description")inletcost=(Option.map~f:Cost.of_xml)(Xml.childxml_arg0"cost")inletcompliance=(Option.map~f:AssessmentCompliance.of_xml)(Xml.childxml_arg0"compliance")inletappComponentName=(Option.map~f:EntityId.of_xml)(Xml.childxml_arg0"appComponentName")inmake?suggestedChanges?referenceId?recommendationCompliance?optimizationType?name?haArchitecture?description?cost?compliance?appComponentName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsuggestedChanges=field_mapjson__"suggestedChanges"SuggestedChangesList.of_jsoninletreferenceId=field_mapjson__"referenceId"SpecReferenceId.of_jsoninletrecommendationCompliance=field_mapjson__"recommendationCompliance"RecommendationCompliance.of_jsoninletoptimizationType=field_mapjson__"optimizationType"ConfigRecommendationOptimizationType.of_jsoninletname=field_mapjson__"name"EntityName.of_jsoninlethaArchitecture=field_mapjson__"haArchitecture"HaArchitecture.of_jsoninletdescription=field_mapjson__"description"EntityDescription.of_jsoninletcost=field_mapjson__"cost"Cost.of_jsoninletcompliance=field_mapjson__"compliance"AssessmentCompliance.of_jsoninletappComponentName=field_mapjson__"appComponentName"EntityId.of_jsoninmake?suggestedChanges?referenceId?recommendationCompliance?optimizationType?name?haArchitecture?description?cost?compliance?appComponentName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Defines a recommendation configuration."]moduleDisruptionResiliencyScore=structtypenonrect=(DisruptionType.t*Double.t)listletmakei=iletof_headerxs=make(List.filter_mapxs~f:(fun(k,v)->(Base.String.chop_prefixk~prefix:"x-amz-meta-")|>(Option.map~f:(funchopped->((DisruptionType.of_stringchopped),(Double.of_stringv))))))letto_valuexs=(xs|>(List.map~f:(fun(x,y)->(DisruptionType.to_valuex)|>(funx->(Double.to_valuey)|>(funy->(x,y))))))|>(funx->`Mapx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for Map_shape objects"()letof_xml_=failwith"of_xml_converter_of_shape: Map_shape case not implemented"letof_jsonj=object_of_json~key_of_string:DisruptionType.of_string~of_json:Double.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleScoringComponentResiliencyScores=structtypenonrect=(ResiliencyScoreType.t*ScoringComponentResiliencyScore.t)listletmakei=iletof_headerxs=make(List.filter_mapxs~f:(fun(k,v)->(Base.String.chop_prefixk~prefix:"x-amz-meta-")|>(Option.map~f:(funchopped->let(_:string)=vinlet(_:string)=choppedinfailwith"no of_header for complex types ResiliencyScoreType ScoringComponentResiliencyScore"))))letto_valuexs=(xs|>(List.map~f:(fun(x,y)->(ResiliencyScoreType.to_valuex)|>(funx->(ScoringComponentResiliencyScore.to_valuey)|>(funy->(x,y))))))|>(funx->`Mapx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for Map_shape objects"()letof_xml_=failwith"of_xml_converter_of_shape: Map_shape case not implemented"letof_jsonj=object_of_json~key_of_string:ResiliencyScoreType.of_string~of_json:ScoringComponentResiliencyScore.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleEventSubscription=structtypenonrect={eventType:EventType.t[@ocaml.doc"The type of event you would like to subscribe and get notification for. Currently, Resilience Hub supports notifications only for Drift detected (DriftDetected) and Scheduled assessment failure (ScheduledAssessmentFailure) events."];name:String255.t[@ocaml.doc"Unique name to identify an event subscription."];snsTopicArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Amazon Simple Notification Service topic. The format for this ARN is: arn:partition:sns:region:account:topic-name. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."]}letcontext_="EventSubscription"letmake?snsTopicArn=fun~eventType->fun~name->fun()->{snsTopicArn;eventType;name}letto_valuex=structure_to_value[("eventType",(Some(EventType.to_valuex.eventType)));("name",(Some(String255.to_valuex.name)));("snsTopicArn",(Option.mapx.snsTopicArn~f:Arn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsnsTopicArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"snsTopicArn")inletname=String255.of_xml(Xml.child_exn~context:context_xml_arg0"name")inleteventType=EventType.of_xml(Xml.child_exn~context:context_xml_arg0"eventType")inmake?snsTopicArn~name~eventType()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsnsTopicArn=field_mapjson__"snsTopicArn"Arn.of_jsoninletname=field_map_exnjson__"name"String255.of_jsoninleteventType=field_map_exnjson__"eventType"EventType.of_jsoninmake?snsTopicArn~name~eventType()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Indicates an event you would like to subscribe and get notification for. Currently, Resilience Hub supports notifications only for Drift detected and Scheduled assessment failure events."]moduleIamRoleArnList=structtypenonrect=IamRoleArn.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:10)>>=(fun()->check_list_mini~min:0));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:IamRoleArn.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:IamRoleArn.of_xml)letof_jsonj=list_of_json~kind:"IamRoleArnList"~of_json:IamRoleArn.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleIamRoleName=structtypenonrect=stringletcontext_="IamRoleName"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^([^/]([!-~]+/){1,511})?[A-Za-z0-9_+=,.@-]{1,64}$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"IamRoleName"jletto_json=simple_to_jsonto_valueendmodulePermissionModelType=structtypenonrect=|LegacyIAMUser|RoleBased|Non_static_idofstringletmakei=iletto_string=function|LegacyIAMUser->"LegacyIAMUser"|RoleBased->"RoleBased"|Non_static_ids->sletof_string=function|"LegacyIAMUser"->LegacyIAMUser|"RoleBased"->RoleBased|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration PermissionModelType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"PermissionModelType"j)letto_json=simple_to_jsonto_valueendmoduleAssessmentRiskRecommendationList=structtypenonrect=AssessmentRiskRecommendation.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:AssessmentRiskRecommendation.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:AssessmentRiskRecommendation.of_xml)letof_jsonj=list_of_json~kind:"AssessmentRiskRecommendationList"~of_json:AssessmentRiskRecommendation.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleDataLocationConstraint=structtypenonrect=|AnyLocation|SameContinent|SameCountry|Non_static_idofstringletmakei=iletto_string=function|AnyLocation->"AnyLocation"|SameContinent->"SameContinent"|SameCountry->"SameCountry"|Non_static_ids->sletof_string=function|"AnyLocation"->AnyLocation|"SameContinent"->SameContinent|"SameCountry"->SameCountry|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration DataLocationConstraint"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"DataLocationConstraint"j)letto_json=simple_to_jsonto_valueendmoduleDisruptionPolicy=structtypenonrect=(DisruptionType.t*FailurePolicy.t)listletmakei=iletof_headerxs=make(List.filter_mapxs~f:(fun(k,v)->(Base.String.chop_prefixk~prefix:"x-amz-meta-")|>(Option.map~f:(funchopped->let(_:string)=vinlet(_:string)=choppedinfailwith"no of_header for complex types DisruptionType FailurePolicy"))))letto_valuexs=(xs|>(List.map~f:(fun(x,y)->(DisruptionType.to_valuex)|>(funx->(FailurePolicy.to_valuey)|>(funy->(x,y))))))|>(funx->`Mapx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for Map_shape objects"()letof_xml_=failwith"of_xml_converter_of_shape: Map_shape case not implemented"letof_jsonj=object_of_json~key_of_string:DisruptionType.of_string~of_json:FailurePolicy.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleEstimatedCostTier=structtypenonrect=|L1|L2|L3|L4|Non_static_idofstringletmakei=iletto_string=function|L1->"L1"|L2->"L2"|L3->"L3"|L4->"L4"|Non_static_ids->sletof_string=function|"L1"->L1|"L2"->L2|"L3"->L3|"L4"->L4|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration EstimatedCostTier"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"EstimatedCostTier"j)letto_json=simple_to_jsonto_valueendmoduleResiliencyPolicyTier=structtypenonrect=|MissionCritical|Critical|Important|CoreServices|NonCritical|NotApplicable|Non_static_idofstringletmakei=iletto_string=function|MissionCritical->"MissionCritical"|Critical->"Critical"|Important->"Important"|CoreServices->"CoreServices"|NonCritical->"NonCritical"|NotApplicable->"NotApplicable"|Non_static_ids->sletof_string=function|"MissionCritical"->MissionCritical|"Critical"->Critical|"Important"->Important|"CoreServices"->CoreServices|"NonCritical"->NonCritical|"NotApplicable"->NotApplicable|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration ResiliencyPolicyTier"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ResiliencyPolicyTier"j)letto_json=simple_to_jsonto_valueendmoduleTagMap=structtypenonrect=(TagKey.t*TagValue.t)listletmakei=letopenResultinok_or_failwith((check_list_maxi~max:50)>>=(fun()->check_list_mini~min:1));iletof_headerxs=make(List.filter_mapxs~f:(fun(k,v)->(Base.String.chop_prefixk~prefix:"x-amz-meta-")|>(Option.map~f:(funchopped->((TagKey.of_stringchopped),(TagValue.of_stringv))))))letto_valuexs=(xs|>(List.map~f:(fun(x,y)->(TagKey.to_valuex)|>(funx->(TagValue.to_valuey)|>(funy->(x,y))))))|>(funx->`Mapx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for Map_shape objects"()letof_xml_=failwith"of_xml_converter_of_shape: Map_shape case not implemented"letof_jsonj=object_of_json~key_of_string:TagKey.of_string~of_json:TagValue.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleTimeStamp=structtypenonrect=stringletmakei=iletof_stringx=xletto_valuex=`Timestampxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=string_of_xml~kind:"a timestamp"letof_json=timestamp_of_jsonletto_json=simple_to_jsonto_valueendmoduleResourceErrorList=structtypenonrect=ResourceError.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ResourceError.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:ResourceError.of_xml)letof_jsonj=list_of_json~kind:"ResourceErrorList"~of_json:ResourceError.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleGroupingRecommendationRejectionReason=structtypenonrect=|DistinctBusinessPurpose|SeparateDataConcern|DistinctUserGroupHandling|Other|Non_static_idofstringletmakei=iletto_string=function|DistinctBusinessPurpose->"DistinctBusinessPurpose"|SeparateDataConcern->"SeparateDataConcern"|DistinctUserGroupHandling->"DistinctUserGroupHandling"|Other->"Other"|Non_static_ids->sletof_string=function|"DistinctBusinessPurpose"->DistinctBusinessPurpose|"SeparateDataConcern"->SeparateDataConcern|"DistinctUserGroupHandling"->DistinctUserGroupHandling|"Other"->Other|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration GroupingRecommendationRejectionReason"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"GroupingRecommendationRejectionReason"j)letto_json=simple_to_jsonto_valueendmoduleAlarmReferenceIdList=structtypenonrect=String500.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:200)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:String500.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:String500.of_xml)letof_jsonj=list_of_json~kind:"AlarmReferenceIdList"~of_json:String500.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleDocumentName=structtypenonrect=stringletcontext_="DocumentName"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:500)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"DocumentName"jletto_json=simple_to_jsonto_valueendmoduleRecommendationItemList=structtypenonrect=RecommendationItem.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:RecommendationItem.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:RecommendationItem.of_xml)letof_jsonj=list_of_json~kind:"RecommendationItemList"~of_json:RecommendationItem.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleRecommendationStatus=structtypenonrect=|Implemented|Inactive|NotImplemented|Excluded|Non_static_idofstringletmakei=iletto_string=function|Implemented->"Implemented"|Inactive->"Inactive"|NotImplemented->"NotImplemented"|Excluded->"Excluded"|Non_static_ids->sletof_string=function|"Implemented"->Implemented|"Inactive"->Inactive|"NotImplemented"->NotImplemented|"Excluded"->Excluded|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration RecommendationStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"RecommendationStatus"j)letto_json=simple_to_jsonto_valueendmoduleTestRisk=structtypenonrect=|Small|Medium|High|Non_static_idofstringletmakei=iletto_string=function|Small->"Small"|Medium->"Medium"|High->"High"|Non_static_ids->sletof_string=function|"Small"->Small|"Medium"->Medium|"High"->High|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration TestRisk"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"TestRisk"j)letto_json=simple_to_jsonto_valueendmoduleTestType=structtypenonrect=|Software|Hardware|AZ|Region|Non_static_idofstringletmakei=iletto_string=function|Software->"Software"|Hardware->"Hardware"|AZ->"AZ"|Region->"Region"|Non_static_ids->sletof_string=function|"Software"->Software|"Hardware"->Hardware|"AZ"->AZ|"Region"->Region|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration TestType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"TestType"j)letto_json=simple_to_jsonto_valueendmoduleSopServiceType=structtypenonrect=|SSM|Non_static_idofstringletmakei=iletto_string=function|SSM->"SSM"|Non_static_ids->sletof_string=function|"SSM"->SSM|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration SopServiceType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"SopServiceType"j)letto_json=simple_to_jsonto_valueendmoduleGroupingAppComponent=structtypenonrect={appComponentId:EntityName255.toption[@ocaml.doc"Indicates the identifier of an AppComponent."];appComponentName:EntityName255.toption[@ocaml.doc"Indicates the name of an AppComponent."];appComponentType:String255.toption[@ocaml.doc"Indicates the type of an AppComponent."]}letmake?appComponentId=fun?appComponentName->fun?appComponentType->fun()->{appComponentId;appComponentName;appComponentType}letto_valuex=structure_to_value[("appComponentId",(Option.mapx.appComponentId~f:EntityName255.to_value));("appComponentName",(Option.mapx.appComponentName~f:EntityName255.to_value));("appComponentType",(Option.mapx.appComponentType~f:String255.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letappComponentType=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"appComponentType")inletappComponentName=(Option.map~f:EntityName255.of_xml)(Xml.childxml_arg0"appComponentName")inletappComponentId=(Option.map~f:EntityName255.of_xml)(Xml.childxml_arg0"appComponentId")inmake?appComponentType?appComponentName?appComponentId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letappComponentType=field_mapjson__"appComponentType"String255.of_jsoninletappComponentName=field_mapjson__"appComponentName"EntityName255.of_jsoninletappComponentId=field_mapjson__"appComponentId"EntityName255.of_jsoninmake?appComponentType?appComponentName?appComponentId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a new recommended Application Component (AppComponent)."]moduleGroupingRecommendationConfidenceLevel=structtypenonrect=|High|Medium|Non_static_idofstringletmakei=iletto_string=function|High->"High"|Medium->"Medium"|Non_static_ids->sletof_string=function|"High"->High|"Medium"->Medium|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration GroupingRecommendationConfidenceLevel"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"GroupingRecommendationConfidenceLevel"j)letto_json=simple_to_jsonto_valueendmoduleGroupingRecommendationStatusType=structtypenonrect=|Accepted|Rejected|PendingDecision|Non_static_idofstringletmakei=iletto_string=function|Accepted->"Accepted"|Rejected->"Rejected"|PendingDecision->"PendingDecision"|Non_static_ids->sletof_string=function|"Accepted"->Accepted|"Rejected"->Rejected|"PendingDecision"->PendingDecision|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration GroupingRecommendationStatusType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"GroupingRecommendationStatusType"j)letto_json=simple_to_jsonto_valueendmoduleGroupingResourceList=structtypenonrect=GroupingResource.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:GroupingResource.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:GroupingResource.of_xml)letof_jsonj=list_of_json~kind:"GroupingResourceList"~of_json:GroupingResource.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleRecommendationIdList=structtypenonrect=Uuid.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:200)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Uuid.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:Uuid.of_xml)letof_jsonj=list_of_json~kind:"RecommendationIdList"~of_json:Uuid.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleRecommendationTemplateStatus=structtypenonrect=|Pending|InProgress|Failed|Success|Non_static_idofstringletmakei=iletto_string=function|Pending->"Pending"|InProgress->"InProgress"|Failed->"Failed"|Success->"Success"|Non_static_ids->sletof_string=function|"Pending"->Pending|"InProgress"->InProgress|"Failed"->Failed|"Success"->Success|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration RecommendationTemplateStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"RecommendationTemplateStatus"j)letto_json=simple_to_jsonto_valueendmoduleRenderRecommendationTypeList=structtypenonrect=RenderRecommendationType.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:4)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:RenderRecommendationType.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:RenderRecommendationType.of_xml)letof_jsonj=list_of_json~kind:"RenderRecommendationTypeList"~of_json:RenderRecommendationType.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleS3Location=structtypenonrect={bucket:String500.toption[@ocaml.doc"The name of the Amazon S3 bucket."];prefix:String500.toption[@ocaml.doc"The prefix for the Amazon S3 bucket."]}letmake?bucket=fun?prefix->fun()->{bucket;prefix}letto_valuex=structure_to_value[("bucket",(Option.mapx.bucket~f:String500.to_value));("prefix",(Option.mapx.prefix~f:String500.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letprefix=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"prefix")inletbucket=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"bucket")inmake?prefix?bucket()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letprefix=field_mapjson__"prefix"String500.of_jsoninletbucket=field_mapjson__"bucket"String500.of_jsoninmake?prefix?bucket()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The location of the Amazon S3 bucket."]moduleTemplateFormat=structtypenonrect=|CfnYaml|CfnJson|Non_static_idofstringletmakei=iletto_string=function|CfnYaml->"CfnYaml"|CfnJson->"CfnJson"|Non_static_ids->sletof_string=function|"CfnYaml"->CfnYaml|"CfnJson"->CfnJson|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration TemplateFormat"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"TemplateFormat"j)letto_json=simple_to_jsonto_valueendmoduleConditionOperatorType=structtypenonrect=|Equals|NotEquals|GreaterThen|GreaterOrEquals|LessThen|LessOrEquals|Non_static_idofstringletmakei=iletto_string=function|Equals->"Equals"|NotEquals->"NotEquals"|GreaterThen->"GreaterThen"|GreaterOrEquals->"GreaterOrEquals"|LessThen->"LessThen"|LessOrEquals->"LessOrEquals"|Non_static_ids->sletof_string=function|"Equals"->Equals|"NotEquals"->NotEquals|"GreaterThen"->GreaterThen|"GreaterOrEquals"->GreaterOrEquals|"LessThen"->LessThen|"LessOrEquals"->LessOrEquals|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration ConditionOperatorType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ConditionOperatorType"j)letto_json=simple_to_jsonto_valueendmoduleFieldAggregationType=structtypenonrect=|Min|Max|Sum|Avg|Count|Non_static_idofstringletmakei=iletto_string=function|Min->"Min"|Max->"Max"|Sum->"Sum"|Avg->"Avg"|Count->"Count"|Non_static_ids->sletof_string=function|"Min"->Min|"Max"->Max|"Sum"->Sum|"Avg"->Avg|"Count"->Count|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration FieldAggregationType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"FieldAggregationType"j)letto_json=simple_to_jsonto_valueendmoduleAppAssessmentScheduleType=structtypenonrect=|Disabled|Daily|Non_static_idofstringletmakei=iletto_string=function|Disabled->"Disabled"|Daily->"Daily"|Non_static_ids->sletof_string=function|"Disabled"->Disabled|"Daily"->Daily|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration AppAssessmentScheduleType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"AppAssessmentScheduleType"j)letto_json=simple_to_jsonto_valueendmoduleAppComplianceStatusType=structtypenonrect=|PolicyBreached|PolicyMet|NotAssessed|ChangesDetected|NotApplicable|MissingPolicy|Non_static_idofstringletmakei=iletto_string=function|PolicyBreached->"PolicyBreached"|PolicyMet->"PolicyMet"|NotAssessed->"NotAssessed"|ChangesDetected->"ChangesDetected"|NotApplicable->"NotApplicable"|MissingPolicy->"MissingPolicy"|Non_static_ids->sletof_string=function|"PolicyBreached"->PolicyBreached|"PolicyMet"->PolicyMet|"NotAssessed"->NotAssessed|"ChangesDetected"->ChangesDetected|"NotApplicable"->NotApplicable|"MissingPolicy"->MissingPolicy|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration AppComplianceStatusType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"AppComplianceStatusType"j)letto_json=simple_to_jsonto_valueendmoduleAppDriftStatusType=structtypenonrect=|NotChecked|NotDetected|Detected|Non_static_idofstringletmakei=iletto_string=function|NotChecked->"NotChecked"|NotDetected->"NotDetected"|Detected->"Detected"|Non_static_ids->sletof_string=function|"NotChecked"->NotChecked|"NotDetected"->NotDetected|"Detected"->Detected|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration AppDriftStatusType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"AppDriftStatusType"j)letto_json=simple_to_jsonto_valueendmoduleAppStatusType=structtypenonrect=|Active|Deleting|Non_static_idofstringletmakei=iletto_string=function|Active->"Active"|Deleting->"Deleting"|Non_static_ids->sletof_string=function|"Active"->Active|"Deleting"->Deleting|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration AppStatusType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"AppStatusType"j)letto_json=simple_to_jsonto_valueendmoduleIntegerOptional=structtypenonrect=intletmakei=iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for IntegerOptional"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleEntityVersion=structtypenonrect=stringletcontext_="EntityVersion"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^\\S{1,50}$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"EntityVersion"jletto_json=simple_to_jsonto_valueendmoduleLongOptional=structtypenonrect=Int64.tletmakei=iletof_string=Int64.of_stringletto_valuex=`Longxletto_queryv=to_queryto_valuevletto_headerx=Int64.to_stringxletof_xmlxml_arg0=Int64.of_string(string_of_xml~kind:"a long"xml_arg0)letof_jsonj=Int64.of_float(float_of_json~kind:"a long"j)letto_json=simple_to_jsonto_valueendmoduleAppComponentList=structtypenonrect=AppComponent.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:AppComponent.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:AppComponent.of_xml)letof_jsonj=list_of_json~kind:"AppComponentList"~of_json:AppComponent.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleResourceSourceType=structtypenonrect=|AppTemplate|Discovered|Non_static_idofstringletmakei=iletto_string=function|AppTemplate->"AppTemplate"|Discovered->"Discovered"|Non_static_ids->sletof_string=function|"AppTemplate"->AppTemplate|"Discovered"->Discovered|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration ResourceSourceType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ResourceSourceType"j)letto_json=simple_to_jsonto_valueendmoduleResourceMappingType=structtypenonrect=|CfnStack|Resource|AppRegistryApp|ResourceGroup|Terraform|EKS|Non_static_idofstringletmakei=iletto_string=function|CfnStack->"CfnStack"|Resource->"Resource"|AppRegistryApp->"AppRegistryApp"|ResourceGroup->"ResourceGroup"|Terraform->"Terraform"|EKS->"EKS"|Non_static_ids->sletof_string=function|"CfnStack"->CfnStack|"Resource"->Resource|"AppRegistryApp"->AppRegistryApp|"ResourceGroup"->ResourceGroup|"Terraform"->Terraform|"EKS"->EKS|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration ResourceMappingType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ResourceMappingType"j)letto_json=simple_to_jsonto_valueendmoduleEksSourceClusterNamespace=structtypenonrect={eksClusterArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Amazon Elastic Kubernetes Service cluster. The format for this ARN is: arn:aws:eks:region:account-id:cluster/cluster-name. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];namespace:EksNamespace.t[@ocaml.doc"Name of the namespace that is located on your Amazon Elastic Kubernetes Service cluster."]}letcontext_="EksSourceClusterNamespace"letmake~eksClusterArn=fun~namespace->fun()->{eksClusterArn;namespace}letto_valuex=structure_to_value[("eksClusterArn",(Some(Arn.to_valuex.eksClusterArn)));("namespace",(Some(EksNamespace.to_valuex.namespace)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnamespace=EksNamespace.of_xml(Xml.child_exn~context:context_xml_arg0"namespace")inleteksClusterArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"eksClusterArn")inmake~namespace~eksClusterArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnamespace=field_map_exnjson__"namespace"EksNamespace.of_jsoninleteksClusterArn=field_map_exnjson__"eksClusterArn"Arn.of_jsoninmake~namespace~eksClusterArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The input source of the namespace that is located on your Amazon Elastic Kubernetes Service cluster."]moduleInteger=structtypenonrect=intletmakei=iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for Integer"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleTerraformSource=structtypenonrect={s3StateFileUrl:S3Url.t[@ocaml.doc"The URL of the Terraform s3 state file you need to import."]}letcontext_="TerraformSource"letmake~s3StateFileUrl=fun()->{s3StateFileUrl}letto_valuex=structure_to_value[("s3StateFileUrl",(Some(S3Url.to_valuex.s3StateFileUrl)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lets3StateFileUrl=S3Url.of_xml(Xml.child_exn~context:context_xml_arg0"s3StateFileUrl")inmake~s3StateFileUrl()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lets3StateFileUrl=field_map_exnjson__"s3StateFileUrl"S3Url.of_jsoninmake~s3StateFileUrl()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The Terraform s3 state file you need to import."]moduleConfigRecommendationList=structtypenonrect=ConfigRecommendation.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ConfigRecommendation.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:ConfigRecommendation.of_xml)letof_jsonj=list_of_json~kind:"ConfigRecommendationList"~of_json:ConfigRecommendation.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleRecommendationComplianceStatus=structtypenonrect=|BreachedUnattainable|BreachedCanMeet|MetCanImprove|MissingPolicy|Non_static_idofstringletmakei=iletto_string=function|BreachedUnattainable->"BreachedUnattainable"|BreachedCanMeet->"BreachedCanMeet"|MetCanImprove->"MetCanImprove"|MissingPolicy->"MissingPolicy"|Non_static_ids->sletof_string=function|"BreachedUnattainable"->BreachedUnattainable|"BreachedCanMeet"->BreachedCanMeet|"MetCanImprove"->MetCanImprove|"MissingPolicy"->MissingPolicy|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration RecommendationComplianceStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"RecommendationComplianceStatus"j)letto_json=simple_to_jsonto_valueendmoduleResiliencyScore=structtypenonrect={componentScore:ScoringComponentResiliencyScores.toption[@ocaml.doc"The score generated by Resilience Hub for the scoring component after running an assessment. For example, if the score is 25 points, it indicates the overall score of your application generated by Resilience Hub after running an assessment."];disruptionScore:DisruptionResiliencyScore.toption[@ocaml.doc"The disruption score for a valid key."];score:Double.toption[@ocaml.doc"The outage score for a valid key."]}letmake?componentScore=fun?disruptionScore->fun?score->fun()->{componentScore;disruptionScore;score}letto_valuex=structure_to_value[("componentScore",(Option.mapx.componentScore~f:ScoringComponentResiliencyScores.to_value));("disruptionScore",(Option.mapx.disruptionScore~f:DisruptionResiliencyScore.to_value));("score",(Option.mapx.score~f:Double.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letscore=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"score")inletdisruptionScore=(Option.map~f:DisruptionResiliencyScore.of_xml)(Xml.childxml_arg0"disruptionScore")inletcomponentScore=(Option.map~f:ScoringComponentResiliencyScores.of_xml)(Xml.childxml_arg0"componentScore")inmake?score?disruptionScore?componentScore()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letscore=field_mapjson__"score"Double.of_jsoninletdisruptionScore=field_mapjson__"disruptionScore"DisruptionResiliencyScore.of_jsoninletcomponentScore=field_mapjson__"componentScore"ScoringComponentResiliencyScores.of_jsoninmake?score?disruptionScore?componentScore()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The overall resiliency score, returned as an object that includes the disruption score and outage score."]moduleAssessmentInvoker=structtypenonrect=|User|System|Non_static_idofstringletmakei=iletto_string=function|User->"User"|System->"System"|Non_static_ids->sletof_string=function|"User"->User|"System"->System|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration AssessmentInvoker"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"AssessmentInvoker"j)letto_json=simple_to_jsonto_valueendmoduleAssessmentStatus=structtypenonrect=|Pending|InProgress|Failed|Success|Non_static_idofstringletmakei=iletto_string=function|Pending->"Pending"|InProgress->"InProgress"|Failed->"Failed"|Success->"Success"|Non_static_ids->sletof_string=function|"Pending"->Pending|"InProgress"->InProgress|"Failed"->Failed|"Success"->Success|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration AssessmentStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"AssessmentStatus"j)letto_json=simple_to_jsonto_valueendmoduleDriftStatus=structtypenonrect=|NotChecked|NotDetected|Detected|Non_static_idofstringletmakei=iletto_string=function|NotChecked->"NotChecked"|NotDetected->"NotDetected"|Detected->"Detected"|Non_static_ids->sletof_string=function|"NotChecked"->NotChecked|"NotDetected"->NotDetected|"Detected"->Detected|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration DriftStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"DriftStatus"j)letto_json=simple_to_jsonto_valueendmoduleDifferenceType=structtypenonrect=|NotEqual|Added|Removed|Non_static_idofstringletmakei=iletto_string=function|NotEqual->"NotEqual"|Added->"Added"|Removed->"Removed"|Non_static_ids->sletof_string=function|"NotEqual"->NotEqual|"Added"->Added|"Removed"->Removed|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration DifferenceType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"DifferenceType"j)letto_json=simple_to_jsonto_valueendmoduleResourceIdentifier=structtypenonrect={logicalResourceId:LogicalResourceId.toption[@ocaml.doc"Logical identifier of the drifted resource."];resourceType:String255.toption[@ocaml.doc"Type of the drifted resource."]}letmake?logicalResourceId=fun?resourceType->fun()->{logicalResourceId;resourceType}letto_valuex=structure_to_value[("logicalResourceId",(Option.mapx.logicalResourceId~f:LogicalResourceId.to_value));("resourceType",(Option.mapx.resourceType~f:String255.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceType=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"resourceType")inletlogicalResourceId=(Option.map~f:LogicalResourceId.of_xml)(Xml.childxml_arg0"logicalResourceId")inmake?resourceType?logicalResourceId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceType=field_mapjson__"resourceType"String255.of_jsoninletlogicalResourceId=field_mapjson__"logicalResourceId"LogicalResourceId.of_jsoninmake?resourceType?logicalResourceId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Defines a resource identifier for the drifted resource."]moduleDriftType=structtypenonrect=|ApplicationCompliance|AppComponentResiliencyComplianceStatus|Non_static_idofstringletmakei=iletto_string=function|ApplicationCompliance->"ApplicationCompliance"|AppComponentResiliencyComplianceStatus->"AppComponentResiliencyComplianceStatus"|Non_static_ids->sletof_string=function|"ApplicationCompliance"->ApplicationCompliance|"AppComponentResiliencyComplianceStatus"->AppComponentResiliencyComplianceStatus|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration DriftType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"DriftType"j)letto_json=simple_to_jsonto_valueendmoduleAlarmType=structtypenonrect=|Metric|Composite|Canary|Logs|Event|Non_static_idofstringletmakei=iletto_string=function|Metric->"Metric"|Composite->"Composite"|Canary->"Canary"|Logs->"Logs"|Event->"Event"|Non_static_ids->sletof_string=function|"Metric"->Metric|"Composite"->Composite|"Canary"->Canary|"Logs"->Logs|"Event"->Event|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration AlarmType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"AlarmType"j)letto_json=simple_to_jsonto_valueendmoduleEksNamespaceList=structtypenonrect=EksNamespace.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:EksNamespace.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:EksNamespace.of_xml)letof_jsonj=list_of_json~kind:"EksNamespaceList"~of_json:EksNamespace.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleUpdateRecommendationStatusItem=structtypenonrect={resourceId:String500.toption[@ocaml.doc"Resource identifier of the operational recommendation item."];targetAccountId:CustomerId.toption[@ocaml.doc"Identifier of the target Amazon Web Services account."];targetRegion:AwsRegion.toption[@ocaml.doc"Identifier of the target Amazon Web Services Region."]}letmake?resourceId=fun?targetAccountId->fun?targetRegion->fun()->{resourceId;targetAccountId;targetRegion}letto_valuex=structure_to_value[("resourceId",(Option.mapx.resourceId~f:String500.to_value));("targetAccountId",(Option.mapx.targetAccountId~f:CustomerId.to_value));("targetRegion",(Option.mapx.targetRegion~f:AwsRegion.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettargetRegion=(Option.map~f:AwsRegion.of_xml)(Xml.childxml_arg0"targetRegion")inlettargetAccountId=(Option.map~f:CustomerId.of_xml)(Xml.childxml_arg0"targetAccountId")inletresourceId=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"resourceId")inmake?targetRegion?targetAccountId?resourceId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettargetRegion=field_mapjson__"targetRegion"AwsRegion.of_jsoninlettargetAccountId=field_mapjson__"targetAccountId"CustomerId.of_jsoninletresourceId=field_mapjson__"resourceId"String500.of_jsoninmake?targetRegion?targetAccountId?resourceId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Defines the operational recommendation item that needs a status update."]moduleResourceId=structtypenonrect=stringletcontext_="ResourceId"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:".*");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ResourceId"jletto_json=simple_to_jsonto_valueendmoduleResourceType=structtypenonrect=stringletcontext_="ResourceType"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:".*");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ResourceType"jletto_json=simple_to_jsonto_valueendmoduleRetryAfterSeconds=structtypenonrect=intletmakei=iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for RetryAfterSeconds"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleEventSubscriptionList=structtypenonrect=EventSubscription.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:10)>>=(fun()->check_list_mini~min:0));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:EventSubscription.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:EventSubscription.of_xml)letof_jsonj=list_of_json~kind:"EventSubscriptionList"~of_json:EventSubscription.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmodulePermissionModel=structtypenonrect={crossAccountRoleArns:IamRoleArnList.toption[@ocaml.doc"Defines a list of role Amazon Resource Names (ARNs) to be used in other accounts. These ARNs are used for querying purposes while importing resources and assessing your application. These ARNs are required only when your resources are in other accounts and you have different role name in these accounts. Else, the invoker role name will be used in the other accounts. These roles must have a trust policy with iam:AssumeRole permission to the invoker role in the primary account."];invokerRoleName:IamRoleName.toption[@ocaml.doc"Existing Amazon Web Services IAM role name in the primary Amazon Web Services account that will be assumed by Resilience Hub Service Principle to obtain a read-only access to your application resources while running an assessment. If your IAM role includes a path, you must include the path in the invokerRoleName parameter. For example, if your IAM role's ARN is arn:aws:iam:123456789012:role/my-path/role-name, you should pass my-path/role-name. You must have iam:passRole permission for this role while creating or updating the application. Currently, invokerRoleName accepts only \\[A-Za-z0-9_+=,.\\@-\\] characters."];type_:PermissionModelType.t[@ocaml.doc"Defines how Resilience Hub scans your resources. It can scan for the resources by using a pre-existing role in your Amazon Web Services account, or by using the credentials of the current IAM user."]}letcontext_="PermissionModel"letmake?crossAccountRoleArns=fun?invokerRoleName->fun~type_->fun()->{crossAccountRoleArns;invokerRoleName;type_}letto_valuex=structure_to_value[("crossAccountRoleArns",(Option.mapx.crossAccountRoleArns~f:IamRoleArnList.to_value));("invokerRoleName",(Option.mapx.invokerRoleName~f:IamRoleName.to_value));("type",(Some(PermissionModelType.to_valuex.type_)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettype_=PermissionModelType.of_xml(Xml.child_exn~context:context_xml_arg0"type")inletinvokerRoleName=(Option.map~f:IamRoleName.of_xml)(Xml.childxml_arg0"invokerRoleName")inletcrossAccountRoleArns=(Option.map~f:IamRoleArnList.of_xml)(Xml.childxml_arg0"crossAccountRoleArns")inmake~type_?invokerRoleName?crossAccountRoleArns()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettype_=field_map_exnjson__"type"PermissionModelType.of_jsoninletinvokerRoleName=field_mapjson__"invokerRoleName"IamRoleName.of_jsoninletcrossAccountRoleArns=field_mapjson__"crossAccountRoleArns"IamRoleArnList.of_jsoninmake~type_?invokerRoleName?crossAccountRoleArns()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Defines the roles and credentials that Resilience Hub would use while creating the application, importing its resources, and running an assessment."]moduleAssessmentSummary=structtypenonrect={riskRecommendations:AssessmentRiskRecommendationList.toption[@ocaml.doc"Indicates the top risks and recommendations identified by the Resilience Hub assessment, each representing a specific risk and the corresponding recommendation to address it. This property is available only in the US East (N. Virginia) Region."];summary:String500.toption[@ocaml.doc"Indicates a concise summary that provides an overview of the Resilience Hub assessment. This property is available only in the US East (N. Virginia) Region."]}letmake?riskRecommendations=fun?summary->fun()->{riskRecommendations;summary}letto_valuex=structure_to_value[("riskRecommendations",(Option.mapx.riskRecommendations~f:AssessmentRiskRecommendationList.to_value));("summary",(Option.mapx.summary~f:String500.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsummary=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"summary")inletriskRecommendations=(Option.map~f:AssessmentRiskRecommendationList.of_xml)(Xml.childxml_arg0"riskRecommendations")inmake?summary?riskRecommendations()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsummary=field_mapjson__"summary"String500.of_jsoninletriskRecommendations=field_mapjson__"riskRecommendations"AssessmentRiskRecommendationList.of_jsoninmake?summary?riskRecommendations()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Indicates the AI-generated summary for the Resilience Hub assessment, providing a concise overview that highlights the top risks and recommendations. This property is available only in the US East (N. Virginia) Region."]moduleResiliencyPolicy=structtypenonrect={creationTime:TimeStamp.toption[@ocaml.doc"Date and time when the resiliency policy was created."];dataLocationConstraint:DataLocationConstraint.toption[@ocaml.doc"Specifies a high-level geographical location constraint for where your resilience policy data can be stored."];estimatedCostTier:EstimatedCostTier.toption[@ocaml.doc"Specifies the estimated cost tier of the resiliency policy."];policy:DisruptionPolicy.toption[@ocaml.doc"The resiliency policy."];policyArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the resiliency policy. The format for this ARN is: arn:partition:resiliencehub:region:account:resiliency-policy/policy-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];policyDescription:EntityDescription.toption[@ocaml.doc"Description of the resiliency policy."];policyName:EntityName.toption[@ocaml.doc"The name of the policy"];tags:TagMap.toption[@ocaml.doc"Tags assigned to the resource. A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key/value pair."];tier:ResiliencyPolicyTier.toption[@ocaml.doc"The tier for this resiliency policy, ranging from the highest severity (MissionCritical) to lowest (NonCritical)."]}letmake?creationTime=fun?dataLocationConstraint->fun?estimatedCostTier->fun?policy->fun?policyArn->fun?policyDescription->fun?policyName->fun?tags->fun?tier->fun()->{creationTime;dataLocationConstraint;estimatedCostTier;policy;policyArn;policyDescription;policyName;tags;tier}letto_valuex=structure_to_value[("creationTime",(Option.mapx.creationTime~f:TimeStamp.to_value));("dataLocationConstraint",(Option.mapx.dataLocationConstraint~f:DataLocationConstraint.to_value));("estimatedCostTier",(Option.mapx.estimatedCostTier~f:EstimatedCostTier.to_value));("policy",(Option.mapx.policy~f:DisruptionPolicy.to_value));("policyArn",(Option.mapx.policyArn~f:Arn.to_value));("policyDescription",(Option.mapx.policyDescription~f:EntityDescription.to_value));("policyName",(Option.mapx.policyName~f:EntityName.to_value));("tags",(Option.mapx.tags~f:TagMap.to_value));("tier",(Option.mapx.tier~f:ResiliencyPolicyTier.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettier=(Option.map~f:ResiliencyPolicyTier.of_xml)(Xml.childxml_arg0"tier")inlettags=(Option.map~f:TagMap.of_xml)(Xml.childxml_arg0"tags")inletpolicyName=(Option.map~f:EntityName.of_xml)(Xml.childxml_arg0"policyName")inletpolicyDescription=(Option.map~f:EntityDescription.of_xml)(Xml.childxml_arg0"policyDescription")inletpolicyArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"policyArn")inletpolicy=(Option.map~f:DisruptionPolicy.of_xml)(Xml.childxml_arg0"policy")inletestimatedCostTier=(Option.map~f:EstimatedCostTier.of_xml)(Xml.childxml_arg0"estimatedCostTier")inletdataLocationConstraint=(Option.map~f:DataLocationConstraint.of_xml)(Xml.childxml_arg0"dataLocationConstraint")inletcreationTime=(Option.map~f:TimeStamp.of_xml)(Xml.childxml_arg0"creationTime")inmake?tier?tags?policyName?policyDescription?policyArn?policy?estimatedCostTier?dataLocationConstraint?creationTime()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettier=field_mapjson__"tier"ResiliencyPolicyTier.of_jsoninlettags=field_mapjson__"tags"TagMap.of_jsoninletpolicyName=field_mapjson__"policyName"EntityName.of_jsoninletpolicyDescription=field_mapjson__"policyDescription"EntityDescription.of_jsoninletpolicyArn=field_mapjson__"policyArn"Arn.of_jsoninletpolicy=field_mapjson__"policy"DisruptionPolicy.of_jsoninletestimatedCostTier=field_mapjson__"estimatedCostTier"EstimatedCostTier.of_jsoninletdataLocationConstraint=field_mapjson__"dataLocationConstraint"DataLocationConstraint.of_jsoninletcreationTime=field_mapjson__"creationTime"TimeStamp.of_jsoninmake?tier?tags?policyName?policyDescription?policyArn?policy?estimatedCostTier?dataLocationConstraint?creationTime()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Defines a resiliency policy. Resilience Hub allows you to provide a value of zero for rtoInSecs and rpoInSecs of your resiliency policy. But, while assessing your application, the lowest possible assessment result is near zero. Hence, if you provide value zero for rtoInSecs and rpoInSecs, the estimated workload RTO and estimated workload RPO result will be near zero and the Compliance status for your application will be set to Policy breached."]moduleResourceErrorsDetails=structtypenonrect={hasMoreErrors:BooleanOptional.toption[@ocaml.doc"This indicates if there are more errors not listed in the resourceErrors list."];resourceErrors:ResourceErrorList.toption[@ocaml.doc"A list of errors retrieving an application's resources."]}letmake?hasMoreErrors=fun?resourceErrors->fun()->{hasMoreErrors;resourceErrors}letto_valuex=structure_to_value[("hasMoreErrors",(Option.mapx.hasMoreErrors~f:BooleanOptional.to_value));("resourceErrors",(Option.mapx.resourceErrors~f:ResourceErrorList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceErrors=(Option.map~f:ResourceErrorList.of_xml)(Xml.childxml_arg0"resourceErrors")inlethasMoreErrors=(Option.map~f:BooleanOptional.of_xml)(Xml.childxml_arg0"hasMoreErrors")inmake?resourceErrors?hasMoreErrors()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceErrors=field_mapjson__"resourceErrors"ResourceErrorList.of_jsoninlethasMoreErrors=field_mapjson__"hasMoreErrors"BooleanOptional.of_jsoninmake?resourceErrors?hasMoreErrors()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A list of errors retrieving an application's resources."]moduleFailedGroupingRecommendationEntry=structtypenonrect={errorMessage:ErrorMessage.toption[@ocaml.doc"Indicates the error that occurred while implementing a grouping recommendation."];groupingRecommendationId:String255.toption[@ocaml.doc"Indicates the identifier of the grouping recommendation."]}letmake?errorMessage=fun?groupingRecommendationId->fun()->{errorMessage;groupingRecommendationId}letto_valuex=structure_to_value[("errorMessage",(Option.mapx.errorMessage~f:ErrorMessage.to_value));("groupingRecommendationId",(Option.mapx.groupingRecommendationId~f:String255.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgroupingRecommendationId=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"groupingRecommendationId")inleterrorMessage=(Option.map~f:ErrorMessage.of_xml)(Xml.childxml_arg0"errorMessage")inmake?groupingRecommendationId?errorMessage()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgroupingRecommendationId=field_mapjson__"groupingRecommendationId"String255.of_jsoninleterrorMessage=field_mapjson__"errorMessage"ErrorMessage.of_jsoninmake?groupingRecommendationId?errorMessage()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Indicates the accepted grouping recommendation whose implementation failed."]moduleRejectGroupingRecommendationEntry=structtypenonrect={groupingRecommendationId:String255.t[@ocaml.doc"Indicates the identifier of the grouping recommendation."];rejectionReason:GroupingRecommendationRejectionReason.toption[@ocaml.doc"Indicates the reason you had selected while rejecting a grouping recommendation."]}letcontext_="RejectGroupingRecommendationEntry"letmake?rejectionReason=fun~groupingRecommendationId->fun()->{rejectionReason;groupingRecommendationId}letto_valuex=structure_to_value[("groupingRecommendationId",(Some(String255.to_valuex.groupingRecommendationId)));("rejectionReason",(Option.mapx.rejectionReason~f:GroupingRecommendationRejectionReason.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letrejectionReason=(Option.map~f:GroupingRecommendationRejectionReason.of_xml)(Xml.childxml_arg0"rejectionReason")inletgroupingRecommendationId=String255.of_xml(Xml.child_exn~context:context_xml_arg0"groupingRecommendationId")inmake?rejectionReason~groupingRecommendationId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letrejectionReason=field_mapjson__"rejectionReason"GroupingRecommendationRejectionReason.of_jsoninletgroupingRecommendationId=field_map_exnjson__"groupingRecommendationId"String255.of_jsoninmake?rejectionReason~groupingRecommendationId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Indicates the rejected grouping recommendation."]moduleUnsupportedResource=structtypenonrect={logicalResourceId:LogicalResourceId.toption[@ocaml.doc"Logical resource identifier for the unsupported resource."];physicalResourceId:PhysicalResourceId.toption[@ocaml.doc"Physical resource identifier for the unsupported resource."];resourceType:String255.toption[@ocaml.doc"The type of resource."];unsupportedResourceStatus:String255.toption[@ocaml.doc"The status of the unsupported resource."]}letmake?logicalResourceId=fun?physicalResourceId->fun?resourceType->fun?unsupportedResourceStatus->fun()->{logicalResourceId;physicalResourceId;resourceType;unsupportedResourceStatus}letto_valuex=structure_to_value[("logicalResourceId",(Option.mapx.logicalResourceId~f:LogicalResourceId.to_value));("physicalResourceId",(Option.mapx.physicalResourceId~f:PhysicalResourceId.to_value));("resourceType",(Option.mapx.resourceType~f:String255.to_value));("unsupportedResourceStatus",(Option.mapx.unsupportedResourceStatus~f:String255.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letunsupportedResourceStatus=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"unsupportedResourceStatus")inletresourceType=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"resourceType")inletphysicalResourceId=(Option.map~f:PhysicalResourceId.of_xml)(Xml.childxml_arg0"physicalResourceId")inletlogicalResourceId=(Option.map~f:LogicalResourceId.of_xml)(Xml.childxml_arg0"logicalResourceId")inmake?unsupportedResourceStatus?resourceType?physicalResourceId?logicalResourceId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letunsupportedResourceStatus=field_mapjson__"unsupportedResourceStatus"String255.of_jsoninletresourceType=field_mapjson__"resourceType"String255.of_jsoninletphysicalResourceId=field_mapjson__"physicalResourceId"PhysicalResourceId.of_jsoninletlogicalResourceId=field_mapjson__"logicalResourceId"LogicalResourceId.of_jsoninmake?unsupportedResourceStatus?resourceType?physicalResourceId?logicalResourceId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Defines a resource that is not supported by Resilience Hub."]moduleTestRecommendation=structtypenonrect={appComponentId:EntityName255.toption[@ocaml.doc"Indicates the identifier of the AppComponent."];appComponentName:EntityId.toption[@ocaml.doc"Name of the Application Component."];dependsOnAlarms:AlarmReferenceIdList.toption[@ocaml.doc"A list of recommended alarms that are used in the test and must be exported before or with the test."];description:String500.toption[@ocaml.doc"Description for the test recommendation."];intent:EntityDescription.toption[@ocaml.doc"Intent of the test recommendation."];items:RecommendationItemList.toption[@ocaml.doc"The test recommendation items."];name:DocumentName.toption[@ocaml.doc"Name of the test recommendation."];prerequisite:String500.toption[@ocaml.doc"Prerequisite of the test recommendation."];recommendationId:Uuid.toption[@ocaml.doc"Identifier for the test recommendation."];recommendationStatus:RecommendationStatus.toption[@ocaml.doc"Status of the recommended test."];referenceId:SpecReferenceId.toption[@ocaml.doc"Reference identifier for the test recommendation."];risk:TestRisk.toption[@ocaml.doc"Level of risk for this test recommendation."];type_:TestType.toption[@ocaml.doc"Type of test recommendation."]}letmake?appComponentId=fun?appComponentName->fun?dependsOnAlarms->fun?description->fun?intent->fun?items->fun?name->fun?prerequisite->fun?recommendationId->fun?recommendationStatus->fun?referenceId->fun?risk->fun?type_->fun()->{appComponentId;appComponentName;dependsOnAlarms;description;intent;items;name;prerequisite;recommendationId;recommendationStatus;referenceId;risk;type_}letto_valuex=structure_to_value[("appComponentId",(Option.mapx.appComponentId~f:EntityName255.to_value));("appComponentName",(Option.mapx.appComponentName~f:EntityId.to_value));("dependsOnAlarms",(Option.mapx.dependsOnAlarms~f:AlarmReferenceIdList.to_value));("description",(Option.mapx.description~f:String500.to_value));("intent",(Option.mapx.intent~f:EntityDescription.to_value));("items",(Option.mapx.items~f:RecommendationItemList.to_value));("name",(Option.mapx.name~f:DocumentName.to_value));("prerequisite",(Option.mapx.prerequisite~f:String500.to_value));("recommendationId",(Option.mapx.recommendationId~f:Uuid.to_value));("recommendationStatus",(Option.mapx.recommendationStatus~f:RecommendationStatus.to_value));("referenceId",(Option.mapx.referenceId~f:SpecReferenceId.to_value));("risk",(Option.mapx.risk~f:TestRisk.to_value));("type",(Option.mapx.type_~f:TestType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettype_=(Option.map~f:TestType.of_xml)(Xml.childxml_arg0"type")inletrisk=(Option.map~f:TestRisk.of_xml)(Xml.childxml_arg0"risk")inletreferenceId=(Option.map~f:SpecReferenceId.of_xml)(Xml.childxml_arg0"referenceId")inletrecommendationStatus=(Option.map~f:RecommendationStatus.of_xml)(Xml.childxml_arg0"recommendationStatus")inletrecommendationId=(Option.map~f:Uuid.of_xml)(Xml.childxml_arg0"recommendationId")inletprerequisite=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"prerequisite")inletname=(Option.map~f:DocumentName.of_xml)(Xml.childxml_arg0"name")inletitems=(Option.map~f:RecommendationItemList.of_xml)(Xml.childxml_arg0"items")inletintent=(Option.map~f:EntityDescription.of_xml)(Xml.childxml_arg0"intent")inletdescription=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"description")inletdependsOnAlarms=(Option.map~f:AlarmReferenceIdList.of_xml)(Xml.childxml_arg0"dependsOnAlarms")inletappComponentName=(Option.map~f:EntityId.of_xml)(Xml.childxml_arg0"appComponentName")inletappComponentId=(Option.map~f:EntityName255.of_xml)(Xml.childxml_arg0"appComponentId")inmake?type_?risk?referenceId?recommendationStatus?recommendationId?prerequisite?name?items?intent?description?dependsOnAlarms?appComponentName?appComponentId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettype_=field_mapjson__"type"TestType.of_jsoninletrisk=field_mapjson__"risk"TestRisk.of_jsoninletreferenceId=field_mapjson__"referenceId"SpecReferenceId.of_jsoninletrecommendationStatus=field_mapjson__"recommendationStatus"RecommendationStatus.of_jsoninletrecommendationId=field_mapjson__"recommendationId"Uuid.of_jsoninletprerequisite=field_mapjson__"prerequisite"String500.of_jsoninletname=field_mapjson__"name"DocumentName.of_jsoninletitems=field_mapjson__"items"RecommendationItemList.of_jsoninletintent=field_mapjson__"intent"EntityDescription.of_jsoninletdescription=field_mapjson__"description"String500.of_jsoninletdependsOnAlarms=field_mapjson__"dependsOnAlarms"AlarmReferenceIdList.of_jsoninletappComponentName=field_mapjson__"appComponentName"EntityId.of_jsoninletappComponentId=field_mapjson__"appComponentId"EntityName255.of_jsoninmake?type_?risk?referenceId?recommendationStatus?recommendationId?prerequisite?name?items?intent?description?dependsOnAlarms?appComponentName?appComponentId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Defines a test recommendation."]moduleSopRecommendation=structtypenonrect={appComponentName:EntityId.toption[@ocaml.doc"Name of the Application Component."];description:String500.toption[@ocaml.doc"Description of the SOP recommendation."];items:RecommendationItemList.toption[@ocaml.doc"The recommendation items."];name:DocumentName.toption[@ocaml.doc"Name of the SOP recommendation."];prerequisite:String500.toption[@ocaml.doc"Prerequisite for the SOP recommendation."];recommendationId:Uuid.toption[@ocaml.doc"Identifier for the SOP recommendation."];recommendationStatus:RecommendationStatus.toption[@ocaml.doc"Status of the recommended standard operating procedure."];referenceId:SpecReferenceId.toption[@ocaml.doc"Reference identifier for the SOP recommendation."];serviceType:SopServiceType.toption[@ocaml.doc"The service type."]}letmake?appComponentName=fun?description->fun?items->fun?name->fun?prerequisite->fun?recommendationId->fun?recommendationStatus->fun?referenceId->fun?serviceType->fun()->{appComponentName;description;items;name;prerequisite;recommendationId;recommendationStatus;referenceId;serviceType}letto_valuex=structure_to_value[("appComponentName",(Option.mapx.appComponentName~f:EntityId.to_value));("description",(Option.mapx.description~f:String500.to_value));("items",(Option.mapx.items~f:RecommendationItemList.to_value));("name",(Option.mapx.name~f:DocumentName.to_value));("prerequisite",(Option.mapx.prerequisite~f:String500.to_value));("recommendationId",(Option.mapx.recommendationId~f:Uuid.to_value));("recommendationStatus",(Option.mapx.recommendationStatus~f:RecommendationStatus.to_value));("referenceId",(Option.mapx.referenceId~f:SpecReferenceId.to_value));("serviceType",(Option.mapx.serviceType~f:SopServiceType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letserviceType=(Option.map~f:SopServiceType.of_xml)(Xml.childxml_arg0"serviceType")inletreferenceId=(Option.map~f:SpecReferenceId.of_xml)(Xml.childxml_arg0"referenceId")inletrecommendationStatus=(Option.map~f:RecommendationStatus.of_xml)(Xml.childxml_arg0"recommendationStatus")inletrecommendationId=(Option.map~f:Uuid.of_xml)(Xml.childxml_arg0"recommendationId")inletprerequisite=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"prerequisite")inletname=(Option.map~f:DocumentName.of_xml)(Xml.childxml_arg0"name")inletitems=(Option.map~f:RecommendationItemList.of_xml)(Xml.childxml_arg0"items")inletdescription=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"description")inletappComponentName=(Option.map~f:EntityId.of_xml)(Xml.childxml_arg0"appComponentName")inmake?serviceType?referenceId?recommendationStatus?recommendationId?prerequisite?name?items?description?appComponentName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letserviceType=field_mapjson__"serviceType"SopServiceType.of_jsoninletreferenceId=field_mapjson__"referenceId"SpecReferenceId.of_jsoninletrecommendationStatus=field_mapjson__"recommendationStatus"RecommendationStatus.of_jsoninletrecommendationId=field_mapjson__"recommendationId"Uuid.of_jsoninletprerequisite=field_mapjson__"prerequisite"String500.of_jsoninletname=field_mapjson__"name"DocumentName.of_jsoninletitems=field_mapjson__"items"RecommendationItemList.of_jsoninletdescription=field_mapjson__"description"String500.of_jsoninletappComponentName=field_mapjson__"appComponentName"EntityId.of_jsoninmake?serviceType?referenceId?recommendationStatus?recommendationId?prerequisite?name?items?description?appComponentName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Defines a standard operating procedure (SOP) recommendation."]moduleGroupingRecommendation=structtypenonrect={confidenceLevel:GroupingRecommendationConfidenceLevel.toption[@ocaml.doc"Indicates the confidence level of Resilience Hub on the grouping recommendation."];creationTime:TimeStamp.toption[@ocaml.doc"Indicates the creation time of the grouping recommendation."];groupingAppComponent:GroupingAppComponent.toption[@ocaml.doc"Indicates the name of the recommended Application Component (AppComponent)."];groupingRecommendationId:String255.toption[@ocaml.doc"Indicates all the reasons available for rejecting a grouping recommendation."];recommendationReasons:String255List.toption[@ocaml.doc"Indicates all the reasons available for rejecting a grouping recommendation."];rejectionReason:GroupingRecommendationRejectionReason.toption[@ocaml.doc"Indicates the reason you had selected while rejecting a grouping recommendation."];resources:GroupingResourceList.toption[@ocaml.doc"Indicates the resources that are grouped in a recommended AppComponent."];score:Double.toption[@ocaml.doc"Indicates the confidence level of the grouping recommendation."];status:GroupingRecommendationStatusType.toption[@ocaml.doc"Indicates the status of grouping resources into AppComponents."]}letmake?confidenceLevel=fun?creationTime->fun?groupingAppComponent->fun?groupingRecommendationId->fun?recommendationReasons->fun?rejectionReason->fun?resources->fun?score->fun?status->fun()->{confidenceLevel;creationTime;groupingAppComponent;groupingRecommendationId;recommendationReasons;rejectionReason;resources;score;status}letto_valuex=structure_to_value[("confidenceLevel",(Option.mapx.confidenceLevel~f:GroupingRecommendationConfidenceLevel.to_value));("creationTime",(Option.mapx.creationTime~f:TimeStamp.to_value));("groupingAppComponent",(Option.mapx.groupingAppComponent~f:GroupingAppComponent.to_value));("groupingRecommendationId",(Option.mapx.groupingRecommendationId~f:String255.to_value));("recommendationReasons",(Option.mapx.recommendationReasons~f:String255List.to_value));("rejectionReason",(Option.mapx.rejectionReason~f:GroupingRecommendationRejectionReason.to_value));("resources",(Option.mapx.resources~f:GroupingResourceList.to_value));("score",(Option.mapx.score~f:Double.to_value));("status",(Option.mapx.status~f:GroupingRecommendationStatusType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstatus=(Option.map~f:GroupingRecommendationStatusType.of_xml)(Xml.childxml_arg0"status")inletscore=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"score")inletresources=(Option.map~f:GroupingResourceList.of_xml)(Xml.childxml_arg0"resources")inletrejectionReason=(Option.map~f:GroupingRecommendationRejectionReason.of_xml)(Xml.childxml_arg0"rejectionReason")inletrecommendationReasons=(Option.map~f:String255List.of_xml)(Xml.childxml_arg0"recommendationReasons")inletgroupingRecommendationId=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"groupingRecommendationId")inletgroupingAppComponent=(Option.map~f:GroupingAppComponent.of_xml)(Xml.childxml_arg0"groupingAppComponent")inletcreationTime=(Option.map~f:TimeStamp.of_xml)(Xml.childxml_arg0"creationTime")inletconfidenceLevel=(Option.map~f:GroupingRecommendationConfidenceLevel.of_xml)(Xml.childxml_arg0"confidenceLevel")inmake?status?score?resources?rejectionReason?recommendationReasons?groupingRecommendationId?groupingAppComponent?creationTime?confidenceLevel()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstatus=field_mapjson__"status"GroupingRecommendationStatusType.of_jsoninletscore=field_mapjson__"score"Double.of_jsoninletresources=field_mapjson__"resources"GroupingResourceList.of_jsoninletrejectionReason=field_mapjson__"rejectionReason"GroupingRecommendationRejectionReason.of_jsoninletrecommendationReasons=field_mapjson__"recommendationReasons"String255List.of_jsoninletgroupingRecommendationId=field_mapjson__"groupingRecommendationId"String255.of_jsoninletgroupingAppComponent=field_mapjson__"groupingAppComponent"GroupingAppComponent.of_jsoninletcreationTime=field_mapjson__"creationTime"TimeStamp.of_jsoninletconfidenceLevel=field_mapjson__"confidenceLevel"GroupingRecommendationConfidenceLevel.of_jsoninmake?status?score?resources?rejectionReason?recommendationReasons?groupingRecommendationId?groupingAppComponent?creationTime?confidenceLevel()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a new grouping recommendation."]moduleRecommendationTemplate=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];assessmentArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];endTime:TimeStamp.toption[@ocaml.doc"The end time for the action."];format:TemplateFormat.toption[@ocaml.doc"Format of the recommendation template. CfnJson The template is CloudFormation JSON. CfnYaml The template is CloudFormation YAML."];message:String500.toption[@ocaml.doc"Message for the recommendation template."];name:EntityName.toption[@ocaml.doc"Name for the recommendation template."];needsReplacements:BooleanOptional.toption[@ocaml.doc"Indicates if replacements are needed."];recommendationIds:RecommendationIdList.toption[@ocaml.doc"Identifiers for the recommendations used in the recommendation template."];recommendationTemplateArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) for the recommendation template."];recommendationTypes:RenderRecommendationTypeList.toption[@ocaml.doc"An array of strings that specify the recommendation template type or types. Alarm The template is an AlarmRecommendation template. Sop The template is a SopRecommendation template. Test The template is a TestRecommendation template."];startTime:TimeStamp.toption[@ocaml.doc"The start time for the action."];status:RecommendationTemplateStatus.toption[@ocaml.doc"Status of the action."];tags:TagMap.toption[@ocaml.doc"Tags assigned to the resource. A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key/value pair."];templatesLocation:S3Location.toption[@ocaml.doc"The file location of the template."]}letmake?appArn=fun?assessmentArn->fun?endTime->fun?format->fun?message->fun?name->fun?needsReplacements->fun?recommendationIds->fun?recommendationTemplateArn->fun?recommendationTypes->fun?startTime->fun?status->fun?tags->fun?templatesLocation->fun()->{appArn;assessmentArn;endTime;format;message;name;needsReplacements;recommendationIds;recommendationTemplateArn;recommendationTypes;startTime;status;tags;templatesLocation}letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("assessmentArn",(Option.mapx.assessmentArn~f:Arn.to_value));("endTime",(Option.mapx.endTime~f:TimeStamp.to_value));("format",(Option.mapx.format~f:TemplateFormat.to_value));("message",(Option.mapx.message~f:String500.to_value));("name",(Option.mapx.name~f:EntityName.to_value));("needsReplacements",(Option.mapx.needsReplacements~f:BooleanOptional.to_value));("recommendationIds",(Option.mapx.recommendationIds~f:RecommendationIdList.to_value));("recommendationTemplateArn",(Option.mapx.recommendationTemplateArn~f:Arn.to_value));("recommendationTypes",(Option.mapx.recommendationTypes~f:RenderRecommendationTypeList.to_value));("startTime",(Option.mapx.startTime~f:TimeStamp.to_value));("status",(Option.mapx.status~f:RecommendationTemplateStatus.to_value));("tags",(Option.mapx.tags~f:TagMap.to_value));("templatesLocation",(Option.mapx.templatesLocation~f:S3Location.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettemplatesLocation=(Option.map~f:S3Location.of_xml)(Xml.childxml_arg0"templatesLocation")inlettags=(Option.map~f:TagMap.of_xml)(Xml.childxml_arg0"tags")inletstatus=(Option.map~f:RecommendationTemplateStatus.of_xml)(Xml.childxml_arg0"status")inletstartTime=(Option.map~f:TimeStamp.of_xml)(Xml.childxml_arg0"startTime")inletrecommendationTypes=(Option.map~f:RenderRecommendationTypeList.of_xml)(Xml.childxml_arg0"recommendationTypes")inletrecommendationTemplateArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"recommendationTemplateArn")inletrecommendationIds=(Option.map~f:RecommendationIdList.of_xml)(Xml.childxml_arg0"recommendationIds")inletneedsReplacements=(Option.map~f:BooleanOptional.of_xml)(Xml.childxml_arg0"needsReplacements")inletname=(Option.map~f:EntityName.of_xml)(Xml.childxml_arg0"name")inletmessage=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"message")inletformat=(Option.map~f:TemplateFormat.of_xml)(Xml.childxml_arg0"format")inletendTime=(Option.map~f:TimeStamp.of_xml)(Xml.childxml_arg0"endTime")inletassessmentArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"assessmentArn")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?templatesLocation?tags?status?startTime?recommendationTypes?recommendationTemplateArn?recommendationIds?needsReplacements?name?message?format?endTime?assessmentArn?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettemplatesLocation=field_mapjson__"templatesLocation"S3Location.of_jsoninlettags=field_mapjson__"tags"TagMap.of_jsoninletstatus=field_mapjson__"status"RecommendationTemplateStatus.of_jsoninletstartTime=field_mapjson__"startTime"TimeStamp.of_jsoninletrecommendationTypes=field_mapjson__"recommendationTypes"RenderRecommendationTypeList.of_jsoninletrecommendationTemplateArn=field_mapjson__"recommendationTemplateArn"Arn.of_jsoninletrecommendationIds=field_mapjson__"recommendationIds"RecommendationIdList.of_jsoninletneedsReplacements=field_mapjson__"needsReplacements"BooleanOptional.of_jsoninletname=field_mapjson__"name"EntityName.of_jsoninletmessage=field_mapjson__"message"String500.of_jsoninletformat=field_mapjson__"format"TemplateFormat.of_jsoninletendTime=field_mapjson__"endTime"TimeStamp.of_jsoninletassessmentArn=field_mapjson__"assessmentArn"Arn.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?templatesLocation?tags?status?startTime?recommendationTypes?recommendationTemplateArn?recommendationIds?needsReplacements?name?message?format?endTime?assessmentArn?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Defines a recommendation template created with the CreateRecommendationTemplate action."]moduleRow=structtypenonrect=String255.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:String255.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:String255.of_xml)letof_jsonj=list_of_json~kind:"Row"~of_json:String255.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleCondition=structtypenonrect={field:String255.t[@ocaml.doc"Indicates the field in the metric."];operator:ConditionOperatorType.t[@ocaml.doc"Indicates the type of operator or comparison to be used when evaluating a condition against the specified field."];value:String255.toption[@ocaml.doc"Indicates the value or data against which a condition is evaluated."]}letcontext_="Condition"letmake?value=fun~field->fun~operator->fun()->{value;field;operator}letto_valuex=structure_to_value[("field",(Some(String255.to_valuex.field)));("operator",(Some(ConditionOperatorType.to_valuex.operator)));("value",(Option.mapx.value~f:String255.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvalue=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"value")inletoperator=ConditionOperatorType.of_xml(Xml.child_exn~context:context_xml_arg0"operator")inletfield=String255.of_xml(Xml.child_exn~context:context_xml_arg0"field")inmake?value~operator~field()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvalue=field_mapjson__"value"String255.of_jsoninletoperator=field_map_exnjson__"operator"ConditionOperatorType.of_jsoninletfield=field_map_exnjson__"field"String255.of_jsoninmake?value~operator~field()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Indicates the condition based on which you want to filter the metrics."]moduleField=structtypenonrect={aggregation:FieldAggregationType.toption[@ocaml.doc"(Optional) Indicates the type of aggregation or summary operation (such as Sum, Average, and so on) to be performed on a particular field or set of data."];name:String255.t[@ocaml.doc"Name of the field."]}letcontext_="Field"letmake?aggregation=fun~name->fun()->{aggregation;name}letto_valuex=structure_to_value[("aggregation",(Option.mapx.aggregation~f:FieldAggregationType.to_value));("name",(Some(String255.to_valuex.name)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letname=String255.of_xml(Xml.child_exn~context:context_xml_arg0"name")inletaggregation=(Option.map~f:FieldAggregationType.of_xml)(Xml.childxml_arg0"aggregation")inmake~name?aggregation()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letname=field_map_exnjson__"name"String255.of_jsoninletaggregation=field_mapjson__"aggregation"FieldAggregationType.of_jsoninmake~name?aggregation()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Indicates the field or attribute of a resource or data structure on which a condition is being applied or evaluated."]moduleSort=structtypenonrect={ascending:BooleanOptional.toption[@ocaml.doc"Indicates the name or identifier of the field or attribute that should be used as the basis for sorting the metrics."];field:String255.t[@ocaml.doc"Indicates the order in which you want to sort the metrics. By default, the list is sorted in ascending order. To sort the list in descending order, set this field to False."]}letcontext_="Sort"letmake?ascending=fun~field->fun()->{ascending;field}letto_valuex=structure_to_value[("ascending",(Option.mapx.ascending~f:BooleanOptional.to_value));("field",(Some(String255.to_valuex.field)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfield=String255.of_xml(Xml.child_exn~context:context_xml_arg0"field")inletascending=(Option.map~f:BooleanOptional.of_xml)(Xml.childxml_arg0"ascending")inmake~field?ascending()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfield=field_map_exnjson__"field"String255.of_jsoninletascending=field_mapjson__"ascending"BooleanOptional.of_jsoninmake~field?ascending()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Indicates the sorting order of the fields in the metrics."]moduleAppSummary=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];assessmentSchedule:AppAssessmentScheduleType.toption[@ocaml.doc"Assessment execution schedule with 'Daily' or 'Disabled' values."];awsApplicationArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of Resource Groups group that is integrated with an AppRegistry application. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];complianceStatus:AppComplianceStatusType.toption[@ocaml.doc"The current status of compliance for the resiliency policy."];creationTime:TimeStamp.toption[@ocaml.doc"Date and time when the app was created."];description:EntityDescription.toption[@ocaml.doc"The optional description for an app."];driftStatus:AppDriftStatusType.toption[@ocaml.doc"Indicates if compliance drifts (deviations) were detected while running an assessment for your application."];lastAppComplianceEvaluationTime:TimeStamp.toption[@ocaml.doc"Date and time of the most recent compliance evaluation."];name:EntityName.toption[@ocaml.doc"The name of the application."];resiliencyScore:Double.toption[@ocaml.doc"The current resiliency score for the application."];rpoInSecs:IntegerOptional.toption[@ocaml.doc"Recovery Point Objective (RPO) in seconds."];rtoInSecs:IntegerOptional.toption[@ocaml.doc"Recovery Time Objective (RTO) in seconds."];status:AppStatusType.toption[@ocaml.doc"Status of the application."]}letmake?appArn=fun?assessmentSchedule->fun?awsApplicationArn->fun?complianceStatus->fun?creationTime->fun?description->fun?driftStatus->fun?lastAppComplianceEvaluationTime->fun?name->fun?resiliencyScore->fun?rpoInSecs->fun?rtoInSecs->fun?status->fun()->{appArn;assessmentSchedule;awsApplicationArn;complianceStatus;creationTime;description;driftStatus;lastAppComplianceEvaluationTime;name;resiliencyScore;rpoInSecs;rtoInSecs;status}letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("assessmentSchedule",(Option.mapx.assessmentSchedule~f:AppAssessmentScheduleType.to_value));("awsApplicationArn",(Option.mapx.awsApplicationArn~f:Arn.to_value));("complianceStatus",(Option.mapx.complianceStatus~f:AppComplianceStatusType.to_value));("creationTime",(Option.mapx.creationTime~f:TimeStamp.to_value));("description",(Option.mapx.description~f:EntityDescription.to_value));("driftStatus",(Option.mapx.driftStatus~f:AppDriftStatusType.to_value));("lastAppComplianceEvaluationTime",(Option.mapx.lastAppComplianceEvaluationTime~f:TimeStamp.to_value));("name",(Option.mapx.name~f:EntityName.to_value));("resiliencyScore",(Option.mapx.resiliencyScore~f:Double.to_value));("rpoInSecs",(Option.mapx.rpoInSecs~f:IntegerOptional.to_value));("rtoInSecs",(Option.mapx.rtoInSecs~f:IntegerOptional.to_value));("status",(Option.mapx.status~f:AppStatusType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstatus=(Option.map~f:AppStatusType.of_xml)(Xml.childxml_arg0"status")inletrtoInSecs=(Option.map~f:IntegerOptional.of_xml)(Xml.childxml_arg0"rtoInSecs")inletrpoInSecs=(Option.map~f:IntegerOptional.of_xml)(Xml.childxml_arg0"rpoInSecs")inletresiliencyScore=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"resiliencyScore")inletname=(Option.map~f:EntityName.of_xml)(Xml.childxml_arg0"name")inletlastAppComplianceEvaluationTime=(Option.map~f:TimeStamp.of_xml)(Xml.childxml_arg0"lastAppComplianceEvaluationTime")inletdriftStatus=(Option.map~f:AppDriftStatusType.of_xml)(Xml.childxml_arg0"driftStatus")inletdescription=(Option.map~f:EntityDescription.of_xml)(Xml.childxml_arg0"description")inletcreationTime=(Option.map~f:TimeStamp.of_xml)(Xml.childxml_arg0"creationTime")inletcomplianceStatus=(Option.map~f:AppComplianceStatusType.of_xml)(Xml.childxml_arg0"complianceStatus")inletawsApplicationArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"awsApplicationArn")inletassessmentSchedule=(Option.map~f:AppAssessmentScheduleType.of_xml)(Xml.childxml_arg0"assessmentSchedule")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?status?rtoInSecs?rpoInSecs?resiliencyScore?name?lastAppComplianceEvaluationTime?driftStatus?description?creationTime?complianceStatus?awsApplicationArn?assessmentSchedule?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstatus=field_mapjson__"status"AppStatusType.of_jsoninletrtoInSecs=field_mapjson__"rtoInSecs"IntegerOptional.of_jsoninletrpoInSecs=field_mapjson__"rpoInSecs"IntegerOptional.of_jsoninletresiliencyScore=field_mapjson__"resiliencyScore"Double.of_jsoninletname=field_mapjson__"name"EntityName.of_jsoninletlastAppComplianceEvaluationTime=field_mapjson__"lastAppComplianceEvaluationTime"TimeStamp.of_jsoninletdriftStatus=field_mapjson__"driftStatus"AppDriftStatusType.of_jsoninletdescription=field_mapjson__"description"EntityDescription.of_jsoninletcreationTime=field_mapjson__"creationTime"TimeStamp.of_jsoninletcomplianceStatus=field_mapjson__"complianceStatus"AppComplianceStatusType.of_jsoninletawsApplicationArn=field_mapjson__"awsApplicationArn"Arn.of_jsoninletassessmentSchedule=field_mapjson__"assessmentSchedule"AppAssessmentScheduleType.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?status?rtoInSecs?rpoInSecs?resiliencyScore?name?lastAppComplianceEvaluationTime?driftStatus?description?creationTime?complianceStatus?awsApplicationArn?assessmentSchedule?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Defines an application summary."]moduleAppVersionSummary=structtypenonrect={appVersion:EntityVersion.toption[@ocaml.doc"Version of an application."];creationTime:TimeStamp.toption[@ocaml.doc"Creation time of the application version."];identifier:LongOptional.toption[@ocaml.doc"Identifier of the application version."];versionName:EntityVersion.toption[@ocaml.doc"Name of the application version."]}letmake?appVersion=fun?creationTime->fun?identifier->fun?versionName->fun()->{appVersion;creationTime;identifier;versionName}letto_valuex=structure_to_value[("appVersion",(Option.mapx.appVersion~f:EntityVersion.to_value));("creationTime",(Option.mapx.creationTime~f:TimeStamp.to_value));("identifier",(Option.mapx.identifier~f:LongOptional.to_value));("versionName",(Option.mapx.versionName~f:EntityVersion.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letversionName=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"versionName")inletidentifier=(Option.map~f:LongOptional.of_xml)(Xml.childxml_arg0"identifier")inletcreationTime=(Option.map~f:TimeStamp.of_xml)(Xml.childxml_arg0"creationTime")inletappVersion=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"appVersion")inmake?versionName?identifier?creationTime?appVersion()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letversionName=field_mapjson__"versionName"EntityVersion.of_jsoninletidentifier=field_mapjson__"identifier"LongOptional.of_jsoninletcreationTime=field_mapjson__"creationTime"TimeStamp.of_jsoninletappVersion=field_mapjson__"appVersion"EntityVersion.of_jsoninmake?versionName?identifier?creationTime?appVersion()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Version of an application."]modulePhysicalResource=structtypenonrect={additionalInfo:AdditionalInfoMap.toption[@ocaml.doc"Additional configuration parameters for an Resilience Hub application. If you want to implement additionalInfo through the Resilience Hub console rather than using an API call, see Configure the application configuration parameters. Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account. Key: \"failover-regions\" Value: \"\\[\\{\"region\":\"<REGION>\", \"accounts\":\\[\\{\"id\":\"<ACCOUNT_ID>\"\\}\\]\\}\\]\""];appComponents:AppComponentList.toption[@ocaml.doc"The application components that belong to this resource."];excluded:BooleanOptional.toption[@ocaml.doc"Indicates if a resource is included or excluded from the assessment."];logicalResourceId:LogicalResourceId.toption[@ocaml.doc"Logical identifier of the resource."];parentResourceName:EntityName.toption[@ocaml.doc"Name of the parent resource."];physicalResourceId:PhysicalResourceId.toption[@ocaml.doc"Identifier of the physical resource."];resourceName:EntityName.toption[@ocaml.doc"The name of the resource."];resourceType:String255.toption[@ocaml.doc"Type of resource."];sourceType:ResourceSourceType.toption[@ocaml.doc"Type of input source."]}letmake?additionalInfo=fun?appComponents->fun?excluded->fun?logicalResourceId->fun?parentResourceName->fun?physicalResourceId->fun?resourceName->fun?resourceType->fun?sourceType->fun()->{additionalInfo;appComponents;excluded;logicalResourceId;parentResourceName;physicalResourceId;resourceName;resourceType;sourceType}letto_valuex=structure_to_value[("additionalInfo",(Option.mapx.additionalInfo~f:AdditionalInfoMap.to_value));("appComponents",(Option.mapx.appComponents~f:AppComponentList.to_value));("excluded",(Option.mapx.excluded~f:BooleanOptional.to_value));("logicalResourceId",(Option.mapx.logicalResourceId~f:LogicalResourceId.to_value));("parentResourceName",(Option.mapx.parentResourceName~f:EntityName.to_value));("physicalResourceId",(Option.mapx.physicalResourceId~f:PhysicalResourceId.to_value));("resourceName",(Option.mapx.resourceName~f:EntityName.to_value));("resourceType",(Option.mapx.resourceType~f:String255.to_value));("sourceType",(Option.mapx.sourceType~f:ResourceSourceType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsourceType=(Option.map~f:ResourceSourceType.of_xml)(Xml.childxml_arg0"sourceType")inletresourceType=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"resourceType")inletresourceName=(Option.map~f:EntityName.of_xml)(Xml.childxml_arg0"resourceName")inletphysicalResourceId=(Option.map~f:PhysicalResourceId.of_xml)(Xml.childxml_arg0"physicalResourceId")inletparentResourceName=(Option.map~f:EntityName.of_xml)(Xml.childxml_arg0"parentResourceName")inletlogicalResourceId=(Option.map~f:LogicalResourceId.of_xml)(Xml.childxml_arg0"logicalResourceId")inletexcluded=(Option.map~f:BooleanOptional.of_xml)(Xml.childxml_arg0"excluded")inletappComponents=(Option.map~f:AppComponentList.of_xml)(Xml.childxml_arg0"appComponents")inletadditionalInfo=(Option.map~f:AdditionalInfoMap.of_xml)(Xml.childxml_arg0"additionalInfo")inmake?sourceType?resourceType?resourceName?physicalResourceId?parentResourceName?logicalResourceId?excluded?appComponents?additionalInfo()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsourceType=field_mapjson__"sourceType"ResourceSourceType.of_jsoninletresourceType=field_mapjson__"resourceType"String255.of_jsoninletresourceName=field_mapjson__"resourceName"EntityName.of_jsoninletphysicalResourceId=field_mapjson__"physicalResourceId"PhysicalResourceId.of_jsoninletparentResourceName=field_mapjson__"parentResourceName"EntityName.of_jsoninletlogicalResourceId=field_mapjson__"logicalResourceId"LogicalResourceId.of_jsoninletexcluded=field_mapjson__"excluded"BooleanOptional.of_jsoninletappComponents=field_mapjson__"appComponents"AppComponentList.of_jsoninletadditionalInfo=field_mapjson__"additionalInfo"AdditionalInfoMap.of_jsoninmake?sourceType?resourceType?resourceName?physicalResourceId?parentResourceName?logicalResourceId?excluded?appComponents?additionalInfo()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Defines a physical resource. A physical resource is a resource that exists in your account. It can be identified using an Amazon Resource Name (ARN) or an Resilience Hub-native identifier."]moduleResourceMapping=structtypenonrect={appRegistryAppName:EntityName.toption[@ocaml.doc"Name of the application this resource is mapped to when the mappingType is AppRegistryApp."];eksSourceName:String255.toption[@ocaml.doc"Name of the Amazon Elastic Kubernetes Service cluster and namespace that this resource is mapped to when the mappingType is EKS. This parameter accepts values in \"eks-cluster/namespace\" format."];logicalStackName:String255.toption[@ocaml.doc"Name of the CloudFormation stack this resource is mapped to when the mappingType is CfnStack."];mappingType:ResourceMappingType.t[@ocaml.doc"Specifies the type of resource mapping."];physicalResourceId:PhysicalResourceId.t[@ocaml.doc"Identifier of the physical resource."];resourceGroupName:EntityName.toption[@ocaml.doc"Name of the Resource Groups that this resource is mapped to when the mappingType is ResourceGroup."];resourceName:EntityName.toption[@ocaml.doc"Name of the resource that this resource is mapped to when the mappingType is Resource."];terraformSourceName:String255.toption[@ocaml.doc"Name of the Terraform source that this resource is mapped to when the mappingType is Terraform."]}letcontext_="ResourceMapping"letmake?appRegistryAppName=fun?eksSourceName->fun?logicalStackName->fun?resourceGroupName->fun?resourceName->fun?terraformSourceName->fun~mappingType->fun~physicalResourceId->fun()->{appRegistryAppName;eksSourceName;logicalStackName;resourceGroupName;resourceName;terraformSourceName;mappingType;physicalResourceId}letto_valuex=structure_to_value[("appRegistryAppName",(Option.mapx.appRegistryAppName~f:EntityName.to_value));("eksSourceName",(Option.mapx.eksSourceName~f:String255.to_value));("logicalStackName",(Option.mapx.logicalStackName~f:String255.to_value));("mappingType",(Some(ResourceMappingType.to_valuex.mappingType)));("physicalResourceId",(Some(PhysicalResourceId.to_valuex.physicalResourceId)));("resourceGroupName",(Option.mapx.resourceGroupName~f:EntityName.to_value));("resourceName",(Option.mapx.resourceName~f:EntityName.to_value));("terraformSourceName",(Option.mapx.terraformSourceName~f:String255.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letterraformSourceName=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"terraformSourceName")inletresourceName=(Option.map~f:EntityName.of_xml)(Xml.childxml_arg0"resourceName")inletresourceGroupName=(Option.map~f:EntityName.of_xml)(Xml.childxml_arg0"resourceGroupName")inletphysicalResourceId=PhysicalResourceId.of_xml(Xml.child_exn~context:context_xml_arg0"physicalResourceId")inletmappingType=ResourceMappingType.of_xml(Xml.child_exn~context:context_xml_arg0"mappingType")inletlogicalStackName=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"logicalStackName")inleteksSourceName=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"eksSourceName")inletappRegistryAppName=(Option.map~f:EntityName.of_xml)(Xml.childxml_arg0"appRegistryAppName")inmake?terraformSourceName?resourceName?resourceGroupName~physicalResourceId~mappingType?logicalStackName?eksSourceName?appRegistryAppName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letterraformSourceName=field_mapjson__"terraformSourceName"String255.of_jsoninletresourceName=field_mapjson__"resourceName"EntityName.of_jsoninletresourceGroupName=field_mapjson__"resourceGroupName"EntityName.of_jsoninletphysicalResourceId=field_map_exnjson__"physicalResourceId"PhysicalResourceId.of_jsoninletmappingType=field_map_exnjson__"mappingType"ResourceMappingType.of_jsoninletlogicalStackName=field_mapjson__"logicalStackName"String255.of_jsoninleteksSourceName=field_mapjson__"eksSourceName"String255.of_jsoninletappRegistryAppName=field_mapjson__"appRegistryAppName"EntityName.of_jsoninmake?terraformSourceName?resourceName?resourceGroupName~physicalResourceId~mappingType?logicalStackName?eksSourceName?appRegistryAppName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Defines a resource mapping."]moduleAppInputSource=structtypenonrect={eksSourceClusterNamespace:EksSourceClusterNamespace.toption[@ocaml.doc"The namespace on your Amazon Elastic Kubernetes Service cluster."];importType:ResourceMappingType.toption[@ocaml.doc"The resource type of the input source."];resourceCount:Integer.toption[@ocaml.doc"The number of resources."];sourceArn:Arn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the input source. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];sourceName:String255.toption[@ocaml.doc"The name of the input source."];terraformSource:TerraformSource.toption[@ocaml.doc"The name of the Terraform s3 state \239\172\129le."]}letmake?eksSourceClusterNamespace=fun?importType->fun?resourceCount->fun?sourceArn->fun?sourceName->fun?terraformSource->fun()->{eksSourceClusterNamespace;importType;resourceCount;sourceArn;sourceName;terraformSource}letto_valuex=structure_to_value[("eksSourceClusterNamespace",(Option.mapx.eksSourceClusterNamespace~f:EksSourceClusterNamespace.to_value));("importType",(Option.mapx.importType~f:ResourceMappingType.to_value));("resourceCount",(Option.mapx.resourceCount~f:Integer.to_value));("sourceArn",(Option.mapx.sourceArn~f:Arn.to_value));("sourceName",(Option.mapx.sourceName~f:String255.to_value));("terraformSource",(Option.mapx.terraformSource~f:TerraformSource.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letterraformSource=(Option.map~f:TerraformSource.of_xml)(Xml.childxml_arg0"terraformSource")inletsourceName=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"sourceName")inletsourceArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"sourceArn")inletresourceCount=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"resourceCount")inletimportType=(Option.map~f:ResourceMappingType.of_xml)(Xml.childxml_arg0"importType")inleteksSourceClusterNamespace=(Option.map~f:EksSourceClusterNamespace.of_xml)(Xml.childxml_arg0"eksSourceClusterNamespace")inmake?terraformSource?sourceName?sourceArn?resourceCount?importType?eksSourceClusterNamespace()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letterraformSource=field_mapjson__"terraformSource"TerraformSource.of_jsoninletsourceName=field_mapjson__"sourceName"String255.of_jsoninletsourceArn=field_mapjson__"sourceArn"Arn.of_jsoninletresourceCount=field_mapjson__"resourceCount"Integer.of_jsoninletimportType=field_mapjson__"importType"ResourceMappingType.of_jsoninleteksSourceClusterNamespace=field_mapjson__"eksSourceClusterNamespace"EksSourceClusterNamespace.of_jsoninmake?terraformSource?sourceName?sourceArn?resourceCount?importType?eksSourceClusterNamespace()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The list of Resilience Hub application input sources."]moduleComponentRecommendation=structtypenonrect={appComponentName:EntityId.toption[@ocaml.doc"Name of the Application Component."];configRecommendations:ConfigRecommendationList.toption[@ocaml.doc"List of recommendations."];recommendationStatus:RecommendationComplianceStatus.toption[@ocaml.doc"Status of the recommendation."]}letmake?appComponentName=fun?configRecommendations->fun?recommendationStatus->fun()->{appComponentName;configRecommendations;recommendationStatus}letto_valuex=structure_to_value[("appComponentName",(Option.mapx.appComponentName~f:EntityId.to_value));("configRecommendations",(Option.mapx.configRecommendations~f:ConfigRecommendationList.to_value));("recommendationStatus",(Option.mapx.recommendationStatus~f:RecommendationComplianceStatus.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letrecommendationStatus=(Option.map~f:RecommendationComplianceStatus.of_xml)(Xml.childxml_arg0"recommendationStatus")inletconfigRecommendations=(Option.map~f:ConfigRecommendationList.of_xml)(Xml.childxml_arg0"configRecommendations")inletappComponentName=(Option.map~f:EntityId.of_xml)(Xml.childxml_arg0"appComponentName")inmake?recommendationStatus?configRecommendations?appComponentName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letrecommendationStatus=field_mapjson__"recommendationStatus"RecommendationComplianceStatus.of_jsoninletconfigRecommendations=field_mapjson__"configRecommendations"ConfigRecommendationList.of_jsoninletappComponentName=field_mapjson__"appComponentName"EntityId.of_jsoninmake?recommendationStatus?configRecommendations?appComponentName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Defines recommendations for an Resilience Hub Application Component, returned as an object. This object contains component names, configuration recommendations, and recommendation statuses."]moduleAppComponentCompliance=structtypenonrect={appComponentName:EntityId.toption[@ocaml.doc"Name of the Application Component."];compliance:AssessmentCompliance.toption[@ocaml.doc"The compliance of the Application Component against the resiliency policy."];cost:Cost.toption[@ocaml.doc"The cost for the application."];message:String500.toption[@ocaml.doc"The compliance message."];resiliencyScore:ResiliencyScore.toption[@ocaml.doc"The current resiliency score for the application."];status:ComplianceStatus.toption[@ocaml.doc"Status of the action."]}letmake?appComponentName=fun?compliance->fun?cost->fun?message->fun?resiliencyScore->fun?status->fun()->{appComponentName;compliance;cost;message;resiliencyScore;status}letto_valuex=structure_to_value[("appComponentName",(Option.mapx.appComponentName~f:EntityId.to_value));("compliance",(Option.mapx.compliance~f:AssessmentCompliance.to_value));("cost",(Option.mapx.cost~f:Cost.to_value));("message",(Option.mapx.message~f:String500.to_value));("resiliencyScore",(Option.mapx.resiliencyScore~f:ResiliencyScore.to_value));("status",(Option.mapx.status~f:ComplianceStatus.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstatus=(Option.map~f:ComplianceStatus.of_xml)(Xml.childxml_arg0"status")inletresiliencyScore=(Option.map~f:ResiliencyScore.of_xml)(Xml.childxml_arg0"resiliencyScore")inletmessage=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"message")inletcost=(Option.map~f:Cost.of_xml)(Xml.childxml_arg0"cost")inletcompliance=(Option.map~f:AssessmentCompliance.of_xml)(Xml.childxml_arg0"compliance")inletappComponentName=(Option.map~f:EntityId.of_xml)(Xml.childxml_arg0"appComponentName")inmake?status?resiliencyScore?message?cost?compliance?appComponentName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstatus=field_mapjson__"status"ComplianceStatus.of_jsoninletresiliencyScore=field_mapjson__"resiliencyScore"ResiliencyScore.of_jsoninletmessage=field_mapjson__"message"String500.of_jsoninletcost=field_mapjson__"cost"Cost.of_jsoninletcompliance=field_mapjson__"compliance"AssessmentCompliance.of_jsoninletappComponentName=field_mapjson__"appComponentName"EntityId.of_jsoninmake?status?resiliencyScore?message?cost?compliance?appComponentName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Defines the compliance of an Application Component against the resiliency policy."]moduleAppAssessmentSummary=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.toption[@ocaml.doc"Version of an application."];assessmentArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];assessmentName:EntityName.toption[@ocaml.doc"Name of the assessment."];assessmentStatus:AssessmentStatus.toption[@ocaml.doc"Current status of the assessment for the resiliency policy."];complianceStatus:ComplianceStatus.toption[@ocaml.doc"Current status of compliance for the resiliency policy."];cost:Cost.toption[@ocaml.doc"Cost for an application."];driftStatus:DriftStatus.toption[@ocaml.doc"Indicates if compliance drifts (deviations) were detected while running an assessment for your application."];endTime:TimeStamp.toption[@ocaml.doc"End time for the action."];invoker:AssessmentInvoker.toption[@ocaml.doc"Entity that invoked the assessment."];message:String500.toption[@ocaml.doc"Message from the assessment run."];resiliencyScore:Double.toption[@ocaml.doc"Current resiliency score for the application."];startTime:TimeStamp.toption[@ocaml.doc"Starting time for the action."];versionName:EntityVersion.toption[@ocaml.doc"Name of an application version."]}letmake?appArn=fun?appVersion->fun?assessmentArn->fun?assessmentName->fun?assessmentStatus->fun?complianceStatus->fun?cost->fun?driftStatus->fun?endTime->fun?invoker->fun?message->fun?resiliencyScore->fun?startTime->fun?versionName->fun()->{appArn;appVersion;assessmentArn;assessmentName;assessmentStatus;complianceStatus;cost;driftStatus;endTime;invoker;message;resiliencyScore;startTime;versionName}letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("appVersion",(Option.mapx.appVersion~f:EntityVersion.to_value));("assessmentArn",(Option.mapx.assessmentArn~f:Arn.to_value));("assessmentName",(Option.mapx.assessmentName~f:EntityName.to_value));("assessmentStatus",(Option.mapx.assessmentStatus~f:AssessmentStatus.to_value));("complianceStatus",(Option.mapx.complianceStatus~f:ComplianceStatus.to_value));("cost",(Option.mapx.cost~f:Cost.to_value));("driftStatus",(Option.mapx.driftStatus~f:DriftStatus.to_value));("endTime",(Option.mapx.endTime~f:TimeStamp.to_value));("invoker",(Option.mapx.invoker~f:AssessmentInvoker.to_value));("message",(Option.mapx.message~f:String500.to_value));("resiliencyScore",(Option.mapx.resiliencyScore~f:Double.to_value));("startTime",(Option.mapx.startTime~f:TimeStamp.to_value));("versionName",(Option.mapx.versionName~f:EntityVersion.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letversionName=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"versionName")inletstartTime=(Option.map~f:TimeStamp.of_xml)(Xml.childxml_arg0"startTime")inletresiliencyScore=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"resiliencyScore")inletmessage=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"message")inletinvoker=(Option.map~f:AssessmentInvoker.of_xml)(Xml.childxml_arg0"invoker")inletendTime=(Option.map~f:TimeStamp.of_xml)(Xml.childxml_arg0"endTime")inletdriftStatus=(Option.map~f:DriftStatus.of_xml)(Xml.childxml_arg0"driftStatus")inletcost=(Option.map~f:Cost.of_xml)(Xml.childxml_arg0"cost")inletcomplianceStatus=(Option.map~f:ComplianceStatus.of_xml)(Xml.childxml_arg0"complianceStatus")inletassessmentStatus=(Option.map~f:AssessmentStatus.of_xml)(Xml.childxml_arg0"assessmentStatus")inletassessmentName=(Option.map~f:EntityName.of_xml)(Xml.childxml_arg0"assessmentName")inletassessmentArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"assessmentArn")inletappVersion=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"appVersion")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?versionName?startTime?resiliencyScore?message?invoker?endTime?driftStatus?cost?complianceStatus?assessmentStatus?assessmentName?assessmentArn?appVersion?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letversionName=field_mapjson__"versionName"EntityVersion.of_jsoninletstartTime=field_mapjson__"startTime"TimeStamp.of_jsoninletresiliencyScore=field_mapjson__"resiliencyScore"Double.of_jsoninletmessage=field_mapjson__"message"String500.of_jsoninletinvoker=field_mapjson__"invoker"AssessmentInvoker.of_jsoninletendTime=field_mapjson__"endTime"TimeStamp.of_jsoninletdriftStatus=field_mapjson__"driftStatus"DriftStatus.of_jsoninletcost=field_mapjson__"cost"Cost.of_jsoninletcomplianceStatus=field_mapjson__"complianceStatus"ComplianceStatus.of_jsoninletassessmentStatus=field_mapjson__"assessmentStatus"AssessmentStatus.of_jsoninletassessmentName=field_mapjson__"assessmentName"EntityName.of_jsoninletassessmentArn=field_mapjson__"assessmentArn"Arn.of_jsoninletappVersion=field_mapjson__"appVersion"EntityVersion.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?versionName?startTime?resiliencyScore?message?invoker?endTime?driftStatus?cost?complianceStatus?assessmentStatus?assessmentName?assessmentArn?appVersion?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Defines an application assessment summary."]moduleResourceDrift=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the application whose resources have drifted. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.toption[@ocaml.doc"Version of the application whose resources have drifted."];diffType:DifferenceType.toption[@ocaml.doc"Indicates if the resource was added or removed."];referenceId:EntityId.toption[@ocaml.doc"Reference identifier of the resource drift."];resourceIdentifier:ResourceIdentifier.toption[@ocaml.doc"Identifier of the drifted resource."]}letmake?appArn=fun?appVersion->fun?diffType->fun?referenceId->fun?resourceIdentifier->fun()->{appArn;appVersion;diffType;referenceId;resourceIdentifier}letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("appVersion",(Option.mapx.appVersion~f:EntityVersion.to_value));("diffType",(Option.mapx.diffType~f:DifferenceType.to_value));("referenceId",(Option.mapx.referenceId~f:EntityId.to_value));("resourceIdentifier",(Option.mapx.resourceIdentifier~f:ResourceIdentifier.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceIdentifier=(Option.map~f:ResourceIdentifier.of_xml)(Xml.childxml_arg0"resourceIdentifier")inletreferenceId=(Option.map~f:EntityId.of_xml)(Xml.childxml_arg0"referenceId")inletdiffType=(Option.map~f:DifferenceType.of_xml)(Xml.childxml_arg0"diffType")inletappVersion=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"appVersion")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?resourceIdentifier?referenceId?diffType?appVersion?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceIdentifier=field_mapjson__"resourceIdentifier"ResourceIdentifier.of_jsoninletreferenceId=field_mapjson__"referenceId"EntityId.of_jsoninletdiffType=field_mapjson__"diffType"DifferenceType.of_jsoninletappVersion=field_mapjson__"appVersion"EntityVersion.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?resourceIdentifier?referenceId?diffType?appVersion?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Indicates the resources that have drifted in the current application version."]moduleComplianceDrift=structtypenonrect={actualReferenceId:String255.toption[@ocaml.doc"Assessment identifier that is associated with this drift item."];actualValue:AssessmentCompliance.toption[@ocaml.doc"Actual compliance value of the entity."];appId:String255.toption[@ocaml.doc"Identifier of your application."];appVersion:String255.toption[@ocaml.doc"Published version of your application on which drift was detected."];diffType:DifferenceType.toption[@ocaml.doc"Difference type between actual and expected recovery point objective (RPO) and recovery time objective (RTO) values. Currently, Resilience Hub supports only NotEqual difference type."];driftType:DriftType.toption[@ocaml.doc"The type of drift detected. Currently, Resilience Hub supports only ApplicationCompliance drift type."];entityId:String255.toption[@ocaml.doc"Identifier of an entity in which drift was detected. For compliance drift, the entity ID can be either application ID or the AppComponent ID."];entityType:String255.toption[@ocaml.doc"The type of entity in which drift was detected. For compliance drifts, Resilience Hub supports AWS::ResilienceHub::AppComponent and AWS::ResilienceHub::Application."];expectedReferenceId:String255.toption[@ocaml.doc"Assessment identifier of a previous assessment of the same application version. Resilience Hub uses the previous assessment (associated with the reference identifier) to compare the compliance with the current assessment to identify drifts."];expectedValue:AssessmentCompliance.toption[@ocaml.doc"The expected compliance value of an entity."]}letmake?actualReferenceId=fun?actualValue->fun?appId->fun?appVersion->fun?diffType->fun?driftType->fun?entityId->fun?entityType->fun?expectedReferenceId->fun?expectedValue->fun()->{actualReferenceId;actualValue;appId;appVersion;diffType;driftType;entityId;entityType;expectedReferenceId;expectedValue}letto_valuex=structure_to_value[("actualReferenceId",(Option.mapx.actualReferenceId~f:String255.to_value));("actualValue",(Option.mapx.actualValue~f:AssessmentCompliance.to_value));("appId",(Option.mapx.appId~f:String255.to_value));("appVersion",(Option.mapx.appVersion~f:String255.to_value));("diffType",(Option.mapx.diffType~f:DifferenceType.to_value));("driftType",(Option.mapx.driftType~f:DriftType.to_value));("entityId",(Option.mapx.entityId~f:String255.to_value));("entityType",(Option.mapx.entityType~f:String255.to_value));("expectedReferenceId",(Option.mapx.expectedReferenceId~f:String255.to_value));("expectedValue",(Option.mapx.expectedValue~f:AssessmentCompliance.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letexpectedValue=(Option.map~f:AssessmentCompliance.of_xml)(Xml.childxml_arg0"expectedValue")inletexpectedReferenceId=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"expectedReferenceId")inletentityType=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"entityType")inletentityId=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"entityId")inletdriftType=(Option.map~f:DriftType.of_xml)(Xml.childxml_arg0"driftType")inletdiffType=(Option.map~f:DifferenceType.of_xml)(Xml.childxml_arg0"diffType")inletappVersion=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"appVersion")inletappId=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"appId")inletactualValue=(Option.map~f:AssessmentCompliance.of_xml)(Xml.childxml_arg0"actualValue")inletactualReferenceId=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"actualReferenceId")inmake?expectedValue?expectedReferenceId?entityType?entityId?driftType?diffType?appVersion?appId?actualValue?actualReferenceId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letexpectedValue=field_mapjson__"expectedValue"AssessmentCompliance.of_jsoninletexpectedReferenceId=field_mapjson__"expectedReferenceId"String255.of_jsoninletentityType=field_mapjson__"entityType"String255.of_jsoninletentityId=field_mapjson__"entityId"String255.of_jsoninletdriftType=field_mapjson__"driftType"DriftType.of_jsoninletdiffType=field_mapjson__"diffType"DifferenceType.of_jsoninletappVersion=field_mapjson__"appVersion"String255.of_jsoninletappId=field_mapjson__"appId"String255.of_jsoninletactualValue=field_mapjson__"actualValue"AssessmentCompliance.of_jsoninletactualReferenceId=field_mapjson__"actualReferenceId"String255.of_jsoninmake?expectedValue?expectedReferenceId?entityType?entityId?driftType?diffType?appVersion?appId?actualValue?actualReferenceId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Indicates the compliance drifts (recovery time objective (RTO) and recovery point objective (RPO)) that were detected for an assessed entity."]moduleAlarmRecommendation=structtypenonrect={appComponentName:EntityId.toption[@ocaml.doc"Application Component name for the CloudWatch alarm recommendation. This name is saved as the first item in the appComponentNames list."];appComponentNames:AppComponentNameList.toption[@ocaml.doc"List of Application Component names for the CloudWatch alarm recommendation."];description:EntityDescription.toption[@ocaml.doc"Description of the alarm recommendation."];items:RecommendationItemList.toption[@ocaml.doc"List of CloudWatch alarm recommendations."];name:String500.toption[@ocaml.doc"Name of the alarm recommendation."];prerequisite:String500.toption[@ocaml.doc"The prerequisite for the alarm recommendation."];recommendationId:Uuid.toption[@ocaml.doc"Identifier of the alarm recommendation."];recommendationStatus:RecommendationStatus.toption[@ocaml.doc"Status of the recommended Amazon CloudWatch alarm."];referenceId:SpecReferenceId.toption[@ocaml.doc"Reference identifier of the alarm recommendation."];type_:AlarmType.toption[@ocaml.doc"Type of alarm recommendation."]}letmake?appComponentName=fun?appComponentNames->fun?description->fun?items->fun?name->fun?prerequisite->fun?recommendationId->fun?recommendationStatus->fun?referenceId->fun?type_->fun()->{appComponentName;appComponentNames;description;items;name;prerequisite;recommendationId;recommendationStatus;referenceId;type_}letto_valuex=structure_to_value[("appComponentName",(Option.mapx.appComponentName~f:EntityId.to_value));("appComponentNames",(Option.mapx.appComponentNames~f:AppComponentNameList.to_value));("description",(Option.mapx.description~f:EntityDescription.to_value));("items",(Option.mapx.items~f:RecommendationItemList.to_value));("name",(Option.mapx.name~f:String500.to_value));("prerequisite",(Option.mapx.prerequisite~f:String500.to_value));("recommendationId",(Option.mapx.recommendationId~f:Uuid.to_value));("recommendationStatus",(Option.mapx.recommendationStatus~f:RecommendationStatus.to_value));("referenceId",(Option.mapx.referenceId~f:SpecReferenceId.to_value));("type",(Option.mapx.type_~f:AlarmType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettype_=(Option.map~f:AlarmType.of_xml)(Xml.childxml_arg0"type")inletreferenceId=(Option.map~f:SpecReferenceId.of_xml)(Xml.childxml_arg0"referenceId")inletrecommendationStatus=(Option.map~f:RecommendationStatus.of_xml)(Xml.childxml_arg0"recommendationStatus")inletrecommendationId=(Option.map~f:Uuid.of_xml)(Xml.childxml_arg0"recommendationId")inletprerequisite=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"prerequisite")inletname=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"name")inletitems=(Option.map~f:RecommendationItemList.of_xml)(Xml.childxml_arg0"items")inletdescription=(Option.map~f:EntityDescription.of_xml)(Xml.childxml_arg0"description")inletappComponentNames=(Option.map~f:AppComponentNameList.of_xml)(Xml.childxml_arg0"appComponentNames")inletappComponentName=(Option.map~f:EntityId.of_xml)(Xml.childxml_arg0"appComponentName")inmake?type_?referenceId?recommendationStatus?recommendationId?prerequisite?name?items?description?appComponentNames?appComponentName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettype_=field_mapjson__"type"AlarmType.of_jsoninletreferenceId=field_mapjson__"referenceId"SpecReferenceId.of_jsoninletrecommendationStatus=field_mapjson__"recommendationStatus"RecommendationStatus.of_jsoninletrecommendationId=field_mapjson__"recommendationId"Uuid.of_jsoninletprerequisite=field_mapjson__"prerequisite"String500.of_jsoninletname=field_mapjson__"name"String500.of_jsoninletitems=field_mapjson__"items"RecommendationItemList.of_jsoninletdescription=field_mapjson__"description"EntityDescription.of_jsoninletappComponentNames=field_mapjson__"appComponentNames"AppComponentNameList.of_jsoninletappComponentName=field_mapjson__"appComponentName"EntityId.of_jsoninmake?type_?referenceId?recommendationStatus?recommendationId?prerequisite?name?items?description?appComponentNames?appComponentName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Defines a recommendation for a CloudWatch alarm."]moduleEksSource=structtypenonrect={eksClusterArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Amazon Elastic Kubernetes Service cluster. The format for this ARN is: arn:aws:eks:region:account-id:cluster/cluster-name. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];namespaces:EksNamespaceList.t[@ocaml.doc"The list of namespaces located on your Amazon Elastic Kubernetes Service cluster."]}letcontext_="EksSource"letmake~eksClusterArn=fun~namespaces->fun()->{eksClusterArn;namespaces}letto_valuex=structure_to_value[("eksClusterArn",(Some(Arn.to_valuex.eksClusterArn)));("namespaces",(Some(EksNamespaceList.to_valuex.namespaces)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnamespaces=EksNamespaceList.of_xml(Xml.child_exn~context:context_xml_arg0"namespaces")inleteksClusterArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"eksClusterArn")inmake~namespaces~eksClusterArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnamespaces=field_map_exnjson__"namespaces"EksNamespaceList.of_jsoninleteksClusterArn=field_map_exnjson__"eksClusterArn"Arn.of_jsoninmake~namespaces~eksClusterArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The input source of the Amazon Elastic Kubernetes Service cluster."]moduleErrorDetail=structtypenonrect={errorMessage:ErrorMessage.toption[@ocaml.doc"Provides additional information about the error."]}letmake?errorMessage=fun()->{errorMessage}letto_valuex=structure_to_value[("errorMessage",(Option.mapx.errorMessage~f:ErrorMessage.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=leterrorMessage=(Option.map~f:ErrorMessage.of_xml)(Xml.childxml_arg0"errorMessage")inmake?errorMessage()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=leterrorMessage=field_mapjson__"errorMessage"ErrorMessage.of_jsoninmake?errorMessage()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Indicates the error that was encountered while importing a resource."]moduleBatchUpdateRecommendationStatusFailedEntry=structtypenonrect={entryId:String255.toption[@ocaml.doc"An identifier of an entry in this batch that is used to communicate the result. The entryIds of a batch request need to be unique within a request."];errorMessage:ErrorMessage.toption[@ocaml.doc"Indicates the error that occurred while excluding an operational recommendation."]}letmake?entryId=fun?errorMessage->fun()->{entryId;errorMessage}letto_valuex=structure_to_value[("entryId",(Option.mapx.entryId~f:String255.to_value));("errorMessage",(Option.mapx.errorMessage~f:ErrorMessage.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=leterrorMessage=(Option.map~f:ErrorMessage.of_xml)(Xml.childxml_arg0"errorMessage")inletentryId=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"entryId")inmake?errorMessage?entryId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=leterrorMessage=field_mapjson__"errorMessage"ErrorMessage.of_jsoninletentryId=field_mapjson__"entryId"String255.of_jsoninmake?errorMessage?entryId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"List of operational recommendations that did not get included or excluded."]moduleBatchUpdateRecommendationStatusSuccessfulEntry=structtypenonrect={appComponentId:EntityName255.toption[@ocaml.doc"Indicates the identifier of an AppComponent."];entryId:String255.toption[@ocaml.doc"An identifier for an entry in this batch that is used to communicate the result. The entryIds of a batch request need to be unique within a request."];excludeReason:ExcludeRecommendationReason.toption[@ocaml.doc"Indicates the reason for excluding an operational recommendation."];excluded:BooleanOptional.toption[@ocaml.doc"Indicates if the operational recommendation was successfully excluded."];item:UpdateRecommendationStatusItem.toption[@ocaml.doc"The operational recommendation item."];referenceId:SpecReferenceId.toption[@ocaml.doc"Reference identifier of the operational recommendation."]}letmake?appComponentId=fun?entryId->fun?excludeReason->fun?excluded->fun?item->fun?referenceId->fun()->{appComponentId;entryId;excludeReason;excluded;item;referenceId}letto_valuex=structure_to_value[("appComponentId",(Option.mapx.appComponentId~f:EntityName255.to_value));("entryId",(Option.mapx.entryId~f:String255.to_value));("excludeReason",(Option.mapx.excludeReason~f:ExcludeRecommendationReason.to_value));("excluded",(Option.mapx.excluded~f:BooleanOptional.to_value));("item",(Option.mapx.item~f:UpdateRecommendationStatusItem.to_value));("referenceId",(Option.mapx.referenceId~f:SpecReferenceId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letreferenceId=(Option.map~f:SpecReferenceId.of_xml)(Xml.childxml_arg0"referenceId")inletitem=(Option.map~f:UpdateRecommendationStatusItem.of_xml)(Xml.childxml_arg0"item")inletexcluded=(Option.map~f:BooleanOptional.of_xml)(Xml.childxml_arg0"excluded")inletexcludeReason=(Option.map~f:ExcludeRecommendationReason.of_xml)(Xml.childxml_arg0"excludeReason")inletentryId=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"entryId")inletappComponentId=(Option.map~f:EntityName255.of_xml)(Xml.childxml_arg0"appComponentId")inmake?referenceId?item?excluded?excludeReason?entryId?appComponentId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letreferenceId=field_mapjson__"referenceId"SpecReferenceId.of_jsoninletitem=field_mapjson__"item"UpdateRecommendationStatusItem.of_jsoninletexcluded=field_mapjson__"excluded"BooleanOptional.of_jsoninletexcludeReason=field_mapjson__"excludeReason"ExcludeRecommendationReason.of_jsoninletentryId=field_mapjson__"entryId"String255.of_jsoninletappComponentId=field_mapjson__"appComponentId"EntityName255.of_jsoninmake?referenceId?item?excluded?excludeReason?entryId?appComponentId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"List of operational recommendations that were successfully included or excluded."]moduleUpdateRecommendationStatusRequestEntry=structtypenonrect={appComponentId:EntityName255.toption[@ocaml.doc"Indicates the identifier of the AppComponent."];entryId:String255.t[@ocaml.doc"An identifier for an entry in this batch that is used to communicate the result. The entryIds of a batch request need to be unique within a request."];excludeReason:ExcludeRecommendationReason.toption[@ocaml.doc"Indicates the reason for excluding an operational recommendation."];excluded:BooleanOptional.t[@ocaml.doc"Indicates if the operational recommendation needs to be excluded. If set to True, the operational recommendation will be excluded."];item:UpdateRecommendationStatusItem.toption[@ocaml.doc"The operational recommendation item."];referenceId:SpecReferenceId.t[@ocaml.doc"Reference identifier of the operational recommendation item."]}letcontext_="UpdateRecommendationStatusRequestEntry"letmake?appComponentId=fun?excludeReason->fun?item->fun~entryId->fun~excluded->fun~referenceId->fun()->{appComponentId;excludeReason;item;entryId;excluded;referenceId}letto_valuex=structure_to_value[("appComponentId",(Option.mapx.appComponentId~f:EntityName255.to_value));("entryId",(Some(String255.to_valuex.entryId)));("excludeReason",(Option.mapx.excludeReason~f:ExcludeRecommendationReason.to_value));("excluded",(Some(BooleanOptional.to_valuex.excluded)));("item",(Option.mapx.item~f:UpdateRecommendationStatusItem.to_value));("referenceId",(Some(SpecReferenceId.to_valuex.referenceId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letreferenceId=SpecReferenceId.of_xml(Xml.child_exn~context:context_xml_arg0"referenceId")inletitem=(Option.map~f:UpdateRecommendationStatusItem.of_xml)(Xml.childxml_arg0"item")inletexcluded=BooleanOptional.of_xml(Xml.child_exn~context:context_xml_arg0"excluded")inletexcludeReason=(Option.map~f:ExcludeRecommendationReason.of_xml)(Xml.childxml_arg0"excludeReason")inletentryId=String255.of_xml(Xml.child_exn~context:context_xml_arg0"entryId")inletappComponentId=(Option.map~f:EntityName255.of_xml)(Xml.childxml_arg0"appComponentId")inmake~referenceId?item~excluded?excludeReason~entryId?appComponentId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letreferenceId=field_map_exnjson__"referenceId"SpecReferenceId.of_jsoninletitem=field_mapjson__"item"UpdateRecommendationStatusItem.of_jsoninletexcluded=field_map_exnjson__"excluded"BooleanOptional.of_jsoninletexcludeReason=field_mapjson__"excludeReason"ExcludeRecommendationReason.of_jsoninletentryId=field_map_exnjson__"entryId"String255.of_jsoninletappComponentId=field_mapjson__"appComponentId"EntityName255.of_jsoninmake~referenceId?item~excluded?excludeReason~entryId?appComponentId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Defines the operational recommendation item that is to be included or excluded."]moduleAcceptGroupingRecommendationEntry=structtypenonrect={groupingRecommendationId:String255.t[@ocaml.doc"Indicates the identifier of the grouping recommendation."]}letcontext_="AcceptGroupingRecommendationEntry"letmake~groupingRecommendationId=fun()->{groupingRecommendationId}letto_valuex=structure_to_value[("groupingRecommendationId",(Some(String255.to_valuex.groupingRecommendationId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgroupingRecommendationId=String255.of_xml(Xml.child_exn~context:context_xml_arg0"groupingRecommendationId")inmake~groupingRecommendationId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgroupingRecommendationId=field_map_exnjson__"groupingRecommendationId"String255.of_jsoninmake~groupingRecommendationId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Indicates the grouping recommendation you have accepted to include in your application."]moduleAccessDeniedException=structtypenonrect={message:String500.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:String500.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"String500.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"You don't have permissions to perform the requested operation. The user or role that is making the request must have at least one IAM permissions policy attached that grants the required permissions."]moduleConflictException=structtypenonrect={message:String500.toption;resourceId:ResourceId.toption[@ocaml.doc"The identifier of the resource that the exception applies to."];resourceType:ResourceType.toption[@ocaml.doc"The type of the resource that the exception applies to."]}letmake?message=fun?resourceId->fun?resourceType->fun()->{message;resourceId;resourceType}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:String500.to_value));("resourceId",(Option.mapx.resourceId~f:ResourceId.to_value));("resourceType",(Option.mapx.resourceType~f:ResourceType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceType=(Option.map~f:ResourceType.of_xml)(Xml.childxml_arg0"resourceType")inletresourceId=(Option.map~f:ResourceId.of_xml)(Xml.childxml_arg0"resourceId")inletmessage=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"message")inmake?resourceType?resourceId?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceType=field_mapjson__"resourceType"ResourceType.of_jsoninletresourceId=field_mapjson__"resourceId"ResourceId.of_jsoninletmessage=field_mapjson__"message"String500.of_jsoninmake?resourceType?resourceId?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"This exception occurs when a conflict with a previous successful write is detected. This generally occurs when the previous write did not have time to propagate to the host serving the current request. A retry (with appropriate backoff logic) is the recommended response to this exception."]moduleInternalServerException=structtypenonrect={message:String500.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:String500.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"String500.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"This exception occurs when there is an internal failure in the Resilience Hub service."]moduleResourceNotFoundException=structtypenonrect={message:String500.toption;resourceId:ResourceId.toption[@ocaml.doc"The identifier of the resource that the exception applies to."];resourceType:ResourceType.toption[@ocaml.doc"The type of the resource that the exception applies to."]}letmake?message=fun?resourceId->fun?resourceType->fun()->{message;resourceId;resourceType}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:String500.to_value));("resourceId",(Option.mapx.resourceId~f:ResourceId.to_value));("resourceType",(Option.mapx.resourceType~f:ResourceType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceType=(Option.map~f:ResourceType.of_xml)(Xml.childxml_arg0"resourceType")inletresourceId=(Option.map~f:ResourceId.of_xml)(Xml.childxml_arg0"resourceId")inletmessage=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"message")inmake?resourceType?resourceId?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceType=field_mapjson__"resourceType"ResourceType.of_jsoninletresourceId=field_mapjson__"resourceId"ResourceId.of_jsoninletmessage=field_mapjson__"message"String500.of_jsoninmake?resourceType?resourceId?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"This exception occurs when the specified resource could not be found."]moduleThrottlingException=structtypenonrect={message:String500.toption;retryAfterSeconds:RetryAfterSeconds.toption[@ocaml.doc"The number of seconds to wait before retrying the operation."]}letmake?message=fun?retryAfterSeconds->fun()->{message;retryAfterSeconds}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:String500.to_value));("retryAfterSeconds",(Option.mapx.retryAfterSeconds~f:RetryAfterSeconds.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letretryAfterSeconds=(Option.map~f:RetryAfterSeconds.of_xml)(Xml.childxml_arg0"retryAfterSeconds")inletmessage=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"message")inmake?retryAfterSeconds?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letretryAfterSeconds=field_mapjson__"retryAfterSeconds"RetryAfterSeconds.of_jsoninletmessage=field_mapjson__"message"String500.of_jsoninmake?retryAfterSeconds?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"This exception occurs when you have exceeded the limit on the number of requests per second."]moduleValidationException=structtypenonrect={message:String500.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:String500.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"String500.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"This exception occurs when a request is not valid."]moduleServiceQuotaExceededException=structtypenonrect={message:String500.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:String500.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"String500.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"This exception occurs when you have exceeded your service quota. To perform the requested action, remove some of the relevant resources, or use Service Quotas to request a service quota increase."]moduleString2048=structtypenonrect=stringletcontext_="String2048"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:2048)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"String2048"jletto_json=simple_to_jsonto_valueendmoduleApp=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];assessmentSchedule:AppAssessmentScheduleType.toption[@ocaml.doc"Assessment execution schedule with 'Daily' or 'Disabled' values."];awsApplicationArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of Resource Groups group that is integrated with an AppRegistry application. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];complianceStatus:AppComplianceStatusType.toption[@ocaml.doc"Current status of compliance for the resiliency policy."];creationTime:TimeStamp.toption[@ocaml.doc"Date and time when the application was created."];description:EntityDescription.toption[@ocaml.doc"Optional description for an application."];driftStatus:AppDriftStatusType.toption[@ocaml.doc"Indicates if compliance drifts (deviations) were detected while running an assessment for your application."];eventSubscriptions:EventSubscriptionList.toption[@ocaml.doc"The list of events you would like to subscribe and get notification for. Currently, Resilience Hub supports notifications only for Drift detected and Scheduled assessment failure events."];lastAppComplianceEvaluationTime:TimeStamp.toption[@ocaml.doc"Date and time the most recent compliance evaluation."];lastDriftEvaluationTime:TimeStamp.toption[@ocaml.doc"Indicates the last time that a drift was evaluated."];lastResiliencyScoreEvaluationTime:TimeStamp.toption[@ocaml.doc"Date and time the most recent resiliency score evaluation."];name:EntityName.toption[@ocaml.doc"Name for the application."];permissionModel:PermissionModel.toption[@ocaml.doc"Defines the roles and credentials that Resilience Hub would use while creating the application, importing its resources, and running an assessment."];policyArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the resiliency policy. The format for this ARN is: arn:partition:resiliencehub:region:account:resiliency-policy/policy-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];resiliencyScore:Double.toption[@ocaml.doc"Current resiliency score for the application."];rpoInSecs:IntegerOptional.toption[@ocaml.doc"Recovery Point Objective (RPO) in seconds."];rtoInSecs:IntegerOptional.toption[@ocaml.doc"Recovery Time Objective (RTO) in seconds."];status:AppStatusType.toption[@ocaml.doc"Status of the application."];tags:TagMap.toption[@ocaml.doc"Tags assigned to the resource. A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key/value pair."]}letmake?appArn=fun?assessmentSchedule->fun?awsApplicationArn->fun?complianceStatus->fun?creationTime->fun?description->fun?driftStatus->fun?eventSubscriptions->fun?lastAppComplianceEvaluationTime->fun?lastDriftEvaluationTime->fun?lastResiliencyScoreEvaluationTime->fun?name->fun?permissionModel->fun?policyArn->fun?resiliencyScore->fun?rpoInSecs->fun?rtoInSecs->fun?status->fun?tags->fun()->{appArn;assessmentSchedule;awsApplicationArn;complianceStatus;creationTime;description;driftStatus;eventSubscriptions;lastAppComplianceEvaluationTime;lastDriftEvaluationTime;lastResiliencyScoreEvaluationTime;name;permissionModel;policyArn;resiliencyScore;rpoInSecs;rtoInSecs;status;tags}letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("assessmentSchedule",(Option.mapx.assessmentSchedule~f:AppAssessmentScheduleType.to_value));("awsApplicationArn",(Option.mapx.awsApplicationArn~f:Arn.to_value));("complianceStatus",(Option.mapx.complianceStatus~f:AppComplianceStatusType.to_value));("creationTime",(Option.mapx.creationTime~f:TimeStamp.to_value));("description",(Option.mapx.description~f:EntityDescription.to_value));("driftStatus",(Option.mapx.driftStatus~f:AppDriftStatusType.to_value));("eventSubscriptions",(Option.mapx.eventSubscriptions~f:EventSubscriptionList.to_value));("lastAppComplianceEvaluationTime",(Option.mapx.lastAppComplianceEvaluationTime~f:TimeStamp.to_value));("lastDriftEvaluationTime",(Option.mapx.lastDriftEvaluationTime~f:TimeStamp.to_value));("lastResiliencyScoreEvaluationTime",(Option.mapx.lastResiliencyScoreEvaluationTime~f:TimeStamp.to_value));("name",(Option.mapx.name~f:EntityName.to_value));("permissionModel",(Option.mapx.permissionModel~f:PermissionModel.to_value));("policyArn",(Option.mapx.policyArn~f:Arn.to_value));("resiliencyScore",(Option.mapx.resiliencyScore~f:Double.to_value));("rpoInSecs",(Option.mapx.rpoInSecs~f:IntegerOptional.to_value));("rtoInSecs",(Option.mapx.rtoInSecs~f:IntegerOptional.to_value));("status",(Option.mapx.status~f:AppStatusType.to_value));("tags",(Option.mapx.tags~f:TagMap.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:TagMap.of_xml)(Xml.childxml_arg0"tags")inletstatus=(Option.map~f:AppStatusType.of_xml)(Xml.childxml_arg0"status")inletrtoInSecs=(Option.map~f:IntegerOptional.of_xml)(Xml.childxml_arg0"rtoInSecs")inletrpoInSecs=(Option.map~f:IntegerOptional.of_xml)(Xml.childxml_arg0"rpoInSecs")inletresiliencyScore=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"resiliencyScore")inletpolicyArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"policyArn")inletpermissionModel=(Option.map~f:PermissionModel.of_xml)(Xml.childxml_arg0"permissionModel")inletname=(Option.map~f:EntityName.of_xml)(Xml.childxml_arg0"name")inletlastResiliencyScoreEvaluationTime=(Option.map~f:TimeStamp.of_xml)(Xml.childxml_arg0"lastResiliencyScoreEvaluationTime")inletlastDriftEvaluationTime=(Option.map~f:TimeStamp.of_xml)(Xml.childxml_arg0"lastDriftEvaluationTime")inletlastAppComplianceEvaluationTime=(Option.map~f:TimeStamp.of_xml)(Xml.childxml_arg0"lastAppComplianceEvaluationTime")inleteventSubscriptions=(Option.map~f:EventSubscriptionList.of_xml)(Xml.childxml_arg0"eventSubscriptions")inletdriftStatus=(Option.map~f:AppDriftStatusType.of_xml)(Xml.childxml_arg0"driftStatus")inletdescription=(Option.map~f:EntityDescription.of_xml)(Xml.childxml_arg0"description")inletcreationTime=(Option.map~f:TimeStamp.of_xml)(Xml.childxml_arg0"creationTime")inletcomplianceStatus=(Option.map~f:AppComplianceStatusType.of_xml)(Xml.childxml_arg0"complianceStatus")inletawsApplicationArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"awsApplicationArn")inletassessmentSchedule=(Option.map~f:AppAssessmentScheduleType.of_xml)(Xml.childxml_arg0"assessmentSchedule")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?tags?status?rtoInSecs?rpoInSecs?resiliencyScore?policyArn?permissionModel?name?lastResiliencyScoreEvaluationTime?lastDriftEvaluationTime?lastAppComplianceEvaluationTime?eventSubscriptions?driftStatus?description?creationTime?complianceStatus?awsApplicationArn?assessmentSchedule?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"tags"TagMap.of_jsoninletstatus=field_mapjson__"status"AppStatusType.of_jsoninletrtoInSecs=field_mapjson__"rtoInSecs"IntegerOptional.of_jsoninletrpoInSecs=field_mapjson__"rpoInSecs"IntegerOptional.of_jsoninletresiliencyScore=field_mapjson__"resiliencyScore"Double.of_jsoninletpolicyArn=field_mapjson__"policyArn"Arn.of_jsoninletpermissionModel=field_mapjson__"permissionModel"PermissionModel.of_jsoninletname=field_mapjson__"name"EntityName.of_jsoninletlastResiliencyScoreEvaluationTime=field_mapjson__"lastResiliencyScoreEvaluationTime"TimeStamp.of_jsoninletlastDriftEvaluationTime=field_mapjson__"lastDriftEvaluationTime"TimeStamp.of_jsoninletlastAppComplianceEvaluationTime=field_mapjson__"lastAppComplianceEvaluationTime"TimeStamp.of_jsoninleteventSubscriptions=field_mapjson__"eventSubscriptions"EventSubscriptionList.of_jsoninletdriftStatus=field_mapjson__"driftStatus"AppDriftStatusType.of_jsoninletdescription=field_mapjson__"description"EntityDescription.of_jsoninletcreationTime=field_mapjson__"creationTime"TimeStamp.of_jsoninletcomplianceStatus=field_mapjson__"complianceStatus"AppComplianceStatusType.of_jsoninletawsApplicationArn=field_mapjson__"awsApplicationArn"Arn.of_jsoninletassessmentSchedule=field_mapjson__"assessmentSchedule"AppAssessmentScheduleType.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?tags?status?rtoInSecs?rpoInSecs?resiliencyScore?policyArn?permissionModel?name?lastResiliencyScoreEvaluationTime?lastDriftEvaluationTime?lastAppComplianceEvaluationTime?eventSubscriptions?driftStatus?description?creationTime?complianceStatus?awsApplicationArn?assessmentSchedule?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Defines an Resilience Hub application."]moduleTagKeyList=structtypenonrect=TagKey.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:50)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:TagKey.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:TagKey.of_xml)letof_jsonj=list_of_json~kind:"TagKeyList"~of_json:TagKey.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleResourcesGroupingRecGenStatusType=structtypenonrect=|Pending|InProgress|Failed|Success|Non_static_idofstringletmakei=iletto_string=function|Pending->"Pending"|InProgress->"InProgress"|Failed->"Failed"|Success->"Success"|Non_static_ids->sletof_string=function|"Pending"->Pending|"InProgress"->InProgress|"Failed"->Failed|"Success"->Success|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration ResourcesGroupingRecGenStatusType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ResourcesGroupingRecGenStatusType"j)letto_json=simple_to_jsonto_valueendmoduleMetricsExportStatusType=structtypenonrect=|Pending|InProgress|Failed|Success|Non_static_idofstringletmakei=iletto_string=function|Pending->"Pending"|InProgress->"InProgress"|Failed->"Failed"|Success->"Success"|Non_static_ids->sletof_string=function|"Pending"->Pending|"InProgress"->InProgress|"Failed"->Failed|"Success"->Success|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration MetricsExportStatusType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"MetricsExportStatusType"j)letto_json=simple_to_jsonto_valueendmoduleClientToken=structtypenonrect=stringletcontext_="ClientToken"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:63)>>=(fun()->check_patterni~pattern:"^[A-Za-z0-9_.-]{0,63}$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ClientToken"jletto_json=simple_to_jsonto_valueendmoduleAppAssessment=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.toption[@ocaml.doc"Version of an application."];assessmentArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];assessmentName:EntityName.toption[@ocaml.doc"Name of the assessment."];assessmentStatus:AssessmentStatus.toption[@ocaml.doc"Current status of the assessment for the resiliency policy."];compliance:AssessmentCompliance.toption[@ocaml.doc"Application compliance against the resiliency policy."];complianceStatus:ComplianceStatus.toption[@ocaml.doc"Current status of the compliance for the resiliency policy."];cost:Cost.toption[@ocaml.doc"Cost for the application."];driftStatus:DriftStatus.toption[@ocaml.doc"Indicates if compliance drifts (deviations) were detected while running an assessment for your application."];endTime:TimeStamp.toption[@ocaml.doc"End time for the action."];invoker:AssessmentInvoker.toption[@ocaml.doc"The entity that invoked the assessment."];message:String500.toption[@ocaml.doc"Error or warning message from the assessment execution"];policy:ResiliencyPolicy.toption[@ocaml.doc"Resiliency policy of an application."];resiliencyScore:ResiliencyScore.toption[@ocaml.doc"Current resiliency score for an application."];resourceErrorsDetails:ResourceErrorsDetails.toption[@ocaml.doc"A resource error object containing a list of errors retrieving an application's resources."];startTime:TimeStamp.toption[@ocaml.doc"Starting time for the action."];summary:AssessmentSummary.toption[@ocaml.doc"Indicates the AI-generated summary for the Resilience Hub assessment, providing a concise overview that highlights the top risks and recommendations. This property is available only in the US East (N. Virginia) Region."];tags:TagMap.toption[@ocaml.doc"Tags assigned to the resource. A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key/value pair."];versionName:EntityVersion.toption[@ocaml.doc"Version name of the published application."]}letmake?appArn=fun?appVersion->fun?assessmentArn->fun?assessmentName->fun?assessmentStatus->fun?compliance->fun?complianceStatus->fun?cost->fun?driftStatus->fun?endTime->fun?invoker->fun?message->fun?policy->fun?resiliencyScore->fun?resourceErrorsDetails->fun?startTime->fun?summary->fun?tags->fun?versionName->fun()->{appArn;appVersion;assessmentArn;assessmentName;assessmentStatus;compliance;complianceStatus;cost;driftStatus;endTime;invoker;message;policy;resiliencyScore;resourceErrorsDetails;startTime;summary;tags;versionName}letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("appVersion",(Option.mapx.appVersion~f:EntityVersion.to_value));("assessmentArn",(Option.mapx.assessmentArn~f:Arn.to_value));("assessmentName",(Option.mapx.assessmentName~f:EntityName.to_value));("assessmentStatus",(Option.mapx.assessmentStatus~f:AssessmentStatus.to_value));("compliance",(Option.mapx.compliance~f:AssessmentCompliance.to_value));("complianceStatus",(Option.mapx.complianceStatus~f:ComplianceStatus.to_value));("cost",(Option.mapx.cost~f:Cost.to_value));("driftStatus",(Option.mapx.driftStatus~f:DriftStatus.to_value));("endTime",(Option.mapx.endTime~f:TimeStamp.to_value));("invoker",(Option.mapx.invoker~f:AssessmentInvoker.to_value));("message",(Option.mapx.message~f:String500.to_value));("policy",(Option.mapx.policy~f:ResiliencyPolicy.to_value));("resiliencyScore",(Option.mapx.resiliencyScore~f:ResiliencyScore.to_value));("resourceErrorsDetails",(Option.mapx.resourceErrorsDetails~f:ResourceErrorsDetails.to_value));("startTime",(Option.mapx.startTime~f:TimeStamp.to_value));("summary",(Option.mapx.summary~f:AssessmentSummary.to_value));("tags",(Option.mapx.tags~f:TagMap.to_value));("versionName",(Option.mapx.versionName~f:EntityVersion.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letversionName=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"versionName")inlettags=(Option.map~f:TagMap.of_xml)(Xml.childxml_arg0"tags")inletsummary=(Option.map~f:AssessmentSummary.of_xml)(Xml.childxml_arg0"summary")inletstartTime=(Option.map~f:TimeStamp.of_xml)(Xml.childxml_arg0"startTime")inletresourceErrorsDetails=(Option.map~f:ResourceErrorsDetails.of_xml)(Xml.childxml_arg0"resourceErrorsDetails")inletresiliencyScore=(Option.map~f:ResiliencyScore.of_xml)(Xml.childxml_arg0"resiliencyScore")inletpolicy=(Option.map~f:ResiliencyPolicy.of_xml)(Xml.childxml_arg0"policy")inletmessage=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"message")inletinvoker=(Option.map~f:AssessmentInvoker.of_xml)(Xml.childxml_arg0"invoker")inletendTime=(Option.map~f:TimeStamp.of_xml)(Xml.childxml_arg0"endTime")inletdriftStatus=(Option.map~f:DriftStatus.of_xml)(Xml.childxml_arg0"driftStatus")inletcost=(Option.map~f:Cost.of_xml)(Xml.childxml_arg0"cost")inletcomplianceStatus=(Option.map~f:ComplianceStatus.of_xml)(Xml.childxml_arg0"complianceStatus")inletcompliance=(Option.map~f:AssessmentCompliance.of_xml)(Xml.childxml_arg0"compliance")inletassessmentStatus=(Option.map~f:AssessmentStatus.of_xml)(Xml.childxml_arg0"assessmentStatus")inletassessmentName=(Option.map~f:EntityName.of_xml)(Xml.childxml_arg0"assessmentName")inletassessmentArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"assessmentArn")inletappVersion=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"appVersion")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?versionName?tags?summary?startTime?resourceErrorsDetails?resiliencyScore?policy?message?invoker?endTime?driftStatus?cost?complianceStatus?compliance?assessmentStatus?assessmentName?assessmentArn?appVersion?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letversionName=field_mapjson__"versionName"EntityVersion.of_jsoninlettags=field_mapjson__"tags"TagMap.of_jsoninletsummary=field_mapjson__"summary"AssessmentSummary.of_jsoninletstartTime=field_mapjson__"startTime"TimeStamp.of_jsoninletresourceErrorsDetails=field_mapjson__"resourceErrorsDetails"ResourceErrorsDetails.of_jsoninletresiliencyScore=field_mapjson__"resiliencyScore"ResiliencyScore.of_jsoninletpolicy=field_mapjson__"policy"ResiliencyPolicy.of_jsoninletmessage=field_mapjson__"message"String500.of_jsoninletinvoker=field_mapjson__"invoker"AssessmentInvoker.of_jsoninletendTime=field_mapjson__"endTime"TimeStamp.of_jsoninletdriftStatus=field_mapjson__"driftStatus"DriftStatus.of_jsoninletcost=field_mapjson__"cost"Cost.of_jsoninletcomplianceStatus=field_mapjson__"complianceStatus"ComplianceStatus.of_jsoninletcompliance=field_mapjson__"compliance"AssessmentCompliance.of_jsoninletassessmentStatus=field_mapjson__"assessmentStatus"AssessmentStatus.of_jsoninletassessmentName=field_mapjson__"assessmentName"EntityName.of_jsoninletassessmentArn=field_mapjson__"assessmentArn"Arn.of_jsoninletappVersion=field_mapjson__"appVersion"EntityVersion.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?versionName?tags?summary?startTime?resourceErrorsDetails?resiliencyScore?policy?message?invoker?endTime?driftStatus?cost?complianceStatus?compliance?assessmentStatus?assessmentName?assessmentArn?appVersion?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Defines an application assessment."]moduleResourceResolutionStatusType=structtypenonrect=|Pending|InProgress|Failed|Success|Non_static_idofstringletmakei=iletto_string=function|Pending->"Pending"|InProgress->"InProgress"|Failed->"Failed"|Success->"Success"|Non_static_ids->sletof_string=function|"Pending"->Pending|"InProgress"->InProgress|"Failed"->Failed|"Success"->Success|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration ResourceResolutionStatusType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ResourceResolutionStatusType"j)letto_json=simple_to_jsonto_valueendmoduleEntityNameList=structtypenonrect=EntityName.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:EntityName.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:EntityName.of_xml)letof_jsonj=list_of_json~kind:"EntityNameList"~of_json:EntityName.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleFailedGroupingRecommendationEntries=structtypenonrect=FailedGroupingRecommendationEntry.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:FailedGroupingRecommendationEntry.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:FailedGroupingRecommendationEntry.of_xml)letof_jsonj=list_of_json~kind:"FailedGroupingRecommendationEntries"~of_json:FailedGroupingRecommendationEntry.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleRejectGroupingRecommendationEntries=structtypenonrect=RejectGroupingRecommendationEntry.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:30)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:RejectGroupingRecommendationEntry.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:RejectGroupingRecommendationEntry.of_xml)letof_jsonj=list_of_json~kind:"RejectGroupingRecommendationEntries"~of_json:RejectGroupingRecommendationEntry.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAppTemplateBody=structtypenonrect=stringletcontext_="AppTemplateBody"letmakei=letopenResultinok_or_failwith((check_string_mini~min:0)>>=(fun()->(check_string_maxi~max:409600)>>=(fun()->check_patterni~pattern:"^[\\w\\s:,-\\.'\\/{}\\[\\]:\"\\\\]+$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"AppTemplateBody"jletto_json=simple_to_jsonto_valueendmoduleNextToken=structtypenonrect=stringletcontext_="NextToken"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^\\S{1,2000}$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"NextToken"jletto_json=simple_to_jsonto_valueendmoduleUnsupportedResourceList=structtypenonrect=UnsupportedResource.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:UnsupportedResource.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:UnsupportedResource.of_xml)letof_jsonj=list_of_json~kind:"UnsupportedResourceList"~of_json:UnsupportedResource.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleMaxResults=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:100)>>=(fun()->check_int_mini~min:1));iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for MaxResults"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleTestRecommendationList=structtypenonrect=TestRecommendation.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:TestRecommendation.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:TestRecommendation.of_xml)letof_jsonj=list_of_json~kind:"TestRecommendationList"~of_json:TestRecommendation.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleResiliencyPolicies=structtypenonrect=ResiliencyPolicy.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ResiliencyPolicy.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:ResiliencyPolicy.of_xml)letof_jsonj=list_of_json~kind:"ResiliencyPolicies"~of_json:ResiliencyPolicy.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleSopRecommendationList=structtypenonrect=SopRecommendation.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:SopRecommendation.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:SopRecommendation.of_xml)letof_jsonj=list_of_json~kind:"SopRecommendationList"~of_json:SopRecommendation.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleGroupingRecommendationList=structtypenonrect=GroupingRecommendation.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:GroupingRecommendation.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:GroupingRecommendation.of_xml)letof_jsonj=list_of_json~kind:"GroupingRecommendationList"~of_json:GroupingRecommendation.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleRecommendationTemplateList=structtypenonrect=RecommendationTemplate.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:RecommendationTemplate.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:RecommendationTemplate.of_xml)letof_jsonj=list_of_json~kind:"RecommendationTemplateList"~of_json:RecommendationTemplate.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleRecommendationTemplateStatusList=structtypenonrect=RecommendationTemplateStatus.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:4)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:RecommendationTemplateStatus.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:RecommendationTemplateStatus.of_xml)letof_jsonj=list_of_json~kind:"RecommendationTemplateStatusList"~of_json:RecommendationTemplateStatus.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleRowList=structtypenonrect=Row.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Row.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:Row.of_xml)letof_jsonj=list_of_json~kind:"RowList"~of_json:Row.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleConditionList=structtypenonrect=Condition.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:50)>>=(fun()->check_list_mini~min:0));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Condition.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:Condition.of_xml)letof_jsonj=list_of_json~kind:"ConditionList"~of_json:Condition.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleFieldList=structtypenonrect=Field.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:50)>>=(fun()->check_list_mini~min:0));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Field.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:Field.of_xml)letof_jsonj=list_of_json~kind:"FieldList"~of_json:Field.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleSortList=structtypenonrect=Sort.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:50)>>=(fun()->check_list_mini~min:0));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Sort.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:Sort.of_xml)letof_jsonj=list_of_json~kind:"SortList"~of_json:Sort.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAppSummaryList=structtypenonrect=AppSummary.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:AppSummary.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:AppSummary.of_xml)letof_jsonj=list_of_json~kind:"AppSummaryList"~of_json:AppSummary.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAppVersionList=structtypenonrect=AppVersionSummary.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:AppVersionSummary.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:AppVersionSummary.of_xml)letof_jsonj=list_of_json~kind:"AppVersionList"~of_json:AppVersionSummary.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmodulePhysicalResourceList=structtypenonrect=PhysicalResource.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:PhysicalResource.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:PhysicalResource.of_xml)letof_jsonj=list_of_json~kind:"PhysicalResourceList"~of_json:PhysicalResource.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleResourceMappingList=structtypenonrect=ResourceMapping.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ResourceMapping.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:ResourceMapping.of_xml)letof_jsonj=list_of_json~kind:"ResourceMappingList"~of_json:ResourceMapping.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAppInputSourceList=structtypenonrect=AppInputSource.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:AppInputSource.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:AppInputSource.of_xml)letof_jsonj=list_of_json~kind:"AppInputSourceList"~of_json:AppInputSource.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleComponentRecommendationList=structtypenonrect=ComponentRecommendation.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ComponentRecommendation.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:ComponentRecommendation.of_xml)letof_jsonj=list_of_json~kind:"ComponentRecommendationList"~of_json:ComponentRecommendation.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleComponentCompliancesList=structtypenonrect=AppComponentCompliance.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:AppComponentCompliance.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:AppComponentCompliance.of_xml)letof_jsonj=list_of_json~kind:"ComponentCompliancesList"~of_json:AppComponentCompliance.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAppAssessmentSummaryList=structtypenonrect=AppAssessmentSummary.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:AppAssessmentSummary.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:AppAssessmentSummary.of_xml)letof_jsonj=list_of_json~kind:"AppAssessmentSummaryList"~of_json:AppAssessmentSummary.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAssessmentStatusList=structtypenonrect=AssessmentStatus.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:10)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:AssessmentStatus.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:AssessmentStatus.of_xml)letof_jsonj=list_of_json~kind:"AssessmentStatusList"~of_json:AssessmentStatus.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleResourceDriftList=structtypenonrect=ResourceDrift.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ResourceDrift.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:ResourceDrift.of_xml)letof_jsonj=list_of_json~kind:"ResourceDriftList"~of_json:ResourceDrift.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleComplianceDriftList=structtypenonrect=ComplianceDrift.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ComplianceDrift.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:ComplianceDrift.of_xml)letof_jsonj=list_of_json~kind:"ComplianceDriftList"~of_json:ComplianceDrift.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAlarmRecommendationList=structtypenonrect=AlarmRecommendation.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:AlarmRecommendation.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:AlarmRecommendation.of_xml)letof_jsonj=list_of_json~kind:"AlarmRecommendationList"~of_json:AlarmRecommendation.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleArnList=structtypenonrect=Arn.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Arn.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:Arn.of_xml)letof_jsonj=list_of_json~kind:"ArnList"~of_json:Arn.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleEksSourceList=structtypenonrect=EksSource.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:EksSource.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:EksSource.of_xml)letof_jsonj=list_of_json~kind:"EksSourceList"~of_json:EksSource.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleResourceImportStatusType=structtypenonrect=|Pending|InProgress|Failed|Success|Non_static_idofstringletmakei=iletto_string=function|Pending->"Pending"|InProgress->"InProgress"|Failed->"Failed"|Success->"Success"|Non_static_ids->sletof_string=function|"Pending"->Pending|"InProgress"->InProgress|"Failed"->Failed|"Success"->Success|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration ResourceImportStatusType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ResourceImportStatusType"j)letto_json=simple_to_jsonto_valueendmoduleTerraformSourceList=structtypenonrect=TerraformSource.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:TerraformSource.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:TerraformSource.of_xml)letof_jsonj=list_of_json~kind:"TerraformSourceList"~of_json:TerraformSource.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleResourceImportStrategyType=structtypenonrect=|AddOnly|ReplaceAll|Non_static_idofstringletmakei=iletto_string=function|AddOnly->"AddOnly"|ReplaceAll->"ReplaceAll"|Non_static_ids->sletof_string=function|"AddOnly"->AddOnly|"ReplaceAll"->ReplaceAll|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration ResourceImportStrategyType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ResourceImportStrategyType"j)letto_json=simple_to_jsonto_valueendmoduleErrorDetailList=structtypenonrect=ErrorDetail.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ErrorDetail.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:ErrorDetail.of_xml)letof_jsonj=list_of_json~kind:"ErrorDetailList"~of_json:ErrorDetail.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleBatchUpdateRecommendationStatusFailedEntries=structtypenonrect=BatchUpdateRecommendationStatusFailedEntry.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:BatchUpdateRecommendationStatusFailedEntry.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:BatchUpdateRecommendationStatusFailedEntry.of_xml)letof_jsonj=list_of_json~kind:"BatchUpdateRecommendationStatusFailedEntries"~of_json:BatchUpdateRecommendationStatusFailedEntry.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleBatchUpdateRecommendationStatusSuccessfulEntries=structtypenonrect=BatchUpdateRecommendationStatusSuccessfulEntry.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:BatchUpdateRecommendationStatusSuccessfulEntry.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:BatchUpdateRecommendationStatusSuccessfulEntry.of_xml)letof_jsonj=list_of_json~kind:"BatchUpdateRecommendationStatusSuccessfulEntries"~of_json:BatchUpdateRecommendationStatusSuccessfulEntry.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleUpdateRecommendationStatusRequestEntries=structtypenonrect=UpdateRecommendationStatusRequestEntry.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:50)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:UpdateRecommendationStatusRequestEntry.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:UpdateRecommendationStatusRequestEntry.of_xml)letof_jsonj=list_of_json~kind:"UpdateRecommendationStatusRequestEntries"~of_json:UpdateRecommendationStatusRequestEntry.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAcceptGroupingRecommendationEntries=structtypenonrect=AcceptGroupingRecommendationEntry.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:30)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:AcceptGroupingRecommendationEntry.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:AcceptGroupingRecommendationEntry.of_xml)letof_jsonj=list_of_json~kind:"AcceptGroupingRecommendationEntries"~of_json:AcceptGroupingRecommendationEntry.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleUpdateResiliencyPolicyResponse=structtypenonrect={policy:ResiliencyPolicy.toption[@ocaml.doc"The resiliency policy that was updated, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?policy=fun()->{policy}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("policy",(Option.mapx.policy~f:ResiliencyPolicy.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpolicy=(Option.map~f:ResiliencyPolicy.of_xml)(Xml.childxml_arg0"policy")inmake?policy()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpolicy=field_mapjson__"policy"ResiliencyPolicy.of_jsoninmake?policy()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates a resiliency policy. Resilience Hub allows you to provide a value of zero for rtoInSecs and rpoInSecs of your resiliency policy. But, while assessing your application, the lowest possible assessment result is near zero. Hence, if you provide value zero for rtoInSecs and rpoInSecs, the estimated workload RTO and estimated workload RPO result will be near zero and the Compliance status for your application will be set to Policy breached."]moduleUpdateResiliencyPolicyRequest=structtypenonrect={dataLocationConstraint:DataLocationConstraint.toption[@ocaml.doc"Specifies a high-level geographical location constraint for where your resilience policy data can be stored."];policy:DisruptionPolicy.toption[@ocaml.doc"Resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds."];policyArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the resiliency policy. The format for this ARN is: arn:partition:resiliencehub:region:account:resiliency-policy/policy-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];policyDescription:EntityDescription.toption[@ocaml.doc"Description of the resiliency policy."];policyName:EntityName.toption[@ocaml.doc"Name of the resiliency policy."];tier:ResiliencyPolicyTier.toption[@ocaml.doc"The tier for this resiliency policy, ranging from the highest severity (MissionCritical) to lowest (NonCritical)."]}letcontext_="UpdateResiliencyPolicyRequest"letmake?dataLocationConstraint=fun?policy->fun?policyDescription->fun?policyName->fun?tier->fun~policyArn->fun()->{dataLocationConstraint;policy;policyDescription;policyName;tier;policyArn}letto_valuex=structure_to_value[("dataLocationConstraint",(Option.mapx.dataLocationConstraint~f:DataLocationConstraint.to_value));("policy",(Option.mapx.policy~f:DisruptionPolicy.to_value));("policyArn",(Some(Arn.to_valuex.policyArn)));("policyDescription",(Option.mapx.policyDescription~f:EntityDescription.to_value));("policyName",(Option.mapx.policyName~f:EntityName.to_value));("tier",(Option.mapx.tier~f:ResiliencyPolicyTier.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettier=(Option.map~f:ResiliencyPolicyTier.of_xml)(Xml.childxml_arg0"tier")inletpolicyName=(Option.map~f:EntityName.of_xml)(Xml.childxml_arg0"policyName")inletpolicyDescription=(Option.map~f:EntityDescription.of_xml)(Xml.childxml_arg0"policyDescription")inletpolicyArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"policyArn")inletpolicy=(Option.map~f:DisruptionPolicy.of_xml)(Xml.childxml_arg0"policy")inletdataLocationConstraint=(Option.map~f:DataLocationConstraint.of_xml)(Xml.childxml_arg0"dataLocationConstraint")inmake?tier?policyName?policyDescription~policyArn?policy?dataLocationConstraint()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettier=field_mapjson__"tier"ResiliencyPolicyTier.of_jsoninletpolicyName=field_mapjson__"policyName"EntityName.of_jsoninletpolicyDescription=field_mapjson__"policyDescription"EntityDescription.of_jsoninletpolicyArn=field_map_exnjson__"policyArn"Arn.of_jsoninletpolicy=field_mapjson__"policy"DisruptionPolicy.of_jsoninletdataLocationConstraint=field_mapjson__"dataLocationConstraint"DataLocationConstraint.of_jsoninmake?tier?policyName?policyDescription~policyArn?policy?dataLocationConstraint()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates a resiliency policy. Resilience Hub allows you to provide a value of zero for rtoInSecs and rpoInSecs of your resiliency policy. But, while assessing your application, the lowest possible assessment result is near zero. Hence, if you provide value zero for rtoInSecs and rpoInSecs, the estimated workload RTO and estimated workload RPO result will be near zero and the Compliance status for your application will be set to Policy breached."]moduleUpdateAppVersionResponse=structtypenonrect={additionalInfo:AdditionalInfoMap.toption[@ocaml.doc"Additional configuration parameters for an Resilience Hub application. If you want to implement additionalInfo through the Resilience Hub console rather than using an API call, see Configure the application configuration parameters. Currently, this parameter supports only failover region and account."];appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.toption[@ocaml.doc"Resilience Hub application version."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?additionalInfo=fun?appArn->fun?appVersion->fun()->{additionalInfo;appArn;appVersion}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("additionalInfo",(Option.mapx.additionalInfo~f:AdditionalInfoMap.to_value));("appArn",(Option.mapx.appArn~f:Arn.to_value));("appVersion",(Option.mapx.appVersion~f:EntityVersion.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letappVersion=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"appVersion")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inletadditionalInfo=(Option.map~f:AdditionalInfoMap.of_xml)(Xml.childxml_arg0"additionalInfo")inmake?appVersion?appArn?additionalInfo()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letappVersion=field_mapjson__"appVersion"EntityVersion.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninletadditionalInfo=field_mapjson__"additionalInfo"AdditionalInfoMap.of_jsoninmake?appVersion?appArn?additionalInfo()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates the Resilience Hub application version. This API updates the Resilience Hub application draft version. To use this information for running resiliency assessments, you must publish the Resilience Hub application using the PublishAppVersion API."]moduleUpdateAppVersionResourceResponse=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.toption[@ocaml.doc"Resilience Hub application version."];physicalResource:PhysicalResource.toption[@ocaml.doc"Defines a physical resource. A physical resource is a resource that exists in your account. It can be identified using an Amazon Resource Name (ARN) or a Resilience Hub-native identifier."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?appArn=fun?appVersion->fun?physicalResource->fun()->{appArn;appVersion;physicalResource}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceQuotaExceededExceptione->`Assoc[("error",(`String"ServiceQuotaExceededException"));("details",(ServiceQuotaExceededException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("appVersion",(Option.mapx.appVersion~f:EntityVersion.to_value));("physicalResource",(Option.mapx.physicalResource~f:PhysicalResource.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letphysicalResource=(Option.map~f:PhysicalResource.of_xml)(Xml.childxml_arg0"physicalResource")inletappVersion=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"appVersion")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?physicalResource?appVersion?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letphysicalResource=field_mapjson__"physicalResource"PhysicalResource.of_jsoninletappVersion=field_mapjson__"appVersion"EntityVersion.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?physicalResource?appVersion?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates the resource details in the Resilience Hub application. This action has no effect outside Resilience Hub. This API updates the Resilience Hub application draft version. To use this resource for running resiliency assessments, you must publish the Resilience Hub application using the PublishAppVersion API. To update application version with new physicalResourceID, you must call ResolveAppVersionResources API."]moduleUpdateAppVersionResourceRequest=structtypenonrect={additionalInfo:AdditionalInfoMap.toption[@ocaml.doc"Currently, there is no supported additional information for resources."];appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appComponents:AppComponentNameList.toption[@ocaml.doc"List of Application Components that this resource belongs to. If an Application Component is not part of the Resilience Hub application, it will be added."];awsAccountId:CustomerId.toption[@ocaml.doc"Amazon Web Services account that owns the physical resource."];awsRegion:AwsRegion.toption[@ocaml.doc"Amazon Web Services region that owns the physical resource."];excluded:BooleanOptional.toption[@ocaml.doc"Indicates if a resource is excluded from an Resilience Hub application. You can exclude only imported resources from an Resilience Hub application."];logicalResourceId:LogicalResourceId.toption[@ocaml.doc"Logical identifier of the resource."];physicalResourceId:String2048.toption[@ocaml.doc"Physical identifier of the resource."];resourceName:EntityName.toption[@ocaml.doc"Name of the resource."];resourceType:String255.toption[@ocaml.doc"Type of resource."]}letcontext_="UpdateAppVersionResourceRequest"letmake?additionalInfo=fun?appComponents->fun?awsAccountId->fun?awsRegion->fun?excluded->fun?logicalResourceId->fun?physicalResourceId->fun?resourceName->fun?resourceType->fun~appArn->fun()->{additionalInfo;appComponents;awsAccountId;awsRegion;excluded;logicalResourceId;physicalResourceId;resourceName;resourceType;appArn}letto_valuex=structure_to_value[("additionalInfo",(Option.mapx.additionalInfo~f:AdditionalInfoMap.to_value));("appArn",(Some(Arn.to_valuex.appArn)));("appComponents",(Option.mapx.appComponents~f:AppComponentNameList.to_value));("awsAccountId",(Option.mapx.awsAccountId~f:CustomerId.to_value));("awsRegion",(Option.mapx.awsRegion~f:AwsRegion.to_value));("excluded",(Option.mapx.excluded~f:BooleanOptional.to_value));("logicalResourceId",(Option.mapx.logicalResourceId~f:LogicalResourceId.to_value));("physicalResourceId",(Option.mapx.physicalResourceId~f:String2048.to_value));("resourceName",(Option.mapx.resourceName~f:EntityName.to_value));("resourceType",(Option.mapx.resourceType~f:String255.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceType=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"resourceType")inletresourceName=(Option.map~f:EntityName.of_xml)(Xml.childxml_arg0"resourceName")inletphysicalResourceId=(Option.map~f:String2048.of_xml)(Xml.childxml_arg0"physicalResourceId")inletlogicalResourceId=(Option.map~f:LogicalResourceId.of_xml)(Xml.childxml_arg0"logicalResourceId")inletexcluded=(Option.map~f:BooleanOptional.of_xml)(Xml.childxml_arg0"excluded")inletawsRegion=(Option.map~f:AwsRegion.of_xml)(Xml.childxml_arg0"awsRegion")inletawsAccountId=(Option.map~f:CustomerId.of_xml)(Xml.childxml_arg0"awsAccountId")inletappComponents=(Option.map~f:AppComponentNameList.of_xml)(Xml.childxml_arg0"appComponents")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inletadditionalInfo=(Option.map~f:AdditionalInfoMap.of_xml)(Xml.childxml_arg0"additionalInfo")inmake?resourceType?resourceName?physicalResourceId?logicalResourceId?excluded?awsRegion?awsAccountId?appComponents~appArn?additionalInfo()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceType=field_mapjson__"resourceType"String255.of_jsoninletresourceName=field_mapjson__"resourceName"EntityName.of_jsoninletphysicalResourceId=field_mapjson__"physicalResourceId"String2048.of_jsoninletlogicalResourceId=field_mapjson__"logicalResourceId"LogicalResourceId.of_jsoninletexcluded=field_mapjson__"excluded"BooleanOptional.of_jsoninletawsRegion=field_mapjson__"awsRegion"AwsRegion.of_jsoninletawsAccountId=field_mapjson__"awsAccountId"CustomerId.of_jsoninletappComponents=field_mapjson__"appComponents"AppComponentNameList.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninletadditionalInfo=field_mapjson__"additionalInfo"AdditionalInfoMap.of_jsoninmake?resourceType?resourceName?physicalResourceId?logicalResourceId?excluded?awsRegion?awsAccountId?appComponents~appArn?additionalInfo()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates the resource details in the Resilience Hub application. This action has no effect outside Resilience Hub. This API updates the Resilience Hub application draft version. To use this resource for running resiliency assessments, you must publish the Resilience Hub application using the PublishAppVersion API. To update application version with new physicalResourceID, you must call ResolveAppVersionResources API."]moduleUpdateAppVersionRequest=structtypenonrect={additionalInfo:AdditionalInfoMap.toption[@ocaml.doc"Additional configuration parameters for an Resilience Hub application. If you want to implement additionalInfo through the Resilience Hub console rather than using an API call, see Configure the application configuration parameters. Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account. Key: \"failover-regions\" Value: \"\\[\\{\"region\":\"<REGION>\", \"accounts\":\\[\\{\"id\":\"<ACCOUNT_ID>\"\\}\\]\\}\\]\""];appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."]}letcontext_="UpdateAppVersionRequest"letmake?additionalInfo=fun~appArn->fun()->{additionalInfo;appArn}letto_valuex=structure_to_value[("additionalInfo",(Option.mapx.additionalInfo~f:AdditionalInfoMap.to_value));("appArn",(Some(Arn.to_valuex.appArn)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inletadditionalInfo=(Option.map~f:AdditionalInfoMap.of_xml)(Xml.childxml_arg0"additionalInfo")inmake~appArn?additionalInfo()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letappArn=field_map_exnjson__"appArn"Arn.of_jsoninletadditionalInfo=field_mapjson__"additionalInfo"AdditionalInfoMap.of_jsoninmake~appArn?additionalInfo()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates the Resilience Hub application version. This API updates the Resilience Hub application draft version. To use this information for running resiliency assessments, you must publish the Resilience Hub application using the PublishAppVersion API."]moduleUpdateAppVersionAppComponentResponse=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appComponent:AppComponent.toption[@ocaml.doc"List of Application Components that belong to this resource."];appVersion:EntityVersion.toption[@ocaml.doc"Resilience Hub application version."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?appArn=fun?appComponent->fun?appVersion->fun()->{appArn;appComponent;appVersion}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("appComponent",(Option.mapx.appComponent~f:AppComponent.to_value));("appVersion",(Option.mapx.appVersion~f:EntityVersion.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letappVersion=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"appVersion")inletappComponent=(Option.map~f:AppComponent.of_xml)(Xml.childxml_arg0"appComponent")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?appVersion?appComponent?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letappVersion=field_mapjson__"appVersion"EntityVersion.of_jsoninletappComponent=field_mapjson__"appComponent"AppComponent.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?appVersion?appComponent?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates an existing Application Component in the Resilience Hub application. This API updates the Resilience Hub application draft version. To use this Application Component for running assessments, you must publish the Resilience Hub application using the PublishAppVersion API."]moduleUpdateAppVersionAppComponentRequest=structtypenonrect={additionalInfo:AdditionalInfoMap.toption[@ocaml.doc"Currently, there is no supported additional information for Application Components."];appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];id:String255.t[@ocaml.doc"Identifier of the Application Component."];name:String255.toption[@ocaml.doc"Name of the Application Component."];type_:String255.toption[@ocaml.doc"Type of Application Component. For more information about the types of Application Component, see Grouping resources in an AppComponent."]}letcontext_="UpdateAppVersionAppComponentRequest"letmake?additionalInfo=fun?name->fun?type_->fun~appArn->fun~id->fun()->{additionalInfo;name;type_;appArn;id}letto_valuex=structure_to_value[("additionalInfo",(Option.mapx.additionalInfo~f:AdditionalInfoMap.to_value));("appArn",(Some(Arn.to_valuex.appArn)));("id",(Some(String255.to_valuex.id)));("name",(Option.mapx.name~f:String255.to_value));("type",(Option.mapx.type_~f:String255.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettype_=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"type")inletname=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"name")inletid=String255.of_xml(Xml.child_exn~context:context_xml_arg0"id")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inletadditionalInfo=(Option.map~f:AdditionalInfoMap.of_xml)(Xml.childxml_arg0"additionalInfo")inmake?type_?name~id~appArn?additionalInfo()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettype_=field_mapjson__"type"String255.of_jsoninletname=field_mapjson__"name"String255.of_jsoninletid=field_map_exnjson__"id"String255.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninletadditionalInfo=field_mapjson__"additionalInfo"AdditionalInfoMap.of_jsoninmake?type_?name~id~appArn?additionalInfo()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates an existing Application Component in the Resilience Hub application. This API updates the Resilience Hub application draft version. To use this Application Component for running assessments, you must publish the Resilience Hub application using the PublishAppVersion API."]moduleUpdateAppResponse=structtypenonrect={app:App.toption[@ocaml.doc"The specified application, returned as an object with details including compliance status, creation time, description, resiliency score, and more."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?app=fun()->{app}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("app",(Option.mapx.app~f:App.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letapp=(Option.map~f:App.of_xml)(Xml.childxml_arg0"app")inmake?app()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letapp=field_mapjson__"app"App.of_jsoninmake?app()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates an application."]moduleUpdateAppRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];assessmentSchedule:AppAssessmentScheduleType.toption[@ocaml.doc"Assessment execution schedule with 'Daily' or 'Disabled' values."];clearResiliencyPolicyArn:BooleanOptional.toption[@ocaml.doc"Specifies if the resiliency policy ARN should be cleared."];description:EntityDescription.toption[@ocaml.doc"The optional description for an app."];eventSubscriptions:EventSubscriptionList.toption[@ocaml.doc"The list of events you would like to subscribe and get notification for. Currently, Resilience Hub supports notifications only for Drift detected and Scheduled assessment failure events."];permissionModel:PermissionModel.toption[@ocaml.doc"Defines the roles and credentials that Resilience Hub would use while creating an application, importing its resources, and running an assessment."];policyArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the resiliency policy. The format for this ARN is: arn:partition:resiliencehub:region:account:resiliency-policy/policy-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."]}letcontext_="UpdateAppRequest"letmake?assessmentSchedule=fun?clearResiliencyPolicyArn->fun?description->fun?eventSubscriptions->fun?permissionModel->fun?policyArn->fun~appArn->fun()->{assessmentSchedule;clearResiliencyPolicyArn;description;eventSubscriptions;permissionModel;policyArn;appArn}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)));("assessmentSchedule",(Option.mapx.assessmentSchedule~f:AppAssessmentScheduleType.to_value));("clearResiliencyPolicyArn",(Option.mapx.clearResiliencyPolicyArn~f:BooleanOptional.to_value));("description",(Option.mapx.description~f:EntityDescription.to_value));("eventSubscriptions",(Option.mapx.eventSubscriptions~f:EventSubscriptionList.to_value));("permissionModel",(Option.mapx.permissionModel~f:PermissionModel.to_value));("policyArn",(Option.mapx.policyArn~f:Arn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpolicyArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"policyArn")inletpermissionModel=(Option.map~f:PermissionModel.of_xml)(Xml.childxml_arg0"permissionModel")inleteventSubscriptions=(Option.map~f:EventSubscriptionList.of_xml)(Xml.childxml_arg0"eventSubscriptions")inletdescription=(Option.map~f:EntityDescription.of_xml)(Xml.childxml_arg0"description")inletclearResiliencyPolicyArn=(Option.map~f:BooleanOptional.of_xml)(Xml.childxml_arg0"clearResiliencyPolicyArn")inletassessmentSchedule=(Option.map~f:AppAssessmentScheduleType.of_xml)(Xml.childxml_arg0"assessmentSchedule")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake?policyArn?permissionModel?eventSubscriptions?description?clearResiliencyPolicyArn?assessmentSchedule~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpolicyArn=field_mapjson__"policyArn"Arn.of_jsoninletpermissionModel=field_mapjson__"permissionModel"PermissionModel.of_jsoninleteventSubscriptions=field_mapjson__"eventSubscriptions"EventSubscriptionList.of_jsoninletdescription=field_mapjson__"description"EntityDescription.of_jsoninletclearResiliencyPolicyArn=field_mapjson__"clearResiliencyPolicyArn"BooleanOptional.of_jsoninletassessmentSchedule=field_mapjson__"assessmentSchedule"AppAssessmentScheduleType.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake?policyArn?permissionModel?eventSubscriptions?description?clearResiliencyPolicyArn?assessmentSchedule~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates an application."]moduleUntagResourceResponse=structtypenonrect=unittypenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake()=()leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Removes one or more tags from a resource."]moduleUntagResourceRequest=structtypenonrect={resourceArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the resource."];tagKeys:TagKeyList.t[@ocaml.doc"The keys of the tags you want to remove."]}letcontext_="UntagResourceRequest"letmake~resourceArn=fun~tagKeys->fun()->{resourceArn;tagKeys}letto_valuex=structure_to_value[("resourceArn",(Some(Arn.to_valuex.resourceArn)));("tagKeys",(Some(TagKeyList.to_valuex.tagKeys)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettagKeys=TagKeyList.of_xml(Xml.child_exn~context:context_xml_arg0"tagKeys")inletresourceArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"resourceArn")inmake~tagKeys~resourceArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettagKeys=field_map_exnjson__"tagKeys"TagKeyList.of_jsoninletresourceArn=field_map_exnjson__"resourceArn"Arn.of_jsoninmake~tagKeys~resourceArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Removes one or more tags from a resource."]moduleTagResourceResponse=structtypenonrect=unittypenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake()=()leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Applies one or more tags to a resource."]moduleTagResourceRequest=structtypenonrect={resourceArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the resource."];tags:TagMap.t[@ocaml.doc"The tags to assign to the resource. Each tag consists of a key/value pair."]}letcontext_="TagResourceRequest"letmake~resourceArn=fun~tags->fun()->{resourceArn;tags}letto_valuex=structure_to_value[("resourceArn",(Some(Arn.to_valuex.resourceArn)));("tags",(Some(TagMap.to_valuex.tags)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=TagMap.of_xml(Xml.child_exn~context:context_xml_arg0"tags")inletresourceArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"resourceArn")inmake~tags~resourceArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_map_exnjson__"tags"TagMap.of_jsoninletresourceArn=field_map_exnjson__"resourceArn"Arn.of_jsoninmake~tags~resourceArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Applies one or more tags to a resource."]moduleStartResourceGroupingRecommendationTaskResponse=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];errorMessage:String500.toption[@ocaml.doc"Error that occurred while executing a grouping recommendation task."];groupingId:String255.toption[@ocaml.doc"Identifier of the grouping recommendation task."];status:ResourcesGroupingRecGenStatusType.toption[@ocaml.doc"Status of the action."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?appArn=fun?errorMessage->fun?groupingId->fun?status->fun()->{appArn;errorMessage;groupingId;status}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("errorMessage",(Option.mapx.errorMessage~f:String500.to_value));("groupingId",(Option.mapx.groupingId~f:String255.to_value));("status",(Option.mapx.status~f:ResourcesGroupingRecGenStatusType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstatus=(Option.map~f:ResourcesGroupingRecGenStatusType.of_xml)(Xml.childxml_arg0"status")inletgroupingId=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"groupingId")inleterrorMessage=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"errorMessage")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?status?groupingId?errorMessage?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstatus=field_mapjson__"status"ResourcesGroupingRecGenStatusType.of_jsoninletgroupingId=field_mapjson__"groupingId"String255.of_jsoninleterrorMessage=field_mapjson__"errorMessage"String500.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?status?groupingId?errorMessage?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Starts grouping recommendation task."]moduleStartResourceGroupingRecommendationTaskRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."]}letcontext_="StartResourceGroupingRecommendationTaskRequest"letmake~appArn=fun()->{appArn}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Starts grouping recommendation task."]moduleStartMetricsExportResponse=structtypenonrect={metricsExportId:String255.toption[@ocaml.doc"Identifier of the metrics export task."];status:MetricsExportStatusType.toption[@ocaml.doc"Indicates the status of the metrics export task."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?metricsExportId=fun?status->fun()->{metricsExportId;status}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ServiceQuotaExceededExceptione->`Assoc[("error",(`String"ServiceQuotaExceededException"));("details",(ServiceQuotaExceededException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("metricsExportId",(Option.mapx.metricsExportId~f:String255.to_value));("status",(Option.mapx.status~f:MetricsExportStatusType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstatus=(Option.map~f:MetricsExportStatusType.of_xml)(Xml.childxml_arg0"status")inletmetricsExportId=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"metricsExportId")inmake?status?metricsExportId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstatus=field_mapjson__"status"MetricsExportStatusType.of_jsoninletmetricsExportId=field_mapjson__"metricsExportId"String255.of_jsoninmake?status?metricsExportId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Initiates the export task of metrics."]moduleStartMetricsExportRequest=structtypenonrect={bucketName:EntityName.toption[@ocaml.doc"(Optional) Specifies the name of the Amazon Simple Storage Service bucket where the exported metrics will be stored."];clientToken:ClientToken.toption[@ocaml.doc"Used for an idempotency token. A client token is a unique, case-sensitive string of up to 64 ASCII characters. You should not reuse the same client token for other API requests."]}letmake?bucketName=fun?clientToken->fun()->{bucketName;clientToken}letto_valuex=structure_to_value[("bucketName",(Option.mapx.bucketName~f:EntityName.to_value));("clientToken",(Option.mapx.clientToken~f:ClientToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letclientToken=(Option.map~f:ClientToken.of_xml)(Xml.childxml_arg0"clientToken")inletbucketName=(Option.map~f:EntityName.of_xml)(Xml.childxml_arg0"bucketName")inmake?clientToken?bucketName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letclientToken=field_mapjson__"clientToken"ClientToken.of_jsoninletbucketName=field_mapjson__"bucketName"EntityName.of_jsoninmake?clientToken?bucketName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Initiates the export task of metrics."]moduleStartAppAssessmentResponse=structtypenonrect={assessment:AppAssessment.toption[@ocaml.doc"The assessment created."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?assessment=fun()->{assessment}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceQuotaExceededExceptione->`Assoc[("error",(`String"ServiceQuotaExceededException"));("details",(ServiceQuotaExceededException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("assessment",(Option.mapx.assessment~f:AppAssessment.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letassessment=(Option.map~f:AppAssessment.of_xml)(Xml.childxml_arg0"assessment")inmake?assessment()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letassessment=field_mapjson__"assessment"AppAssessment.of_jsoninmake?assessment()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a new application assessment for an application."]moduleStartAppAssessmentRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.t[@ocaml.doc"The version of the application."];assessmentName:EntityName.t[@ocaml.doc"The name for the assessment."];clientToken:ClientToken.toption[@ocaml.doc"Used for an idempotency token. A client token is a unique, case-sensitive string of up to 64 ASCII characters. You should not reuse the same client token for other API requests."];tags:TagMap.toption[@ocaml.doc"Tags assigned to the resource. A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key/value pair."]}letcontext_="StartAppAssessmentRequest"letmake?clientToken=fun?tags->fun~appArn->fun~appVersion->fun~assessmentName->fun()->{clientToken;tags;appArn;appVersion;assessmentName}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)));("appVersion",(Some(EntityVersion.to_valuex.appVersion)));("assessmentName",(Some(EntityName.to_valuex.assessmentName)));("clientToken",(Option.mapx.clientToken~f:ClientToken.to_value));("tags",(Option.mapx.tags~f:TagMap.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:TagMap.of_xml)(Xml.childxml_arg0"tags")inletclientToken=(Option.map~f:ClientToken.of_xml)(Xml.childxml_arg0"clientToken")inletassessmentName=EntityName.of_xml(Xml.child_exn~context:context_xml_arg0"assessmentName")inletappVersion=EntityVersion.of_xml(Xml.child_exn~context:context_xml_arg0"appVersion")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake?tags?clientToken~assessmentName~appVersion~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"tags"TagMap.of_jsoninletclientToken=field_mapjson__"clientToken"ClientToken.of_jsoninletassessmentName=field_map_exnjson__"assessmentName"EntityName.of_jsoninletappVersion=field_map_exnjson__"appVersion"EntityVersion.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake?tags?clientToken~assessmentName~appVersion~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a new application assessment for an application."]moduleResolveAppVersionResourcesResponse=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.toption[@ocaml.doc"The version of the application."];resolutionId:String255.toption[@ocaml.doc"The identifier for a specific resolution."];status:ResourceResolutionStatusType.toption[@ocaml.doc"Status of the action."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?appArn=fun?appVersion->fun?resolutionId->fun?status->fun()->{appArn;appVersion;resolutionId;status}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("appVersion",(Option.mapx.appVersion~f:EntityVersion.to_value));("resolutionId",(Option.mapx.resolutionId~f:String255.to_value));("status",(Option.mapx.status~f:ResourceResolutionStatusType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstatus=(Option.map~f:ResourceResolutionStatusType.of_xml)(Xml.childxml_arg0"status")inletresolutionId=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"resolutionId")inletappVersion=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"appVersion")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?status?resolutionId?appVersion?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstatus=field_mapjson__"status"ResourceResolutionStatusType.of_jsoninletresolutionId=field_mapjson__"resolutionId"String255.of_jsoninletappVersion=field_mapjson__"appVersion"EntityVersion.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?status?resolutionId?appVersion?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Resolves the resources for an application version."]moduleResolveAppVersionResourcesRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.t[@ocaml.doc"The version of the application."]}letcontext_="ResolveAppVersionResourcesRequest"letmake~appArn=fun~appVersion->fun()->{appArn;appVersion}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)));("appVersion",(Some(EntityVersion.to_valuex.appVersion)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letappVersion=EntityVersion.of_xml(Xml.child_exn~context:context_xml_arg0"appVersion")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake~appVersion~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letappVersion=field_map_exnjson__"appVersion"EntityVersion.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake~appVersion~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Resolves the resources for an application version."]moduleRemoveDraftAppVersionResourceMappingsResponse=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.toption[@ocaml.doc"The version of the application."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?appArn=fun?appVersion->fun()->{appArn;appVersion}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("appVersion",(Option.mapx.appVersion~f:EntityVersion.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letappVersion=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"appVersion")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?appVersion?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letappVersion=field_mapjson__"appVersion"EntityVersion.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?appVersion?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Removes resource mappings from a draft application version."]moduleRemoveDraftAppVersionResourceMappingsRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appRegistryAppNames:EntityNameList.toption[@ocaml.doc"The names of the registered applications you want to remove from the resource mappings."];eksSourceNames:String255List.toption[@ocaml.doc"The names of the Amazon Elastic Kubernetes Service clusters and namespaces you want to remove from the resource mappings. This parameter accepts values in \"eks-cluster/namespace\" format."];logicalStackNames:String255List.toption[@ocaml.doc"The names of the CloudFormation stacks you want to remove from the resource mappings."];resourceGroupNames:EntityNameList.toption[@ocaml.doc"The names of the resource groups you want to remove from the resource mappings."];resourceNames:EntityNameList.toption[@ocaml.doc"The names of the resources you want to remove from the resource mappings."];terraformSourceNames:String255List.toption[@ocaml.doc"The names of the Terraform sources you want to remove from the resource mappings."]}letcontext_="RemoveDraftAppVersionResourceMappingsRequest"letmake?appRegistryAppNames=fun?eksSourceNames->fun?logicalStackNames->fun?resourceGroupNames->fun?resourceNames->fun?terraformSourceNames->fun~appArn->fun()->{appRegistryAppNames;eksSourceNames;logicalStackNames;resourceGroupNames;resourceNames;terraformSourceNames;appArn}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)));("appRegistryAppNames",(Option.mapx.appRegistryAppNames~f:EntityNameList.to_value));("eksSourceNames",(Option.mapx.eksSourceNames~f:String255List.to_value));("logicalStackNames",(Option.mapx.logicalStackNames~f:String255List.to_value));("resourceGroupNames",(Option.mapx.resourceGroupNames~f:EntityNameList.to_value));("resourceNames",(Option.mapx.resourceNames~f:EntityNameList.to_value));("terraformSourceNames",(Option.mapx.terraformSourceNames~f:String255List.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letterraformSourceNames=(Option.map~f:String255List.of_xml)(Xml.childxml_arg0"terraformSourceNames")inletresourceNames=(Option.map~f:EntityNameList.of_xml)(Xml.childxml_arg0"resourceNames")inletresourceGroupNames=(Option.map~f:EntityNameList.of_xml)(Xml.childxml_arg0"resourceGroupNames")inletlogicalStackNames=(Option.map~f:String255List.of_xml)(Xml.childxml_arg0"logicalStackNames")inleteksSourceNames=(Option.map~f:String255List.of_xml)(Xml.childxml_arg0"eksSourceNames")inletappRegistryAppNames=(Option.map~f:EntityNameList.of_xml)(Xml.childxml_arg0"appRegistryAppNames")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake?terraformSourceNames?resourceNames?resourceGroupNames?logicalStackNames?eksSourceNames?appRegistryAppNames~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letterraformSourceNames=field_mapjson__"terraformSourceNames"String255List.of_jsoninletresourceNames=field_mapjson__"resourceNames"EntityNameList.of_jsoninletresourceGroupNames=field_mapjson__"resourceGroupNames"EntityNameList.of_jsoninletlogicalStackNames=field_mapjson__"logicalStackNames"String255List.of_jsoninleteksSourceNames=field_mapjson__"eksSourceNames"String255List.of_jsoninletappRegistryAppNames=field_mapjson__"appRegistryAppNames"EntityNameList.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake?terraformSourceNames?resourceNames?resourceGroupNames?logicalStackNames?eksSourceNames?appRegistryAppNames~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Removes resource mappings from a draft application version."]moduleRejectResourceGroupingRecommendationsResponse=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];failedEntries:FailedGroupingRecommendationEntries.toption[@ocaml.doc"List of resource grouping recommendations that failed to get excluded in your application."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?appArn=fun?failedEntries->fun()->{appArn;failedEntries}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("failedEntries",(Option.mapx.failedEntries~f:FailedGroupingRecommendationEntries.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfailedEntries=(Option.map~f:FailedGroupingRecommendationEntries.of_xml)(Xml.childxml_arg0"failedEntries")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?failedEntries?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfailedEntries=field_mapjson__"failedEntries"FailedGroupingRecommendationEntries.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?failedEntries?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Rejects resource grouping recommendations."]moduleRejectResourceGroupingRecommendationsRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];entries:RejectGroupingRecommendationEntries.t[@ocaml.doc"List of resource grouping recommendations you have selected to exclude from your application."]}letcontext_="RejectResourceGroupingRecommendationsRequest"letmake~appArn=fun~entries->fun()->{appArn;entries}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)));("entries",(Some(RejectGroupingRecommendationEntries.to_valuex.entries)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letentries=RejectGroupingRecommendationEntries.of_xml(Xml.child_exn~context:context_xml_arg0"entries")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake~entries~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letentries=field_map_exnjson__"entries"RejectGroupingRecommendationEntries.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake~entries~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Rejects resource grouping recommendations."]modulePutDraftAppVersionTemplateResponse=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.toption[@ocaml.doc"The version of the application."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?appArn=fun?appVersion->fun()->{appArn;appVersion}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("appVersion",(Option.mapx.appVersion~f:EntityVersion.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letappVersion=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"appVersion")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?appVersion?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letappVersion=field_mapjson__"appVersion"EntityVersion.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?appVersion?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Adds or updates the app template for an Resilience Hub application draft version."]modulePutDraftAppVersionTemplateRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appTemplateBody:AppTemplateBody.t[@ocaml.doc"A JSON string that provides information about your application structure. To learn more about the appTemplateBody template, see the sample template provided in the Examples section. The appTemplateBody JSON string has the following structure: resources The list of logical resources that must be included in the Resilience Hub application. Type: Array Don't add the resources that you want to exclude. Each resources array item includes the following fields: logicalResourceId Logical identifier of the resource. Type: Object Each logicalResourceId object includes the following fields: identifier Identifier of the resource. Type: String logicalStackName The name of the CloudFormation stack this resource belongs to. Type: String resourceGroupName The name of the resource group this resource belongs to. Type: String terraformSourceName The name of the Terraform S3 state file this resource belongs to. Type: String eksSourceName Name of the Amazon Elastic Kubernetes Service cluster and namespace this resource belongs to. This parameter accepts values in \"eks-cluster/namespace\" format. Type: String type The type of resource. Type: string name The name of the resource. Type: String additionalInfo Additional configuration parameters for an Resilience Hub application. If you want to implement additionalInfo through the Resilience Hub console rather than using an API call, see Configure the application configuration parameters. Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account. Key: \"failover-regions\" Value: \"\\[\\{\"region\":\"<REGION>\", \"accounts\":\\[\\{\"id\":\"<ACCOUNT_ID>\"\\}\\]\\}\\]\" appComponents List of Application Components that this resource belongs to. If an Application Component is not part of the Resilience Hub application, it will be added. Type: Array Each appComponents array item includes the following fields: name Name of the Application Component. Type: String type Type of Application Component. For more information about the types of Application Component, see Grouping resources in an AppComponent. Type: String resourceNames The list of included resources that are assigned to the Application Component. Type: Array of strings additionalInfo Additional configuration parameters for an Resilience Hub application. If you want to implement additionalInfo through the Resilience Hub console rather than using an API call, see Configure the application configuration parameters. Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account. Key: \"failover-regions\" Value: \"\\[\\{\"region\":\"<REGION>\", \"accounts\":\\[\\{\"id\":\"<ACCOUNT_ID>\"\\}\\]\\}\\]\" excludedResources The list of logical resource identifiers to be excluded from the application. Type: Array Don't add the resources that you want to include. Each excludedResources array item includes the following fields: logicalResourceIds Logical identifier of the resource. Type: Object You can configure only one of the following fields: logicalStackName resourceGroupName terraformSourceName eksSourceName Each logicalResourceIds object includes the following fields: identifier Identifier of the resource. Type: String logicalStackName The name of the CloudFormation stack this resource belongs to. Type: String resourceGroupName The name of the resource group this resource belongs to. Type: String terraformSourceName The name of the Terraform S3 state file this resource belongs to. Type: String eksSourceName Name of the Amazon Elastic Kubernetes Service cluster and namespace this resource belongs to. This parameter accepts values in \"eks-cluster/namespace\" format. Type: String version Resilience Hub application version. additionalInfo Additional configuration parameters for an Resilience Hub application. If you want to implement additionalInfo through the Resilience Hub console rather than using an API call, see Configure the application configuration parameters. Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account. Key: \"failover-regions\" Value: \"\\[\\{\"region\":\"<REGION>\", \"accounts\":\\[\\{\"id\":\"<ACCOUNT_ID>\"\\}\\]\\}\\]\""]}letcontext_="PutDraftAppVersionTemplateRequest"letmake~appArn=fun~appTemplateBody->fun()->{appArn;appTemplateBody}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)));("appTemplateBody",(Some(AppTemplateBody.to_valuex.appTemplateBody)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letappTemplateBody=AppTemplateBody.of_xml(Xml.child_exn~context:context_xml_arg0"appTemplateBody")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake~appTemplateBody~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letappTemplateBody=field_map_exnjson__"appTemplateBody"AppTemplateBody.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake~appTemplateBody~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Adds or updates the app template for an Resilience Hub application draft version."]modulePublishAppVersionResponse=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.toption[@ocaml.doc"The version of the application."];identifier:LongOptional.toption[@ocaml.doc"Identifier of the application version."];versionName:EntityVersion.toption[@ocaml.doc"Name of the application version."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?appArn=fun?appVersion->fun?identifier->fun?versionName->fun()->{appArn;appVersion;identifier;versionName}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("appVersion",(Option.mapx.appVersion~f:EntityVersion.to_value));("identifier",(Option.mapx.identifier~f:LongOptional.to_value));("versionName",(Option.mapx.versionName~f:EntityVersion.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letversionName=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"versionName")inletidentifier=(Option.map~f:LongOptional.of_xml)(Xml.childxml_arg0"identifier")inletappVersion=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"appVersion")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?versionName?identifier?appVersion?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letversionName=field_mapjson__"versionName"EntityVersion.of_jsoninletidentifier=field_mapjson__"identifier"LongOptional.of_jsoninletappVersion=field_mapjson__"appVersion"EntityVersion.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?versionName?identifier?appVersion?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Publishes a new version of a specific Resilience Hub application."]modulePublishAppVersionRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];versionName:EntityVersion.toption[@ocaml.doc"Name of the application version."]}letcontext_="PublishAppVersionRequest"letmake?versionName=fun~appArn->fun()->{versionName;appArn}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)));("versionName",(Option.mapx.versionName~f:EntityVersion.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letversionName=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"versionName")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake?versionName~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letversionName=field_mapjson__"versionName"EntityVersion.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake?versionName~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Publishes a new version of a specific Resilience Hub application."]moduleListUnsupportedAppVersionResourcesResponse=structtypenonrect={nextToken:NextToken.toption[@ocaml.doc"Token for the next set of results, or null if there are no more results."];resolutionId:String255.toption[@ocaml.doc"The identifier for a specific resolution."];unsupportedResources:UnsupportedResourceList.toption[@ocaml.doc"The unsupported resources for the application."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?nextToken=fun?resolutionId->fun?unsupportedResources->fun()->{nextToken;resolutionId;unsupportedResources}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("nextToken",(Option.mapx.nextToken~f:NextToken.to_value));("resolutionId",(Option.mapx.resolutionId~f:String255.to_value));("unsupportedResources",(Option.mapx.unsupportedResources~f:UnsupportedResourceList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letunsupportedResources=(Option.map~f:UnsupportedResourceList.of_xml)(Xml.childxml_arg0"unsupportedResources")inletresolutionId=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"resolutionId")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inmake?unsupportedResources?resolutionId?nextToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letunsupportedResources=field_mapjson__"unsupportedResources"UnsupportedResourceList.of_jsoninletresolutionId=field_mapjson__"resolutionId"String255.of_jsoninletnextToken=field_mapjson__"nextToken"NextToken.of_jsoninmake?unsupportedResources?resolutionId?nextToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the resources that are not currently supported in Resilience Hub. An unsupported resource is a resource that exists in the object that was used to create an app, but is not supported by Resilience Hub."]moduleListUnsupportedAppVersionResourcesRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.t[@ocaml.doc"The version of the application."];maxResults:MaxResults.toption[@ocaml.doc"Maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved."];nextToken:NextToken.toption[@ocaml.doc"Null, or the token from a previous call to get the next set of results."];resolutionId:String255.toption[@ocaml.doc"The identifier for a specific resolution."]}letcontext_="ListUnsupportedAppVersionResourcesRequest"letmake?maxResults=fun?nextToken->fun?resolutionId->fun~appArn->fun~appVersion->fun()->{maxResults;nextToken;resolutionId;appArn;appVersion}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)));("appVersion",(Some(EntityVersion.to_valuex.appVersion)));("maxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value));("resolutionId",(Option.mapx.resolutionId~f:String255.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresolutionId=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"resolutionId")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"maxResults")inletappVersion=EntityVersion.of_xml(Xml.child_exn~context:context_xml_arg0"appVersion")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake?resolutionId?nextToken?maxResults~appVersion~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresolutionId=field_mapjson__"resolutionId"String255.of_jsoninletnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletmaxResults=field_mapjson__"maxResults"MaxResults.of_jsoninletappVersion=field_map_exnjson__"appVersion"EntityVersion.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake?resolutionId?nextToken?maxResults~appVersion~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the resources that are not currently supported in Resilience Hub. An unsupported resource is a resource that exists in the object that was used to create an app, but is not supported by Resilience Hub."]moduleListTestRecommendationsResponse=structtypenonrect={nextToken:NextToken.toption[@ocaml.doc"Token for the next set of results, or null if there are no more results."];testRecommendations:TestRecommendationList.toption[@ocaml.doc"The test recommendations for the Resilience Hub application."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?nextToken=fun?testRecommendations->fun()->{nextToken;testRecommendations}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("nextToken",(Option.mapx.nextToken~f:NextToken.to_value));("testRecommendations",(Option.mapx.testRecommendations~f:TestRecommendationList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettestRecommendations=(Option.map~f:TestRecommendationList.of_xml)(Xml.childxml_arg0"testRecommendations")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inmake?testRecommendations?nextToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettestRecommendations=field_mapjson__"testRecommendations"TestRecommendationList.of_jsoninletnextToken=field_mapjson__"nextToken"NextToken.of_jsoninmake?testRecommendations?nextToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the test recommendations for the Resilience Hub application."]moduleListTestRecommendationsRequest=structtypenonrect={assessmentArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];maxResults:MaxResults.toption[@ocaml.doc"Maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved."];nextToken:NextToken.toption[@ocaml.doc"Null, or the token from a previous call to get the next set of results."]}letcontext_="ListTestRecommendationsRequest"letmake?maxResults=fun?nextToken->fun~assessmentArn->fun()->{maxResults;nextToken;assessmentArn}letto_valuex=structure_to_value[("assessmentArn",(Some(Arn.to_valuex.assessmentArn)));("maxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"maxResults")inletassessmentArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"assessmentArn")inmake?nextToken?maxResults~assessmentArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletmaxResults=field_mapjson__"maxResults"MaxResults.of_jsoninletassessmentArn=field_map_exnjson__"assessmentArn"Arn.of_jsoninmake?nextToken?maxResults~assessmentArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the test recommendations for the Resilience Hub application."]moduleListTagsForResourceResponse=structtypenonrect={tags:TagMap.toption[@ocaml.doc"Tags assigned to the resource. A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key/value pair."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?tags=fun()->{tags}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("tags",(Option.mapx.tags~f:TagMap.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:TagMap.of_xml)(Xml.childxml_arg0"tags")inmake?tags()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"tags"TagMap.of_jsoninmake?tags()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the tags for your resources in your Resilience Hub applications."]moduleListTagsForResourceRequest=structtypenonrect={resourceArn:Arn.t[@ocaml.doc"The Amazon Resource Name (ARN) for a specific resource in your Resilience Hub application."]}letcontext_="ListTagsForResourceRequest"letmake~resourceArn=fun()->{resourceArn}letto_valuex=structure_to_value[("resourceArn",(Some(Arn.to_valuex.resourceArn)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"resourceArn")inmake~resourceArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceArn=field_map_exnjson__"resourceArn"Arn.of_jsoninmake~resourceArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the tags for your resources in your Resilience Hub applications."]moduleListSuggestedResiliencyPoliciesResponse=structtypenonrect={nextToken:NextToken.toption[@ocaml.doc"Token for the next set of results, or null if there are no more results."];resiliencyPolicies:ResiliencyPolicies.toption[@ocaml.doc"The suggested resiliency policies for the Resilience Hub applications."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?nextToken=fun?resiliencyPolicies->fun()->{nextToken;resiliencyPolicies}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("nextToken",(Option.mapx.nextToken~f:NextToken.to_value));("resiliencyPolicies",(Option.mapx.resiliencyPolicies~f:ResiliencyPolicies.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresiliencyPolicies=(Option.map~f:ResiliencyPolicies.of_xml)(Xml.childxml_arg0"resiliencyPolicies")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inmake?resiliencyPolicies?nextToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresiliencyPolicies=field_mapjson__"resiliencyPolicies"ResiliencyPolicies.of_jsoninletnextToken=field_mapjson__"nextToken"NextToken.of_jsoninmake?resiliencyPolicies?nextToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the suggested resiliency policies for the Resilience Hub applications."]moduleListSuggestedResiliencyPoliciesRequest=structtypenonrect={maxResults:MaxResults.toption[@ocaml.doc"Maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved."];nextToken:NextToken.toption[@ocaml.doc"Null, or the token from a previous call to get the next set of results."]}letmake?maxResults=fun?nextToken->fun()->{maxResults;nextToken}letto_valuex=structure_to_value[("maxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"maxResults")inmake?nextToken?maxResults()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletmaxResults=field_mapjson__"maxResults"MaxResults.of_jsoninmake?nextToken?maxResults()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the suggested resiliency policies for the Resilience Hub applications."]moduleListSopRecommendationsResponse=structtypenonrect={nextToken:NextToken.toption[@ocaml.doc"Token for the next set of results, or null if there are no more results."];sopRecommendations:SopRecommendationList.toption[@ocaml.doc"The standard operating procedure (SOP) recommendations for the Resilience Hub applications."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?nextToken=fun?sopRecommendations->fun()->{nextToken;sopRecommendations}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("nextToken",(Option.mapx.nextToken~f:NextToken.to_value));("sopRecommendations",(Option.mapx.sopRecommendations~f:SopRecommendationList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsopRecommendations=(Option.map~f:SopRecommendationList.of_xml)(Xml.childxml_arg0"sopRecommendations")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inmake?sopRecommendations?nextToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsopRecommendations=field_mapjson__"sopRecommendations"SopRecommendationList.of_jsoninletnextToken=field_mapjson__"nextToken"NextToken.of_jsoninmake?sopRecommendations?nextToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the standard operating procedure (SOP) recommendations for the Resilience Hub applications."]moduleListSopRecommendationsRequest=structtypenonrect={assessmentArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];maxResults:MaxResults.toption[@ocaml.doc"Maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved."];nextToken:NextToken.toption[@ocaml.doc"Null, or the token from a previous call to get the next set of results."]}letcontext_="ListSopRecommendationsRequest"letmake?maxResults=fun?nextToken->fun~assessmentArn->fun()->{maxResults;nextToken;assessmentArn}letto_valuex=structure_to_value[("assessmentArn",(Some(Arn.to_valuex.assessmentArn)));("maxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"maxResults")inletassessmentArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"assessmentArn")inmake?nextToken?maxResults~assessmentArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletmaxResults=field_mapjson__"maxResults"MaxResults.of_jsoninletassessmentArn=field_map_exnjson__"assessmentArn"Arn.of_jsoninmake?nextToken?maxResults~assessmentArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the standard operating procedure (SOP) recommendations for the Resilience Hub applications."]moduleListResourceGroupingRecommendationsResponse=structtypenonrect={groupingRecommendations:GroupingRecommendationList.toption[@ocaml.doc"List of resource grouping recommendations generated by Resilience Hub."];nextToken:NextToken.toption[@ocaml.doc"Null, or the token from a previous call to get the next set of results."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?groupingRecommendations=fun?nextToken->fun()->{groupingRecommendations;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("groupingRecommendations",(Option.mapx.groupingRecommendations~f:GroupingRecommendationList.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletgroupingRecommendations=(Option.map~f:GroupingRecommendationList.of_xml)(Xml.childxml_arg0"groupingRecommendations")inmake?nextToken?groupingRecommendations()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletgroupingRecommendations=field_mapjson__"groupingRecommendations"GroupingRecommendationList.of_jsoninmake?nextToken?groupingRecommendations()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the resource grouping recommendations suggested by Resilience Hub for your application."]moduleListResourceGroupingRecommendationsRequest=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];maxResults:MaxResults.toption[@ocaml.doc"Maximum number of grouping recommendations to be displayed per Resilience Hub application."];nextToken:NextToken.toption[@ocaml.doc"Null, or the token from a previous call to get the next set of results."]}letmake?appArn=fun?maxResults->fun?nextToken->fun()->{appArn;maxResults;nextToken}letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("maxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"maxResults")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?nextToken?maxResults?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletmaxResults=field_mapjson__"maxResults"MaxResults.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?nextToken?maxResults?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the resource grouping recommendations suggested by Resilience Hub for your application."]moduleListResiliencyPoliciesResponse=structtypenonrect={nextToken:NextToken.toption[@ocaml.doc"Token for the next set of results, or null if there are no more results."];resiliencyPolicies:ResiliencyPolicies.toption[@ocaml.doc"The resiliency policies for the Resilience Hub applications."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?nextToken=fun?resiliencyPolicies->fun()->{nextToken;resiliencyPolicies}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("nextToken",(Option.mapx.nextToken~f:NextToken.to_value));("resiliencyPolicies",(Option.mapx.resiliencyPolicies~f:ResiliencyPolicies.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresiliencyPolicies=(Option.map~f:ResiliencyPolicies.of_xml)(Xml.childxml_arg0"resiliencyPolicies")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inmake?resiliencyPolicies?nextToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresiliencyPolicies=field_mapjson__"resiliencyPolicies"ResiliencyPolicies.of_jsoninletnextToken=field_mapjson__"nextToken"NextToken.of_jsoninmake?resiliencyPolicies?nextToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the resiliency policies for the Resilience Hub applications."]moduleListResiliencyPoliciesRequest=structtypenonrect={maxResults:MaxResults.toption[@ocaml.doc"Maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved."];nextToken:NextToken.toption[@ocaml.doc"Null, or the token from a previous call to get the next set of results."];policyName:EntityName.toption[@ocaml.doc"Name of the resiliency policy."]}letmake?maxResults=fun?nextToken->fun?policyName->fun()->{maxResults;nextToken;policyName}letto_valuex=structure_to_value[("maxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value));("policyName",(Option.mapx.policyName~f:EntityName.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpolicyName=(Option.map~f:EntityName.of_xml)(Xml.childxml_arg0"policyName")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"maxResults")inmake?policyName?nextToken?maxResults()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpolicyName=field_mapjson__"policyName"EntityName.of_jsoninletnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletmaxResults=field_mapjson__"maxResults"MaxResults.of_jsoninmake?policyName?nextToken?maxResults()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the resiliency policies for the Resilience Hub applications."]moduleListRecommendationTemplatesResponse=structtypenonrect={nextToken:NextToken.toption[@ocaml.doc"Token for the next set of results, or null if there are no more results."];recommendationTemplates:RecommendationTemplateList.toption[@ocaml.doc"The recommendation templates for the Resilience Hub applications."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?nextToken=fun?recommendationTemplates->fun()->{nextToken;recommendationTemplates}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("nextToken",(Option.mapx.nextToken~f:NextToken.to_value));("recommendationTemplates",(Option.mapx.recommendationTemplates~f:RecommendationTemplateList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letrecommendationTemplates=(Option.map~f:RecommendationTemplateList.of_xml)(Xml.childxml_arg0"recommendationTemplates")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inmake?recommendationTemplates?nextToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letrecommendationTemplates=field_mapjson__"recommendationTemplates"RecommendationTemplateList.of_jsoninletnextToken=field_mapjson__"nextToken"NextToken.of_jsoninmake?recommendationTemplates?nextToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the recommendation templates for the Resilience Hub applications."]moduleListRecommendationTemplatesRequest=structtypenonrect={assessmentArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];maxResults:MaxResults.toption[@ocaml.doc"Maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved."];name:EntityName.toption[@ocaml.doc"The name for one of the listed recommendation templates."];nextToken:NextToken.toption[@ocaml.doc"Null, or the token from a previous call to get the next set of results."];recommendationTemplateArn:Arn.toption[@ocaml.doc"The Amazon Resource Name (ARN) for a recommendation template."];reverseOrder:BooleanOptional.toption[@ocaml.doc"The default is to sort by ascending startTime. To sort by descending startTime, set reverseOrder to true."];status:RecommendationTemplateStatusList.toption[@ocaml.doc"Status of the action."]}letmake?assessmentArn=fun?maxResults->fun?name->fun?nextToken->fun?recommendationTemplateArn->fun?reverseOrder->fun?status->fun()->{assessmentArn;maxResults;name;nextToken;recommendationTemplateArn;reverseOrder;status}letto_valuex=structure_to_value[("assessmentArn",(Option.mapx.assessmentArn~f:Arn.to_value));("maxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("name",(Option.mapx.name~f:EntityName.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value));("recommendationTemplateArn",(Option.mapx.recommendationTemplateArn~f:Arn.to_value));("reverseOrder",(Option.mapx.reverseOrder~f:BooleanOptional.to_value));("status",(Option.mapx.status~f:RecommendationTemplateStatusList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstatus=(Option.map~f:RecommendationTemplateStatusList.of_xml)(Xml.childxml_arg0"status")inletreverseOrder=(Option.map~f:BooleanOptional.of_xml)(Xml.childxml_arg0"reverseOrder")inletrecommendationTemplateArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"recommendationTemplateArn")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletname=(Option.map~f:EntityName.of_xml)(Xml.childxml_arg0"name")inletmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"maxResults")inletassessmentArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"assessmentArn")inmake?status?reverseOrder?recommendationTemplateArn?nextToken?name?maxResults?assessmentArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstatus=field_mapjson__"status"RecommendationTemplateStatusList.of_jsoninletreverseOrder=field_mapjson__"reverseOrder"BooleanOptional.of_jsoninletrecommendationTemplateArn=field_mapjson__"recommendationTemplateArn"Arn.of_jsoninletnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletname=field_mapjson__"name"EntityName.of_jsoninletmaxResults=field_mapjson__"maxResults"MaxResults.of_jsoninletassessmentArn=field_mapjson__"assessmentArn"Arn.of_jsoninmake?status?reverseOrder?recommendationTemplateArn?nextToken?name?maxResults?assessmentArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the recommendation templates for the Resilience Hub applications."]moduleListMetricsResponse=structtypenonrect={nextToken:NextToken.toption[@ocaml.doc"Token for the next set of results, or null if there are no more results."];rows:RowList.toption[@ocaml.doc"Specifies all the list of metric values for each row of metrics."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?nextToken=fun?rows->fun()->{nextToken;rows}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("nextToken",(Option.mapx.nextToken~f:NextToken.to_value));("rows",(Option.mapx.rows~f:RowList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letrows=(Option.map~f:RowList.of_xml)(Xml.childxml_arg0"rows")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inmake?rows?nextToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letrows=field_mapjson__"rows"RowList.of_jsoninletnextToken=field_mapjson__"nextToken"NextToken.of_jsoninmake?rows?nextToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the metrics that can be exported."]moduleListMetricsRequest=structtypenonrect={conditions:ConditionList.toption[@ocaml.doc"Indicates the list of all the conditions that were applied on the metrics."];dataSource:String255.toption[@ocaml.doc"Indicates the data source of the metrics."];fields:FieldList.toption[@ocaml.doc"Indicates the list of fields in the data source."];maxResults:MaxResults.toption[@ocaml.doc"Maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved."];nextToken:NextToken.toption[@ocaml.doc"Null, or the token from a previous call to get the next set of results."];sorts:SortList.toption[@ocaml.doc"(Optional) Indicates the order in which you want to sort the fields in the metrics. By default, the fields are sorted in the ascending order."]}letmake?conditions=fun?dataSource->fun?fields->fun?maxResults->fun?nextToken->fun?sorts->fun()->{conditions;dataSource;fields;maxResults;nextToken;sorts}letto_valuex=structure_to_value[("conditions",(Option.mapx.conditions~f:ConditionList.to_value));("dataSource",(Option.mapx.dataSource~f:String255.to_value));("fields",(Option.mapx.fields~f:FieldList.to_value));("maxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value));("sorts",(Option.mapx.sorts~f:SortList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsorts=(Option.map~f:SortList.of_xml)(Xml.childxml_arg0"sorts")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"maxResults")inletfields=(Option.map~f:FieldList.of_xml)(Xml.childxml_arg0"fields")inletdataSource=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"dataSource")inletconditions=(Option.map~f:ConditionList.of_xml)(Xml.childxml_arg0"conditions")inmake?sorts?nextToken?maxResults?fields?dataSource?conditions()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsorts=field_mapjson__"sorts"SortList.of_jsoninletnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletmaxResults=field_mapjson__"maxResults"MaxResults.of_jsoninletfields=field_mapjson__"fields"FieldList.of_jsoninletdataSource=field_mapjson__"dataSource"String255.of_jsoninletconditions=field_mapjson__"conditions"ConditionList.of_jsoninmake?sorts?nextToken?maxResults?fields?dataSource?conditions()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the metrics that can be exported."]moduleListAppsResponse=structtypenonrect={appSummaries:AppSummaryList.toption[@ocaml.doc"Summaries for the Resilience Hub application."];nextToken:NextToken.toption[@ocaml.doc"Token for the next set of results, or null if there are no more results."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?appSummaries=fun?nextToken->fun()->{appSummaries;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("appSummaries",(Option.mapx.appSummaries~f:AppSummaryList.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletappSummaries=(Option.map~f:AppSummaryList.of_xml)(Xml.childxml_arg0"appSummaries")inmake?nextToken?appSummaries()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletappSummaries=field_mapjson__"appSummaries"AppSummaryList.of_jsoninmake?nextToken?appSummaries()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists your Resilience Hub applications. You can filter applications using only one filter at a time or without using any filter. If you try to filter applications using multiple filters, you will get the following error: An error occurred (ValidationException) when calling the ListApps operation: Only one filter is supported for this operation."]moduleListAppsRequest=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];awsApplicationArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of Resource Groups group that is integrated with an AppRegistry application. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];fromLastAssessmentTime:TimeStamp.toption[@ocaml.doc"Lower limit of the range that is used to filter applications based on their last assessment times."];maxResults:MaxResults.toption[@ocaml.doc"Maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved."];name:EntityName.toption[@ocaml.doc"The name for the one of the listed applications."];nextToken:NextToken.toption[@ocaml.doc"Null, or the token from a previous call to get the next set of results."];reverseOrder:BooleanOptional.toption[@ocaml.doc"The application list is sorted based on the values of lastAppComplianceEvaluationTime field. By default, application list is sorted in ascending order. To sort the application list in descending order, set this field to True."];toLastAssessmentTime:TimeStamp.toption[@ocaml.doc"Upper limit of the range that is used to filter the applications based on their last assessment times."]}letmake?appArn=fun?awsApplicationArn->fun?fromLastAssessmentTime->fun?maxResults->fun?name->fun?nextToken->fun?reverseOrder->fun?toLastAssessmentTime->fun()->{appArn;awsApplicationArn;fromLastAssessmentTime;maxResults;name;nextToken;reverseOrder;toLastAssessmentTime}letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("awsApplicationArn",(Option.mapx.awsApplicationArn~f:Arn.to_value));("fromLastAssessmentTime",(Option.mapx.fromLastAssessmentTime~f:TimeStamp.to_value));("maxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("name",(Option.mapx.name~f:EntityName.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value));("reverseOrder",(Option.mapx.reverseOrder~f:BooleanOptional.to_value));("toLastAssessmentTime",(Option.mapx.toLastAssessmentTime~f:TimeStamp.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettoLastAssessmentTime=(Option.map~f:TimeStamp.of_xml)(Xml.childxml_arg0"toLastAssessmentTime")inletreverseOrder=(Option.map~f:BooleanOptional.of_xml)(Xml.childxml_arg0"reverseOrder")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletname=(Option.map~f:EntityName.of_xml)(Xml.childxml_arg0"name")inletmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"maxResults")inletfromLastAssessmentTime=(Option.map~f:TimeStamp.of_xml)(Xml.childxml_arg0"fromLastAssessmentTime")inletawsApplicationArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"awsApplicationArn")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?toLastAssessmentTime?reverseOrder?nextToken?name?maxResults?fromLastAssessmentTime?awsApplicationArn?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettoLastAssessmentTime=field_mapjson__"toLastAssessmentTime"TimeStamp.of_jsoninletreverseOrder=field_mapjson__"reverseOrder"BooleanOptional.of_jsoninletnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletname=field_mapjson__"name"EntityName.of_jsoninletmaxResults=field_mapjson__"maxResults"MaxResults.of_jsoninletfromLastAssessmentTime=field_mapjson__"fromLastAssessmentTime"TimeStamp.of_jsoninletawsApplicationArn=field_mapjson__"awsApplicationArn"Arn.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?toLastAssessmentTime?reverseOrder?nextToken?name?maxResults?fromLastAssessmentTime?awsApplicationArn?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists your Resilience Hub applications. You can filter applications using only one filter at a time or without using any filter. If you try to filter applications using multiple filters, you will get the following error: An error occurred (ValidationException) when calling the ListApps operation: Only one filter is supported for this operation."]moduleListAppVersionsResponse=structtypenonrect={appVersions:AppVersionList.toption[@ocaml.doc"The version of the application."];nextToken:NextToken.toption[@ocaml.doc"Token for the next set of results, or null if there are no more results."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?appVersions=fun?nextToken->fun()->{appVersions;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("appVersions",(Option.mapx.appVersions~f:AppVersionList.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletappVersions=(Option.map~f:AppVersionList.of_xml)(Xml.childxml_arg0"appVersions")inmake?nextToken?appVersions()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletappVersions=field_mapjson__"appVersions"AppVersionList.of_jsoninmake?nextToken?appVersions()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the different versions for the Resilience Hub applications."]moduleListAppVersionsRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];endTime:TimeStamp.toption[@ocaml.doc"Upper limit of the time range to filter the application versions."];maxResults:MaxResults.toption[@ocaml.doc"Maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved."];nextToken:NextToken.toption[@ocaml.doc"Null, or the token from a previous call to get the next set of results."];startTime:TimeStamp.toption[@ocaml.doc"Lower limit of the time range to filter the application versions."]}letcontext_="ListAppVersionsRequest"letmake?endTime=fun?maxResults->fun?nextToken->fun?startTime->fun~appArn->fun()->{endTime;maxResults;nextToken;startTime;appArn}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)));("endTime",(Option.mapx.endTime~f:TimeStamp.to_value));("maxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value));("startTime",(Option.mapx.startTime~f:TimeStamp.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstartTime=(Option.map~f:TimeStamp.of_xml)(Xml.childxml_arg0"startTime")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"maxResults")inletendTime=(Option.map~f:TimeStamp.of_xml)(Xml.childxml_arg0"endTime")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake?startTime?nextToken?maxResults?endTime~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstartTime=field_mapjson__"startTime"TimeStamp.of_jsoninletnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletmaxResults=field_mapjson__"maxResults"MaxResults.of_jsoninletendTime=field_mapjson__"endTime"TimeStamp.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake?startTime?nextToken?maxResults?endTime~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the different versions for the Resilience Hub applications."]moduleListAppVersionResourcesResponse=structtypenonrect={nextToken:NextToken.toption[@ocaml.doc"Token for the next set of results, or null if there are no more results."];physicalResources:PhysicalResourceList.toption[@ocaml.doc"The physical resources in the application version."];resolutionId:String255.toption[@ocaml.doc"The ID for a specific resolution."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?nextToken=fun?physicalResources->fun?resolutionId->fun()->{nextToken;physicalResources;resolutionId}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("nextToken",(Option.mapx.nextToken~f:NextToken.to_value));("physicalResources",(Option.mapx.physicalResources~f:PhysicalResourceList.to_value));("resolutionId",(Option.mapx.resolutionId~f:String255.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresolutionId=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"resolutionId")inletphysicalResources=(Option.map~f:PhysicalResourceList.of_xml)(Xml.childxml_arg0"physicalResources")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inmake?resolutionId?physicalResources?nextToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresolutionId=field_mapjson__"resolutionId"String255.of_jsoninletphysicalResources=field_mapjson__"physicalResources"PhysicalResourceList.of_jsoninletnextToken=field_mapjson__"nextToken"NextToken.of_jsoninmake?resolutionId?physicalResources?nextToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists all the resources in an Resilience Hub application."]moduleListAppVersionResourcesRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.t[@ocaml.doc"The version of the application."];maxResults:MaxResults.toption[@ocaml.doc"Maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved."];nextToken:NextToken.toption[@ocaml.doc"Null, or the token from a previous call to get the next set of results."];resolutionId:String255.toption[@ocaml.doc"The identifier for a specific resolution."]}letcontext_="ListAppVersionResourcesRequest"letmake?maxResults=fun?nextToken->fun?resolutionId->fun~appArn->fun~appVersion->fun()->{maxResults;nextToken;resolutionId;appArn;appVersion}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)));("appVersion",(Some(EntityVersion.to_valuex.appVersion)));("maxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value));("resolutionId",(Option.mapx.resolutionId~f:String255.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresolutionId=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"resolutionId")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"maxResults")inletappVersion=EntityVersion.of_xml(Xml.child_exn~context:context_xml_arg0"appVersion")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake?resolutionId?nextToken?maxResults~appVersion~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresolutionId=field_mapjson__"resolutionId"String255.of_jsoninletnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletmaxResults=field_mapjson__"maxResults"MaxResults.of_jsoninletappVersion=field_map_exnjson__"appVersion"EntityVersion.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake?resolutionId?nextToken?maxResults~appVersion~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists all the resources in an Resilience Hub application."]moduleListAppVersionResourceMappingsResponse=structtypenonrect={nextToken:NextToken.toption[@ocaml.doc"Token for the next set of results, or null if there are no more results."];resourceMappings:ResourceMappingList.toption[@ocaml.doc"Mappings used to map logical resources from the template to physical resources. You can use the mapping type CFN_STACK if the application template uses a logical stack name. Or you can map individual resources by using the mapping type RESOURCE. We recommend using the mapping type CFN_STACK if the application is backed by a CloudFormation stack."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?nextToken=fun?resourceMappings->fun()->{nextToken;resourceMappings}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("nextToken",(Option.mapx.nextToken~f:NextToken.to_value));("resourceMappings",(Option.mapx.resourceMappings~f:ResourceMappingList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceMappings=(Option.map~f:ResourceMappingList.of_xml)(Xml.childxml_arg0"resourceMappings")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inmake?resourceMappings?nextToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceMappings=field_mapjson__"resourceMappings"ResourceMappingList.of_jsoninletnextToken=field_mapjson__"nextToken"NextToken.of_jsoninmake?resourceMappings?nextToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists how the resources in an application version are mapped/sourced from. Mappings can be physical resource identifiers, CloudFormation stacks, resource-groups, or an application registry app."]moduleListAppVersionResourceMappingsRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.t[@ocaml.doc"The version of the application."];maxResults:MaxResults.toption[@ocaml.doc"Maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved."];nextToken:NextToken.toption[@ocaml.doc"Null, or the token from a previous call to get the next set of results."]}letcontext_="ListAppVersionResourceMappingsRequest"letmake?maxResults=fun?nextToken->fun~appArn->fun~appVersion->fun()->{maxResults;nextToken;appArn;appVersion}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)));("appVersion",(Some(EntityVersion.to_valuex.appVersion)));("maxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"maxResults")inletappVersion=EntityVersion.of_xml(Xml.child_exn~context:context_xml_arg0"appVersion")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake?nextToken?maxResults~appVersion~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletmaxResults=field_mapjson__"maxResults"MaxResults.of_jsoninletappVersion=field_map_exnjson__"appVersion"EntityVersion.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake?nextToken?maxResults~appVersion~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists how the resources in an application version are mapped/sourced from. Mappings can be physical resource identifiers, CloudFormation stacks, resource-groups, or an application registry app."]moduleListAppVersionAppComponentsResponse=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appComponents:AppComponentList.toption[@ocaml.doc"Defines an Application Component."];appVersion:EntityVersion.toption[@ocaml.doc"Resilience Hub application version."];nextToken:NextToken.toption[@ocaml.doc"Token for the next set of results, or null if there are no more results."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?appArn=fun?appComponents->fun?appVersion->fun?nextToken->fun()->{appArn;appComponents;appVersion;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("appComponents",(Option.mapx.appComponents~f:AppComponentList.to_value));("appVersion",(Option.mapx.appVersion~f:EntityVersion.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletappVersion=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"appVersion")inletappComponents=(Option.map~f:AppComponentList.of_xml)(Xml.childxml_arg0"appComponents")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?nextToken?appVersion?appComponents?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletappVersion=field_mapjson__"appVersion"EntityVersion.of_jsoninletappComponents=field_mapjson__"appComponents"AppComponentList.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?nextToken?appVersion?appComponents?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists all the Application Components in the Resilience Hub application."]moduleListAppVersionAppComponentsRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.t[@ocaml.doc"Version of the Application Component."];maxResults:MaxResults.toption[@ocaml.doc"Maximum number of Application Components to be displayed per Resilience Hub application version."];nextToken:NextToken.toption[@ocaml.doc"Null, or the token from a previous call to get the next set of results."]}letcontext_="ListAppVersionAppComponentsRequest"letmake?maxResults=fun?nextToken->fun~appArn->fun~appVersion->fun()->{maxResults;nextToken;appArn;appVersion}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)));("appVersion",(Some(EntityVersion.to_valuex.appVersion)));("maxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"maxResults")inletappVersion=EntityVersion.of_xml(Xml.child_exn~context:context_xml_arg0"appVersion")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake?nextToken?maxResults~appVersion~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletmaxResults=field_mapjson__"maxResults"MaxResults.of_jsoninletappVersion=field_map_exnjson__"appVersion"EntityVersion.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake?nextToken?maxResults~appVersion~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists all the Application Components in the Resilience Hub application."]moduleListAppInputSourcesResponse=structtypenonrect={appInputSources:AppInputSourceList.toption[@ocaml.doc"The list of Resilience Hub application input sources."];nextToken:NextToken.toption[@ocaml.doc"Token for the next set of results, or null if there are no more results."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?appInputSources=fun?nextToken->fun()->{appInputSources;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("appInputSources",(Option.mapx.appInputSources~f:AppInputSourceList.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletappInputSources=(Option.map~f:AppInputSourceList.of_xml)(Xml.childxml_arg0"appInputSources")inmake?nextToken?appInputSources()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletappInputSources=field_mapjson__"appInputSources"AppInputSourceList.of_jsoninmake?nextToken?appInputSources()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists all the input sources of the Resilience Hub application. For more information about the input sources supported by Resilience Hub, see Discover the structure and describe your Resilience Hub application."]moduleListAppInputSourcesRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.t[@ocaml.doc"Resilience Hub application version."];maxResults:MaxResults.toption[@ocaml.doc"Maximum number of input sources to be displayed per Resilience Hub application."];nextToken:NextToken.toption[@ocaml.doc"Null, or the token from a previous call to get the next set of results."]}letcontext_="ListAppInputSourcesRequest"letmake?maxResults=fun?nextToken->fun~appArn->fun~appVersion->fun()->{maxResults;nextToken;appArn;appVersion}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)));("appVersion",(Some(EntityVersion.to_valuex.appVersion)));("maxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"maxResults")inletappVersion=EntityVersion.of_xml(Xml.child_exn~context:context_xml_arg0"appVersion")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake?nextToken?maxResults~appVersion~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletmaxResults=field_mapjson__"maxResults"MaxResults.of_jsoninletappVersion=field_map_exnjson__"appVersion"EntityVersion.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake?nextToken?maxResults~appVersion~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists all the input sources of the Resilience Hub application. For more information about the input sources supported by Resilience Hub, see Discover the structure and describe your Resilience Hub application."]moduleListAppComponentRecommendationsResponse=structtypenonrect={componentRecommendations:ComponentRecommendationList.toption[@ocaml.doc"The recommendations for an Resilience Hub Application Component, returned as an object. This object contains the names of the Application Components, configuration recommendations, and recommendation statuses."];nextToken:NextToken.toption[@ocaml.doc"Token for the next set of results, or null if there are no more results."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?componentRecommendations=fun?nextToken->fun()->{componentRecommendations;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("componentRecommendations",(Option.mapx.componentRecommendations~f:ComponentRecommendationList.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletcomponentRecommendations=(Option.map~f:ComponentRecommendationList.of_xml)(Xml.childxml_arg0"componentRecommendations")inmake?nextToken?componentRecommendations()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletcomponentRecommendations=field_mapjson__"componentRecommendations"ComponentRecommendationList.of_jsoninmake?nextToken?componentRecommendations()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the recommendations for an Resilience Hub Application Component."]moduleListAppComponentRecommendationsRequest=structtypenonrect={assessmentArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];maxResults:MaxResults.toption[@ocaml.doc"Maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved."];nextToken:NextToken.toption[@ocaml.doc"Null, or the token from a previous call to get the next set of results."]}letcontext_="ListAppComponentRecommendationsRequest"letmake?maxResults=fun?nextToken->fun~assessmentArn->fun()->{maxResults;nextToken;assessmentArn}letto_valuex=structure_to_value[("assessmentArn",(Some(Arn.to_valuex.assessmentArn)));("maxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"maxResults")inletassessmentArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"assessmentArn")inmake?nextToken?maxResults~assessmentArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletmaxResults=field_mapjson__"maxResults"MaxResults.of_jsoninletassessmentArn=field_map_exnjson__"assessmentArn"Arn.of_jsoninmake?nextToken?maxResults~assessmentArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the recommendations for an Resilience Hub Application Component."]moduleListAppComponentCompliancesResponse=structtypenonrect={componentCompliances:ComponentCompliancesList.toption[@ocaml.doc"The compliances for an Resilience Hub Application Component, returned as an object. This object contains the names of the Application Components, compliances, costs, resiliency scores, outage scores, and more."];nextToken:NextToken.toption[@ocaml.doc"Token for the next set of results, or null if there are no more results."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?componentCompliances=fun?nextToken->fun()->{componentCompliances;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("componentCompliances",(Option.mapx.componentCompliances~f:ComponentCompliancesList.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletcomponentCompliances=(Option.map~f:ComponentCompliancesList.of_xml)(Xml.childxml_arg0"componentCompliances")inmake?nextToken?componentCompliances()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletcomponentCompliances=field_mapjson__"componentCompliances"ComponentCompliancesList.of_jsoninmake?nextToken?componentCompliances()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the compliances for an Resilience Hub Application Component."]moduleListAppComponentCompliancesRequest=structtypenonrect={assessmentArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];maxResults:MaxResults.toption[@ocaml.doc"Maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved."];nextToken:NextToken.toption[@ocaml.doc"Null, or the token from a previous call to get the next set of results."]}letcontext_="ListAppComponentCompliancesRequest"letmake?maxResults=fun?nextToken->fun~assessmentArn->fun()->{maxResults;nextToken;assessmentArn}letto_valuex=structure_to_value[("assessmentArn",(Some(Arn.to_valuex.assessmentArn)));("maxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"maxResults")inletassessmentArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"assessmentArn")inmake?nextToken?maxResults~assessmentArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletmaxResults=field_mapjson__"maxResults"MaxResults.of_jsoninletassessmentArn=field_map_exnjson__"assessmentArn"Arn.of_jsoninmake?nextToken?maxResults~assessmentArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the compliances for an Resilience Hub Application Component."]moduleListAppAssessmentsResponse=structtypenonrect={assessmentSummaries:AppAssessmentSummaryList.toption[@ocaml.doc"The summaries for the specified assessments, returned as an object. This object includes application versions, associated Amazon Resource Numbers (ARNs), cost, messages, resiliency scores, and more."];nextToken:NextToken.toption[@ocaml.doc"Token for the next set of results, or null if there are no more results."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?assessmentSummaries=fun?nextToken->fun()->{assessmentSummaries;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("assessmentSummaries",(Option.mapx.assessmentSummaries~f:AppAssessmentSummaryList.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletassessmentSummaries=(Option.map~f:AppAssessmentSummaryList.of_xml)(Xml.childxml_arg0"assessmentSummaries")inmake?nextToken?assessmentSummaries()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletassessmentSummaries=field_mapjson__"assessmentSummaries"AppAssessmentSummaryList.of_jsoninmake?nextToken?assessmentSummaries()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the assessments for an Resilience Hub application. You can use request parameters to refine the results for the response object."]moduleListAppAssessmentsRequest=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];assessmentName:EntityName.toption[@ocaml.doc"The name for the assessment."];assessmentStatus:AssessmentStatusList.toption[@ocaml.doc"The current status of the assessment for the resiliency policy."];complianceStatus:ComplianceStatus.toption[@ocaml.doc"The current status of compliance for the resiliency policy."];invoker:AssessmentInvoker.toption[@ocaml.doc"Specifies the entity that invoked a specific assessment, either a User or the System."];maxResults:MaxResults.toption[@ocaml.doc"Maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved."];nextToken:NextToken.toption[@ocaml.doc"Null, or the token from a previous call to get the next set of results."];reverseOrder:BooleanOptional.toption[@ocaml.doc"The default is to sort by ascending startTime. To sort by descending startTime, set reverseOrder to true."]}letmake?appArn=fun?assessmentName->fun?assessmentStatus->fun?complianceStatus->fun?invoker->fun?maxResults->fun?nextToken->fun?reverseOrder->fun()->{appArn;assessmentName;assessmentStatus;complianceStatus;invoker;maxResults;nextToken;reverseOrder}letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("assessmentName",(Option.mapx.assessmentName~f:EntityName.to_value));("assessmentStatus",(Option.mapx.assessmentStatus~f:AssessmentStatusList.to_value));("complianceStatus",(Option.mapx.complianceStatus~f:ComplianceStatus.to_value));("invoker",(Option.mapx.invoker~f:AssessmentInvoker.to_value));("maxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value));("reverseOrder",(Option.mapx.reverseOrder~f:BooleanOptional.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letreverseOrder=(Option.map~f:BooleanOptional.of_xml)(Xml.childxml_arg0"reverseOrder")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"maxResults")inletinvoker=(Option.map~f:AssessmentInvoker.of_xml)(Xml.childxml_arg0"invoker")inletcomplianceStatus=(Option.map~f:ComplianceStatus.of_xml)(Xml.childxml_arg0"complianceStatus")inletassessmentStatus=(Option.map~f:AssessmentStatusList.of_xml)(Xml.childxml_arg0"assessmentStatus")inletassessmentName=(Option.map~f:EntityName.of_xml)(Xml.childxml_arg0"assessmentName")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?reverseOrder?nextToken?maxResults?invoker?complianceStatus?assessmentStatus?assessmentName?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letreverseOrder=field_mapjson__"reverseOrder"BooleanOptional.of_jsoninletnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletmaxResults=field_mapjson__"maxResults"MaxResults.of_jsoninletinvoker=field_mapjson__"invoker"AssessmentInvoker.of_jsoninletcomplianceStatus=field_mapjson__"complianceStatus"ComplianceStatus.of_jsoninletassessmentStatus=field_mapjson__"assessmentStatus"AssessmentStatusList.of_jsoninletassessmentName=field_mapjson__"assessmentName"EntityName.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?reverseOrder?nextToken?maxResults?invoker?complianceStatus?assessmentStatus?assessmentName?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the assessments for an Resilience Hub application. You can use request parameters to refine the results for the response object."]moduleListAppAssessmentResourceDriftsResponse=structtypenonrect={nextToken:NextToken.toption[@ocaml.doc"Null, or the token from a previous call to get the next set of results."];resourceDrifts:ResourceDriftList.toption[@ocaml.doc"Indicates all the resource drifts detected for an assessed entity."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?nextToken=fun?resourceDrifts->fun()->{nextToken;resourceDrifts}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("nextToken",(Option.mapx.nextToken~f:NextToken.to_value));("resourceDrifts",(Option.mapx.resourceDrifts~f:ResourceDriftList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceDrifts=(Option.map~f:ResourceDriftList.of_xml)(Xml.childxml_arg0"resourceDrifts")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inmake?resourceDrifts?nextToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceDrifts=field_mapjson__"resourceDrifts"ResourceDriftList.of_jsoninletnextToken=field_mapjson__"nextToken"NextToken.of_jsoninmake?resourceDrifts?nextToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"List of resource drifts that were detected while running an assessment."]moduleListAppAssessmentResourceDriftsRequest=structtypenonrect={assessmentArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];maxResults:MaxResults.toption[@ocaml.doc"Maximum number of drift results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved."];nextToken:NextToken.toption[@ocaml.doc"Null, or the token from a previous call to get the next set of results."]}letcontext_="ListAppAssessmentResourceDriftsRequest"letmake?maxResults=fun?nextToken->fun~assessmentArn->fun()->{maxResults;nextToken;assessmentArn}letto_valuex=structure_to_value[("assessmentArn",(Some(Arn.to_valuex.assessmentArn)));("maxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"maxResults")inletassessmentArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"assessmentArn")inmake?nextToken?maxResults~assessmentArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletmaxResults=field_mapjson__"maxResults"MaxResults.of_jsoninletassessmentArn=field_map_exnjson__"assessmentArn"Arn.of_jsoninmake?nextToken?maxResults~assessmentArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"List of resource drifts that were detected while running an assessment."]moduleListAppAssessmentComplianceDriftsResponse=structtypenonrect={complianceDrifts:ComplianceDriftList.toption[@ocaml.doc"Indicates compliance drifts (recovery time objective (RTO) and recovery point objective (RPO)) detected for an assessed entity."];nextToken:NextToken.toption[@ocaml.doc"Null, or the token from a previous call to get the next set of results."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?complianceDrifts=fun?nextToken->fun()->{complianceDrifts;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("complianceDrifts",(Option.mapx.complianceDrifts~f:ComplianceDriftList.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletcomplianceDrifts=(Option.map~f:ComplianceDriftList.of_xml)(Xml.childxml_arg0"complianceDrifts")inmake?nextToken?complianceDrifts()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletcomplianceDrifts=field_mapjson__"complianceDrifts"ComplianceDriftList.of_jsoninmake?nextToken?complianceDrifts()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"List of compliance drifts that were detected while running an assessment."]moduleListAppAssessmentComplianceDriftsRequest=structtypenonrect={assessmentArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];maxResults:MaxResults.toption[@ocaml.doc"Maximum number of compliance drifts requested."];nextToken:NextToken.toption[@ocaml.doc"Null, or the token from a previous call to get the next set of results."]}letcontext_="ListAppAssessmentComplianceDriftsRequest"letmake?maxResults=fun?nextToken->fun~assessmentArn->fun()->{maxResults;nextToken;assessmentArn}letto_valuex=structure_to_value[("assessmentArn",(Some(Arn.to_valuex.assessmentArn)));("maxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"maxResults")inletassessmentArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"assessmentArn")inmake?nextToken?maxResults~assessmentArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletmaxResults=field_mapjson__"maxResults"MaxResults.of_jsoninletassessmentArn=field_map_exnjson__"assessmentArn"Arn.of_jsoninmake?nextToken?maxResults~assessmentArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"List of compliance drifts that were detected while running an assessment."]moduleListAlarmRecommendationsResponse=structtypenonrect={alarmRecommendations:AlarmRecommendationList.toption[@ocaml.doc"The alarm recommendations for an Resilience Hub application, returned as an object. This object includes Application Component names, descriptions, information about whether a recommendation has already been implemented or not, prerequisites, and more."];nextToken:NextToken.toption[@ocaml.doc"Token for the next set of results, or null if there are no more results."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?alarmRecommendations=fun?nextToken->fun()->{alarmRecommendations;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("alarmRecommendations",(Option.mapx.alarmRecommendations~f:AlarmRecommendationList.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletalarmRecommendations=(Option.map~f:AlarmRecommendationList.of_xml)(Xml.childxml_arg0"alarmRecommendations")inmake?nextToken?alarmRecommendations()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletalarmRecommendations=field_mapjson__"alarmRecommendations"AlarmRecommendationList.of_jsoninmake?nextToken?alarmRecommendations()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the alarm recommendations for an Resilience Hub application."]moduleListAlarmRecommendationsRequest=structtypenonrect={assessmentArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];maxResults:MaxResults.toption[@ocaml.doc"Maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved."];nextToken:NextToken.toption[@ocaml.doc"Null, or the token from a previous call to get the next set of results."]}letcontext_="ListAlarmRecommendationsRequest"letmake?maxResults=fun?nextToken->fun~assessmentArn->fun()->{maxResults;nextToken;assessmentArn}letto_valuex=structure_to_value[("assessmentArn",(Some(Arn.to_valuex.assessmentArn)));("maxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("nextToken",(Option.mapx.nextToken~f:NextToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"maxResults")inletassessmentArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"assessmentArn")inmake?nextToken?maxResults~assessmentArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"nextToken"NextToken.of_jsoninletmaxResults=field_mapjson__"maxResults"MaxResults.of_jsoninletassessmentArn=field_map_exnjson__"assessmentArn"Arn.of_jsoninmake?nextToken?maxResults~assessmentArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the alarm recommendations for an Resilience Hub application."]moduleImportResourcesToDraftAppVersionResponse=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.toption[@ocaml.doc"The version of the application."];eksSources:EksSourceList.toption[@ocaml.doc"The input sources of the Amazon Elastic Kubernetes Service resources you have imported."];sourceArns:ArnList.toption[@ocaml.doc"The Amazon Resource Names (ARNs) for the resources you have imported."];status:ResourceImportStatusType.toption[@ocaml.doc"Status of the action."];terraformSources:TerraformSourceList.toption[@ocaml.doc"A list of terraform file s3 URLs you have imported."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?appArn=fun?appVersion->fun?eksSources->fun?sourceArns->fun?status->fun?terraformSources->fun()->{appArn;appVersion;eksSources;sourceArns;status;terraformSources}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceQuotaExceededExceptione->`Assoc[("error",(`String"ServiceQuotaExceededException"));("details",(ServiceQuotaExceededException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("appVersion",(Option.mapx.appVersion~f:EntityVersion.to_value));("eksSources",(Option.mapx.eksSources~f:EksSourceList.to_value));("sourceArns",(Option.mapx.sourceArns~f:ArnList.to_value));("status",(Option.mapx.status~f:ResourceImportStatusType.to_value));("terraformSources",(Option.mapx.terraformSources~f:TerraformSourceList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letterraformSources=(Option.map~f:TerraformSourceList.of_xml)(Xml.childxml_arg0"terraformSources")inletstatus=(Option.map~f:ResourceImportStatusType.of_xml)(Xml.childxml_arg0"status")inletsourceArns=(Option.map~f:ArnList.of_xml)(Xml.childxml_arg0"sourceArns")inleteksSources=(Option.map~f:EksSourceList.of_xml)(Xml.childxml_arg0"eksSources")inletappVersion=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"appVersion")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?terraformSources?status?sourceArns?eksSources?appVersion?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letterraformSources=field_mapjson__"terraformSources"TerraformSourceList.of_jsoninletstatus=field_mapjson__"status"ResourceImportStatusType.of_jsoninletsourceArns=field_mapjson__"sourceArns"ArnList.of_jsoninleteksSources=field_mapjson__"eksSources"EksSourceList.of_jsoninletappVersion=field_mapjson__"appVersion"EntityVersion.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?terraformSources?status?sourceArns?eksSources?appVersion?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Imports resources to Resilience Hub application draft version from different input sources. For more information about the input sources supported by Resilience Hub, see Discover the structure and describe your Resilience Hub application."]moduleImportResourcesToDraftAppVersionRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];eksSources:EksSourceList.toption[@ocaml.doc"The input sources of the Amazon Elastic Kubernetes Service resources you need to import."];importStrategy:ResourceImportStrategyType.toption[@ocaml.doc"The import strategy you would like to set to import resources into Resilience Hub application."];sourceArns:ArnList.toption[@ocaml.doc"The Amazon Resource Names (ARNs) for the resources."];terraformSources:TerraformSourceList.toption[@ocaml.doc"A list of terraform file s3 URLs you need to import."]}letcontext_="ImportResourcesToDraftAppVersionRequest"letmake?eksSources=fun?importStrategy->fun?sourceArns->fun?terraformSources->fun~appArn->fun()->{eksSources;importStrategy;sourceArns;terraformSources;appArn}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)));("eksSources",(Option.mapx.eksSources~f:EksSourceList.to_value));("importStrategy",(Option.mapx.importStrategy~f:ResourceImportStrategyType.to_value));("sourceArns",(Option.mapx.sourceArns~f:ArnList.to_value));("terraformSources",(Option.mapx.terraformSources~f:TerraformSourceList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letterraformSources=(Option.map~f:TerraformSourceList.of_xml)(Xml.childxml_arg0"terraformSources")inletsourceArns=(Option.map~f:ArnList.of_xml)(Xml.childxml_arg0"sourceArns")inletimportStrategy=(Option.map~f:ResourceImportStrategyType.of_xml)(Xml.childxml_arg0"importStrategy")inleteksSources=(Option.map~f:EksSourceList.of_xml)(Xml.childxml_arg0"eksSources")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake?terraformSources?sourceArns?importStrategy?eksSources~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letterraformSources=field_mapjson__"terraformSources"TerraformSourceList.of_jsoninletsourceArns=field_mapjson__"sourceArns"ArnList.of_jsoninletimportStrategy=field_mapjson__"importStrategy"ResourceImportStrategyType.of_jsoninleteksSources=field_mapjson__"eksSources"EksSourceList.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake?terraformSources?sourceArns?importStrategy?eksSources~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Imports resources to Resilience Hub application draft version from different input sources. For more information about the input sources supported by Resilience Hub, see Discover the structure and describe your Resilience Hub application."]moduleDescribeResourceGroupingRecommendationTaskResponse=structtypenonrect={errorMessage:String500.toption[@ocaml.doc"Error that occurred while generating a grouping recommendation."];groupingId:String255.toption[@ocaml.doc"Identifier of the grouping recommendation task."];status:ResourcesGroupingRecGenStatusType.toption[@ocaml.doc"Status of the action."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?errorMessage=fun?groupingId->fun?status->fun()->{errorMessage;groupingId;status}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("errorMessage",(Option.mapx.errorMessage~f:String500.to_value));("groupingId",(Option.mapx.groupingId~f:String255.to_value));("status",(Option.mapx.status~f:ResourcesGroupingRecGenStatusType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstatus=(Option.map~f:ResourcesGroupingRecGenStatusType.of_xml)(Xml.childxml_arg0"status")inletgroupingId=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"groupingId")inleterrorMessage=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"errorMessage")inmake?status?groupingId?errorMessage()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstatus=field_mapjson__"status"ResourcesGroupingRecGenStatusType.of_jsoninletgroupingId=field_mapjson__"groupingId"String255.of_jsoninleterrorMessage=field_mapjson__"errorMessage"String500.of_jsoninmake?status?groupingId?errorMessage()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the resource grouping recommendation tasks run by Resilience Hub for your application."]moduleDescribeResourceGroupingRecommendationTaskRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];groupingId:String255.toption[@ocaml.doc"Identifier of the grouping recommendation task."]}letcontext_="DescribeResourceGroupingRecommendationTaskRequest"letmake?groupingId=fun~appArn->fun()->{groupingId;appArn}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)));("groupingId",(Option.mapx.groupingId~f:String255.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgroupingId=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"groupingId")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake?groupingId~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgroupingId=field_mapjson__"groupingId"String255.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake?groupingId~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the resource grouping recommendation tasks run by Resilience Hub for your application."]moduleDescribeResiliencyPolicyResponse=structtypenonrect={policy:ResiliencyPolicy.toption[@ocaml.doc"Information about the specific resiliency policy, returned as an object. This object includes creation time, data location constraints, its name, description, tags, the recovery time objective (RTO) and recovery point objective (RPO) in seconds, and more."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?policy=fun()->{policy}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("policy",(Option.mapx.policy~f:ResiliencyPolicy.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpolicy=(Option.map~f:ResiliencyPolicy.of_xml)(Xml.childxml_arg0"policy")inmake?policy()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpolicy=field_mapjson__"policy"ResiliencyPolicy.of_jsoninmake?policy()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a specified resiliency policy for an Resilience Hub application. The returned policy object includes creation time, data location constraints, the Amazon Resource Name (ARN) for the policy, tags, tier, and more."]moduleDescribeResiliencyPolicyRequest=structtypenonrect={policyArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the resiliency policy. The format for this ARN is: arn:partition:resiliencehub:region:account:resiliency-policy/policy-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."]}letcontext_="DescribeResiliencyPolicyRequest"letmake~policyArn=fun()->{policyArn}letto_valuex=structure_to_value[("policyArn",(Some(Arn.to_valuex.policyArn)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpolicyArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"policyArn")inmake~policyArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpolicyArn=field_map_exnjson__"policyArn"Arn.of_jsoninmake~policyArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a specified resiliency policy for an Resilience Hub application. The returned policy object includes creation time, data location constraints, the Amazon Resource Name (ARN) for the policy, tags, tier, and more."]moduleDescribeMetricsExportResponse=structtypenonrect={errorMessage:String500.toption[@ocaml.doc"Explains the error that occurred while exporting the metrics."];exportLocation:S3Location.toption[@ocaml.doc"Specifies the name of the Amazon S3 bucket where the exported metrics is stored."];metricsExportId:String255.toption[@ocaml.doc"Identifier for the metrics export task."];status:MetricsExportStatusType.toption[@ocaml.doc"Indicates the status of the metrics export task."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?errorMessage=fun?exportLocation->fun?metricsExportId->fun?status->fun()->{errorMessage;exportLocation;metricsExportId;status}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("errorMessage",(Option.mapx.errorMessage~f:String500.to_value));("exportLocation",(Option.mapx.exportLocation~f:S3Location.to_value));("metricsExportId",(Option.mapx.metricsExportId~f:String255.to_value));("status",(Option.mapx.status~f:MetricsExportStatusType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstatus=(Option.map~f:MetricsExportStatusType.of_xml)(Xml.childxml_arg0"status")inletmetricsExportId=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"metricsExportId")inletexportLocation=(Option.map~f:S3Location.of_xml)(Xml.childxml_arg0"exportLocation")inleterrorMessage=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"errorMessage")inmake?status?metricsExportId?exportLocation?errorMessage()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstatus=field_mapjson__"status"MetricsExportStatusType.of_jsoninletmetricsExportId=field_mapjson__"metricsExportId"String255.of_jsoninletexportLocation=field_mapjson__"exportLocation"S3Location.of_jsoninleterrorMessage=field_mapjson__"errorMessage"String500.of_jsoninmake?status?metricsExportId?exportLocation?errorMessage()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the metrics of the application configuration being exported."]moduleDescribeMetricsExportRequest=structtypenonrect={metricsExportId:String255.t[@ocaml.doc"Identifier of the metrics export task."]}letcontext_="DescribeMetricsExportRequest"letmake~metricsExportId=fun()->{metricsExportId}letto_valuex=structure_to_value[("metricsExportId",(Some(String255.to_valuex.metricsExportId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmetricsExportId=String255.of_xml(Xml.child_exn~context:context_xml_arg0"metricsExportId")inmake~metricsExportId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmetricsExportId=field_map_exnjson__"metricsExportId"String255.of_jsoninmake~metricsExportId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the metrics of the application configuration being exported."]moduleDescribeDraftAppVersionResourcesImportStatusResponse=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.toption[@ocaml.doc"The version of the application."];errorDetails:ErrorDetailList.toption[@ocaml.doc"List of errors that were encountered while importing resources."];errorMessage:String500.toption[@ocaml.doc"The error message returned for the resource request."];status:ResourceImportStatusType.toption[@ocaml.doc"Status of the action."];statusChangeTime:TimeStamp.toption[@ocaml.doc"The time when the status last changed."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?appArn=fun?appVersion->fun?errorDetails->fun?errorMessage->fun?status->fun?statusChangeTime->fun()->{appArn;appVersion;errorDetails;errorMessage;status;statusChangeTime}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("appVersion",(Option.mapx.appVersion~f:EntityVersion.to_value));("errorDetails",(Option.mapx.errorDetails~f:ErrorDetailList.to_value));("errorMessage",(Option.mapx.errorMessage~f:String500.to_value));("status",(Option.mapx.status~f:ResourceImportStatusType.to_value));("statusChangeTime",(Option.mapx.statusChangeTime~f:TimeStamp.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstatusChangeTime=(Option.map~f:TimeStamp.of_xml)(Xml.childxml_arg0"statusChangeTime")inletstatus=(Option.map~f:ResourceImportStatusType.of_xml)(Xml.childxml_arg0"status")inleterrorMessage=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"errorMessage")inleterrorDetails=(Option.map~f:ErrorDetailList.of_xml)(Xml.childxml_arg0"errorDetails")inletappVersion=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"appVersion")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?statusChangeTime?status?errorMessage?errorDetails?appVersion?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstatusChangeTime=field_mapjson__"statusChangeTime"TimeStamp.of_jsoninletstatus=field_mapjson__"status"ResourceImportStatusType.of_jsoninleterrorMessage=field_mapjson__"errorMessage"String500.of_jsoninleterrorDetails=field_mapjson__"errorDetails"ErrorDetailList.of_jsoninletappVersion=field_mapjson__"appVersion"EntityVersion.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?statusChangeTime?status?errorMessage?errorDetails?appVersion?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the status of importing resources to an application version. If you get a 404 error with ResourceImportStatusNotFoundAppMetadataException, you must call importResourcesToDraftAppVersion after creating the application and before calling describeDraftAppVersionResourcesImportStatus to obtain the status."]moduleDescribeDraftAppVersionResourcesImportStatusRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."]}letcontext_="DescribeDraftAppVersionResourcesImportStatusRequest"letmake~appArn=fun()->{appArn}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the status of importing resources to an application version. If you get a 404 error with ResourceImportStatusNotFoundAppMetadataException, you must call importResourcesToDraftAppVersion after creating the application and before calling describeDraftAppVersionResourcesImportStatus to obtain the status."]moduleDescribeAppVersionTemplateResponse=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appTemplateBody:AppTemplateBody.toption[@ocaml.doc"A JSON string that provides information about your application structure. To learn more about the appTemplateBody template, see the sample template provided in the Examples section. The appTemplateBody JSON string has the following structure: resources The list of logical resources that must be included in the Resilience Hub application. Type: Array Don't add the resources that you want to exclude. Each resources array item includes the following fields: logicalResourceId Logical identifier of the resource. Type: Object Each logicalResourceId object includes the following fields: identifier Identifier of the resource. Type: String logicalStackName The name of the CloudFormation stack this resource belongs to. Type: String resourceGroupName The name of the resource group this resource belongs to. Type: String terraformSourceName The name of the Terraform S3 state file this resource belongs to. Type: String eksSourceName Name of the Amazon Elastic Kubernetes Service cluster and namespace this resource belongs to. This parameter accepts values in \"eks-cluster/namespace\" format. Type: String type The type of resource. Type: string name The name of the resource. Type: String additionalInfo Additional configuration parameters for an Resilience Hub application. If you want to implement additionalInfo through the Resilience Hub console rather than using an API call, see Configure the application configuration parameters. Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account. Key: \"failover-regions\" Value: \"\\[\\{\"region\":\"<REGION>\", \"accounts\":\\[\\{\"id\":\"<ACCOUNT_ID>\"\\}\\]\\}\\]\" appComponents List of Application Components that this resource belongs to. If an Application Component is not part of the Resilience Hub application, it will be added. Type: Array Each appComponents array item includes the following fields: name Name of the Application Component. Type: String type Type of Application Component. For more information about the types of Application Component, see Grouping resources in an AppComponent. Type: String resourceNames The list of included resources that are assigned to the Application Component. Type: Array of strings additionalInfo Additional configuration parameters for an Resilience Hub application. If you want to implement additionalInfo through the Resilience Hub console rather than using an API call, see Configure the application configuration parameters. Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account. Key: \"failover-regions\" Value: \"\\[\\{\"region\":\"<REGION>\", \"accounts\":\\[\\{\"id\":\"<ACCOUNT_ID>\"\\}\\]\\}\\]\" excludedResources The list of logical resource identifiers to be excluded from the application. Type: Array Don't add the resources that you want to include. Each excludedResources array item includes the following fields: logicalResourceIds Logical identifier of the resource. Type: Object You can configure only one of the following fields: logicalStackName resourceGroupName terraformSourceName eksSourceName Each logicalResourceIds object includes the following fields: identifier Identifier of the resource. Type: String logicalStackName The name of the CloudFormation stack this resource belongs to. Type: String resourceGroupName The name of the resource group this resource belongs to. Type: String terraformSourceName The name of the Terraform S3 state file this resource belongs to. Type: String eksSourceName Name of the Amazon Elastic Kubernetes Service cluster and namespace this resource belongs to. This parameter accepts values in \"eks-cluster/namespace\" format. Type: String version Resilience Hub application version. additionalInfo Additional configuration parameters for an Resilience Hub application. If you want to implement additionalInfo through the Resilience Hub console rather than using an API call, see Configure the application configuration parameters. Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account. Key: \"failover-regions\" Value: \"\\[\\{\"region\":\"<REGION>\", \"accounts\":\\[\\{\"id\":\"<ACCOUNT_ID>\"\\}\\]\\}\\]\""];appVersion:EntityVersion.toption[@ocaml.doc"The version of the application."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?appArn=fun?appTemplateBody->fun?appVersion->fun()->{appArn;appTemplateBody;appVersion}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("appTemplateBody",(Option.mapx.appTemplateBody~f:AppTemplateBody.to_value));("appVersion",(Option.mapx.appVersion~f:EntityVersion.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letappVersion=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"appVersion")inletappTemplateBody=(Option.map~f:AppTemplateBody.of_xml)(Xml.childxml_arg0"appTemplateBody")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?appVersion?appTemplateBody?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letappVersion=field_mapjson__"appVersion"EntityVersion.of_jsoninletappTemplateBody=field_mapjson__"appTemplateBody"AppTemplateBody.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?appVersion?appTemplateBody?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes details about an Resilience Hub application."]moduleDescribeAppVersionTemplateRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.t[@ocaml.doc"The version of the application."]}letcontext_="DescribeAppVersionTemplateRequest"letmake~appArn=fun~appVersion->fun()->{appArn;appVersion}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)));("appVersion",(Some(EntityVersion.to_valuex.appVersion)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letappVersion=EntityVersion.of_xml(Xml.child_exn~context:context_xml_arg0"appVersion")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake~appVersion~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letappVersion=field_map_exnjson__"appVersion"EntityVersion.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake~appVersion~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes details about an Resilience Hub application."]moduleDescribeAppVersionResponse=structtypenonrect={additionalInfo:AdditionalInfoMap.toption[@ocaml.doc"Additional configuration parameters for an Resilience Hub application. If you want to implement additionalInfo through the Resilience Hub console rather than using an API call, see Configure the application configuration parameters. Currently, this parameter supports only failover region and account."];appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.toption[@ocaml.doc"Resilience Hub application version."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?additionalInfo=fun?appArn->fun?appVersion->fun()->{additionalInfo;appArn;appVersion}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("additionalInfo",(Option.mapx.additionalInfo~f:AdditionalInfoMap.to_value));("appArn",(Option.mapx.appArn~f:Arn.to_value));("appVersion",(Option.mapx.appVersion~f:EntityVersion.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letappVersion=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"appVersion")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inletadditionalInfo=(Option.map~f:AdditionalInfoMap.of_xml)(Xml.childxml_arg0"additionalInfo")inmake?appVersion?appArn?additionalInfo()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letappVersion=field_mapjson__"appVersion"EntityVersion.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninletadditionalInfo=field_mapjson__"additionalInfo"AdditionalInfoMap.of_jsoninmake?appVersion?appArn?additionalInfo()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the Resilience Hub application version."]moduleDescribeAppVersionResourcesResolutionStatusResponse=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.toption[@ocaml.doc"The version of the application."];errorMessage:String500.toption[@ocaml.doc"The returned error message for the request."];resolutionId:String255.toption[@ocaml.doc"The identifier for a specific resolution."];status:ResourceResolutionStatusType.toption[@ocaml.doc"Status of the action."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?appArn=fun?appVersion->fun?errorMessage->fun?resolutionId->fun?status->fun()->{appArn;appVersion;errorMessage;resolutionId;status}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("appVersion",(Option.mapx.appVersion~f:EntityVersion.to_value));("errorMessage",(Option.mapx.errorMessage~f:String500.to_value));("resolutionId",(Option.mapx.resolutionId~f:String255.to_value));("status",(Option.mapx.status~f:ResourceResolutionStatusType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstatus=(Option.map~f:ResourceResolutionStatusType.of_xml)(Xml.childxml_arg0"status")inletresolutionId=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"resolutionId")inleterrorMessage=(Option.map~f:String500.of_xml)(Xml.childxml_arg0"errorMessage")inletappVersion=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"appVersion")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?status?resolutionId?errorMessage?appVersion?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstatus=field_mapjson__"status"ResourceResolutionStatusType.of_jsoninletresolutionId=field_mapjson__"resolutionId"String255.of_jsoninleterrorMessage=field_mapjson__"errorMessage"String500.of_jsoninletappVersion=field_mapjson__"appVersion"EntityVersion.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?status?resolutionId?errorMessage?appVersion?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns the resolution status for the specified resolution identifier for an application version. If resolutionId is not specified, the current resolution status is returned."]moduleDescribeAppVersionResourcesResolutionStatusRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.t[@ocaml.doc"The version of the application."];resolutionId:String255.toption[@ocaml.doc"The identifier for a specific resolution."]}letcontext_="DescribeAppVersionResourcesResolutionStatusRequest"letmake?resolutionId=fun~appArn->fun~appVersion->fun()->{resolutionId;appArn;appVersion}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)));("appVersion",(Some(EntityVersion.to_valuex.appVersion)));("resolutionId",(Option.mapx.resolutionId~f:String255.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresolutionId=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"resolutionId")inletappVersion=EntityVersion.of_xml(Xml.child_exn~context:context_xml_arg0"appVersion")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake?resolutionId~appVersion~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresolutionId=field_mapjson__"resolutionId"String255.of_jsoninletappVersion=field_map_exnjson__"appVersion"EntityVersion.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake?resolutionId~appVersion~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns the resolution status for the specified resolution identifier for an application version. If resolutionId is not specified, the current resolution status is returned."]moduleDescribeAppVersionResourceResponse=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.toption[@ocaml.doc"Resilience Hub application version."];physicalResource:PhysicalResource.toption[@ocaml.doc"Defines a physical resource. A physical resource is a resource that exists in your account. It can be identified using an Amazon Resource Name (ARN) or a Resilience Hub-native identifier."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?appArn=fun?appVersion->fun?physicalResource->fun()->{appArn;appVersion;physicalResource}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("appVersion",(Option.mapx.appVersion~f:EntityVersion.to_value));("physicalResource",(Option.mapx.physicalResource~f:PhysicalResource.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letphysicalResource=(Option.map~f:PhysicalResource.of_xml)(Xml.childxml_arg0"physicalResource")inletappVersion=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"appVersion")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?physicalResource?appVersion?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letphysicalResource=field_mapjson__"physicalResource"PhysicalResource.of_jsoninletappVersion=field_mapjson__"appVersion"EntityVersion.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?physicalResource?appVersion?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a resource of the Resilience Hub application. This API accepts only one of the following parameters to describe the resource: resourceName logicalResourceId physicalResourceId (Along with physicalResourceId, you can also provide awsAccountId, and awsRegion)"]moduleDescribeAppVersionResourceRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.t[@ocaml.doc"Resilience Hub application version."];awsAccountId:CustomerId.toption[@ocaml.doc"Amazon Web Services account that owns the physical resource."];awsRegion:AwsRegion.toption[@ocaml.doc"Amazon Web Services region that owns the physical resource."];logicalResourceId:LogicalResourceId.toption[@ocaml.doc"Logical identifier of the resource."];physicalResourceId:String2048.toption[@ocaml.doc"Physical identifier of the resource."];resourceName:EntityName.toption[@ocaml.doc"Name of the resource."]}letcontext_="DescribeAppVersionResourceRequest"letmake?awsAccountId=fun?awsRegion->fun?logicalResourceId->fun?physicalResourceId->fun?resourceName->fun~appArn->fun~appVersion->fun()->{awsAccountId;awsRegion;logicalResourceId;physicalResourceId;resourceName;appArn;appVersion}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)));("appVersion",(Some(EntityVersion.to_valuex.appVersion)));("awsAccountId",(Option.mapx.awsAccountId~f:CustomerId.to_value));("awsRegion",(Option.mapx.awsRegion~f:AwsRegion.to_value));("logicalResourceId",(Option.mapx.logicalResourceId~f:LogicalResourceId.to_value));("physicalResourceId",(Option.mapx.physicalResourceId~f:String2048.to_value));("resourceName",(Option.mapx.resourceName~f:EntityName.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceName=(Option.map~f:EntityName.of_xml)(Xml.childxml_arg0"resourceName")inletphysicalResourceId=(Option.map~f:String2048.of_xml)(Xml.childxml_arg0"physicalResourceId")inletlogicalResourceId=(Option.map~f:LogicalResourceId.of_xml)(Xml.childxml_arg0"logicalResourceId")inletawsRegion=(Option.map~f:AwsRegion.of_xml)(Xml.childxml_arg0"awsRegion")inletawsAccountId=(Option.map~f:CustomerId.of_xml)(Xml.childxml_arg0"awsAccountId")inletappVersion=EntityVersion.of_xml(Xml.child_exn~context:context_xml_arg0"appVersion")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake?resourceName?physicalResourceId?logicalResourceId?awsRegion?awsAccountId~appVersion~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceName=field_mapjson__"resourceName"EntityName.of_jsoninletphysicalResourceId=field_mapjson__"physicalResourceId"String2048.of_jsoninletlogicalResourceId=field_mapjson__"logicalResourceId"LogicalResourceId.of_jsoninletawsRegion=field_mapjson__"awsRegion"AwsRegion.of_jsoninletawsAccountId=field_mapjson__"awsAccountId"CustomerId.of_jsoninletappVersion=field_map_exnjson__"appVersion"EntityVersion.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake?resourceName?physicalResourceId?logicalResourceId?awsRegion?awsAccountId~appVersion~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a resource of the Resilience Hub application. This API accepts only one of the following parameters to describe the resource: resourceName logicalResourceId physicalResourceId (Along with physicalResourceId, you can also provide awsAccountId, and awsRegion)"]moduleDescribeAppVersionRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.t[@ocaml.doc"Resilience Hub application version."]}letcontext_="DescribeAppVersionRequest"letmake~appArn=fun~appVersion->fun()->{appArn;appVersion}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)));("appVersion",(Some(EntityVersion.to_valuex.appVersion)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letappVersion=EntityVersion.of_xml(Xml.child_exn~context:context_xml_arg0"appVersion")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake~appVersion~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letappVersion=field_map_exnjson__"appVersion"EntityVersion.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake~appVersion~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the Resilience Hub application version."]moduleDescribeAppVersionAppComponentResponse=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appComponent:AppComponent.toption[@ocaml.doc"List of Application Components that belong to this resource."];appVersion:EntityVersion.toption[@ocaml.doc"Resilience Hub application version."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?appArn=fun?appComponent->fun?appVersion->fun()->{appArn;appComponent;appVersion}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("appComponent",(Option.mapx.appComponent~f:AppComponent.to_value));("appVersion",(Option.mapx.appVersion~f:EntityVersion.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letappVersion=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"appVersion")inletappComponent=(Option.map~f:AppComponent.of_xml)(Xml.childxml_arg0"appComponent")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?appVersion?appComponent?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letappVersion=field_mapjson__"appVersion"EntityVersion.of_jsoninletappComponent=field_mapjson__"appComponent"AppComponent.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?appVersion?appComponent?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an Application Component in the Resilience Hub application."]moduleDescribeAppVersionAppComponentRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.t[@ocaml.doc"Resilience Hub application version."];id:String255.t[@ocaml.doc"Identifier of the Application Component."]}letcontext_="DescribeAppVersionAppComponentRequest"letmake~appArn=fun~appVersion->fun~id->fun()->{appArn;appVersion;id}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)));("appVersion",(Some(EntityVersion.to_valuex.appVersion)));("id",(Some(String255.to_valuex.id)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letid=String255.of_xml(Xml.child_exn~context:context_xml_arg0"id")inletappVersion=EntityVersion.of_xml(Xml.child_exn~context:context_xml_arg0"appVersion")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake~id~appVersion~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letid=field_map_exnjson__"id"String255.of_jsoninletappVersion=field_map_exnjson__"appVersion"EntityVersion.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake~id~appVersion~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an Application Component in the Resilience Hub application."]moduleDescribeAppResponse=structtypenonrect={app:App.toption[@ocaml.doc"The specified application, returned as an object with details including compliance status, creation time, description, resiliency score, and more."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?app=fun()->{app}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("app",(Option.mapx.app~f:App.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letapp=(Option.map~f:App.of_xml)(Xml.childxml_arg0"app")inmake?app()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letapp=field_mapjson__"app"App.of_jsoninmake?app()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an Resilience Hub application."]moduleDescribeAppRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."]}letcontext_="DescribeAppRequest"letmake~appArn=fun()->{appArn}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an Resilience Hub application."]moduleDescribeAppAssessmentResponse=structtypenonrect={assessment:AppAssessment.toption[@ocaml.doc"The assessment for an Resilience Hub application, returned as an object. This object includes Amazon Resource Names (ARNs), compliance information, compliance status, cost, messages, resiliency scores, and more."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?assessment=fun()->{assessment}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("assessment",(Option.mapx.assessment~f:AppAssessment.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letassessment=(Option.map~f:AppAssessment.of_xml)(Xml.childxml_arg0"assessment")inmake?assessment()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letassessment=field_mapjson__"assessment"AppAssessment.of_jsoninmake?assessment()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an assessment for an Resilience Hub application."]moduleDescribeAppAssessmentRequest=structtypenonrect={assessmentArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."]}letcontext_="DescribeAppAssessmentRequest"letmake~assessmentArn=fun()->{assessmentArn}letto_valuex=structure_to_value[("assessmentArn",(Some(Arn.to_valuex.assessmentArn)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letassessmentArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"assessmentArn")inmake~assessmentArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letassessmentArn=field_map_exnjson__"assessmentArn"Arn.of_jsoninmake~assessmentArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an assessment for an Resilience Hub application."]moduleDeleteResiliencyPolicyResponse=structtypenonrect={policyArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the resiliency policy. The format for this ARN is: arn:partition:resiliencehub:region:account:resiliency-policy/policy-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?policyArn=fun()->{policyArn}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("policyArn",(Option.mapx.policyArn~f:Arn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpolicyArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"policyArn")inmake?policyArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpolicyArn=field_mapjson__"policyArn"Arn.of_jsoninmake?policyArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a resiliency policy. This is a destructive action that can't be undone."]moduleDeleteResiliencyPolicyRequest=structtypenonrect={clientToken:ClientToken.toption[@ocaml.doc"Used for an idempotency token. A client token is a unique, case-sensitive string of up to 64 ASCII characters. You should not reuse the same client token for other API requests."];policyArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the resiliency policy. The format for this ARN is: arn:partition:resiliencehub:region:account:resiliency-policy/policy-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."]}letcontext_="DeleteResiliencyPolicyRequest"letmake?clientToken=fun~policyArn->fun()->{clientToken;policyArn}letto_valuex=structure_to_value[("clientToken",(Option.mapx.clientToken~f:ClientToken.to_value));("policyArn",(Some(Arn.to_valuex.policyArn)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpolicyArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"policyArn")inletclientToken=(Option.map~f:ClientToken.of_xml)(Xml.childxml_arg0"clientToken")inmake~policyArn?clientToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpolicyArn=field_map_exnjson__"policyArn"Arn.of_jsoninletclientToken=field_mapjson__"clientToken"ClientToken.of_jsoninmake~policyArn?clientToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a resiliency policy. This is a destructive action that can't be undone."]moduleDeleteRecommendationTemplateResponse=structtypenonrect={recommendationTemplateArn:Arn.toption[@ocaml.doc"The Amazon Resource Name (ARN) for a recommendation template."];status:RecommendationTemplateStatus.toption[@ocaml.doc"Status of the action."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?recommendationTemplateArn=fun?status->fun()->{recommendationTemplateArn;status}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("recommendationTemplateArn",(Option.mapx.recommendationTemplateArn~f:Arn.to_value));("status",(Option.mapx.status~f:RecommendationTemplateStatus.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstatus=(Option.map~f:RecommendationTemplateStatus.of_xml)(Xml.childxml_arg0"status")inletrecommendationTemplateArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"recommendationTemplateArn")inmake?status?recommendationTemplateArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstatus=field_mapjson__"status"RecommendationTemplateStatus.of_jsoninletrecommendationTemplateArn=field_mapjson__"recommendationTemplateArn"Arn.of_jsoninmake?status?recommendationTemplateArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a recommendation template. This is a destructive action that can't be undone."]moduleDeleteRecommendationTemplateRequest=structtypenonrect={clientToken:ClientToken.toption[@ocaml.doc"Used for an idempotency token. A client token is a unique, case-sensitive string of up to 64 ASCII characters. You should not reuse the same client token for other API requests."];recommendationTemplateArn:Arn.t[@ocaml.doc"The Amazon Resource Name (ARN) for a recommendation template."]}letcontext_="DeleteRecommendationTemplateRequest"letmake?clientToken=fun~recommendationTemplateArn->fun()->{clientToken;recommendationTemplateArn}letto_valuex=structure_to_value[("clientToken",(Option.mapx.clientToken~f:ClientToken.to_value));("recommendationTemplateArn",(Some(Arn.to_valuex.recommendationTemplateArn)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letrecommendationTemplateArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"recommendationTemplateArn")inletclientToken=(Option.map~f:ClientToken.of_xml)(Xml.childxml_arg0"clientToken")inmake~recommendationTemplateArn?clientToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letrecommendationTemplateArn=field_map_exnjson__"recommendationTemplateArn"Arn.of_jsoninletclientToken=field_mapjson__"clientToken"ClientToken.of_jsoninmake~recommendationTemplateArn?clientToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a recommendation template. This is a destructive action that can't be undone."]moduleDeleteAppVersionResourceResponse=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.toption[@ocaml.doc"Resilience Hub application version."];physicalResource:PhysicalResource.toption[@ocaml.doc"Defines a physical resource. A physical resource is a resource that exists in your account. It can be identified using an Amazon Resource Name (ARN) or a Resilience Hub-native identifier."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?appArn=fun?appVersion->fun?physicalResource->fun()->{appArn;appVersion;physicalResource}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("appVersion",(Option.mapx.appVersion~f:EntityVersion.to_value));("physicalResource",(Option.mapx.physicalResource~f:PhysicalResource.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letphysicalResource=(Option.map~f:PhysicalResource.of_xml)(Xml.childxml_arg0"physicalResource")inletappVersion=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"appVersion")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?physicalResource?appVersion?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letphysicalResource=field_mapjson__"physicalResource"PhysicalResource.of_jsoninletappVersion=field_mapjson__"appVersion"EntityVersion.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?physicalResource?appVersion?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a resource from the Resilience Hub application. You can only delete a manually added resource. To exclude non-manually added resources, use the UpdateAppVersionResource API. This action has no effect outside Resilience Hub. This API updates the Resilience Hub application draft version. To use this resource for running resiliency assessments, you must publish the Resilience Hub application using the PublishAppVersion API."]moduleDeleteAppVersionResourceRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];awsAccountId:CustomerId.toption[@ocaml.doc"Amazon Web Services account that owns the physical resource."];awsRegion:AwsRegion.toption[@ocaml.doc"Amazon Web Services region that owns the physical resource."];clientToken:ClientToken.toption[@ocaml.doc"Used for an idempotency token. A client token is a unique, case-sensitive string of up to 64 ASCII characters. You should not reuse the same client token for other API requests."];logicalResourceId:LogicalResourceId.toption[@ocaml.doc"Logical identifier of the resource."];physicalResourceId:String2048.toption[@ocaml.doc"Physical identifier of the resource."];resourceName:EntityName.toption[@ocaml.doc"Name of the resource."]}letcontext_="DeleteAppVersionResourceRequest"letmake?awsAccountId=fun?awsRegion->fun?clientToken->fun?logicalResourceId->fun?physicalResourceId->fun?resourceName->fun~appArn->fun()->{awsAccountId;awsRegion;clientToken;logicalResourceId;physicalResourceId;resourceName;appArn}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)));("awsAccountId",(Option.mapx.awsAccountId~f:CustomerId.to_value));("awsRegion",(Option.mapx.awsRegion~f:AwsRegion.to_value));("clientToken",(Option.mapx.clientToken~f:ClientToken.to_value));("logicalResourceId",(Option.mapx.logicalResourceId~f:LogicalResourceId.to_value));("physicalResourceId",(Option.mapx.physicalResourceId~f:String2048.to_value));("resourceName",(Option.mapx.resourceName~f:EntityName.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceName=(Option.map~f:EntityName.of_xml)(Xml.childxml_arg0"resourceName")inletphysicalResourceId=(Option.map~f:String2048.of_xml)(Xml.childxml_arg0"physicalResourceId")inletlogicalResourceId=(Option.map~f:LogicalResourceId.of_xml)(Xml.childxml_arg0"logicalResourceId")inletclientToken=(Option.map~f:ClientToken.of_xml)(Xml.childxml_arg0"clientToken")inletawsRegion=(Option.map~f:AwsRegion.of_xml)(Xml.childxml_arg0"awsRegion")inletawsAccountId=(Option.map~f:CustomerId.of_xml)(Xml.childxml_arg0"awsAccountId")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake?resourceName?physicalResourceId?logicalResourceId?clientToken?awsRegion?awsAccountId~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceName=field_mapjson__"resourceName"EntityName.of_jsoninletphysicalResourceId=field_mapjson__"physicalResourceId"String2048.of_jsoninletlogicalResourceId=field_mapjson__"logicalResourceId"LogicalResourceId.of_jsoninletclientToken=field_mapjson__"clientToken"ClientToken.of_jsoninletawsRegion=field_mapjson__"awsRegion"AwsRegion.of_jsoninletawsAccountId=field_mapjson__"awsAccountId"CustomerId.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake?resourceName?physicalResourceId?logicalResourceId?clientToken?awsRegion?awsAccountId~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a resource from the Resilience Hub application. You can only delete a manually added resource. To exclude non-manually added resources, use the UpdateAppVersionResource API. This action has no effect outside Resilience Hub. This API updates the Resilience Hub application draft version. To use this resource for running resiliency assessments, you must publish the Resilience Hub application using the PublishAppVersion API."]moduleDeleteAppVersionAppComponentResponse=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appComponent:AppComponent.toption[@ocaml.doc"List of Application Components that belong to this resource."];appVersion:EntityVersion.toption[@ocaml.doc"Resilience Hub application version."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?appArn=fun?appComponent->fun?appVersion->fun()->{appArn;appComponent;appVersion}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("appComponent",(Option.mapx.appComponent~f:AppComponent.to_value));("appVersion",(Option.mapx.appVersion~f:EntityVersion.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letappVersion=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"appVersion")inletappComponent=(Option.map~f:AppComponent.of_xml)(Xml.childxml_arg0"appComponent")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?appVersion?appComponent?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letappVersion=field_mapjson__"appVersion"EntityVersion.of_jsoninletappComponent=field_mapjson__"appComponent"AppComponent.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?appVersion?appComponent?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes an Application Component from the Resilience Hub application. This API updates the Resilience Hub application draft version. To use this Application Component for running assessments, you must publish the Resilience Hub application using the PublishAppVersion API. You will not be able to delete an Application Component if it has resources associated with it."]moduleDeleteAppVersionAppComponentRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];clientToken:ClientToken.toption[@ocaml.doc"Used for an idempotency token. A client token is a unique, case-sensitive string of up to 64 ASCII characters. You should not reuse the same client token for other API requests."];id:String255.t[@ocaml.doc"Identifier of the Application Component."]}letcontext_="DeleteAppVersionAppComponentRequest"letmake?clientToken=fun~appArn->fun~id->fun()->{clientToken;appArn;id}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)));("clientToken",(Option.mapx.clientToken~f:ClientToken.to_value));("id",(Some(String255.to_valuex.id)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letid=String255.of_xml(Xml.child_exn~context:context_xml_arg0"id")inletclientToken=(Option.map~f:ClientToken.of_xml)(Xml.childxml_arg0"clientToken")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake~id?clientToken~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letid=field_map_exnjson__"id"String255.of_jsoninletclientToken=field_mapjson__"clientToken"ClientToken.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake~id?clientToken~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes an Application Component from the Resilience Hub application. This API updates the Resilience Hub application draft version. To use this Application Component for running assessments, you must publish the Resilience Hub application using the PublishAppVersion API. You will not be able to delete an Application Component if it has resources associated with it."]moduleDeleteAppResponse=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."]}typenonrecerror=[`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?appArn=fun()->{appArn}leterror_of_jsonnamejson=matchnamewith|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letappArn=field_mapjson__"appArn"Arn.of_jsoninmake?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes an Resilience Hub application. This is a destructive action that can't be undone."]moduleDeleteAppRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];clientToken:ClientToken.toption[@ocaml.doc"Used for an idempotency token. A client token is a unique, case-sensitive string of up to 64 ASCII characters. You should not reuse the same client token for other API requests."];forceDelete:BooleanOptional.toption[@ocaml.doc"A boolean option to force the deletion of an Resilience Hub application."]}letcontext_="DeleteAppRequest"letmake?clientToken=fun?forceDelete->fun~appArn->fun()->{clientToken;forceDelete;appArn}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)));("clientToken",(Option.mapx.clientToken~f:ClientToken.to_value));("forceDelete",(Option.mapx.forceDelete~f:BooleanOptional.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letforceDelete=(Option.map~f:BooleanOptional.of_xml)(Xml.childxml_arg0"forceDelete")inletclientToken=(Option.map~f:ClientToken.of_xml)(Xml.childxml_arg0"clientToken")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake?forceDelete?clientToken~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letforceDelete=field_mapjson__"forceDelete"BooleanOptional.of_jsoninletclientToken=field_mapjson__"clientToken"ClientToken.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake?forceDelete?clientToken~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes an Resilience Hub application. This is a destructive action that can't be undone."]moduleDeleteAppInputSourceResponse=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appInputSource:AppInputSource.toption[@ocaml.doc"Name of the input source from where the application resource is imported from."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?appArn=fun?appInputSource->fun()->{appArn;appInputSource}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("appInputSource",(Option.mapx.appInputSource~f:AppInputSource.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letappInputSource=(Option.map~f:AppInputSource.of_xml)(Xml.childxml_arg0"appInputSource")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?appInputSource?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letappInputSource=field_mapjson__"appInputSource"AppInputSource.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?appInputSource?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes the input source and all of its imported resources from the Resilience Hub application."]moduleDeleteAppInputSourceRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];clientToken:ClientToken.toption[@ocaml.doc"Used for an idempotency token. A client token is a unique, case-sensitive string of up to 64 ASCII characters. You should not reuse the same client token for other API requests."];eksSourceClusterNamespace:EksSourceClusterNamespace.toption[@ocaml.doc"The namespace on your Amazon Elastic Kubernetes Service cluster that you want to delete from the Resilience Hub application."];sourceArn:Arn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the imported resource you want to remove from the Resilience Hub application. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];terraformSource:TerraformSource.toption[@ocaml.doc"The imported Terraform s3 state \239\172\129le you want to remove from the Resilience Hub application."]}letcontext_="DeleteAppInputSourceRequest"letmake?clientToken=fun?eksSourceClusterNamespace->fun?sourceArn->fun?terraformSource->fun~appArn->fun()->{clientToken;eksSourceClusterNamespace;sourceArn;terraformSource;appArn}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)));("clientToken",(Option.mapx.clientToken~f:ClientToken.to_value));("eksSourceClusterNamespace",(Option.mapx.eksSourceClusterNamespace~f:EksSourceClusterNamespace.to_value));("sourceArn",(Option.mapx.sourceArn~f:Arn.to_value));("terraformSource",(Option.mapx.terraformSource~f:TerraformSource.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letterraformSource=(Option.map~f:TerraformSource.of_xml)(Xml.childxml_arg0"terraformSource")inletsourceArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"sourceArn")inleteksSourceClusterNamespace=(Option.map~f:EksSourceClusterNamespace.of_xml)(Xml.childxml_arg0"eksSourceClusterNamespace")inletclientToken=(Option.map~f:ClientToken.of_xml)(Xml.childxml_arg0"clientToken")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake?terraformSource?sourceArn?eksSourceClusterNamespace?clientToken~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letterraformSource=field_mapjson__"terraformSource"TerraformSource.of_jsoninletsourceArn=field_mapjson__"sourceArn"Arn.of_jsoninleteksSourceClusterNamespace=field_mapjson__"eksSourceClusterNamespace"EksSourceClusterNamespace.of_jsoninletclientToken=field_mapjson__"clientToken"ClientToken.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake?terraformSource?sourceArn?eksSourceClusterNamespace?clientToken~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes the input source and all of its imported resources from the Resilience Hub application."]moduleDeleteAppAssessmentResponse=structtypenonrect={assessmentArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];assessmentStatus:AssessmentStatus.toption[@ocaml.doc"The current status of the assessment for the resiliency policy."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?assessmentArn=fun?assessmentStatus->fun()->{assessmentArn;assessmentStatus}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("assessmentArn",(Option.mapx.assessmentArn~f:Arn.to_value));("assessmentStatus",(Option.mapx.assessmentStatus~f:AssessmentStatus.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letassessmentStatus=(Option.map~f:AssessmentStatus.of_xml)(Xml.childxml_arg0"assessmentStatus")inletassessmentArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"assessmentArn")inmake?assessmentStatus?assessmentArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letassessmentStatus=field_mapjson__"assessmentStatus"AssessmentStatus.of_jsoninletassessmentArn=field_mapjson__"assessmentArn"Arn.of_jsoninmake?assessmentStatus?assessmentArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes an Resilience Hub application assessment. This is a destructive action that can't be undone."]moduleDeleteAppAssessmentRequest=structtypenonrect={assessmentArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];clientToken:ClientToken.toption[@ocaml.doc"Used for an idempotency token. A client token is a unique, case-sensitive string of up to 64 ASCII characters. You should not reuse the same client token for other API requests."]}letcontext_="DeleteAppAssessmentRequest"letmake?clientToken=fun~assessmentArn->fun()->{clientToken;assessmentArn}letto_valuex=structure_to_value[("assessmentArn",(Some(Arn.to_valuex.assessmentArn)));("clientToken",(Option.mapx.clientToken~f:ClientToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letclientToken=(Option.map~f:ClientToken.of_xml)(Xml.childxml_arg0"clientToken")inletassessmentArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"assessmentArn")inmake?clientToken~assessmentArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letclientToken=field_mapjson__"clientToken"ClientToken.of_jsoninletassessmentArn=field_map_exnjson__"assessmentArn"Arn.of_jsoninmake?clientToken~assessmentArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes an Resilience Hub application assessment. This is a destructive action that can't be undone."]moduleCreateResiliencyPolicyResponse=structtypenonrect={policy:ResiliencyPolicy.toption[@ocaml.doc"The type of resiliency policy that was created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?policy=fun()->{policy}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ServiceQuotaExceededExceptione->`Assoc[("error",(`String"ServiceQuotaExceededException"));("details",(ServiceQuotaExceededException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("policy",(Option.mapx.policy~f:ResiliencyPolicy.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpolicy=(Option.map~f:ResiliencyPolicy.of_xml)(Xml.childxml_arg0"policy")inmake?policy()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpolicy=field_mapjson__"policy"ResiliencyPolicy.of_jsoninmake?policy()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a resiliency policy for an application. Resilience Hub allows you to provide a value of zero for rtoInSecs and rpoInSecs of your resiliency policy. But, while assessing your application, the lowest possible assessment result is near zero. Hence, if you provide value zero for rtoInSecs and rpoInSecs, the estimated workload RTO and estimated workload RPO result will be near zero and the Compliance status for your application will be set to Policy breached."]moduleCreateResiliencyPolicyRequest=structtypenonrect={clientToken:ClientToken.toption[@ocaml.doc"Used for an idempotency token. A client token is a unique, case-sensitive string of up to 64 ASCII characters. You should not reuse the same client token for other API requests."];dataLocationConstraint:DataLocationConstraint.toption[@ocaml.doc"Specifies a high-level geographical location constraint for where your resilience policy data can be stored."];policy:DisruptionPolicy.t[@ocaml.doc"The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds."];policyDescription:EntityDescription.toption[@ocaml.doc"Description of the resiliency policy."];policyName:EntityName.t[@ocaml.doc"Name of the resiliency policy."];tags:TagMap.toption[@ocaml.doc"Tags assigned to the resource. A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key/value pair."];tier:ResiliencyPolicyTier.t[@ocaml.doc"The tier for this resiliency policy, ranging from the highest severity (MissionCritical) to lowest (NonCritical)."]}letcontext_="CreateResiliencyPolicyRequest"letmake?clientToken=fun?dataLocationConstraint->fun?policyDescription->fun?tags->fun~policy->fun~policyName->fun~tier->fun()->{clientToken;dataLocationConstraint;policyDescription;tags;policy;policyName;tier}letto_valuex=structure_to_value[("clientToken",(Option.mapx.clientToken~f:ClientToken.to_value));("dataLocationConstraint",(Option.mapx.dataLocationConstraint~f:DataLocationConstraint.to_value));("policy",(Some(DisruptionPolicy.to_valuex.policy)));("policyDescription",(Option.mapx.policyDescription~f:EntityDescription.to_value));("policyName",(Some(EntityName.to_valuex.policyName)));("tags",(Option.mapx.tags~f:TagMap.to_value));("tier",(Some(ResiliencyPolicyTier.to_valuex.tier)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettier=ResiliencyPolicyTier.of_xml(Xml.child_exn~context:context_xml_arg0"tier")inlettags=(Option.map~f:TagMap.of_xml)(Xml.childxml_arg0"tags")inletpolicyName=EntityName.of_xml(Xml.child_exn~context:context_xml_arg0"policyName")inletpolicyDescription=(Option.map~f:EntityDescription.of_xml)(Xml.childxml_arg0"policyDescription")inletpolicy=DisruptionPolicy.of_xml(Xml.child_exn~context:context_xml_arg0"policy")inletdataLocationConstraint=(Option.map~f:DataLocationConstraint.of_xml)(Xml.childxml_arg0"dataLocationConstraint")inletclientToken=(Option.map~f:ClientToken.of_xml)(Xml.childxml_arg0"clientToken")inmake~tier?tags~policyName?policyDescription~policy?dataLocationConstraint?clientToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettier=field_map_exnjson__"tier"ResiliencyPolicyTier.of_jsoninlettags=field_mapjson__"tags"TagMap.of_jsoninletpolicyName=field_map_exnjson__"policyName"EntityName.of_jsoninletpolicyDescription=field_mapjson__"policyDescription"EntityDescription.of_jsoninletpolicy=field_map_exnjson__"policy"DisruptionPolicy.of_jsoninletdataLocationConstraint=field_mapjson__"dataLocationConstraint"DataLocationConstraint.of_jsoninletclientToken=field_mapjson__"clientToken"ClientToken.of_jsoninmake~tier?tags~policyName?policyDescription~policy?dataLocationConstraint?clientToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a resiliency policy for an application. Resilience Hub allows you to provide a value of zero for rtoInSecs and rpoInSecs of your resiliency policy. But, while assessing your application, the lowest possible assessment result is near zero. Hence, if you provide value zero for rtoInSecs and rpoInSecs, the estimated workload RTO and estimated workload RPO result will be near zero and the Compliance status for your application will be set to Policy breached."]moduleCreateRecommendationTemplateResponse=structtypenonrect={recommendationTemplate:RecommendationTemplate.toption[@ocaml.doc"The newly created recommendation template, returned as an object. This object includes the template's name, format, status, tags, Amazon S3 bucket location, and more."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?recommendationTemplate=fun()->{recommendationTemplate}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceQuotaExceededExceptione->`Assoc[("error",(`String"ServiceQuotaExceededException"));("details",(ServiceQuotaExceededException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("recommendationTemplate",(Option.mapx.recommendationTemplate~f:RecommendationTemplate.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letrecommendationTemplate=(Option.map~f:RecommendationTemplate.of_xml)(Xml.childxml_arg0"recommendationTemplate")inmake?recommendationTemplate()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letrecommendationTemplate=field_mapjson__"recommendationTemplate"RecommendationTemplate.of_jsoninmake?recommendationTemplate()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a new recommendation template for the Resilience Hub application."]moduleCreateRecommendationTemplateRequest=structtypenonrect={assessmentArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];bucketName:EntityName.toption[@ocaml.doc"The name of the Amazon S3 bucket that will contain the recommendation template."];clientToken:ClientToken.toption[@ocaml.doc"Used for an idempotency token. A client token is a unique, case-sensitive string of up to 64 ASCII characters. You should not reuse the same client token for other API requests."];format:TemplateFormat.toption[@ocaml.doc"The format for the recommendation template. CfnJson The template is CloudFormation JSON. CfnYaml The template is CloudFormation YAML."];name:EntityName.t[@ocaml.doc"The name for the recommendation template."];recommendationIds:RecommendationIdList.toption[@ocaml.doc"Identifiers for the recommendations used to create a recommendation template."];recommendationTypes:RenderRecommendationTypeList.toption[@ocaml.doc"An array of strings that specify the recommendation template type or types. Alarm The template is an AlarmRecommendation template. Sop The template is a SopRecommendation template. Test The template is a TestRecommendation template."];tags:TagMap.toption[@ocaml.doc"Tags assigned to the resource. A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key/value pair."]}letcontext_="CreateRecommendationTemplateRequest"letmake?bucketName=fun?clientToken->fun?format->fun?recommendationIds->fun?recommendationTypes->fun?tags->fun~assessmentArn->fun~name->fun()->{bucketName;clientToken;format;recommendationIds;recommendationTypes;tags;assessmentArn;name}letto_valuex=structure_to_value[("assessmentArn",(Some(Arn.to_valuex.assessmentArn)));("bucketName",(Option.mapx.bucketName~f:EntityName.to_value));("clientToken",(Option.mapx.clientToken~f:ClientToken.to_value));("format",(Option.mapx.format~f:TemplateFormat.to_value));("name",(Some(EntityName.to_valuex.name)));("recommendationIds",(Option.mapx.recommendationIds~f:RecommendationIdList.to_value));("recommendationTypes",(Option.mapx.recommendationTypes~f:RenderRecommendationTypeList.to_value));("tags",(Option.mapx.tags~f:TagMap.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:TagMap.of_xml)(Xml.childxml_arg0"tags")inletrecommendationTypes=(Option.map~f:RenderRecommendationTypeList.of_xml)(Xml.childxml_arg0"recommendationTypes")inletrecommendationIds=(Option.map~f:RecommendationIdList.of_xml)(Xml.childxml_arg0"recommendationIds")inletname=EntityName.of_xml(Xml.child_exn~context:context_xml_arg0"name")inletformat=(Option.map~f:TemplateFormat.of_xml)(Xml.childxml_arg0"format")inletclientToken=(Option.map~f:ClientToken.of_xml)(Xml.childxml_arg0"clientToken")inletbucketName=(Option.map~f:EntityName.of_xml)(Xml.childxml_arg0"bucketName")inletassessmentArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"assessmentArn")inmake?tags?recommendationTypes?recommendationIds~name?format?clientToken?bucketName~assessmentArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"tags"TagMap.of_jsoninletrecommendationTypes=field_mapjson__"recommendationTypes"RenderRecommendationTypeList.of_jsoninletrecommendationIds=field_mapjson__"recommendationIds"RecommendationIdList.of_jsoninletname=field_map_exnjson__"name"EntityName.of_jsoninletformat=field_mapjson__"format"TemplateFormat.of_jsoninletclientToken=field_mapjson__"clientToken"ClientToken.of_jsoninletbucketName=field_mapjson__"bucketName"EntityName.of_jsoninletassessmentArn=field_map_exnjson__"assessmentArn"Arn.of_jsoninmake?tags?recommendationTypes?recommendationIds~name?format?clientToken?bucketName~assessmentArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a new recommendation template for the Resilience Hub application."]moduleCreateAppVersionResourceResponse=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.toption[@ocaml.doc"Resilience Hub application version."];physicalResource:PhysicalResource.toption[@ocaml.doc"Defines a physical resource. A physical resource is a resource that exists in your account. It can be identified using an Amazon Resource Name (ARN) or a Resilience Hub-native identifier."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?appArn=fun?appVersion->fun?physicalResource->fun()->{appArn;appVersion;physicalResource}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceQuotaExceededExceptione->`Assoc[("error",(`String"ServiceQuotaExceededException"));("details",(ServiceQuotaExceededException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("appVersion",(Option.mapx.appVersion~f:EntityVersion.to_value));("physicalResource",(Option.mapx.physicalResource~f:PhysicalResource.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letphysicalResource=(Option.map~f:PhysicalResource.of_xml)(Xml.childxml_arg0"physicalResource")inletappVersion=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"appVersion")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?physicalResource?appVersion?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letphysicalResource=field_mapjson__"physicalResource"PhysicalResource.of_jsoninletappVersion=field_mapjson__"appVersion"EntityVersion.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?physicalResource?appVersion?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Adds a resource to the Resilience Hub application and assigns it to the specified Application Components. If you specify a new Application Component, Resilience Hub will automatically create the Application Component. This action has no effect outside Resilience Hub. This API updates the Resilience Hub application draft version. To use this resource for running resiliency assessments, you must publish the Resilience Hub application using the PublishAppVersion API. To update application version with new physicalResourceID, you must call ResolveAppVersionResources API."]moduleCreateAppVersionResourceRequest=structtypenonrect={additionalInfo:AdditionalInfoMap.toption[@ocaml.doc"Currently, there is no supported additional information for resources."];appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appComponents:AppComponentNameList.t[@ocaml.doc"List of Application Components that this resource belongs to. If an Application Component is not part of the Resilience Hub application, it will be added."];awsAccountId:CustomerId.toption[@ocaml.doc"Amazon Web Services account that owns the physical resource."];awsRegion:AwsRegion.toption[@ocaml.doc"Amazon Web Services region that owns the physical resource."];clientToken:ClientToken.toption[@ocaml.doc"Used for an idempotency token. A client token is a unique, case-sensitive string of up to 64 ASCII characters. You should not reuse the same client token for other API requests."];logicalResourceId:LogicalResourceId.t[@ocaml.doc"Logical identifier of the resource."];physicalResourceId:String2048.t[@ocaml.doc"Physical identifier of the resource."];resourceName:EntityName.toption[@ocaml.doc"Name of the resource."];resourceType:String255.t[@ocaml.doc"Type of resource."]}letcontext_="CreateAppVersionResourceRequest"letmake?additionalInfo=fun?awsAccountId->fun?awsRegion->fun?clientToken->fun?resourceName->fun~appArn->fun~appComponents->fun~logicalResourceId->fun~physicalResourceId->fun~resourceType->fun()->{additionalInfo;awsAccountId;awsRegion;clientToken;resourceName;appArn;appComponents;logicalResourceId;physicalResourceId;resourceType}letto_valuex=structure_to_value[("additionalInfo",(Option.mapx.additionalInfo~f:AdditionalInfoMap.to_value));("appArn",(Some(Arn.to_valuex.appArn)));("appComponents",(Some(AppComponentNameList.to_valuex.appComponents)));("awsAccountId",(Option.mapx.awsAccountId~f:CustomerId.to_value));("awsRegion",(Option.mapx.awsRegion~f:AwsRegion.to_value));("clientToken",(Option.mapx.clientToken~f:ClientToken.to_value));("logicalResourceId",(Some(LogicalResourceId.to_valuex.logicalResourceId)));("physicalResourceId",(Some(String2048.to_valuex.physicalResourceId)));("resourceName",(Option.mapx.resourceName~f:EntityName.to_value));("resourceType",(Some(String255.to_valuex.resourceType)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceType=String255.of_xml(Xml.child_exn~context:context_xml_arg0"resourceType")inletresourceName=(Option.map~f:EntityName.of_xml)(Xml.childxml_arg0"resourceName")inletphysicalResourceId=String2048.of_xml(Xml.child_exn~context:context_xml_arg0"physicalResourceId")inletlogicalResourceId=LogicalResourceId.of_xml(Xml.child_exn~context:context_xml_arg0"logicalResourceId")inletclientToken=(Option.map~f:ClientToken.of_xml)(Xml.childxml_arg0"clientToken")inletawsRegion=(Option.map~f:AwsRegion.of_xml)(Xml.childxml_arg0"awsRegion")inletawsAccountId=(Option.map~f:CustomerId.of_xml)(Xml.childxml_arg0"awsAccountId")inletappComponents=AppComponentNameList.of_xml(Xml.child_exn~context:context_xml_arg0"appComponents")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inletadditionalInfo=(Option.map~f:AdditionalInfoMap.of_xml)(Xml.childxml_arg0"additionalInfo")inmake~resourceType?resourceName~physicalResourceId~logicalResourceId?clientToken?awsRegion?awsAccountId~appComponents~appArn?additionalInfo()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceType=field_map_exnjson__"resourceType"String255.of_jsoninletresourceName=field_mapjson__"resourceName"EntityName.of_jsoninletphysicalResourceId=field_map_exnjson__"physicalResourceId"String2048.of_jsoninletlogicalResourceId=field_map_exnjson__"logicalResourceId"LogicalResourceId.of_jsoninletclientToken=field_mapjson__"clientToken"ClientToken.of_jsoninletawsRegion=field_mapjson__"awsRegion"AwsRegion.of_jsoninletawsAccountId=field_mapjson__"awsAccountId"CustomerId.of_jsoninletappComponents=field_map_exnjson__"appComponents"AppComponentNameList.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninletadditionalInfo=field_mapjson__"additionalInfo"AdditionalInfoMap.of_jsoninmake~resourceType?resourceName~physicalResourceId~logicalResourceId?clientToken?awsRegion?awsAccountId~appComponents~appArn?additionalInfo()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Adds a resource to the Resilience Hub application and assigns it to the specified Application Components. If you specify a new Application Component, Resilience Hub will automatically create the Application Component. This action has no effect outside Resilience Hub. This API updates the Resilience Hub application draft version. To use this resource for running resiliency assessments, you must publish the Resilience Hub application using the PublishAppVersion API. To update application version with new physicalResourceID, you must call ResolveAppVersionResources API."]moduleCreateAppVersionAppComponentResponse=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appComponent:AppComponent.toption[@ocaml.doc"List of Application Components that belong to this resource."];appVersion:EntityVersion.toption[@ocaml.doc"Resilience Hub application version."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?appArn=fun?appComponent->fun?appVersion->fun()->{appArn;appComponent;appVersion}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceQuotaExceededExceptione->`Assoc[("error",(`String"ServiceQuotaExceededException"));("details",(ServiceQuotaExceededException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("appComponent",(Option.mapx.appComponent~f:AppComponent.to_value));("appVersion",(Option.mapx.appVersion~f:EntityVersion.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letappVersion=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"appVersion")inletappComponent=(Option.map~f:AppComponent.of_xml)(Xml.childxml_arg0"appComponent")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?appVersion?appComponent?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letappVersion=field_mapjson__"appVersion"EntityVersion.of_jsoninletappComponent=field_mapjson__"appComponent"AppComponent.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?appVersion?appComponent?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a new Application Component in the Resilience Hub application. This API updates the Resilience Hub application draft version. To use this Application Component for running assessments, you must publish the Resilience Hub application using the PublishAppVersion API."]moduleCreateAppVersionAppComponentRequest=structtypenonrect={additionalInfo:AdditionalInfoMap.toption[@ocaml.doc"Currently, there is no supported additional information for Application Components."];appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];clientToken:ClientToken.toption[@ocaml.doc"Used for an idempotency token. A client token is a unique, case-sensitive string of up to 64 ASCII characters. You should not reuse the same client token for other API requests."];id:String255.toption[@ocaml.doc"Identifier of the Application Component."];name:String255.t[@ocaml.doc"Name of the Application Component."];type_:String255.t[@ocaml.doc"Type of Application Component. For more information about the types of Application Component, see Grouping resources in an AppComponent."]}letcontext_="CreateAppVersionAppComponentRequest"letmake?additionalInfo=fun?clientToken->fun?id->fun~appArn->fun~name->fun~type_->fun()->{additionalInfo;clientToken;id;appArn;name;type_}letto_valuex=structure_to_value[("additionalInfo",(Option.mapx.additionalInfo~f:AdditionalInfoMap.to_value));("appArn",(Some(Arn.to_valuex.appArn)));("clientToken",(Option.mapx.clientToken~f:ClientToken.to_value));("id",(Option.mapx.id~f:String255.to_value));("name",(Some(String255.to_valuex.name)));("type",(Some(String255.to_valuex.type_)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettype_=String255.of_xml(Xml.child_exn~context:context_xml_arg0"type")inletname=String255.of_xml(Xml.child_exn~context:context_xml_arg0"name")inletid=(Option.map~f:String255.of_xml)(Xml.childxml_arg0"id")inletclientToken=(Option.map~f:ClientToken.of_xml)(Xml.childxml_arg0"clientToken")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inletadditionalInfo=(Option.map~f:AdditionalInfoMap.of_xml)(Xml.childxml_arg0"additionalInfo")inmake~type_~name?id?clientToken~appArn?additionalInfo()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettype_=field_map_exnjson__"type"String255.of_jsoninletname=field_map_exnjson__"name"String255.of_jsoninletid=field_mapjson__"id"String255.of_jsoninletclientToken=field_mapjson__"clientToken"ClientToken.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninletadditionalInfo=field_mapjson__"additionalInfo"AdditionalInfoMap.of_jsoninmake~type_~name?id?clientToken~appArn?additionalInfo()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a new Application Component in the Resilience Hub application. This API updates the Resilience Hub application draft version. To use this Application Component for running assessments, you must publish the Resilience Hub application using the PublishAppVersion API."]moduleCreateAppResponse=structtypenonrect={app:App.toption[@ocaml.doc"The created application returned as an object with details including compliance status, creation time, description, resiliency score, and more."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?app=fun()->{app}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceQuotaExceededExceptione->`Assoc[("error",(`String"ServiceQuotaExceededException"));("details",(ServiceQuotaExceededException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("app",(Option.mapx.app~f:App.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letapp=(Option.map~f:App.of_xml)(Xml.childxml_arg0"app")inmake?app()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letapp=field_mapjson__"app"App.of_jsoninmake?app()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates an Resilience Hub application. An Resilience Hub application is a collection of Amazon Web Services resources structured to prevent and recover Amazon Web Services application disruptions. To describe a Resilience Hub application, you provide an application name, resources from one or more CloudFormation stacks, Resource Groups, Terraform state files, AppRegistry applications, and an appropriate resiliency policy. In addition, you can also add resources that are located on Amazon Elastic Kubernetes Service (Amazon EKS) clusters as optional resources. For more information about the number of resources supported per application, see Service quotas. After you create an Resilience Hub application, you publish it so that you can run a resiliency assessment on it. You can then use recommendations from the assessment to improve resiliency by running another assessment, comparing results, and then iterating the process until you achieve your goals for recovery time objective (RTO) and recovery point objective (RPO)."]moduleCreateAppRequest=structtypenonrect={assessmentSchedule:AppAssessmentScheduleType.toption[@ocaml.doc"Assessment execution schedule with 'Daily' or 'Disabled' values."];awsApplicationArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of Resource Groups group that is integrated with an AppRegistry application. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];clientToken:ClientToken.toption[@ocaml.doc"Used for an idempotency token. A client token is a unique, case-sensitive string of up to 64 ASCII characters. You should not reuse the same client token for other API requests."];description:EntityDescription.toption[@ocaml.doc"The optional description for an app."];eventSubscriptions:EventSubscriptionList.toption[@ocaml.doc"The list of events you would like to subscribe and get notification for. Currently, Resilience Hub supports only Drift detected and Scheduled assessment failure events notification."];name:EntityName.t[@ocaml.doc"Name of the application."];permissionModel:PermissionModel.toption[@ocaml.doc"Defines the roles and credentials that Resilience Hub would use while creating the application, importing its resources, and running an assessment."];policyArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the resiliency policy. The format for this ARN is: arn:partition:resiliencehub:region:account:resiliency-policy/policy-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];tags:TagMap.toption[@ocaml.doc"Tags assigned to the resource. A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key/value pair."]}letcontext_="CreateAppRequest"letmake?assessmentSchedule=fun?awsApplicationArn->fun?clientToken->fun?description->fun?eventSubscriptions->fun?permissionModel->fun?policyArn->fun?tags->fun~name->fun()->{assessmentSchedule;awsApplicationArn;clientToken;description;eventSubscriptions;permissionModel;policyArn;tags;name}letto_valuex=structure_to_value[("assessmentSchedule",(Option.mapx.assessmentSchedule~f:AppAssessmentScheduleType.to_value));("awsApplicationArn",(Option.mapx.awsApplicationArn~f:Arn.to_value));("clientToken",(Option.mapx.clientToken~f:ClientToken.to_value));("description",(Option.mapx.description~f:EntityDescription.to_value));("eventSubscriptions",(Option.mapx.eventSubscriptions~f:EventSubscriptionList.to_value));("name",(Some(EntityName.to_valuex.name)));("permissionModel",(Option.mapx.permissionModel~f:PermissionModel.to_value));("policyArn",(Option.mapx.policyArn~f:Arn.to_value));("tags",(Option.mapx.tags~f:TagMap.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:TagMap.of_xml)(Xml.childxml_arg0"tags")inletpolicyArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"policyArn")inletpermissionModel=(Option.map~f:PermissionModel.of_xml)(Xml.childxml_arg0"permissionModel")inletname=EntityName.of_xml(Xml.child_exn~context:context_xml_arg0"name")inleteventSubscriptions=(Option.map~f:EventSubscriptionList.of_xml)(Xml.childxml_arg0"eventSubscriptions")inletdescription=(Option.map~f:EntityDescription.of_xml)(Xml.childxml_arg0"description")inletclientToken=(Option.map~f:ClientToken.of_xml)(Xml.childxml_arg0"clientToken")inletawsApplicationArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"awsApplicationArn")inletassessmentSchedule=(Option.map~f:AppAssessmentScheduleType.of_xml)(Xml.childxml_arg0"assessmentSchedule")inmake?tags?policyArn?permissionModel~name?eventSubscriptions?description?clientToken?awsApplicationArn?assessmentSchedule()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"tags"TagMap.of_jsoninletpolicyArn=field_mapjson__"policyArn"Arn.of_jsoninletpermissionModel=field_mapjson__"permissionModel"PermissionModel.of_jsoninletname=field_map_exnjson__"name"EntityName.of_jsoninleteventSubscriptions=field_mapjson__"eventSubscriptions"EventSubscriptionList.of_jsoninletdescription=field_mapjson__"description"EntityDescription.of_jsoninletclientToken=field_mapjson__"clientToken"ClientToken.of_jsoninletawsApplicationArn=field_mapjson__"awsApplicationArn"Arn.of_jsoninletassessmentSchedule=field_mapjson__"assessmentSchedule"AppAssessmentScheduleType.of_jsoninmake?tags?policyArn?permissionModel~name?eventSubscriptions?description?clientToken?awsApplicationArn?assessmentSchedule()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates an Resilience Hub application. An Resilience Hub application is a collection of Amazon Web Services resources structured to prevent and recover Amazon Web Services application disruptions. To describe a Resilience Hub application, you provide an application name, resources from one or more CloudFormation stacks, Resource Groups, Terraform state files, AppRegistry applications, and an appropriate resiliency policy. In addition, you can also add resources that are located on Amazon Elastic Kubernetes Service (Amazon EKS) clusters as optional resources. For more information about the number of resources supported per application, see Service quotas. After you create an Resilience Hub application, you publish it so that you can run a resiliency assessment on it. You can then use recommendations from the assessment to improve resiliency by running another assessment, comparing results, and then iterating the process until you achieve your goals for recovery time objective (RTO) and recovery point objective (RPO)."]moduleBatchUpdateRecommendationStatusResponse=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];failedEntries:BatchUpdateRecommendationStatusFailedEntries.toption[@ocaml.doc"A list of items with error details about each item, which could not be included or excluded."];successfulEntries:BatchUpdateRecommendationStatusSuccessfulEntries.toption[@ocaml.doc"A list of items that were included or excluded."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?appArn=fun?failedEntries->fun?successfulEntries->fun()->{appArn;failedEntries;successfulEntries}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("failedEntries",(Option.mapx.failedEntries~f:BatchUpdateRecommendationStatusFailedEntries.to_value));("successfulEntries",(Option.mapx.successfulEntries~f:BatchUpdateRecommendationStatusSuccessfulEntries.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsuccessfulEntries=(Option.map~f:BatchUpdateRecommendationStatusSuccessfulEntries.of_xml)(Xml.childxml_arg0"successfulEntries")inletfailedEntries=(Option.map~f:BatchUpdateRecommendationStatusFailedEntries.of_xml)(Xml.childxml_arg0"failedEntries")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?successfulEntries?failedEntries?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsuccessfulEntries=field_mapjson__"successfulEntries"BatchUpdateRecommendationStatusSuccessfulEntries.of_jsoninletfailedEntries=field_mapjson__"failedEntries"BatchUpdateRecommendationStatusFailedEntries.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?successfulEntries?failedEntries?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Enables you to include or exclude one or more operational recommendations."]moduleBatchUpdateRecommendationStatusRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];requestEntries:UpdateRecommendationStatusRequestEntries.t[@ocaml.doc"Defines the list of operational recommendations that need to be included or excluded."]}letcontext_="BatchUpdateRecommendationStatusRequest"letmake~appArn=fun~requestEntries->fun()->{appArn;requestEntries}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)));("requestEntries",(Some(UpdateRecommendationStatusRequestEntries.to_valuex.requestEntries)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letrequestEntries=UpdateRecommendationStatusRequestEntries.of_xml(Xml.child_exn~context:context_xml_arg0"requestEntries")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake~requestEntries~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letrequestEntries=field_map_exnjson__"requestEntries"UpdateRecommendationStatusRequestEntries.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake~requestEntries~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Enables you to include or exclude one or more operational recommendations."]moduleAddDraftAppVersionResourceMappingsResponse=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];appVersion:EntityVersion.toption[@ocaml.doc"The version of the application."];resourceMappings:ResourceMappingList.toption[@ocaml.doc"List of sources that are used to map a logical resource from the template to a physical resource. You can use sources such as CloudFormation, Terraform state files, AppRegistry applications, or Amazon EKS."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?appArn=fun?appVersion->fun?resourceMappings->fun()->{appArn;appVersion;resourceMappings}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceQuotaExceededExceptione->`Assoc[("error",(`String"ServiceQuotaExceededException"));("details",(ServiceQuotaExceededException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("appVersion",(Option.mapx.appVersion~f:EntityVersion.to_value));("resourceMappings",(Option.mapx.resourceMappings~f:ResourceMappingList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceMappings=(Option.map~f:ResourceMappingList.of_xml)(Xml.childxml_arg0"resourceMappings")inletappVersion=(Option.map~f:EntityVersion.of_xml)(Xml.childxml_arg0"appVersion")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?resourceMappings?appVersion?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceMappings=field_mapjson__"resourceMappings"ResourceMappingList.of_jsoninletappVersion=field_mapjson__"appVersion"EntityVersion.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?resourceMappings?appVersion?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Adds the source of resource-maps to the draft version of an application. During assessment, Resilience Hub will use these resource-maps to resolve the latest physical ID for each resource in the application template. For more information about different types of resources supported by Resilience Hub and how to add them in your application, see Step 2: How is your application managed? in the Resilience Hub User Guide."]moduleAddDraftAppVersionResourceMappingsRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];resourceMappings:ResourceMappingList.t[@ocaml.doc"Mappings used to map logical resources from the template to physical resources. You can use the mapping type CFN_STACK if the application template uses a logical stack name. Or you can map individual resources by using the mapping type RESOURCE. We recommend using the mapping type CFN_STACK if the application is backed by a CloudFormation stack."]}letcontext_="AddDraftAppVersionResourceMappingsRequest"letmake~appArn=fun~resourceMappings->fun()->{appArn;resourceMappings}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)));("resourceMappings",(Some(ResourceMappingList.to_valuex.resourceMappings)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceMappings=ResourceMappingList.of_xml(Xml.child_exn~context:context_xml_arg0"resourceMappings")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake~resourceMappings~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceMappings=field_map_exnjson__"resourceMappings"ResourceMappingList.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake~resourceMappings~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Adds the source of resource-maps to the draft version of an application. During assessment, Resilience Hub will use these resource-maps to resolve the latest physical ID for each resource in the application template. For more information about different types of resources supported by Resilience Hub and how to add them in your application, see Step 2: How is your application managed? in the Resilience Hub User Guide."]moduleAcceptResourceGroupingRecommendationsResponse=structtypenonrect={appArn:Arn.toption[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];failedEntries:FailedGroupingRecommendationEntries.toption[@ocaml.doc"List of resource grouping recommendations that could not be included in your application."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?appArn=fun?failedEntries->fun()->{appArn;failedEntries}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("appArn",(Option.mapx.appArn~f:Arn.to_value));("failedEntries",(Option.mapx.failedEntries~f:FailedGroupingRecommendationEntries.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfailedEntries=(Option.map~f:FailedGroupingRecommendationEntries.of_xml)(Xml.childxml_arg0"failedEntries")inletappArn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"appArn")inmake?failedEntries?appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfailedEntries=field_mapjson__"failedEntries"FailedGroupingRecommendationEntries.of_jsoninletappArn=field_mapjson__"appArn"Arn.of_jsoninmake?failedEntries?appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Accepts the resource grouping recommendations suggested by Resilience Hub for your application."]moduleAcceptResourceGroupingRecommendationsRequest=structtypenonrect={appArn:Arn.t[@ocaml.doc"Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference guide."];entries:AcceptGroupingRecommendationEntries.t[@ocaml.doc"List of resource grouping recommendations you want to include in your application."]}letcontext_="AcceptResourceGroupingRecommendationsRequest"letmake~appArn=fun~entries->fun()->{appArn;entries}letto_valuex=structure_to_value[("appArn",(Some(Arn.to_valuex.appArn)));("entries",(Some(AcceptGroupingRecommendationEntries.to_valuex.entries)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letentries=AcceptGroupingRecommendationEntries.of_xml(Xml.child_exn~context:context_xml_arg0"entries")inletappArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"appArn")inmake~entries~appArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letentries=field_map_exnjson__"entries"AcceptGroupingRecommendationEntries.of_jsoninletappArn=field_map_exnjson__"appArn"Arn.of_jsoninmake~entries~appArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Accepts the resource grouping recommendations suggested by Resilience Hub for your application."]