12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761177621776317764177651776617767177681776917770177711777217773177741777517776177771777817779177801778117782177831778417785177861778717788177891779017791177921779317794177951779617797177981779917800178011780217803178041780517806178071780817809178101781117812178131781417815178161781717818178191782017821178221782317824178251782617827178281782917830178311783217833178341783517836178371783817839178401784117842178431784417845178461784717848178491785017851178521785317854178551785617857178581785917860178611786217863178641786517866178671786817869178701787117872178731787417875178761787717878178791788017881178821788317884178851788617887178881788917890178911789217893178941789517896178971789817899179001790117902179031790417905179061790717908179091791017911179121791317914179151791617917179181791917920179211792217923179241792517926179271792817929179301793117932179331793417935179361793717938179391794017941179421794317944179451794617947179481794917950179511795217953179541795517956179571795817959179601796117962179631796417965179661796717968179691797017971179721797317974179751797617977179781797917980179811798217983179841798517986179871798817989179901799117992179931799417995179961799717998179991800018001180021800318004180051800618007180081800918010180111801218013180141801518016180171801818019180201802118022180231802418025180261802718028180291803018031180321803318034180351803618037180381803918040180411804218043180441804518046180471804818049180501805118052180531805418055180561805718058180591806018061180621806318064180651806618067180681806918070180711807218073180741807518076180771807818079180801808118082180831808418085180861808718088180891809018091180921809318094180951809618097180981809918100181011810218103181041810518106181071810818109181101811118112181131811418115181161811718118181191812018121181221812318124181251812618127181281812918130181311813218133181341813518136181371813818139181401814118142181431814418145181461814718148181491815018151181521815318154181551815618157181581815918160181611816218163181641816518166181671816818169181701817118172181731817418175181761817718178181791818018181181821818318184181851818618187181881818918190181911819218193181941819518196181971819818199182001820118202182031820418205182061820718208182091821018211182121821318214182151821618217182181821918220182211822218223182241822518226182271822818229182301823118232182331823418235182361823718238182391824018241182421824318244182451824618247182481824918250182511825218253182541825518256182571825818259182601826118262182631826418265182661826718268182691827018271182721827318274182751827618277182781827918280182811828218283182841828518286182871828818289182901829118292182931829418295182961829718298182991830018301183021830318304183051830618307183081830918310183111831218313183141831518316183171831818319183201832118322183231832418325183261832718328183291833018331183321833318334183351833618337183381833918340183411834218343183441834518346183471834818349183501835118352183531835418355183561835718358183591836018361183621836318364183651836618367183681836918370183711837218373183741837518376183771837818379183801838118382183831838418385183861838718388183891839018391183921839318394183951839618397183981839918400184011840218403184041840518406184071840818409184101841118412184131841418415184161841718418184191842018421184221842318424184251842618427184281842918430184311843218433184341843518436184371843818439184401844118442184431844418445184461844718448184491845018451184521845318454184551845618457184581845918460184611846218463184641846518466184671846818469184701847118472184731847418475184761847718478184791848018481184821848318484184851848618487184881848918490184911849218493184941849518496184971849818499185001850118502185031850418505185061850718508185091851018511185121851318514185151851618517185181851918520185211852218523185241852518526185271852818529185301853118532185331853418535185361853718538185391854018541185421854318544185451854618547185481854918550185511855218553185541855518556185571855818559185601856118562185631856418565185661856718568185691857018571185721857318574185751857618577185781857918580185811858218583185841858518586185871858818589185901859118592185931859418595185961859718598185991860018601186021860318604186051860618607186081860918610186111861218613186141861518616186171861818619186201862118622186231862418625186261862718628186291863018631186321863318634186351863618637186381863918640186411864218643186441864518646186471864818649186501865118652186531865418655186561865718658186591866018661186621866318664186651866618667186681866918670186711867218673186741867518676186771867818679186801868118682186831868418685186861868718688186891869018691186921869318694186951869618697186981869918700187011870218703187041870518706187071870818709187101871118712187131871418715187161871718718187191872018721187221872318724187251872618727187281872918730187311873218733187341873518736187371873818739187401874118742187431874418745187461874718748187491875018751187521875318754187551875618757187581875918760187611876218763187641876518766187671876818769187701877118772187731877418775187761877718778187791878018781187821878318784187851878618787187881878918790187911879218793187941879518796187971879818799188001880118802188031880418805188061880718808188091881018811188121881318814188151881618817188181881918820188211882218823188241882518826188271882818829188301883118832188331883418835188361883718838188391884018841188421884318844188451884618847188481884918850188511885218853188541885518856188571885818859188601886118862188631886418865188661886718868188691887018871188721887318874188751887618877188781887918880188811888218883188841888518886188871888818889188901889118892188931889418895188961889718898188991890018901189021890318904189051890618907189081890918910189111891218913189141891518916189171891818919189201892118922189231892418925189261892718928189291893018931189321893318934189351893618937189381893918940189411894218943189441894518946189471894818949189501895118952189531895418955189561895718958189591896018961189621896318964189651896618967189681896918970189711897218973189741897518976189771897818979189801898118982189831898418985189861898718988189891899018991189921899318994189951899618997189981899919000190011900219003190041900519006190071900819009190101901119012190131901419015190161901719018190191902019021190221902319024190251902619027190281902919030190311903219033190341903519036190371903819039190401904119042190431904419045190461904719048190491905019051190521905319054190551905619057190581905919060190611906219063190641906519066190671906819069190701907119072190731907419075190761907719078190791908019081190821908319084190851908619087190881908919090190911909219093190941909519096190971909819099191001910119102191031910419105191061910719108191091911019111191121911319114191151911619117191181911919120191211912219123191241912519126191271912819129191301913119132191331913419135191361913719138191391914019141191421914319144191451914619147191481914919150191511915219153191541915519156191571915819159191601916119162191631916419165191661916719168191691917019171191721917319174191751917619177191781917919180191811918219183191841918519186191871918819189191901919119192191931919419195191961919719198191991920019201192021920319204192051920619207192081920919210192111921219213192141921519216192171921819219192201922119222192231922419225192261922719228192291923019231192321923319234192351923619237192381923919240192411924219243192441924519246192471924819249192501925119252192531925419255192561925719258192591926019261192621926319264192651926619267192681926919270192711927219273192741927519276192771927819279192801928119282192831928419285192861928719288192891929019291192921929319294192951929619297192981929919300193011930219303193041930519306193071930819309193101931119312193131931419315193161931719318193191932019321193221932319324193251932619327193281932919330193311933219333193341933519336193371933819339193401934119342193431934419345193461934719348193491935019351193521935319354193551935619357193581935919360193611936219363193641936519366193671936819369193701937119372193731937419375193761937719378193791938019381193821938319384193851938619387193881938919390193911939219393193941939519396193971939819399194001940119402194031940419405194061940719408194091941019411194121941319414194151941619417194181941919420194211942219423194241942519426194271942819429194301943119432194331943419435194361943719438194391944019441194421944319444194451944619447194481944919450194511945219453194541945519456194571945819459194601946119462194631946419465194661946719468194691947019471194721947319474194751947619477194781947919480194811948219483194841948519486194871948819489194901949119492194931949419495194961949719498194991950019501195021950319504195051950619507195081950919510195111951219513195141951519516195171951819519195201952119522195231952419525195261952719528195291953019531195321953319534195351953619537195381953919540195411954219543195441954519546195471954819549195501955119552195531955419555195561955719558195591956019561195621956319564195651956619567195681956919570195711957219573195741957519576195771957819579195801958119582195831958419585195861958719588195891959019591195921959319594195951959619597195981959919600196011960219603196041960519606196071960819609196101961119612196131961419615196161961719618196191962019621196221962319624196251962619627196281962919630196311963219633196341963519636196371963819639196401964119642196431964419645196461964719648196491965019651196521965319654196551965619657196581965919660196611966219663196641966519666196671966819669196701967119672196731967419675196761967719678196791968019681196821968319684196851968619687196881968919690196911969219693196941969519696196971969819699197001970119702197031970419705197061970719708197091971019711197121971319714197151971619717197181971919720197211972219723197241972519726197271972819729197301973119732197331973419735197361973719738197391974019741197421974319744197451974619747197481974919750197511975219753197541975519756197571975819759197601976119762197631976419765197661976719768197691977019771197721977319774197751977619777197781977919780197811978219783197841978519786197871978819789197901979119792197931979419795197961979719798197991980019801198021980319804198051980619807198081980919810198111981219813198141981519816198171981819819198201982119822198231982419825198261982719828198291983019831198321983319834198351983619837198381983919840198411984219843198441984519846198471984819849198501985119852198531985419855198561985719858198591986019861198621986319864198651986619867198681986919870198711987219873198741987519876198771987819879198801988119882198831988419885198861988719888198891989019891198921989319894198951989619897198981989919900199011990219903199041990519906199071990819909199101991119912199131991419915199161991719918199191992019921199221992319924199251992619927199281992919930199311993219933199341993519936199371993819939199401994119942199431994419945199461994719948199491995019951199521995319954199551995619957199581995919960199611996219963199641996519966199671996819969199701997119972199731997419975199761997719978199791998019981199821998319984199851998619987199881998919990199911999219993199941999519996199971999819999200002000120002200032000420005200062000720008200092001020011200122001320014200152001620017200182001920020200212002220023200242002520026200272002820029200302003120032200332003420035200362003720038200392004020041200422004320044200452004620047200482004920050200512005220053200542005520056200572005820059200602006120062200632006420065200662006720068200692007020071200722007320074200752007620077200782007920080200812008220083200842008520086200872008820089200902009120092200932009420095200962009720098200992010020101201022010320104201052010620107201082010920110201112011220113201142011520116201172011820119201202012120122201232012420125201262012720128201292013020131201322013320134201352013620137201382013920140201412014220143201442014520146201472014820149201502015120152201532015420155201562015720158201592016020161201622016320164201652016620167201682016920170201712017220173201742017520176201772017820179201802018120182201832018420185201862018720188201892019020191201922019320194201952019620197201982019920200202012020220203202042020520206202072020820209202102021120212202132021420215202162021720218202192022020221202222022320224202252022620227202282022920230202312023220233202342023520236202372023820239202402024120242202432024420245202462024720248202492025020251202522025320254202552025620257202582025920260202612026220263202642026520266202672026820269202702027120272202732027420275202762027720278202792028020281202822028320284202852028620287202882028920290202912029220293202942029520296202972029820299203002030120302203032030420305203062030720308203092031020311203122031320314203152031620317203182031920320203212032220323203242032520326203272032820329203302033120332203332033420335203362033720338203392034020341203422034320344203452034620347203482034920350203512035220353203542035520356203572035820359203602036120362203632036420365203662036720368203692037020371203722037320374203752037620377203782037920380203812038220383203842038520386203872038820389203902039120392203932039420395203962039720398203992040020401204022040320404204052040620407204082040920410204112041220413204142041520416204172041820419204202042120422204232042420425204262042720428204292043020431204322043320434204352043620437204382043920440204412044220443204442044520446204472044820449204502045120452204532045420455204562045720458204592046020461204622046320464204652046620467204682046920470204712047220473204742047520476204772047820479204802048120482204832048420485204862048720488204892049020491204922049320494204952049620497204982049920500205012050220503205042050520506205072050820509205102051120512205132051420515205162051720518205192052020521205222052320524205252052620527205282052920530205312053220533205342053520536205372053820539205402054120542205432054420545205462054720548205492055020551205522055320554205552055620557205582055920560205612056220563205642056520566205672056820569205702057120572205732057420575205762057720578205792058020581205822058320584205852058620587205882058920590205912059220593205942059520596205972059820599206002060120602206032060420605206062060720608206092061020611206122061320614206152061620617206182061920620206212062220623206242062520626206272062820629206302063120632206332063420635206362063720638206392064020641206422064320644206452064620647206482064920650206512065220653206542065520656206572065820659206602066120662206632066420665206662066720668206692067020671206722067320674206752067620677206782067920680206812068220683206842068520686206872068820689206902069120692206932069420695206962069720698206992070020701207022070320704207052070620707207082070920710207112071220713207142071520716207172071820719207202072120722207232072420725207262072720728207292073020731207322073320734207352073620737207382073920740207412074220743207442074520746207472074820749207502075120752207532075420755207562075720758207592076020761207622076320764207652076620767207682076920770207712077220773207742077520776207772077820779207802078120782207832078420785207862078720788207892079020791207922079320794207952079620797207982079920800208012080220803208042080520806208072080820809208102081120812208132081420815208162081720818208192082020821208222082320824208252082620827208282082920830208312083220833208342083520836208372083820839208402084120842208432084420845208462084720848208492085020851208522085320854208552085620857208582085920860208612086220863208642086520866208672086820869208702087120872208732087420875208762087720878208792088020881208822088320884208852088620887208882088920890208912089220893208942089520896208972089820899209002090120902209032090420905209062090720908209092091020911209122091320914209152091620917209182091920920209212092220923209242092520926209272092820929209302093120932209332093420935209362093720938209392094020941209422094320944209452094620947209482094920950209512095220953209542095520956209572095820959209602096120962209632096420965209662096720968209692097020971209722097320974209752097620977209782097920980209812098220983209842098520986209872098820989209902099120992209932099420995209962099720998209992100021001210022100321004210052100621007210082100921010210112101221013210142101521016210172101821019210202102121022210232102421025210262102721028210292103021031210322103321034210352103621037210382103921040210412104221043210442104521046210472104821049210502105121052210532105421055210562105721058210592106021061210622106321064210652106621067210682106921070210712107221073210742107521076210772107821079210802108121082210832108421085210862108721088210892109021091210922109321094210952109621097210982109921100211012110221103211042110521106211072110821109211102111121112211132111421115211162111721118211192112021121211222112321124211252112621127211282112921130211312113221133211342113521136211372113821139211402114121142211432114421145211462114721148211492115021151211522115321154211552115621157211582115921160211612116221163211642116521166211672116821169211702117121172211732117421175211762117721178211792118021181211822118321184211852118621187211882118921190211912119221193211942119521196211972119821199212002120121202212032120421205212062120721208212092121021211212122121321214212152121621217212182121921220212212122221223212242122521226212272122821229212302123121232212332123421235212362123721238212392124021241212422124321244212452124621247212482124921250212512125221253212542125521256212572125821259212602126121262212632126421265212662126721268212692127021271212722127321274212752127621277212782127921280212812128221283212842128521286212872128821289212902129121292212932129421295212962129721298212992130021301213022130321304213052130621307213082130921310213112131221313213142131521316213172131821319213202132121322213232132421325213262132721328213292133021331213322133321334213352133621337213382133921340213412134221343213442134521346213472134821349213502135121352213532135421355213562135721358213592136021361213622136321364213652136621367213682136921370213712137221373213742137521376213772137821379213802138121382213832138421385213862138721388213892139021391213922139321394213952139621397213982139921400214012140221403214042140521406214072140821409214102141121412214132141421415214162141721418214192142021421214222142321424214252142621427214282142921430214312143221433214342143521436214372143821439214402144121442214432144421445214462144721448214492145021451214522145321454214552145621457214582145921460214612146221463214642146521466214672146821469214702147121472214732147421475214762147721478214792148021481214822148321484214852148621487214882148921490214912149221493214942149521496214972149821499215002150121502215032150421505215062150721508215092151021511215122151321514215152151621517215182151921520215212152221523215242152521526215272152821529215302153121532215332153421535215362153721538215392154021541215422154321544215452154621547215482154921550215512155221553215542155521556215572155821559215602156121562215632156421565215662156721568215692157021571215722157321574215752157621577215782157921580215812158221583215842158521586215872158821589215902159121592215932159421595215962159721598215992160021601216022160321604216052160621607216082160921610216112161221613216142161521616216172161821619216202162121622216232162421625216262162721628216292163021631216322163321634216352163621637216382163921640216412164221643216442164521646216472164821649216502165121652216532165421655216562165721658216592166021661216622166321664216652166621667216682166921670216712167221673216742167521676216772167821679216802168121682216832168421685216862168721688216892169021691216922169321694216952169621697216982169921700217012170221703217042170521706217072170821709217102171121712217132171421715217162171721718217192172021721217222172321724217252172621727217282172921730217312173221733217342173521736217372173821739217402174121742217432174421745217462174721748217492175021751217522175321754217552175621757217582175921760217612176221763217642176521766217672176821769217702177121772217732177421775217762177721778217792178021781217822178321784217852178621787217882178921790217912179221793217942179521796217972179821799218002180121802218032180421805218062180721808218092181021811218122181321814218152181621817218182181921820218212182221823218242182521826218272182821829218302183121832218332183421835218362183721838218392184021841218422184321844218452184621847218482184921850218512185221853218542185521856218572185821859218602186121862218632186421865218662186721868218692187021871218722187321874218752187621877218782187921880218812188221883218842188521886218872188821889218902189121892218932189421895218962189721898218992190021901219022190321904219052190621907219082190921910219112191221913219142191521916219172191821919219202192121922219232192421925219262192721928219292193021931219322193321934219352193621937219382193921940219412194221943219442194521946219472194821949219502195121952219532195421955219562195721958219592196021961219622196321964219652196621967219682196921970219712197221973219742197521976219772197821979219802198121982219832198421985219862198721988219892199021991219922199321994219952199621997219982199922000220012200222003220042200522006220072200822009220102201122012220132201422015220162201722018220192202022021220222202322024220252202622027220282202922030220312203222033220342203522036220372203822039220402204122042220432204422045220462204722048220492205022051220522205322054220552205622057220582205922060220612206222063220642206522066220672206822069220702207122072220732207422075220762207722078220792208022081220822208322084220852208622087220882208922090220912209222093220942209522096220972209822099221002210122102221032210422105221062210722108221092211022111221122211322114221152211622117221182211922120221212212222123221242212522126221272212822129221302213122132221332213422135221362213722138221392214022141221422214322144221452214622147221482214922150221512215222153221542215522156221572215822159221602216122162221632216422165221662216722168221692217022171221722217322174221752217622177221782217922180221812218222183221842218522186221872218822189221902219122192221932219422195221962219722198221992220022201222022220322204222052220622207222082220922210222112221222213222142221522216222172221822219222202222122222222232222422225222262222722228222292223022231222322223322234222352223622237222382223922240222412224222243222442224522246222472224822249222502225122252222532225422255222562225722258222592226022261222622226322264222652226622267222682226922270222712227222273222742227522276222772227822279222802228122282222832228422285222862228722288222892229022291222922229322294222952229622297222982229922300223012230222303223042230522306223072230822309223102231122312223132231422315223162231722318223192232022321223222232322324223252232622327223282232922330223312233222333223342233522336223372233822339223402234122342223432234422345223462234722348223492235022351223522235322354223552235622357223582235922360223612236222363223642236522366223672236822369223702237122372223732237422375223762237722378223792238022381223822238322384223852238622387223882238922390223912239222393223942239522396223972239822399224002240122402224032240422405224062240722408224092241022411224122241322414224152241622417224182241922420224212242222423224242242522426224272242822429224302243122432224332243422435224362243722438224392244022441224422244322444224452244622447224482244922450224512245222453224542245522456224572245822459224602246122462224632246422465224662246722468224692247022471224722247322474224752247622477224782247922480224812248222483224842248522486224872248822489224902249122492224932249422495224962249722498224992250022501225022250322504225052250622507225082250922510225112251222513225142251522516225172251822519225202252122522225232252422525225262252722528225292253022531225322253322534225352253622537225382253922540225412254222543225442254522546225472254822549225502255122552225532255422555225562255722558225592256022561225622256322564225652256622567225682256922570225712257222573225742257522576225772257822579225802258122582225832258422585225862258722588225892259022591225922259322594225952259622597225982259922600226012260222603226042260522606226072260822609226102261122612226132261422615226162261722618226192262022621226222262322624226252262622627226282262922630226312263222633226342263522636226372263822639226402264122642226432264422645226462264722648226492265022651226522265322654226552265622657226582265922660226612266222663226642266522666226672266822669226702267122672226732267422675226762267722678226792268022681226822268322684226852268622687226882268922690226912269222693226942269522696226972269822699227002270122702227032270422705227062270722708227092271022711227122271322714227152271622717227182271922720227212272222723227242272522726227272272822729227302273122732227332273422735227362273722738227392274022741227422274322744227452274622747227482274922750227512275222753227542275522756227572275822759227602276122762227632276422765227662276722768227692277022771227722277322774227752277622777227782277922780227812278222783227842278522786227872278822789227902279122792227932279422795227962279722798227992280022801228022280322804228052280622807228082280922810228112281222813228142281522816228172281822819228202282122822228232282422825228262282722828228292283022831228322283322834228352283622837228382283922840228412284222843228442284522846228472284822849228502285122852228532285422855228562285722858228592286022861228622286322864228652286622867228682286922870228712287222873228742287522876228772287822879228802288122882228832288422885228862288722888228892289022891228922289322894228952289622897228982289922900229012290222903229042290522906229072290822909229102291122912229132291422915229162291722918229192292022921229222292322924229252292622927229282292922930229312293222933229342293522936229372293822939229402294122942229432294422945229462294722948229492295022951229522295322954229552295622957229582295922960229612296222963229642296522966229672296822969229702297122972229732297422975229762297722978229792298022981229822298322984229852298622987229882298922990229912299222993229942299522996229972299822999230002300123002230032300423005230062300723008230092301023011230122301323014230152301623017230182301923020230212302223023230242302523026230272302823029230302303123032230332303423035230362303723038230392304023041230422304323044230452304623047230482304923050230512305223053230542305523056230572305823059230602306123062230632306423065230662306723068230692307023071230722307323074230752307623077230782307923080230812308223083230842308523086230872308823089230902309123092230932309423095230962309723098230992310023101231022310323104231052310623107231082310923110231112311223113231142311523116231172311823119231202312123122231232312423125231262312723128231292313023131231322313323134231352313623137231382313923140231412314223143231442314523146231472314823149231502315123152231532315423155231562315723158231592316023161231622316323164231652316623167231682316923170231712317223173231742317523176231772317823179231802318123182231832318423185231862318723188231892319023191231922319323194231952319623197231982319923200232012320223203232042320523206232072320823209232102321123212232132321423215232162321723218232192322023221232222322323224232252322623227232282322923230232312323223233232342323523236232372323823239232402324123242232432324423245232462324723248232492325023251232522325323254232552325623257232582325923260232612326223263232642326523266232672326823269232702327123272232732327423275232762327723278232792328023281232822328323284232852328623287232882328923290232912329223293232942329523296232972329823299233002330123302233032330423305233062330723308233092331023311233122331323314233152331623317233182331923320233212332223323233242332523326233272332823329233302333123332233332333423335233362333723338233392334023341233422334323344233452334623347233482334923350233512335223353233542335523356233572335823359233602336123362233632336423365233662336723368233692337023371233722337323374233752337623377233782337923380233812338223383233842338523386233872338823389233902339123392233932339423395233962339723398233992340023401234022340323404234052340623407234082340923410234112341223413234142341523416234172341823419234202342123422234232342423425234262342723428234292343023431234322343323434234352343623437234382343923440234412344223443234442344523446234472344823449234502345123452234532345423455234562345723458234592346023461234622346323464234652346623467234682346923470234712347223473234742347523476234772347823479234802348123482234832348423485234862348723488234892349023491234922349323494234952349623497234982349923500235012350223503235042350523506235072350823509235102351123512235132351423515235162351723518235192352023521235222352323524235252352623527235282352923530235312353223533235342353523536235372353823539235402354123542235432354423545235462354723548235492355023551235522355323554235552355623557235582355923560235612356223563235642356523566235672356823569235702357123572235732357423575235762357723578235792358023581235822358323584235852358623587235882358923590235912359223593235942359523596235972359823599236002360123602236032360423605236062360723608236092361023611236122361323614236152361623617236182361923620236212362223623236242362523626236272362823629236302363123632236332363423635236362363723638236392364023641236422364323644236452364623647236482364923650236512365223653236542365523656236572365823659236602366123662236632366423665236662366723668236692367023671236722367323674236752367623677236782367923680236812368223683236842368523686236872368823689236902369123692236932369423695236962369723698236992370023701237022370323704237052370623707237082370923710237112371223713237142371523716237172371823719237202372123722237232372423725237262372723728237292373023731237322373323734237352373623737237382373923740237412374223743237442374523746237472374823749237502375123752237532375423755237562375723758237592376023761237622376323764237652376623767237682376923770237712377223773237742377523776237772377823779237802378123782237832378423785237862378723788237892379023791237922379323794237952379623797237982379923800238012380223803238042380523806238072380823809238102381123812238132381423815238162381723818238192382023821238222382323824238252382623827238282382923830238312383223833238342383523836238372383823839238402384123842238432384423845238462384723848238492385023851238522385323854238552385623857238582385923860238612386223863238642386523866238672386823869238702387123872238732387423875238762387723878238792388023881238822388323884238852388623887238882388923890238912389223893238942389523896238972389823899239002390123902239032390423905239062390723908239092391023911239122391323914239152391623917239182391923920239212392223923239242392523926239272392823929239302393123932239332393423935239362393723938239392394023941239422394323944239452394623947239482394923950239512395223953239542395523956239572395823959239602396123962239632396423965239662396723968239692397023971239722397323974239752397623977239782397923980239812398223983239842398523986239872398823989239902399123992239932399423995239962399723998239992400024001240022400324004240052400624007240082400924010240112401224013240142401524016240172401824019240202402124022240232402424025240262402724028240292403024031240322403324034240352403624037240382403924040240412404224043240442404524046240472404824049240502405124052240532405424055240562405724058240592406024061240622406324064240652406624067240682406924070240712407224073240742407524076240772407824079240802408124082240832408424085240862408724088240892409024091240922409324094240952409624097240982409924100241012410224103241042410524106241072410824109241102411124112241132411424115241162411724118241192412024121241222412324124241252412624127241282412924130241312413224133241342413524136241372413824139241402414124142241432414424145241462414724148241492415024151241522415324154241552415624157241582415924160241612416224163241642416524166241672416824169241702417124172241732417424175241762417724178241792418024181241822418324184241852418624187241882418924190241912419224193241942419524196241972419824199242002420124202242032420424205242062420724208242092421024211242122421324214242152421624217242182421924220242212422224223242242422524226242272422824229242302423124232242332423424235242362423724238242392424024241242422424324244242452424624247242482424924250242512425224253242542425524256242572425824259242602426124262242632426424265242662426724268242692427024271242722427324274242752427624277242782427924280242812428224283242842428524286242872428824289242902429124292242932429424295242962429724298242992430024301243022430324304243052430624307243082430924310243112431224313243142431524316243172431824319243202432124322243232432424325243262432724328243292433024331243322433324334243352433624337243382433924340243412434224343243442434524346243472434824349243502435124352243532435424355243562435724358243592436024361243622436324364243652436624367243682436924370243712437224373243742437524376243772437824379243802438124382243832438424385243862438724388243892439024391243922439324394243952439624397243982439924400244012440224403244042440524406244072440824409244102441124412244132441424415244162441724418244192442024421244222442324424244252442624427244282442924430244312443224433244342443524436244372443824439244402444124442244432444424445244462444724448244492445024451244522445324454244552445624457244582445924460244612446224463244642446524466244672446824469244702447124472244732447424475244762447724478244792448024481244822448324484244852448624487244882448924490244912449224493244942449524496244972449824499245002450124502245032450424505245062450724508245092451024511245122451324514245152451624517245182451924520245212452224523245242452524526245272452824529245302453124532245332453424535245362453724538245392454024541245422454324544245452454624547245482454924550245512455224553245542455524556245572455824559245602456124562245632456424565245662456724568245692457024571245722457324574245752457624577245782457924580245812458224583245842458524586245872458824589245902459124592245932459424595245962459724598245992460024601246022460324604246052460624607246082460924610246112461224613246142461524616246172461824619246202462124622246232462424625246262462724628246292463024631246322463324634246352463624637246382463924640246412464224643246442464524646246472464824649246502465124652246532465424655246562465724658246592466024661246622466324664246652466624667246682466924670246712467224673246742467524676246772467824679246802468124682246832468424685246862468724688246892469024691246922469324694246952469624697246982469924700247012470224703247042470524706247072470824709247102471124712247132471424715247162471724718247192472024721247222472324724247252472624727247282472924730247312473224733247342473524736247372473824739247402474124742247432474424745247462474724748247492475024751247522475324754247552475624757247582475924760247612476224763247642476524766247672476824769247702477124772247732477424775247762477724778247792478024781247822478324784247852478624787247882478924790247912479224793247942479524796247972479824799248002480124802248032480424805248062480724808248092481024811248122481324814248152481624817248182481924820248212482224823248242482524826248272482824829248302483124832248332483424835248362483724838248392484024841248422484324844248452484624847248482484924850248512485224853248542485524856248572485824859248602486124862248632486424865248662486724868248692487024871248722487324874248752487624877248782487924880248812488224883248842488524886248872488824889248902489124892248932489424895248962489724898248992490024901249022490324904249052490624907249082490924910249112491224913249142491524916249172491824919249202492124922249232492424925249262492724928249292493024931249322493324934249352493624937249382493924940249412494224943249442494524946249472494824949249502495124952249532495424955249562495724958249592496024961249622496324964249652496624967249682496924970249712497224973249742497524976249772497824979249802498124982249832498424985249862498724988249892499024991249922499324994249952499624997249982499925000250012500225003250042500525006250072500825009250102501125012250132501425015250162501725018250192502025021250222502325024250252502625027250282502925030250312503225033250342503525036250372503825039250402504125042250432504425045250462504725048250492505025051250522505325054250552505625057250582505925060250612506225063250642506525066250672506825069250702507125072250732507425075250762507725078250792508025081250822508325084250852508625087250882508925090250912509225093250942509525096250972509825099251002510125102251032510425105251062510725108251092511025111251122511325114251152511625117251182511925120251212512225123251242512525126251272512825129251302513125132251332513425135251362513725138251392514025141251422514325144251452514625147251482514925150251512515225153251542515525156251572515825159251602516125162251632516425165251662516725168251692517025171251722517325174251752517625177251782517925180251812518225183251842518525186251872518825189251902519125192251932519425195251962519725198251992520025201252022520325204252052520625207252082520925210252112521225213252142521525216252172521825219252202522125222252232522425225252262522725228252292523025231252322523325234252352523625237252382523925240252412524225243252442524525246252472524825249252502525125252252532525425255252562525725258252592526025261252622526325264252652526625267252682526925270252712527225273252742527525276252772527825279252802528125282252832528425285252862528725288252892529025291252922529325294252952529625297252982529925300253012530225303253042530525306253072530825309253102531125312253132531425315253162531725318253192532025321253222532325324253252532625327253282532925330253312533225333253342533525336253372533825339253402534125342253432534425345253462534725348253492535025351253522535325354253552535625357253582535925360253612536225363253642536525366253672536825369253702537125372253732537425375253762537725378253792538025381253822538325384253852538625387253882538925390253912539225393253942539525396253972539825399254002540125402254032540425405254062540725408254092541025411254122541325414254152541625417254182541925420254212542225423254242542525426254272542825429254302543125432254332543425435254362543725438254392544025441254422544325444254452544625447254482544925450254512545225453254542545525456254572545825459254602546125462254632546425465254662546725468254692547025471254722547325474254752547625477254782547925480254812548225483254842548525486254872548825489254902549125492254932549425495254962549725498254992550025501255022550325504255052550625507255082550925510255112551225513255142551525516255172551825519255202552125522255232552425525255262552725528255292553025531255322553325534255352553625537255382553925540255412554225543255442554525546255472554825549255502555125552255532555425555255562555725558255592556025561255622556325564255652556625567255682556925570255712557225573255742557525576255772557825579255802558125582255832558425585255862558725588255892559025591255922559325594255952559625597255982559925600256012560225603256042560525606256072560825609256102561125612256132561425615256162561725618256192562025621256222562325624256252562625627256282562925630256312563225633256342563525636256372563825639256402564125642256432564425645256462564725648256492565025651256522565325654256552565625657256582565925660256612566225663256642566525666256672566825669256702567125672256732567425675256762567725678256792568025681256822568325684256852568625687256882568925690256912569225693256942569525696256972569825699257002570125702257032570425705257062570725708257092571025711257122571325714257152571625717257182571925720257212572225723257242572525726257272572825729257302573125732257332573425735257362573725738257392574025741257422574325744257452574625747257482574925750257512575225753257542575525756257572575825759257602576125762257632576425765257662576725768257692577025771257722577325774257752577625777257782577925780257812578225783257842578525786257872578825789257902579125792257932579425795257962579725798257992580025801258022580325804258052580625807258082580925810258112581225813258142581525816258172581825819258202582125822258232582425825258262582725828258292583025831258322583325834258352583625837258382583925840258412584225843258442584525846258472584825849258502585125852258532585425855258562585725858258592586025861258622586325864258652586625867258682586925870258712587225873258742587525876258772587825879258802588125882258832588425885258862588725888258892589025891258922589325894258952589625897258982589925900259012590225903259042590525906259072590825909259102591125912259132591425915259162591725918259192592025921259222592325924259252592625927259282592925930259312593225933259342593525936259372593825939259402594125942259432594425945259462594725948259492595025951259522595325954259552595625957259582595925960259612596225963259642596525966259672596825969259702597125972259732597425975259762597725978259792598025981259822598325984259852598625987259882598925990259912599225993259942599525996259972599825999260002600126002260032600426005260062600726008260092601026011260122601326014260152601626017260182601926020260212602226023260242602526026260272602826029260302603126032260332603426035260362603726038260392604026041260422604326044260452604626047260482604926050260512605226053260542605526056260572605826059260602606126062260632606426065260662606726068260692607026071260722607326074260752607626077260782607926080260812608226083260842608526086260872608826089260902609126092260932609426095260962609726098260992610026101261022610326104261052610626107261082610926110261112611226113261142611526116261172611826119261202612126122261232612426125261262612726128261292613026131261322613326134261352613626137261382613926140261412614226143261442614526146261472614826149261502615126152261532615426155261562615726158261592616026161261622616326164261652616626167261682616926170261712617226173261742617526176261772617826179261802618126182261832618426185261862618726188261892619026191261922619326194261952619626197261982619926200262012620226203262042620526206262072620826209262102621126212262132621426215262162621726218262192622026221262222622326224262252622626227262282622926230262312623226233262342623526236262372623826239262402624126242262432624426245262462624726248262492625026251262522625326254262552625626257262582625926260262612626226263262642626526266262672626826269262702627126272262732627426275262762627726278262792628026281262822628326284262852628626287262882628926290262912629226293262942629526296262972629826299263002630126302263032630426305263062630726308263092631026311263122631326314263152631626317263182631926320263212632226323263242632526326263272632826329263302633126332263332633426335263362633726338263392634026341263422634326344263452634626347263482634926350263512635226353263542635526356263572635826359263602636126362263632636426365263662636726368263692637026371263722637326374263752637626377263782637926380263812638226383263842638526386263872638826389263902639126392263932639426395263962639726398263992640026401264022640326404264052640626407264082640926410264112641226413264142641526416264172641826419264202642126422264232642426425264262642726428264292643026431264322643326434264352643626437264382643926440264412644226443264442644526446264472644826449264502645126452264532645426455264562645726458264592646026461264622646326464264652646626467264682646926470264712647226473264742647526476264772647826479264802648126482264832648426485264862648726488264892649026491264922649326494264952649626497264982649926500265012650226503265042650526506265072650826509265102651126512265132651426515265162651726518265192652026521265222652326524265252652626527265282652926530265312653226533265342653526536265372653826539265402654126542265432654426545265462654726548265492655026551265522655326554265552655626557265582655926560265612656226563265642656526566265672656826569265702657126572265732657426575265762657726578265792658026581265822658326584265852658626587265882658926590265912659226593265942659526596265972659826599266002660126602266032660426605266062660726608266092661026611266122661326614266152661626617266182661926620266212662226623266242662526626266272662826629266302663126632266332663426635266362663726638266392664026641266422664326644266452664626647266482664926650266512665226653266542665526656266572665826659266602666126662266632666426665266662666726668266692667026671266722667326674266752667626677266782667926680266812668226683266842668526686266872668826689266902669126692266932669426695266962669726698266992670026701267022670326704267052670626707267082670926710267112671226713267142671526716267172671826719267202672126722267232672426725267262672726728267292673026731267322673326734267352673626737267382673926740267412674226743267442674526746267472674826749267502675126752267532675426755267562675726758267592676026761267622676326764267652676626767267682676926770267712677226773267742677526776267772677826779267802678126782267832678426785267862678726788267892679026791267922679326794267952679626797267982679926800268012680226803268042680526806268072680826809268102681126812268132681426815268162681726818268192682026821268222682326824268252682626827268282682926830268312683226833268342683526836268372683826839268402684126842268432684426845268462684726848268492685026851268522685326854268552685626857268582685926860268612686226863268642686526866268672686826869268702687126872268732687426875268762687726878268792688026881268822688326884268852688626887268882688926890268912689226893268942689526896268972689826899269002690126902269032690426905269062690726908269092691026911269122691326914269152691626917269182691926920269212692226923269242692526926269272692826929269302693126932269332693426935269362693726938269392694026941269422694326944269452694626947269482694926950269512695226953269542695526956269572695826959269602696126962269632696426965269662696726968269692697026971269722697326974269752697626977269782697926980269812698226983269842698526986269872698826989269902699126992269932699426995269962699726998269992700027001270022700327004270052700627007270082700927010270112701227013270142701527016270172701827019270202702127022270232702427025270262702727028270292703027031270322703327034270352703627037270382703927040270412704227043270442704527046270472704827049270502705127052270532705427055270562705727058270592706027061270622706327064270652706627067270682706927070270712707227073270742707527076270772707827079270802708127082270832708427085270862708727088270892709027091270922709327094270952709627097270982709927100271012710227103271042710527106271072710827109271102711127112271132711427115271162711727118271192712027121271222712327124271252712627127271282712927130271312713227133271342713527136271372713827139271402714127142271432714427145271462714727148271492715027151271522715327154271552715627157271582715927160271612716227163271642716527166271672716827169271702717127172271732717427175271762717727178271792718027181271822718327184271852718627187271882718927190271912719227193271942719527196271972719827199272002720127202272032720427205272062720727208272092721027211272122721327214272152721627217272182721927220272212722227223272242722527226272272722827229272302723127232272332723427235272362723727238272392724027241272422724327244272452724627247272482724927250272512725227253272542725527256272572725827259272602726127262272632726427265272662726727268272692727027271272722727327274272752727627277272782727927280272812728227283272842728527286272872728827289272902729127292272932729427295272962729727298272992730027301273022730327304273052730627307273082730927310273112731227313273142731527316273172731827319273202732127322273232732427325273262732727328273292733027331273322733327334273352733627337273382733927340273412734227343273442734527346273472734827349273502735127352273532735427355273562735727358273592736027361273622736327364273652736627367273682736927370273712737227373273742737527376273772737827379273802738127382273832738427385273862738727388273892739027391273922739327394273952739627397273982739927400274012740227403274042740527406274072740827409274102741127412274132741427415274162741727418274192742027421274222742327424274252742627427274282742927430274312743227433274342743527436274372743827439274402744127442274432744427445274462744727448274492745027451274522745327454274552745627457274582745927460274612746227463274642746527466274672746827469274702747127472274732747427475274762747727478274792748027481274822748327484274852748627487274882748927490274912749227493274942749527496274972749827499275002750127502275032750427505275062750727508275092751027511275122751327514275152751627517275182751927520275212752227523275242752527526275272752827529275302753127532275332753427535275362753727538275392754027541275422754327544275452754627547275482754927550275512755227553275542755527556275572755827559275602756127562275632756427565275662756727568275692757027571275722757327574275752757627577275782757927580275812758227583275842758527586275872758827589275902759127592275932759427595275962759727598275992760027601276022760327604276052760627607276082760927610276112761227613276142761527616276172761827619276202762127622276232762427625276262762727628276292763027631276322763327634276352763627637276382763927640276412764227643276442764527646276472764827649276502765127652276532765427655276562765727658276592766027661276622766327664276652766627667276682766927670276712767227673276742767527676276772767827679276802768127682276832768427685276862768727688276892769027691276922769327694276952769627697276982769927700277012770227703277042770527706277072770827709277102771127712277132771427715277162771727718277192772027721277222772327724277252772627727277282772927730277312773227733277342773527736277372773827739277402774127742277432774427745277462774727748277492775027751277522775327754277552775627757277582775927760277612776227763277642776527766277672776827769277702777127772277732777427775277762777727778277792778027781277822778327784277852778627787277882778927790277912779227793277942779527796277972779827799278002780127802278032780427805278062780727808278092781027811278122781327814278152781627817278182781927820278212782227823278242782527826278272782827829278302783127832278332783427835278362783727838278392784027841278422784327844278452784627847278482784927850278512785227853278542785527856278572785827859278602786127862278632786427865278662786727868278692787027871278722787327874278752787627877278782787927880278812788227883278842788527886278872788827889278902789127892278932789427895278962789727898278992790027901279022790327904279052790627907279082790927910279112791227913279142791527916279172791827919279202792127922279232792427925279262792727928279292793027931279322793327934279352793627937279382793927940279412794227943279442794527946279472794827949279502795127952279532795427955279562795727958279592796027961279622796327964279652796627967279682796927970279712797227973279742797527976279772797827979279802798127982279832798427985279862798727988279892799027991279922799327994279952799627997279982799928000280012800228003280042800528006280072800828009280102801128012280132801428015280162801728018280192802028021280222802328024280252802628027280282802928030280312803228033280342803528036280372803828039280402804128042280432804428045280462804728048280492805028051280522805328054280552805628057280582805928060280612806228063280642806528066280672806828069280702807128072280732807428075280762807728078280792808028081280822808328084280852808628087280882808928090280912809228093280942809528096280972809828099281002810128102281032810428105281062810728108281092811028111281122811328114281152811628117281182811928120281212812228123281242812528126281272812828129281302813128132281332813428135281362813728138281392814028141281422814328144281452814628147281482814928150281512815228153281542815528156281572815828159281602816128162281632816428165281662816728168281692817028171281722817328174281752817628177281782817928180281812818228183281842818528186281872818828189281902819128192281932819428195281962819728198281992820028201282022820328204282052820628207282082820928210282112821228213282142821528216282172821828219282202822128222282232822428225282262822728228282292823028231282322823328234282352823628237282382823928240282412824228243282442824528246282472824828249282502825128252282532825428255282562825728258282592826028261282622826328264282652826628267282682826928270282712827228273282742827528276282772827828279282802828128282282832828428285282862828728288282892829028291282922829328294282952829628297282982829928300283012830228303(* 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.ec2letapiVersion="2016-11-15"letendpointPrefix="ec2"letserviceFullName="Amazon Elastic Compute Cloud"letsignatureVersion="v4"letprotocol="ec2"letglobalEndpoint=endpointPrefix^".amazonaws.com"letserviceAbbreviation="Amazon EC2"letxmlNamespace="http://ec2.amazonaws.com/doc/2016-11-15"moduleEc2_error=structtypecommon_client_errors=[`AuthFailure|`Blocked|`DryRunOperation|`IdempotentParameterMismatch|`IncompleteSignature|`InvalidAction|`InvalidCharacter|`InvalidClientTokenId|`InvalidPaginationToken|`InvalidParameter|`InvalidParameterCombination|`InvalidParameterValue|`InvalidQueryParameter|`MalformedQueryString|`MissingAction|`MissingAuthenticationToken|`MissingParameter|`OptInRequired|`PendingVerification|`RequestExpired|`UnauthorizedOperation|`UnknownParameter|`UnsupportedInstanceAttribute|`UnsupportedOperation|`UnsupportedProtocol|`ValidationError|`Unknown_codeofstring]typeclient_errors_for_specific_actions=[`ActiveVpcPeeringConnectionPerVpcLimitExceeded|`AddressLimitExceeded|`AsnConflict|`AttachmentLimitExceeded|`BootForVolumeTypeUnsupported|`BundlingInProgress|`CannotDelete|`CidrConflict|`ClientVpnAuthorizationRuleLimitExceeded|`ClientVpnCertificateRevocationListLimitExceeded|`ClientVpnEndpointAssociationExists|`ClientVpnEndpointLimitExceeded|`ClientVpnRouteLimitExceeded|`ClientVpnTerminateConnectionsLimitExceeded|`ConcurrentCreateImageNoRebootLimitExceeded|`ConcurrentSnapshotLimitExceeded|`ConcurrentTagAccess|`CreditSpecificationUpdateInProgress|`CustomerGatewayLimitExceeded|`CustomerKeyHasBeenRevoked|`DefaultSubnetAlreadyExistsInAvailabilityZone|`DefaultVpcAlreadyExists|`DefaultVpcDoesNotExist|`DeleteConversionTaskError|`DependencyViolation|`DisallowedForDedicatedTenancyNetwork|`DiskImageSizeTooLarge|`DuplicateSubnetsInSameZone|`EIPMigratedToVpc|`EncryptedVolumesNotSupported|`ExistingVpcEndpointConnections|`FilterLimitExceeded|`FleetNotInModifiableState|`FlowLogAlreadyExists|`FlowLogsLimitExceeded|`Gateway_NotAttached|`HostAlreadyCoveredByReservation|`HostLimitExceeded|`IdempotentInstanceTerminated|`InaccessibleStorageLocation|`IncompatibleHostRequirements|`IncorrectInstanceState|`IncorrectModificationState|`IncorrectState|`InstanceAlreadyLinked|`InstanceCreditSpecification_NotSupported|`InstanceLimitExceeded|`InsufficientCapacityOnHost|`InsufficientFreeAddressesInSubnet|`InsufficientReservedInstancesCapacity|`InterfaceInUseByTrafficMirrorSession|`InterfaceInUseByTrafficMirrorTarget|`InternetGatewayLimitExceeded|`InvalidAMIAttributeItemValue|`InvalidAMIID_Malformed|`InvalidAMIID_NotFound|`InvalidAMIID_Unavailable|`InvalidAMIName_Duplicate|`InvalidAMIName_Malformed|`InvalidAddress_Locked|`InvalidAddress_Malformed|`InvalidAddress_NotFound|`InvalidAddressID_NotFound|`InvalidAffinity|`InvalidAllocationID_NotFound|`InvalidAssociationID_NotFound|`InvalidAttachment_NotFound|`InvalidAttachmentID_NotFound|`InvalidAutoPlacement|`InvalidAvailabilityZone|`InvalidBlockDeviceMapping|`InvalidBundleID_NotFound|`InvalidCapacityReservationIdMalformedException|`InvalidCapacityReservationIdNotFoundException|`InvalidCidr_InUse|`InvalidClientToken|`InvalidClientVpnActiveAssociationNotFound|`InvalidClientVpnAssociationIdNotFound|`InvalidClientVpnConnection_IdNotFound|`InvalidClientVpnConnection_UserNotFound|`InvalidClientVpnDuplicateAssociationException|`InvalidClientVpnDuplicateAuthorizationRule|`InvalidClientVpnDuplicateRoute|`InvalidClientVpnEndpointAuthorizationRuleNotFound|`InvalidClientVpnEndpointId_NotFound|`InvalidClientVpnRouteNotFound|`InvalidClientVpnSubnetId_DifferentAccount|`InvalidClientVpnSubnetId_DuplicateAz|`InvalidClientVpnSubnetId_NotFound|`InvalidClientVpnSubnetId_OverlappingCidr|`InvalidConversionTaskId|`InvalidConversionTaskId_Malformed|`InvalidCpuCredits_Malformed|`InvalidCustomerGateway_DuplicateIpAddress|`InvalidCustomerGatewayID_NotFound|`InvalidCustomerGatewayId_Malformed|`InvalidCustomerGatewayState|`InvalidDevice_InUse|`InvalidDhcpOptionID_NotFound|`InvalidDhcpOptionsID_NotFound|`InvalidDhcpOptionsId_Malformed|`InvalidExportTaskID_NotFound|`InvalidFilter|`InvalidFlowLogId_NotFound|`InvalidFormat|`InvalidFpgaImageID_Malformed|`InvalidFpgaImageID_NotFound|`InvalidGatewayID_NotFound|`InvalidGroup_Duplicate|`InvalidGroup_InUse|`InvalidGroup_NotFound|`InvalidGroup_Reserved|`InvalidGroupId_Malformed|`InvalidHostConfiguration|`InvalidHostID_Malformed|`InvalidHostID_NotFound|`InvalidHostId|`InvalidHostId_Malformed|`InvalidHostId_NotFound|`InvalidHostReservationId_Malformed|`InvalidHostReservationOfferingId_Malformed|`InvalidHostState|`InvalidID|`InvalidIPAddress_InUse|`InvalidIamInstanceProfileArn_Malformed|`InvalidInput|`InvalidInstanceAttributeValue|`InvalidInstanceCreditSpecification_DuplicateInstanceId|`InvalidInstanceFamily|`InvalidInstanceID|`InvalidInstanceID_Malformed|`InvalidInstanceID_NotFound|`InvalidInstanceID_NotLinkable|`InvalidInstanceState|`InvalidInstanceType|`InvalidInterface_IpAddressLimitExceeded|`InvalidInternetGatewayID_NotFound|`InvalidInternetGatewayId_Malformed|`InvalidKernelId_Malformed|`InvalidKey_Format|`InvalidKeyPair_Duplicate|`InvalidKeyPair_Format|`InvalidKeyPair_NotFound|`InvalidLaunchTemplateId_Malformed|`InvalidLaunchTemplateId_NotFound|`InvalidLaunchTemplateId_VersionNotFound|`InvalidLaunchTemplateName_AlreadyExistsException|`InvalidLaunchTemplateName_MalformedException|`InvalidLaunchTemplateName_NotFoundException|`InvalidManifest|`InvalidMaxResults|`InvalidNatGatewayID_NotFound|`InvalidNetworkAclEntry_NotFound|`InvalidNetworkAclID_NotFound|`InvalidNetworkAclId_Malformed|`InvalidNetworkInterface_InUse|`InvalidNetworkInterfaceAttachmentId_Malformed|`InvalidNetworkInterfaceID_NotFound|`InvalidNetworkInterfaceId_Malformed|`InvalidNetworkLoadBalancerArn_Malformed|`InvalidNetworkLoadBalancerArn_NotFound|`InvalidNextToken|`InvalidOption_Conflict|`InvalidPermission_Duplicate|`InvalidPermission_Malformed|`InvalidPermission_NotFound|`InvalidPlacementGroup_Duplicate|`InvalidPlacementGroup_InUse|`InvalidPlacementGroup_Unknown|`InvalidPolicyDocument|`InvalidPrefixListId_Malformed|`InvalidPrefixListId_NotFound|`InvalidProductInfo|`InvalidPurchaseToken_Expired|`InvalidPurchaseToken_Malformed|`InvalidQuantity|`InvalidRamDiskId_Malformed|`InvalidRegion|`InvalidRequest|`InvalidReservationID_Malformed|`InvalidReservationID_NotFound|`InvalidReservedInstancesId|`InvalidReservedInstancesOfferingId|`InvalidResourceType_Unknown|`InvalidRoute_InvalidState|`InvalidRoute_Malformed|`InvalidRoute_NotFound|`InvalidRouteTableID_NotFound|`InvalidRouteTableId_Malformed|`InvalidScheduledInstance|`InvalidSecurity_RequestHasExpired|`InvalidSecurityGroupID_NotFound|`InvalidSecurityGroupId_Malformed|`InvalidServiceName|`InvalidSnapshot_InUse|`InvalidSnapshot_NotFound|`InvalidSnapshotID_Malformed|`InvalidSpotDatafeed_NotFound|`InvalidSpotFleetRequestConfig|`InvalidSpotFleetRequestId_Malformed|`InvalidSpotFleetRequestId_NotFound|`InvalidSpotInstanceRequestID_Malformed|`InvalidSpotInstanceRequestID_NotFound|`InvalidState|`InvalidStateTransition|`InvalidSubnet|`InvalidSubnet_Conflict|`InvalidSubnet_Range|`InvalidSubnetID_Malformed|`InvalidSubnetID_NotFound|`InvalidTagKey_Malformed|`InvalidTargetArn_Unknown|`InvalidTenancy|`InvalidTime|`InvalidTrafficMirrorFilterNotFound|`InvalidTrafficMirrorFilterRuleNotFound|`InvalidTrafficMirrorSessionNotFound|`InvalidTrafficMirrorTargetNoFound|`InvalidUserID_Malformed|`InvalidVolume_NotFound|`InvalidVolume_ZoneMismatch|`InvalidVolumeID_Duplicate|`InvalidVolumeID_Malformed|`InvalidVolumeID_ZoneMismatch|`InvalidVpcEndpoint_NotFound|`InvalidVpcEndpointId_Malformed|`InvalidVpcEndpointId_NotFound|`InvalidVpcEndpointService_NotFound|`InvalidVpcEndpointServiceId_NotFound|`InvalidVpcEndpointType|`InvalidVpcID_Malformed|`InvalidVpcID_NotFound|`InvalidVpcPeeringConnectionID_NotFound|`InvalidVpcPeeringConnectionId_Malformed|`InvalidVpcPeeringConnectionState_DnsHostnamesDisabled|`InvalidVpcRange|`InvalidVpcState|`InvalidVpnConnection_InvalidState|`InvalidVpnConnection_InvalidType|`InvalidVpnConnectionID|`InvalidVpnConnectionID_NotFound|`InvalidVpnGatewayAttachment_NotFound|`InvalidVpnGatewayID_NotFound|`InvalidVpnGatewayState|`InvalidZone_NotFound|`KeyPairLimitExceeded|`LegacySecurityGroup|`LimitPriceExceeded|`LogDestinationNotFoundException|`LogDestinationPermissionIssue|`MaxConfigLimitExceededException|`MaxIOPSLimitExceeded|`MaxScheduledInstanceCapacityExceeded|`MaxSpotFleetRequestCountExceeded|`MaxSpotInstanceCountExceeded|`MaxTemplateLimitExceeded|`MaxTemplateVersionLimitExceeded|`MissingInput|`NatGatewayLimitExceeded|`NatGatewayMalformed|`NatGatewayNotFound|`NetworkAclEntryAlreadyExists|`NetworkAclEntryLimitExceeded|`NetworkAclLimitExceeded|`NetworkInterfaceLimitExceeded|`NetworkInterfaceNotFoundException|`NetworkInterfaceNotSupportedException|`NetworkLoadBalancerNotFoundException|`NlbInUseByTrafficMirrorTargetException|`NoSuchVersion|`NonEBSInstance|`NotExportable|`OperationNotPermitted|`OutstandingVpcPeeringConnectionLimitExceeded|`PendingSnapshotLimitExceeded|`PendingVpcPeeringConnectionLimitExceeded|`PlacementGroupLimitExceeded|`PrivateIpAddressLimitExceeded|`RequestResourceCountExceeded|`ReservationCapacityExceeded|`ReservedInstancesCountExceeded|`ReservedInstancesLimitExceeded|`ReservedInstancesUnavailable|`Resource_AlreadyAssigned|`Resource_AlreadyAssociated|`ResourceCountExceeded|`ResourceCountLimitExceeded|`ResourceLimitExceeded|`RouteAlreadyExists|`RouteLimitExceeded|`RouteTableLimitExceeded|`RulesPerSecurityGroupLimitExceeded|`ScheduledInstanceLimitExceeded|`ScheduledInstanceParameterMismatch|`ScheduledInstanceSlotNotOpen|`ScheduledInstanceSlotUnavailable|`SecurityGroupLimitExceeded|`SecurityGroupsPerInstanceLimitExceeded|`SecurityGroupsPerInterfaceLimitExceeded|`SignatureDoesNotMatch|`SnapshotCopyUnsupported_InterRegion|`SnapshotCreationPerVolumeRateExceeded|`SnapshotLimitExceeded|`SubnetLimitExceeded|`TagLimitExceeded|`TargetCapacityLimitExceededException|`TrafficMirrorFilterInUse|`TrafficMirrorFilterLimitExceeded|`TrafficMirrorFilterRuleAlreadyExists|`TrafficMirrorFilterRuleLimitExceeded|`TrafficMirrorSessionLimitExceeded|`TrafficMirrorSessionsPerInterfaceLimitExceeded|`TrafficMirrorSessionsPerTargetLimitExceeded|`TrafficMirrorSourcesPerTargetLimitExceeded|`TrafficMirrorTargetInUseException|`TrafficMirrorTargetLimitExceeded|`UnavailableHostRequirements|`UnknownPrincipalType_Unsupported|`UnknownVolumeType|`Unsupported|`UnsupportedException|`UnsupportedHibernationConfiguration|`UnsupportedHostConfiguration|`UnsupportedInstanceTypeOnHost|`UnsupportedTenancy|`UpdateLimitExceeded|`VPCIdNotSpecified|`VPCResourceNotSpecified|`VolumeIOPSLimit|`VolumeInUse|`VolumeLimitExceeded|`VolumeModificationSizeLimitExceeded|`VolumeTypeNotAvailableInZone|`VpcCidrConflict|`VpcEndpointLimitExceeded|`VpcLimitExceeded|`VpcPeeringConnectionAlreadyExists|`VpcPeeringConnectionsPerVpcLimitExceeded|`VpnConnectionLimitExceeded|`VpnGatewayAttachmentLimitExceeded|`VpnGatewayLimitExceeded|`ZonesMismatched|`Unknown_codeofstring]typeserver_errors=[`InsufficientAddressCapacity|`InsufficientCapacity|`InsufficientHostCapacity|`InsufficientInstanceCapacity|`InsufficientReservedInstanceCapacity|`InsufficientVolumeCapacity|`InternalError|`InternalFailure|`RequestLimitExceeded|`ServiceUnavailable|`Unavailable|`Unknown_codeofstring]typecode=[|common_client_errors|client_errors_for_specific_actions|server_errors]typet=(code*stringoption)letstring_to_codename=matchnamewith|"AuthFailure"->`AuthFailure|"Blocked"->`Blocked|"DryRunOperation"->`DryRunOperation|"IdempotentParameterMismatch"->`IdempotentParameterMismatch|"IncompleteSignature"->`IncompleteSignature|"InvalidAction"->`InvalidAction|"InvalidCharacter"->`InvalidCharacter|"InvalidClientTokenId"->`InvalidClientTokenId|"InvalidPaginationToken"->`InvalidPaginationToken|"InvalidParameter"->`InvalidParameter|"InvalidParameterCombination"->`InvalidParameterCombination|"InvalidParameterValue"->`InvalidParameterValue|"InvalidQueryParameter"->`InvalidQueryParameter|"MalformedQueryString"->`MalformedQueryString|"MissingAction"->`MissingAction|"MissingAuthenticationToken"->`MissingAuthenticationToken|"MissingParameter"->`MissingParameter|"OptInRequired"->`OptInRequired|"PendingVerification"->`PendingVerification|"RequestExpired"->`RequestExpired|"UnauthorizedOperation"->`UnauthorizedOperation|"UnknownParameter"->`UnknownParameter|"UnsupportedInstanceAttribute"->`UnsupportedInstanceAttribute|"UnsupportedOperation"->`UnsupportedOperation|"UnsupportedProtocol"->`UnsupportedProtocol|"ValidationError"->`ValidationError|"ActiveVpcPeeringConnectionPerVpcLimitExceeded"->`ActiveVpcPeeringConnectionPerVpcLimitExceeded|"AddressLimitExceeded"->`AddressLimitExceeded|"AsnConflict"->`AsnConflict|"AttachmentLimitExceeded"->`AttachmentLimitExceeded|"BootForVolumeTypeUnsupported"->`BootForVolumeTypeUnsupported|"BundlingInProgress"->`BundlingInProgress|"CannotDelete"->`CannotDelete|"CidrConflict"->`CidrConflict|"ClientVpnAuthorizationRuleLimitExceeded"->`ClientVpnAuthorizationRuleLimitExceeded|"ClientVpnCertificateRevocationListLimitExceeded"->`ClientVpnCertificateRevocationListLimitExceeded|"ClientVpnEndpointAssociationExists"->`ClientVpnEndpointAssociationExists|"ClientVpnEndpointLimitExceeded"->`ClientVpnEndpointLimitExceeded|"ClientVpnRouteLimitExceeded"->`ClientVpnRouteLimitExceeded|"ClientVpnTerminateConnectionsLimitExceeded"->`ClientVpnTerminateConnectionsLimitExceeded|"ConcurrentCreateImageNoRebootLimitExceeded"->`ConcurrentCreateImageNoRebootLimitExceeded|"ConcurrentSnapshotLimitExceeded"->`ConcurrentSnapshotLimitExceeded|"ConcurrentTagAccess"->`ConcurrentTagAccess|"CreditSpecificationUpdateInProgress"->`CreditSpecificationUpdateInProgress|"CustomerGatewayLimitExceeded"->`CustomerGatewayLimitExceeded|"CustomerKeyHasBeenRevoked"->`CustomerKeyHasBeenRevoked|"DefaultSubnetAlreadyExistsInAvailabilityZone"->`DefaultSubnetAlreadyExistsInAvailabilityZone|"DefaultVpcAlreadyExists"->`DefaultVpcAlreadyExists|"DefaultVpcDoesNotExist"->`DefaultVpcDoesNotExist|"DeleteConversionTaskError"->`DeleteConversionTaskError|"DependencyViolation"->`DependencyViolation|"DisallowedForDedicatedTenancyNetwork"->`DisallowedForDedicatedTenancyNetwork|"DiskImageSizeTooLarge"->`DiskImageSizeTooLarge|"DuplicateSubnetsInSameZone"->`DuplicateSubnetsInSameZone|"EIPMigratedToVpc"->`EIPMigratedToVpc|"EncryptedVolumesNotSupported"->`EncryptedVolumesNotSupported|"ExistingVpcEndpointConnections"->`ExistingVpcEndpointConnections|"FilterLimitExceeded"->`FilterLimitExceeded|"FleetNotInModifiableState"->`FleetNotInModifiableState|"FlowLogAlreadyExists"->`FlowLogAlreadyExists|"FlowLogsLimitExceeded"->`FlowLogsLimitExceeded|"Gateway.NotAttached"->`Gateway_NotAttached|"HostAlreadyCoveredByReservation"->`HostAlreadyCoveredByReservation|"HostLimitExceeded"->`HostLimitExceeded|"IdempotentInstanceTerminated"->`IdempotentInstanceTerminated|"InaccessibleStorageLocation"->`InaccessibleStorageLocation|"IncompatibleHostRequirements"->`IncompatibleHostRequirements|"IncorrectInstanceState"->`IncorrectInstanceState|"IncorrectModificationState"->`IncorrectModificationState|"IncorrectState"->`IncorrectState|"InstanceAlreadyLinked"->`InstanceAlreadyLinked|"InstanceCreditSpecification.NotSupported"->`InstanceCreditSpecification_NotSupported|"InstanceLimitExceeded"->`InstanceLimitExceeded|"InsufficientCapacityOnHost"->`InsufficientCapacityOnHost|"InsufficientFreeAddressesInSubnet"->`InsufficientFreeAddressesInSubnet|"InsufficientReservedInstancesCapacity"->`InsufficientReservedInstancesCapacity|"InterfaceInUseByTrafficMirrorSession"->`InterfaceInUseByTrafficMirrorSession|"InterfaceInUseByTrafficMirrorTarget"->`InterfaceInUseByTrafficMirrorTarget|"InternetGatewayLimitExceeded"->`InternetGatewayLimitExceeded|"InvalidAMIAttributeItemValue"->`InvalidAMIAttributeItemValue|"InvalidAMIID.Malformed"->`InvalidAMIID_Malformed|"InvalidAMIID.NotFound"->`InvalidAMIID_NotFound|"InvalidAMIID.Unavailable"->`InvalidAMIID_Unavailable|"InvalidAMIName.Duplicate"->`InvalidAMIName_Duplicate|"InvalidAMIName.Malformed"->`InvalidAMIName_Malformed|"InvalidAddress.Locked"->`InvalidAddress_Locked|"InvalidAddress.Malformed"->`InvalidAddress_Malformed|"InvalidAddress.NotFound"->`InvalidAddress_NotFound|"InvalidAddressID.NotFound"->`InvalidAddressID_NotFound|"InvalidAffinity"->`InvalidAffinity|"InvalidAllocationID.NotFound"->`InvalidAllocationID_NotFound|"InvalidAssociationID.NotFound"->`InvalidAssociationID_NotFound|"InvalidAttachment.NotFound"->`InvalidAttachment_NotFound|"InvalidAttachmentID.NotFound"->`InvalidAttachmentID_NotFound|"InvalidAutoPlacement"->`InvalidAutoPlacement|"InvalidAvailabilityZone"->`InvalidAvailabilityZone|"InvalidBlockDeviceMapping"->`InvalidBlockDeviceMapping|"InvalidBundleID.NotFound"->`InvalidBundleID_NotFound|"InvalidCapacityReservationIdMalformedException"->`InvalidCapacityReservationIdMalformedException|"InvalidCapacityReservationIdNotFoundException"->`InvalidCapacityReservationIdNotFoundException|"InvalidCidr.InUse"->`InvalidCidr_InUse|"InvalidClientToken"->`InvalidClientToken|"InvalidClientVpnActiveAssociationNotFound"->`InvalidClientVpnActiveAssociationNotFound|"InvalidClientVpnAssociationIdNotFound"->`InvalidClientVpnAssociationIdNotFound|"InvalidClientVpnConnection.IdNotFound"->`InvalidClientVpnConnection_IdNotFound|"InvalidClientVpnConnection.UserNotFound"->`InvalidClientVpnConnection_UserNotFound|"InvalidClientVpnDuplicateAssociationException"->`InvalidClientVpnDuplicateAssociationException|"InvalidClientVpnDuplicateAuthorizationRule"->`InvalidClientVpnDuplicateAuthorizationRule|"InvalidClientVpnDuplicateRoute"->`InvalidClientVpnDuplicateRoute|"InvalidClientVpnEndpointAuthorizationRuleNotFound"->`InvalidClientVpnEndpointAuthorizationRuleNotFound|"InvalidClientVpnEndpointId.NotFound"->`InvalidClientVpnEndpointId_NotFound|"InvalidClientVpnRouteNotFound"->`InvalidClientVpnRouteNotFound|"InvalidClientVpnSubnetId.DifferentAccount"->`InvalidClientVpnSubnetId_DifferentAccount|"InvalidClientVpnSubnetId.DuplicateAz"->`InvalidClientVpnSubnetId_DuplicateAz|"InvalidClientVpnSubnetId.NotFound"->`InvalidClientVpnSubnetId_NotFound|"InvalidClientVpnSubnetId.OverlappingCidr"->`InvalidClientVpnSubnetId_OverlappingCidr|"InvalidConversionTaskId"->`InvalidConversionTaskId|"InvalidConversionTaskId.Malformed"->`InvalidConversionTaskId_Malformed|"InvalidCpuCredits.Malformed"->`InvalidCpuCredits_Malformed|"InvalidCustomerGateway.DuplicateIpAddress"->`InvalidCustomerGateway_DuplicateIpAddress|"InvalidCustomerGatewayID.NotFound"->`InvalidCustomerGatewayID_NotFound|"InvalidCustomerGatewayId.Malformed"->`InvalidCustomerGatewayId_Malformed|"InvalidCustomerGatewayState"->`InvalidCustomerGatewayState|"InvalidDevice.InUse"->`InvalidDevice_InUse|"InvalidDhcpOptionID.NotFound"->`InvalidDhcpOptionID_NotFound|"InvalidDhcpOptionsID.NotFound"->`InvalidDhcpOptionsID_NotFound|"InvalidDhcpOptionsId.Malformed"->`InvalidDhcpOptionsId_Malformed|"InvalidExportTaskID.NotFound"->`InvalidExportTaskID_NotFound|"InvalidFilter"->`InvalidFilter|"InvalidFlowLogId.NotFound"->`InvalidFlowLogId_NotFound|"InvalidFormat"->`InvalidFormat|"InvalidFpgaImageID.Malformed"->`InvalidFpgaImageID_Malformed|"InvalidFpgaImageID.NotFound"->`InvalidFpgaImageID_NotFound|"InvalidGatewayID.NotFound"->`InvalidGatewayID_NotFound|"InvalidGroup.Duplicate"->`InvalidGroup_Duplicate|"InvalidGroup.InUse"->`InvalidGroup_InUse|"InvalidGroup.NotFound"->`InvalidGroup_NotFound|"InvalidGroup.Reserved"->`InvalidGroup_Reserved|"InvalidGroupId.Malformed"->`InvalidGroupId_Malformed|"InvalidHostConfiguration"->`InvalidHostConfiguration|"InvalidHostID.Malformed"->`InvalidHostID_Malformed|"InvalidHostID.NotFound"->`InvalidHostID_NotFound|"InvalidHostId"->`InvalidHostId|"InvalidHostId.Malformed"->`InvalidHostId_Malformed|"InvalidHostId.NotFound"->`InvalidHostId_NotFound|"InvalidHostReservationId.Malformed"->`InvalidHostReservationId_Malformed|"InvalidHostReservationOfferingId.Malformed"->`InvalidHostReservationOfferingId_Malformed|"InvalidHostState"->`InvalidHostState|"InvalidID"->`InvalidID|"InvalidIPAddress.InUse"->`InvalidIPAddress_InUse|"InvalidIamInstanceProfileArn.Malformed"->`InvalidIamInstanceProfileArn_Malformed|"InvalidInput"->`InvalidInput|"InvalidInstanceAttributeValue"->`InvalidInstanceAttributeValue|"InvalidInstanceCreditSpecification.DuplicateInstanceId"->`InvalidInstanceCreditSpecification_DuplicateInstanceId|"InvalidInstanceFamily"->`InvalidInstanceFamily|"InvalidInstanceID"->`InvalidInstanceID|"InvalidInstanceID.Malformed"->`InvalidInstanceID_Malformed|"InvalidInstanceID.NotFound"->`InvalidInstanceID_NotFound|"InvalidInstanceID.NotLinkable"->`InvalidInstanceID_NotLinkable|"InvalidInstanceState"->`InvalidInstanceState|"InvalidInstanceType"->`InvalidInstanceType|"InvalidInterface.IpAddressLimitExceeded"->`InvalidInterface_IpAddressLimitExceeded|"InvalidInternetGatewayID.NotFound"->`InvalidInternetGatewayID_NotFound|"InvalidInternetGatewayId.Malformed"->`InvalidInternetGatewayId_Malformed|"InvalidKernelId.Malformed"->`InvalidKernelId_Malformed|"InvalidKey.Format"->`InvalidKey_Format|"InvalidKeyPair.Duplicate"->`InvalidKeyPair_Duplicate|"InvalidKeyPair.Format"->`InvalidKeyPair_Format|"InvalidKeyPair.NotFound"->`InvalidKeyPair_NotFound|"InvalidLaunchTemplateId.Malformed"->`InvalidLaunchTemplateId_Malformed|"InvalidLaunchTemplateId.NotFound"->`InvalidLaunchTemplateId_NotFound|"InvalidLaunchTemplateId.VersionNotFound"->`InvalidLaunchTemplateId_VersionNotFound|"InvalidLaunchTemplateName.AlreadyExistsException"->`InvalidLaunchTemplateName_AlreadyExistsException|"InvalidLaunchTemplateName.MalformedException"->`InvalidLaunchTemplateName_MalformedException|"InvalidLaunchTemplateName.NotFoundException"->`InvalidLaunchTemplateName_NotFoundException|"InvalidManifest"->`InvalidManifest|"InvalidMaxResults"->`InvalidMaxResults|"InvalidNatGatewayID.NotFound"->`InvalidNatGatewayID_NotFound|"InvalidNetworkAclEntry.NotFound"->`InvalidNetworkAclEntry_NotFound|"InvalidNetworkAclID.NotFound"->`InvalidNetworkAclID_NotFound|"InvalidNetworkAclId.Malformed"->`InvalidNetworkAclId_Malformed|"InvalidNetworkInterface.InUse"->`InvalidNetworkInterface_InUse|"InvalidNetworkInterfaceAttachmentId.Malformed"->`InvalidNetworkInterfaceAttachmentId_Malformed|"InvalidNetworkInterfaceID.NotFound"->`InvalidNetworkInterfaceID_NotFound|"InvalidNetworkInterfaceId.Malformed"->`InvalidNetworkInterfaceId_Malformed|"InvalidNetworkLoadBalancerArn.Malformed"->`InvalidNetworkLoadBalancerArn_Malformed|"InvalidNetworkLoadBalancerArn.NotFound"->`InvalidNetworkLoadBalancerArn_NotFound|"InvalidNextToken"->`InvalidNextToken|"InvalidOption.Conflict"->`InvalidOption_Conflict|"InvalidPermission.Duplicate"->`InvalidPermission_Duplicate|"InvalidPermission.Malformed"->`InvalidPermission_Malformed|"InvalidPermission.NotFound"->`InvalidPermission_NotFound|"InvalidPlacementGroup.Duplicate"->`InvalidPlacementGroup_Duplicate|"InvalidPlacementGroup.InUse"->`InvalidPlacementGroup_InUse|"InvalidPlacementGroup.Unknown"->`InvalidPlacementGroup_Unknown|"InvalidPolicyDocument"->`InvalidPolicyDocument|"InvalidPrefixListId.Malformed"->`InvalidPrefixListId_Malformed|"InvalidPrefixListId.NotFound"->`InvalidPrefixListId_NotFound|"InvalidProductInfo"->`InvalidProductInfo|"InvalidPurchaseToken.Expired"->`InvalidPurchaseToken_Expired|"InvalidPurchaseToken.Malformed"->`InvalidPurchaseToken_Malformed|"InvalidQuantity"->`InvalidQuantity|"InvalidRamDiskId.Malformed"->`InvalidRamDiskId_Malformed|"InvalidRegion"->`InvalidRegion|"InvalidRequest"->`InvalidRequest|"InvalidReservationID.Malformed"->`InvalidReservationID_Malformed|"InvalidReservationID.NotFound"->`InvalidReservationID_NotFound|"InvalidReservedInstancesId"->`InvalidReservedInstancesId|"InvalidReservedInstancesOfferingId"->`InvalidReservedInstancesOfferingId|"InvalidResourceType.Unknown"->`InvalidResourceType_Unknown|"InvalidRoute.InvalidState"->`InvalidRoute_InvalidState|"InvalidRoute.Malformed"->`InvalidRoute_Malformed|"InvalidRoute.NotFound"->`InvalidRoute_NotFound|"InvalidRouteTableID.NotFound"->`InvalidRouteTableID_NotFound|"InvalidRouteTableId.Malformed"->`InvalidRouteTableId_Malformed|"InvalidScheduledInstance"->`InvalidScheduledInstance|"InvalidSecurity.RequestHasExpired"->`InvalidSecurity_RequestHasExpired|"InvalidSecurityGroupID.NotFound"->`InvalidSecurityGroupID_NotFound|"InvalidSecurityGroupId.Malformed"->`InvalidSecurityGroupId_Malformed|"InvalidServiceName"->`InvalidServiceName|"InvalidSnapshot.InUse"->`InvalidSnapshot_InUse|"InvalidSnapshot.NotFound"->`InvalidSnapshot_NotFound|"InvalidSnapshotID.Malformed"->`InvalidSnapshotID_Malformed|"InvalidSpotDatafeed.NotFound"->`InvalidSpotDatafeed_NotFound|"InvalidSpotFleetRequestConfig"->`InvalidSpotFleetRequestConfig|"InvalidSpotFleetRequestId.Malformed"->`InvalidSpotFleetRequestId_Malformed|"InvalidSpotFleetRequestId.NotFound"->`InvalidSpotFleetRequestId_NotFound|"InvalidSpotInstanceRequestID.Malformed"->`InvalidSpotInstanceRequestID_Malformed|"InvalidSpotInstanceRequestID.NotFound"->`InvalidSpotInstanceRequestID_NotFound|"InvalidState"->`InvalidState|"InvalidStateTransition"->`InvalidStateTransition|"InvalidSubnet"->`InvalidSubnet|"InvalidSubnet.Conflict"->`InvalidSubnet_Conflict|"InvalidSubnet.Range"->`InvalidSubnet_Range|"InvalidSubnetID.Malformed"->`InvalidSubnetID_Malformed|"InvalidSubnetID.NotFound"->`InvalidSubnetID_NotFound|"InvalidTagKey.Malformed"->`InvalidTagKey_Malformed|"InvalidTargetArn.Unknown"->`InvalidTargetArn_Unknown|"InvalidTenancy"->`InvalidTenancy|"InvalidTime"->`InvalidTime|"InvalidTrafficMirrorFilterNotFound"->`InvalidTrafficMirrorFilterNotFound|"InvalidTrafficMirrorFilterRuleNotFound"->`InvalidTrafficMirrorFilterRuleNotFound|"InvalidTrafficMirrorSessionNotFound"->`InvalidTrafficMirrorSessionNotFound|"InvalidTrafficMirrorTargetNoFound"->`InvalidTrafficMirrorTargetNoFound|"InvalidUserID.Malformed"->`InvalidUserID_Malformed|"InvalidVolume.NotFound"->`InvalidVolume_NotFound|"InvalidVolume.ZoneMismatch"->`InvalidVolume_ZoneMismatch|"InvalidVolumeID.Duplicate"->`InvalidVolumeID_Duplicate|"InvalidVolumeID.Malformed"->`InvalidVolumeID_Malformed|"InvalidVolumeID.ZoneMismatch"->`InvalidVolumeID_ZoneMismatch|"InvalidVpcEndpoint.NotFound"->`InvalidVpcEndpoint_NotFound|"InvalidVpcEndpointId.Malformed"->`InvalidVpcEndpointId_Malformed|"InvalidVpcEndpointId.NotFound"->`InvalidVpcEndpointId_NotFound|"InvalidVpcEndpointService.NotFound"->`InvalidVpcEndpointService_NotFound|"InvalidVpcEndpointServiceId.NotFound"->`InvalidVpcEndpointServiceId_NotFound|"InvalidVpcEndpointType"->`InvalidVpcEndpointType|"InvalidVpcID.Malformed"->`InvalidVpcID_Malformed|"InvalidVpcID.NotFound"->`InvalidVpcID_NotFound|"InvalidVpcPeeringConnectionID.NotFound"->`InvalidVpcPeeringConnectionID_NotFound|"InvalidVpcPeeringConnectionId.Malformed"->`InvalidVpcPeeringConnectionId_Malformed|"InvalidVpcPeeringConnectionState.DnsHostnamesDisabled"->`InvalidVpcPeeringConnectionState_DnsHostnamesDisabled|"InvalidVpcRange"->`InvalidVpcRange|"InvalidVpcState"->`InvalidVpcState|"InvalidVpnConnection.InvalidState"->`InvalidVpnConnection_InvalidState|"InvalidVpnConnection.InvalidType"->`InvalidVpnConnection_InvalidType|"InvalidVpnConnectionID"->`InvalidVpnConnectionID|"InvalidVpnConnectionID.NotFound"->`InvalidVpnConnectionID_NotFound|"InvalidVpnGatewayAttachment.NotFound"->`InvalidVpnGatewayAttachment_NotFound|"InvalidVpnGatewayID.NotFound"->`InvalidVpnGatewayID_NotFound|"InvalidVpnGatewayState"->`InvalidVpnGatewayState|"InvalidZone.NotFound"->`InvalidZone_NotFound|"KeyPairLimitExceeded"->`KeyPairLimitExceeded|"LegacySecurityGroup"->`LegacySecurityGroup|"LimitPriceExceeded"->`LimitPriceExceeded|"LogDestinationNotFoundException"->`LogDestinationNotFoundException|"LogDestinationPermissionIssue"->`LogDestinationPermissionIssue|"MaxConfigLimitExceededException"->`MaxConfigLimitExceededException|"MaxIOPSLimitExceeded"->`MaxIOPSLimitExceeded|"MaxScheduledInstanceCapacityExceeded"->`MaxScheduledInstanceCapacityExceeded|"MaxSpotFleetRequestCountExceeded"->`MaxSpotFleetRequestCountExceeded|"MaxSpotInstanceCountExceeded"->`MaxSpotInstanceCountExceeded|"MaxTemplateLimitExceeded"->`MaxTemplateLimitExceeded|"MaxTemplateVersionLimitExceeded"->`MaxTemplateVersionLimitExceeded|"MissingInput"->`MissingInput|"NatGatewayLimitExceeded"->`NatGatewayLimitExceeded|"NatGatewayMalformed"->`NatGatewayMalformed|"NatGatewayNotFound"->`NatGatewayNotFound|"NetworkAclEntryAlreadyExists"->`NetworkAclEntryAlreadyExists|"NetworkAclEntryLimitExceeded"->`NetworkAclEntryLimitExceeded|"NetworkAclLimitExceeded"->`NetworkAclLimitExceeded|"NetworkInterfaceLimitExceeded"->`NetworkInterfaceLimitExceeded|"NetworkInterfaceNotFoundException"->`NetworkInterfaceNotFoundException|"NetworkInterfaceNotSupportedException"->`NetworkInterfaceNotSupportedException|"NetworkLoadBalancerNotFoundException"->`NetworkLoadBalancerNotFoundException|"NlbInUseByTrafficMirrorTargetException"->`NlbInUseByTrafficMirrorTargetException|"NoSuchVersion"->`NoSuchVersion|"NonEBSInstance"->`NonEBSInstance|"NotExportable"->`NotExportable|"OperationNotPermitted"->`OperationNotPermitted|"OutstandingVpcPeeringConnectionLimitExceeded"->`OutstandingVpcPeeringConnectionLimitExceeded|"PendingSnapshotLimitExceeded"->`PendingSnapshotLimitExceeded|"PendingVpcPeeringConnectionLimitExceeded"->`PendingVpcPeeringConnectionLimitExceeded|"PlacementGroupLimitExceeded"->`PlacementGroupLimitExceeded|"PrivateIpAddressLimitExceeded"->`PrivateIpAddressLimitExceeded|"RequestResourceCountExceeded"->`RequestResourceCountExceeded|"ReservationCapacityExceeded"->`ReservationCapacityExceeded|"ReservedInstancesCountExceeded"->`ReservedInstancesCountExceeded|"ReservedInstancesLimitExceeded"->`ReservedInstancesLimitExceeded|"ReservedInstancesUnavailable"->`ReservedInstancesUnavailable|"Resource.AlreadyAssigned"->`Resource_AlreadyAssigned|"Resource.AlreadyAssociated"->`Resource_AlreadyAssociated|"ResourceCountExceeded"->`ResourceCountExceeded|"ResourceCountLimitExceeded"->`ResourceCountLimitExceeded|"ResourceLimitExceeded"->`ResourceLimitExceeded|"RouteAlreadyExists"->`RouteAlreadyExists|"RouteLimitExceeded"->`RouteLimitExceeded|"RouteTableLimitExceeded"->`RouteTableLimitExceeded|"RulesPerSecurityGroupLimitExceeded"->`RulesPerSecurityGroupLimitExceeded|"ScheduledInstanceLimitExceeded"->`ScheduledInstanceLimitExceeded|"ScheduledInstanceParameterMismatch"->`ScheduledInstanceParameterMismatch|"ScheduledInstanceSlotNotOpen"->`ScheduledInstanceSlotNotOpen|"ScheduledInstanceSlotUnavailable"->`ScheduledInstanceSlotUnavailable|"SecurityGroupLimitExceeded"->`SecurityGroupLimitExceeded|"SecurityGroupsPerInstanceLimitExceeded"->`SecurityGroupsPerInstanceLimitExceeded|"SecurityGroupsPerInterfaceLimitExceeded"->`SecurityGroupsPerInterfaceLimitExceeded|"SignatureDoesNotMatch"->`SignatureDoesNotMatch|"SnapshotCopyUnsupported.InterRegion"->`SnapshotCopyUnsupported_InterRegion|"SnapshotCreationPerVolumeRateExceeded"->`SnapshotCreationPerVolumeRateExceeded|"SnapshotLimitExceeded"->`SnapshotLimitExceeded|"SubnetLimitExceeded"->`SubnetLimitExceeded|"TagLimitExceeded"->`TagLimitExceeded|"TargetCapacityLimitExceededException"->`TargetCapacityLimitExceededException|"TrafficMirrorFilterInUse"->`TrafficMirrorFilterInUse|"TrafficMirrorFilterLimitExceeded"->`TrafficMirrorFilterLimitExceeded|"TrafficMirrorFilterRuleAlreadyExists"->`TrafficMirrorFilterRuleAlreadyExists|"TrafficMirrorFilterRuleLimitExceeded"->`TrafficMirrorFilterRuleLimitExceeded|"TrafficMirrorSessionLimitExceeded"->`TrafficMirrorSessionLimitExceeded|"TrafficMirrorSessionsPerInterfaceLimitExceeded"->`TrafficMirrorSessionsPerInterfaceLimitExceeded|"TrafficMirrorSessionsPerTargetLimitExceeded"->`TrafficMirrorSessionsPerTargetLimitExceeded|"TrafficMirrorSourcesPerTargetLimitExceeded"->`TrafficMirrorSourcesPerTargetLimitExceeded|"TrafficMirrorTargetInUseException"->`TrafficMirrorTargetInUseException|"TrafficMirrorTargetLimitExceeded"->`TrafficMirrorTargetLimitExceeded|"UnavailableHostRequirements"->`UnavailableHostRequirements|"UnknownPrincipalType.Unsupported"->`UnknownPrincipalType_Unsupported|"UnknownVolumeType"->`UnknownVolumeType|"Unsupported"->`Unsupported|"UnsupportedException"->`UnsupportedException|"UnsupportedHibernationConfiguration"->`UnsupportedHibernationConfiguration|"UnsupportedHostConfiguration"->`UnsupportedHostConfiguration|"UnsupportedInstanceTypeOnHost"->`UnsupportedInstanceTypeOnHost|"UnsupportedTenancy"->`UnsupportedTenancy|"UpdateLimitExceeded"->`UpdateLimitExceeded|"VPCIdNotSpecified"->`VPCIdNotSpecified|"VPCResourceNotSpecified"->`VPCResourceNotSpecified|"VolumeIOPSLimit"->`VolumeIOPSLimit|"VolumeInUse"->`VolumeInUse|"VolumeLimitExceeded"->`VolumeLimitExceeded|"VolumeModificationSizeLimitExceeded"->`VolumeModificationSizeLimitExceeded|"VolumeTypeNotAvailableInZone"->`VolumeTypeNotAvailableInZone|"VpcCidrConflict"->`VpcCidrConflict|"VpcEndpointLimitExceeded"->`VpcEndpointLimitExceeded|"VpcLimitExceeded"->`VpcLimitExceeded|"VpcPeeringConnectionAlreadyExists"->`VpcPeeringConnectionAlreadyExists|"VpcPeeringConnectionsPerVpcLimitExceeded"->`VpcPeeringConnectionsPerVpcLimitExceeded|"VpnConnectionLimitExceeded"->`VpnConnectionLimitExceeded|"VpnGatewayAttachmentLimitExceeded"->`VpnGatewayAttachmentLimitExceeded|"VpnGatewayLimitExceeded"->`VpnGatewayLimitExceeded|"ZonesMismatched"->`ZonesMismatched|"InsufficientAddressCapacity"->`InsufficientAddressCapacity|"InsufficientCapacity"->`InsufficientCapacity|"InsufficientHostCapacity"->`InsufficientHostCapacity|"InsufficientInstanceCapacity"->`InsufficientInstanceCapacity|"InsufficientReservedInstanceCapacity"->`InsufficientReservedInstanceCapacity|"InsufficientVolumeCapacity"->`InsufficientVolumeCapacity|"InternalError"->`InternalError|"InternalFailure"->`InternalFailure|"RequestLimitExceeded"->`RequestLimitExceeded|"ServiceUnavailable"->`ServiceUnavailable|"Unavailable"->`Unavailable|name->`Unknown_codenameletcode_to_string:code->string=function|`AuthFailure->"AuthFailure"|`Blocked->"Blocked"|`DryRunOperation->"DryRunOperation"|`IdempotentParameterMismatch->"IdempotentParameterMismatch"|`IncompleteSignature->"IncompleteSignature"|`InvalidAction->"InvalidAction"|`InvalidCharacter->"InvalidCharacter"|`InvalidClientTokenId->"InvalidClientTokenId"|`InvalidPaginationToken->"InvalidPaginationToken"|`InvalidParameter->"InvalidParameter"|`InvalidParameterCombination->"InvalidParameterCombination"|`InvalidParameterValue->"InvalidParameterValue"|`InvalidQueryParameter->"InvalidQueryParameter"|`MalformedQueryString->"MalformedQueryString"|`MissingAction->"MissingAction"|`MissingAuthenticationToken->"MissingAuthenticationToken"|`MissingParameter->"MissingParameter"|`OptInRequired->"OptInRequired"|`PendingVerification->"PendingVerification"|`RequestExpired->"RequestExpired"|`UnauthorizedOperation->"UnauthorizedOperation"|`UnknownParameter->"UnknownParameter"|`UnsupportedInstanceAttribute->"UnsupportedInstanceAttribute"|`UnsupportedOperation->"UnsupportedOperation"|`UnsupportedProtocol->"UnsupportedProtocol"|`ValidationError->"ValidationError"|`ActiveVpcPeeringConnectionPerVpcLimitExceeded->"ActiveVpcPeeringConnectionPerVpcLimitExceeded"|`AddressLimitExceeded->"AddressLimitExceeded"|`AsnConflict->"AsnConflict"|`AttachmentLimitExceeded->"AttachmentLimitExceeded"|`BootForVolumeTypeUnsupported->"BootForVolumeTypeUnsupported"|`BundlingInProgress->"BundlingInProgress"|`CannotDelete->"CannotDelete"|`CidrConflict->"CidrConflict"|`ClientVpnAuthorizationRuleLimitExceeded->"ClientVpnAuthorizationRuleLimitExceeded"|`ClientVpnCertificateRevocationListLimitExceeded->"ClientVpnCertificateRevocationListLimitExceeded"|`ClientVpnEndpointAssociationExists->"ClientVpnEndpointAssociationExists"|`ClientVpnEndpointLimitExceeded->"ClientVpnEndpointLimitExceeded"|`ClientVpnRouteLimitExceeded->"ClientVpnRouteLimitExceeded"|`ClientVpnTerminateConnectionsLimitExceeded->"ClientVpnTerminateConnectionsLimitExceeded"|`ConcurrentCreateImageNoRebootLimitExceeded->"ConcurrentCreateImageNoRebootLimitExceeded"|`ConcurrentSnapshotLimitExceeded->"ConcurrentSnapshotLimitExceeded"|`ConcurrentTagAccess->"ConcurrentTagAccess"|`CreditSpecificationUpdateInProgress->"CreditSpecificationUpdateInProgress"|`CustomerGatewayLimitExceeded->"CustomerGatewayLimitExceeded"|`CustomerKeyHasBeenRevoked->"CustomerKeyHasBeenRevoked"|`DefaultSubnetAlreadyExistsInAvailabilityZone->"DefaultSubnetAlreadyExistsInAvailabilityZone"|`DefaultVpcAlreadyExists->"DefaultVpcAlreadyExists"|`DefaultVpcDoesNotExist->"DefaultVpcDoesNotExist"|`DeleteConversionTaskError->"DeleteConversionTaskError"|`DependencyViolation->"DependencyViolation"|`DisallowedForDedicatedTenancyNetwork->"DisallowedForDedicatedTenancyNetwork"|`DiskImageSizeTooLarge->"DiskImageSizeTooLarge"|`DuplicateSubnetsInSameZone->"DuplicateSubnetsInSameZone"|`EIPMigratedToVpc->"EIPMigratedToVpc"|`EncryptedVolumesNotSupported->"EncryptedVolumesNotSupported"|`ExistingVpcEndpointConnections->"ExistingVpcEndpointConnections"|`FilterLimitExceeded->"FilterLimitExceeded"|`FleetNotInModifiableState->"FleetNotInModifiableState"|`FlowLogAlreadyExists->"FlowLogAlreadyExists"|`FlowLogsLimitExceeded->"FlowLogsLimitExceeded"|`Gateway_NotAttached->"Gateway.NotAttached"|`HostAlreadyCoveredByReservation->"HostAlreadyCoveredByReservation"|`HostLimitExceeded->"HostLimitExceeded"|`IdempotentInstanceTerminated->"IdempotentInstanceTerminated"|`InaccessibleStorageLocation->"InaccessibleStorageLocation"|`IncompatibleHostRequirements->"IncompatibleHostRequirements"|`IncorrectInstanceState->"IncorrectInstanceState"|`IncorrectModificationState->"IncorrectModificationState"|`IncorrectState->"IncorrectState"|`InstanceAlreadyLinked->"InstanceAlreadyLinked"|`InstanceCreditSpecification_NotSupported->"InstanceCreditSpecification.NotSupported"|`InstanceLimitExceeded->"InstanceLimitExceeded"|`InsufficientCapacityOnHost->"InsufficientCapacityOnHost"|`InsufficientFreeAddressesInSubnet->"InsufficientFreeAddressesInSubnet"|`InsufficientReservedInstancesCapacity->"InsufficientReservedInstancesCapacity"|`InterfaceInUseByTrafficMirrorSession->"InterfaceInUseByTrafficMirrorSession"|`InterfaceInUseByTrafficMirrorTarget->"InterfaceInUseByTrafficMirrorTarget"|`InternetGatewayLimitExceeded->"InternetGatewayLimitExceeded"|`InvalidAMIAttributeItemValue->"InvalidAMIAttributeItemValue"|`InvalidAMIID_Malformed->"InvalidAMIID.Malformed"|`InvalidAMIID_NotFound->"InvalidAMIID.NotFound"|`InvalidAMIID_Unavailable->"InvalidAMIID.Unavailable"|`InvalidAMIName_Duplicate->"InvalidAMIName.Duplicate"|`InvalidAMIName_Malformed->"InvalidAMIName.Malformed"|`InvalidAddress_Locked->"InvalidAddress.Locked"|`InvalidAddress_Malformed->"InvalidAddress.Malformed"|`InvalidAddress_NotFound->"InvalidAddress.NotFound"|`InvalidAddressID_NotFound->"InvalidAddressID.NotFound"|`InvalidAffinity->"InvalidAffinity"|`InvalidAllocationID_NotFound->"InvalidAllocationID.NotFound"|`InvalidAssociationID_NotFound->"InvalidAssociationID.NotFound"|`InvalidAttachment_NotFound->"InvalidAttachment.NotFound"|`InvalidAttachmentID_NotFound->"InvalidAttachmentID.NotFound"|`InvalidAutoPlacement->"InvalidAutoPlacement"|`InvalidAvailabilityZone->"InvalidAvailabilityZone"|`InvalidBlockDeviceMapping->"InvalidBlockDeviceMapping"|`InvalidBundleID_NotFound->"InvalidBundleID.NotFound"|`InvalidCapacityReservationIdMalformedException->"InvalidCapacityReservationIdMalformedException"|`InvalidCapacityReservationIdNotFoundException->"InvalidCapacityReservationIdNotFoundException"|`InvalidCidr_InUse->"InvalidCidr.InUse"|`InvalidClientToken->"InvalidClientToken"|`InvalidClientVpnActiveAssociationNotFound->"InvalidClientVpnActiveAssociationNotFound"|`InvalidClientVpnAssociationIdNotFound->"InvalidClientVpnAssociationIdNotFound"|`InvalidClientVpnConnection_IdNotFound->"InvalidClientVpnConnection.IdNotFound"|`InvalidClientVpnConnection_UserNotFound->"InvalidClientVpnConnection.UserNotFound"|`InvalidClientVpnDuplicateAssociationException->"InvalidClientVpnDuplicateAssociationException"|`InvalidClientVpnDuplicateAuthorizationRule->"InvalidClientVpnDuplicateAuthorizationRule"|`InvalidClientVpnDuplicateRoute->"InvalidClientVpnDuplicateRoute"|`InvalidClientVpnEndpointAuthorizationRuleNotFound->"InvalidClientVpnEndpointAuthorizationRuleNotFound"|`InvalidClientVpnEndpointId_NotFound->"InvalidClientVpnEndpointId.NotFound"|`InvalidClientVpnRouteNotFound->"InvalidClientVpnRouteNotFound"|`InvalidClientVpnSubnetId_DifferentAccount->"InvalidClientVpnSubnetId.DifferentAccount"|`InvalidClientVpnSubnetId_DuplicateAz->"InvalidClientVpnSubnetId.DuplicateAz"|`InvalidClientVpnSubnetId_NotFound->"InvalidClientVpnSubnetId.NotFound"|`InvalidClientVpnSubnetId_OverlappingCidr->"InvalidClientVpnSubnetId.OverlappingCidr"|`InvalidConversionTaskId->"InvalidConversionTaskId"|`InvalidConversionTaskId_Malformed->"InvalidConversionTaskId.Malformed"|`InvalidCpuCredits_Malformed->"InvalidCpuCredits.Malformed"|`InvalidCustomerGateway_DuplicateIpAddress->"InvalidCustomerGateway.DuplicateIpAddress"|`InvalidCustomerGatewayID_NotFound->"InvalidCustomerGatewayID.NotFound"|`InvalidCustomerGatewayId_Malformed->"InvalidCustomerGatewayId.Malformed"|`InvalidCustomerGatewayState->"InvalidCustomerGatewayState"|`InvalidDevice_InUse->"InvalidDevice.InUse"|`InvalidDhcpOptionID_NotFound->"InvalidDhcpOptionID.NotFound"|`InvalidDhcpOptionsID_NotFound->"InvalidDhcpOptionsID.NotFound"|`InvalidDhcpOptionsId_Malformed->"InvalidDhcpOptionsId.Malformed"|`InvalidExportTaskID_NotFound->"InvalidExportTaskID.NotFound"|`InvalidFilter->"InvalidFilter"|`InvalidFlowLogId_NotFound->"InvalidFlowLogId.NotFound"|`InvalidFormat->"InvalidFormat"|`InvalidFpgaImageID_Malformed->"InvalidFpgaImageID.Malformed"|`InvalidFpgaImageID_NotFound->"InvalidFpgaImageID.NotFound"|`InvalidGatewayID_NotFound->"InvalidGatewayID.NotFound"|`InvalidGroup_Duplicate->"InvalidGroup.Duplicate"|`InvalidGroup_InUse->"InvalidGroup.InUse"|`InvalidGroup_NotFound->"InvalidGroup.NotFound"|`InvalidGroup_Reserved->"InvalidGroup.Reserved"|`InvalidGroupId_Malformed->"InvalidGroupId.Malformed"|`InvalidHostConfiguration->"InvalidHostConfiguration"|`InvalidHostID_Malformed->"InvalidHostID.Malformed"|`InvalidHostID_NotFound->"InvalidHostID.NotFound"|`InvalidHostId->"InvalidHostId"|`InvalidHostId_Malformed->"InvalidHostId.Malformed"|`InvalidHostId_NotFound->"InvalidHostId.NotFound"|`InvalidHostReservationId_Malformed->"InvalidHostReservationId.Malformed"|`InvalidHostReservationOfferingId_Malformed->"InvalidHostReservationOfferingId.Malformed"|`InvalidHostState->"InvalidHostState"|`InvalidID->"InvalidID"|`InvalidIPAddress_InUse->"InvalidIPAddress.InUse"|`InvalidIamInstanceProfileArn_Malformed->"InvalidIamInstanceProfileArn.Malformed"|`InvalidInput->"InvalidInput"|`InvalidInstanceAttributeValue->"InvalidInstanceAttributeValue"|`InvalidInstanceCreditSpecification_DuplicateInstanceId->"InvalidInstanceCreditSpecification.DuplicateInstanceId"|`InvalidInstanceFamily->"InvalidInstanceFamily"|`InvalidInstanceID->"InvalidInstanceID"|`InvalidInstanceID_Malformed->"InvalidInstanceID.Malformed"|`InvalidInstanceID_NotFound->"InvalidInstanceID.NotFound"|`InvalidInstanceID_NotLinkable->"InvalidInstanceID.NotLinkable"|`InvalidInstanceState->"InvalidInstanceState"|`InvalidInstanceType->"InvalidInstanceType"|`InvalidInterface_IpAddressLimitExceeded->"InvalidInterface.IpAddressLimitExceeded"|`InvalidInternetGatewayID_NotFound->"InvalidInternetGatewayID.NotFound"|`InvalidInternetGatewayId_Malformed->"InvalidInternetGatewayId.Malformed"|`InvalidKernelId_Malformed->"InvalidKernelId.Malformed"|`InvalidKey_Format->"InvalidKey.Format"|`InvalidKeyPair_Duplicate->"InvalidKeyPair.Duplicate"|`InvalidKeyPair_Format->"InvalidKeyPair.Format"|`InvalidKeyPair_NotFound->"InvalidKeyPair.NotFound"|`InvalidLaunchTemplateId_Malformed->"InvalidLaunchTemplateId.Malformed"|`InvalidLaunchTemplateId_NotFound->"InvalidLaunchTemplateId.NotFound"|`InvalidLaunchTemplateId_VersionNotFound->"InvalidLaunchTemplateId.VersionNotFound"|`InvalidLaunchTemplateName_AlreadyExistsException->"InvalidLaunchTemplateName.AlreadyExistsException"|`InvalidLaunchTemplateName_MalformedException->"InvalidLaunchTemplateName.MalformedException"|`InvalidLaunchTemplateName_NotFoundException->"InvalidLaunchTemplateName.NotFoundException"|`InvalidManifest->"InvalidManifest"|`InvalidMaxResults->"InvalidMaxResults"|`InvalidNatGatewayID_NotFound->"InvalidNatGatewayID.NotFound"|`InvalidNetworkAclEntry_NotFound->"InvalidNetworkAclEntry.NotFound"|`InvalidNetworkAclID_NotFound->"InvalidNetworkAclID.NotFound"|`InvalidNetworkAclId_Malformed->"InvalidNetworkAclId.Malformed"|`InvalidNetworkInterface_InUse->"InvalidNetworkInterface.InUse"|`InvalidNetworkInterfaceAttachmentId_Malformed->"InvalidNetworkInterfaceAttachmentId.Malformed"|`InvalidNetworkInterfaceID_NotFound->"InvalidNetworkInterfaceID.NotFound"|`InvalidNetworkInterfaceId_Malformed->"InvalidNetworkInterfaceId.Malformed"|`InvalidNetworkLoadBalancerArn_Malformed->"InvalidNetworkLoadBalancerArn.Malformed"|`InvalidNetworkLoadBalancerArn_NotFound->"InvalidNetworkLoadBalancerArn.NotFound"|`InvalidNextToken->"InvalidNextToken"|`InvalidOption_Conflict->"InvalidOption.Conflict"|`InvalidPermission_Duplicate->"InvalidPermission.Duplicate"|`InvalidPermission_Malformed->"InvalidPermission.Malformed"|`InvalidPermission_NotFound->"InvalidPermission.NotFound"|`InvalidPlacementGroup_Duplicate->"InvalidPlacementGroup.Duplicate"|`InvalidPlacementGroup_InUse->"InvalidPlacementGroup.InUse"|`InvalidPlacementGroup_Unknown->"InvalidPlacementGroup.Unknown"|`InvalidPolicyDocument->"InvalidPolicyDocument"|`InvalidPrefixListId_Malformed->"InvalidPrefixListId.Malformed"|`InvalidPrefixListId_NotFound->"InvalidPrefixListId.NotFound"|`InvalidProductInfo->"InvalidProductInfo"|`InvalidPurchaseToken_Expired->"InvalidPurchaseToken.Expired"|`InvalidPurchaseToken_Malformed->"InvalidPurchaseToken.Malformed"|`InvalidQuantity->"InvalidQuantity"|`InvalidRamDiskId_Malformed->"InvalidRamDiskId.Malformed"|`InvalidRegion->"InvalidRegion"|`InvalidRequest->"InvalidRequest"|`InvalidReservationID_Malformed->"InvalidReservationID.Malformed"|`InvalidReservationID_NotFound->"InvalidReservationID.NotFound"|`InvalidReservedInstancesId->"InvalidReservedInstancesId"|`InvalidReservedInstancesOfferingId->"InvalidReservedInstancesOfferingId"|`InvalidResourceType_Unknown->"InvalidResourceType.Unknown"|`InvalidRoute_InvalidState->"InvalidRoute.InvalidState"|`InvalidRoute_Malformed->"InvalidRoute.Malformed"|`InvalidRoute_NotFound->"InvalidRoute.NotFound"|`InvalidRouteTableID_NotFound->"InvalidRouteTableID.NotFound"|`InvalidRouteTableId_Malformed->"InvalidRouteTableId.Malformed"|`InvalidScheduledInstance->"InvalidScheduledInstance"|`InvalidSecurity_RequestHasExpired->"InvalidSecurity.RequestHasExpired"|`InvalidSecurityGroupID_NotFound->"InvalidSecurityGroupID.NotFound"|`InvalidSecurityGroupId_Malformed->"InvalidSecurityGroupId.Malformed"|`InvalidServiceName->"InvalidServiceName"|`InvalidSnapshot_InUse->"InvalidSnapshot.InUse"|`InvalidSnapshot_NotFound->"InvalidSnapshot.NotFound"|`InvalidSnapshotID_Malformed->"InvalidSnapshotID.Malformed"|`InvalidSpotDatafeed_NotFound->"InvalidSpotDatafeed.NotFound"|`InvalidSpotFleetRequestConfig->"InvalidSpotFleetRequestConfig"|`InvalidSpotFleetRequestId_Malformed->"InvalidSpotFleetRequestId.Malformed"|`InvalidSpotFleetRequestId_NotFound->"InvalidSpotFleetRequestId.NotFound"|`InvalidSpotInstanceRequestID_Malformed->"InvalidSpotInstanceRequestID.Malformed"|`InvalidSpotInstanceRequestID_NotFound->"InvalidSpotInstanceRequestID.NotFound"|`InvalidState->"InvalidState"|`InvalidStateTransition->"InvalidStateTransition"|`InvalidSubnet->"InvalidSubnet"|`InvalidSubnet_Conflict->"InvalidSubnet.Conflict"|`InvalidSubnet_Range->"InvalidSubnet.Range"|`InvalidSubnetID_Malformed->"InvalidSubnetID.Malformed"|`InvalidSubnetID_NotFound->"InvalidSubnetID.NotFound"|`InvalidTagKey_Malformed->"InvalidTagKey.Malformed"|`InvalidTargetArn_Unknown->"InvalidTargetArn.Unknown"|`InvalidTenancy->"InvalidTenancy"|`InvalidTime->"InvalidTime"|`InvalidTrafficMirrorFilterNotFound->"InvalidTrafficMirrorFilterNotFound"|`InvalidTrafficMirrorFilterRuleNotFound->"InvalidTrafficMirrorFilterRuleNotFound"|`InvalidTrafficMirrorSessionNotFound->"InvalidTrafficMirrorSessionNotFound"|`InvalidTrafficMirrorTargetNoFound->"InvalidTrafficMirrorTargetNoFound"|`InvalidUserID_Malformed->"InvalidUserID.Malformed"|`InvalidVolume_NotFound->"InvalidVolume.NotFound"|`InvalidVolume_ZoneMismatch->"InvalidVolume.ZoneMismatch"|`InvalidVolumeID_Duplicate->"InvalidVolumeID.Duplicate"|`InvalidVolumeID_Malformed->"InvalidVolumeID.Malformed"|`InvalidVolumeID_ZoneMismatch->"InvalidVolumeID.ZoneMismatch"|`InvalidVpcEndpoint_NotFound->"InvalidVpcEndpoint.NotFound"|`InvalidVpcEndpointId_Malformed->"InvalidVpcEndpointId.Malformed"|`InvalidVpcEndpointId_NotFound->"InvalidVpcEndpointId.NotFound"|`InvalidVpcEndpointService_NotFound->"InvalidVpcEndpointService.NotFound"|`InvalidVpcEndpointServiceId_NotFound->"InvalidVpcEndpointServiceId.NotFound"|`InvalidVpcEndpointType->"InvalidVpcEndpointType"|`InvalidVpcID_Malformed->"InvalidVpcID.Malformed"|`InvalidVpcID_NotFound->"InvalidVpcID.NotFound"|`InvalidVpcPeeringConnectionID_NotFound->"InvalidVpcPeeringConnectionID.NotFound"|`InvalidVpcPeeringConnectionId_Malformed->"InvalidVpcPeeringConnectionId.Malformed"|`InvalidVpcPeeringConnectionState_DnsHostnamesDisabled->"InvalidVpcPeeringConnectionState.DnsHostnamesDisabled"|`InvalidVpcRange->"InvalidVpcRange"|`InvalidVpcState->"InvalidVpcState"|`InvalidVpnConnection_InvalidState->"InvalidVpnConnection.InvalidState"|`InvalidVpnConnection_InvalidType->"InvalidVpnConnection.InvalidType"|`InvalidVpnConnectionID->"InvalidVpnConnectionID"|`InvalidVpnConnectionID_NotFound->"InvalidVpnConnectionID.NotFound"|`InvalidVpnGatewayAttachment_NotFound->"InvalidVpnGatewayAttachment.NotFound"|`InvalidVpnGatewayID_NotFound->"InvalidVpnGatewayID.NotFound"|`InvalidVpnGatewayState->"InvalidVpnGatewayState"|`InvalidZone_NotFound->"InvalidZone.NotFound"|`KeyPairLimitExceeded->"KeyPairLimitExceeded"|`LegacySecurityGroup->"LegacySecurityGroup"|`LimitPriceExceeded->"LimitPriceExceeded"|`LogDestinationNotFoundException->"LogDestinationNotFoundException"|`LogDestinationPermissionIssue->"LogDestinationPermissionIssue"|`MaxConfigLimitExceededException->"MaxConfigLimitExceededException"|`MaxIOPSLimitExceeded->"MaxIOPSLimitExceeded"|`MaxScheduledInstanceCapacityExceeded->"MaxScheduledInstanceCapacityExceeded"|`MaxSpotFleetRequestCountExceeded->"MaxSpotFleetRequestCountExceeded"|`MaxSpotInstanceCountExceeded->"MaxSpotInstanceCountExceeded"|`MaxTemplateLimitExceeded->"MaxTemplateLimitExceeded"|`MaxTemplateVersionLimitExceeded->"MaxTemplateVersionLimitExceeded"|`MissingInput->"MissingInput"|`NatGatewayLimitExceeded->"NatGatewayLimitExceeded"|`NatGatewayMalformed->"NatGatewayMalformed"|`NatGatewayNotFound->"NatGatewayNotFound"|`NetworkAclEntryAlreadyExists->"NetworkAclEntryAlreadyExists"|`NetworkAclEntryLimitExceeded->"NetworkAclEntryLimitExceeded"|`NetworkAclLimitExceeded->"NetworkAclLimitExceeded"|`NetworkInterfaceLimitExceeded->"NetworkInterfaceLimitExceeded"|`NetworkInterfaceNotFoundException->"NetworkInterfaceNotFoundException"|`NetworkInterfaceNotSupportedException->"NetworkInterfaceNotSupportedException"|`NetworkLoadBalancerNotFoundException->"NetworkLoadBalancerNotFoundException"|`NlbInUseByTrafficMirrorTargetException->"NlbInUseByTrafficMirrorTargetException"|`NoSuchVersion->"NoSuchVersion"|`NonEBSInstance->"NonEBSInstance"|`NotExportable->"NotExportable"|`OperationNotPermitted->"OperationNotPermitted"|`OutstandingVpcPeeringConnectionLimitExceeded->"OutstandingVpcPeeringConnectionLimitExceeded"|`PendingSnapshotLimitExceeded->"PendingSnapshotLimitExceeded"|`PendingVpcPeeringConnectionLimitExceeded->"PendingVpcPeeringConnectionLimitExceeded"|`PlacementGroupLimitExceeded->"PlacementGroupLimitExceeded"|`PrivateIpAddressLimitExceeded->"PrivateIpAddressLimitExceeded"|`RequestResourceCountExceeded->"RequestResourceCountExceeded"|`ReservationCapacityExceeded->"ReservationCapacityExceeded"|`ReservedInstancesCountExceeded->"ReservedInstancesCountExceeded"|`ReservedInstancesLimitExceeded->"ReservedInstancesLimitExceeded"|`ReservedInstancesUnavailable->"ReservedInstancesUnavailable"|`Resource_AlreadyAssigned->"Resource.AlreadyAssigned"|`Resource_AlreadyAssociated->"Resource.AlreadyAssociated"|`ResourceCountExceeded->"ResourceCountExceeded"|`ResourceCountLimitExceeded->"ResourceCountLimitExceeded"|`ResourceLimitExceeded->"ResourceLimitExceeded"|`RouteAlreadyExists->"RouteAlreadyExists"|`RouteLimitExceeded->"RouteLimitExceeded"|`RouteTableLimitExceeded->"RouteTableLimitExceeded"|`RulesPerSecurityGroupLimitExceeded->"RulesPerSecurityGroupLimitExceeded"|`ScheduledInstanceLimitExceeded->"ScheduledInstanceLimitExceeded"|`ScheduledInstanceParameterMismatch->"ScheduledInstanceParameterMismatch"|`ScheduledInstanceSlotNotOpen->"ScheduledInstanceSlotNotOpen"|`ScheduledInstanceSlotUnavailable->"ScheduledInstanceSlotUnavailable"|`SecurityGroupLimitExceeded->"SecurityGroupLimitExceeded"|`SecurityGroupsPerInstanceLimitExceeded->"SecurityGroupsPerInstanceLimitExceeded"|`SecurityGroupsPerInterfaceLimitExceeded->"SecurityGroupsPerInterfaceLimitExceeded"|`SignatureDoesNotMatch->"SignatureDoesNotMatch"|`SnapshotCopyUnsupported_InterRegion->"SnapshotCopyUnsupported.InterRegion"|`SnapshotCreationPerVolumeRateExceeded->"SnapshotCreationPerVolumeRateExceeded"|`SnapshotLimitExceeded->"SnapshotLimitExceeded"|`SubnetLimitExceeded->"SubnetLimitExceeded"|`TagLimitExceeded->"TagLimitExceeded"|`TargetCapacityLimitExceededException->"TargetCapacityLimitExceededException"|`TrafficMirrorFilterInUse->"TrafficMirrorFilterInUse"|`TrafficMirrorFilterLimitExceeded->"TrafficMirrorFilterLimitExceeded"|`TrafficMirrorFilterRuleAlreadyExists->"TrafficMirrorFilterRuleAlreadyExists"|`TrafficMirrorFilterRuleLimitExceeded->"TrafficMirrorFilterRuleLimitExceeded"|`TrafficMirrorSessionLimitExceeded->"TrafficMirrorSessionLimitExceeded"|`TrafficMirrorSessionsPerInterfaceLimitExceeded->"TrafficMirrorSessionsPerInterfaceLimitExceeded"|`TrafficMirrorSessionsPerTargetLimitExceeded->"TrafficMirrorSessionsPerTargetLimitExceeded"|`TrafficMirrorSourcesPerTargetLimitExceeded->"TrafficMirrorSourcesPerTargetLimitExceeded"|`TrafficMirrorTargetInUseException->"TrafficMirrorTargetInUseException"|`TrafficMirrorTargetLimitExceeded->"TrafficMirrorTargetLimitExceeded"|`UnavailableHostRequirements->"UnavailableHostRequirements"|`UnknownPrincipalType_Unsupported->"UnknownPrincipalType.Unsupported"|`UnknownVolumeType->"UnknownVolumeType"|`Unsupported->"Unsupported"|`UnsupportedException->"UnsupportedException"|`UnsupportedHibernationConfiguration->"UnsupportedHibernationConfiguration"|`UnsupportedHostConfiguration->"UnsupportedHostConfiguration"|`UnsupportedInstanceTypeOnHost->"UnsupportedInstanceTypeOnHost"|`UnsupportedTenancy->"UnsupportedTenancy"|`UpdateLimitExceeded->"UpdateLimitExceeded"|`VPCIdNotSpecified->"VPCIdNotSpecified"|`VPCResourceNotSpecified->"VPCResourceNotSpecified"|`VolumeIOPSLimit->"VolumeIOPSLimit"|`VolumeInUse->"VolumeInUse"|`VolumeLimitExceeded->"VolumeLimitExceeded"|`VolumeModificationSizeLimitExceeded->"VolumeModificationSizeLimitExceeded"|`VolumeTypeNotAvailableInZone->"VolumeTypeNotAvailableInZone"|`VpcCidrConflict->"VpcCidrConflict"|`VpcEndpointLimitExceeded->"VpcEndpointLimitExceeded"|`VpcLimitExceeded->"VpcLimitExceeded"|`VpcPeeringConnectionAlreadyExists->"VpcPeeringConnectionAlreadyExists"|`VpcPeeringConnectionsPerVpcLimitExceeded->"VpcPeeringConnectionsPerVpcLimitExceeded"|`VpnConnectionLimitExceeded->"VpnConnectionLimitExceeded"|`VpnGatewayAttachmentLimitExceeded->"VpnGatewayAttachmentLimitExceeded"|`VpnGatewayLimitExceeded->"VpnGatewayLimitExceeded"|`ZonesMismatched->"ZonesMismatched"|`InsufficientAddressCapacity->"InsufficientAddressCapacity"|`InsufficientCapacity->"InsufficientCapacity"|`InsufficientHostCapacity->"InsufficientHostCapacity"|`InsufficientInstanceCapacity->"InsufficientInstanceCapacity"|`InsufficientReservedInstanceCapacity->"InsufficientReservedInstanceCapacity"|`InsufficientVolumeCapacity->"InsufficientVolumeCapacity"|`InternalError->"InternalError"|`InternalFailure->"InternalFailure"|`RequestLimitExceeded->"RequestLimitExceeded"|`ServiceUnavailable->"ServiceUnavailable"|`Unavailable->"Unavailable"|`Unknown_codes->sletto_json((code,message):t):Yojson.Safe.t=`Assoc(("code",(`String(code_to_stringcode)))::(matchmessagewith|None->[]|Somem->[("message",(`Stringm))]))letof_xml=function|`Data_asxml->failwithf"Ec2_error.of_xml: expected element, got data: %s"(Awso.Xml.to_stringxml)()|`El(((_,name),_),_)asxml->(matchnamewith|"Response"->letdata=function|`Datas->s|`El(_,children)->(List.mapchildren~f:(function|`Datas->s|`El_->""))|>(String.concat~sep:"")inlet_request_id=data(Awso.Xml.child_exnxml"RequestID")inleterrors=((Awso.Xml.child_exnxml"Errors")|>Awso.Xml.all_children)|>(List.map~f:(funerror->letcode=(Awso.Xml.child_exnerror"Code")|>datainletmessage=(Awso.Xml.child_exnerror"Message")|>datain((string_to_codecode),(Somemessage))))in(matcherrorswith|[]->failwithf"Ec2_error.of_xml: no errors in Ec2 error response"()|error::[]->error|_lst->failwithf"Ec2_error.of_xml: multiple errors not supported"())|name->failwithf"Ec2_error: expected 'Response' tag got '%s': %s"name(Awso.Xml.to_stringxml)())endletsimple_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[]))])moduleString_=structtypenonrect=stringletcontext_="String"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"String"jletto_json=simple_to_jsonto_valueendmodulePerformanceFactorReference=structtypenonrect={instanceFamily:String_.toption[@ocaml.doc"The instance family to use as a baseline reference. Ensure that you specify the correct value for the instance family. The instance family is everything before the period (.) in the instance type name. For example, in the instance type c6i.large, the instance family is c6i, not c6. For more information, see Amazon EC2 instance type naming conventions in Amazon EC2 Instance Types. The following instance families are not supported for performance protection: c1 g3 | g3s hpc7g m1 | m2 mac1 | mac2 | mac2-m1ultra | mac2-m2 | mac2-m2pro p3dn | p4d | p5 t1 u-12tb1 | u-18tb1 | u-24tb1 | u-3tb1 | u-6tb1 | u-9tb1 | u7i-12tb | u7in-16tb | u7in-24tb | u7in-32tb If you enable performance protection by specifying a supported instance family, the returned instance types will exclude the above unsupported instance families. If you specify an unsupported instance family as a value for baseline performance, the API returns an empty response for GetInstanceTypesFromInstanceRequirements and an exception for CreateFleet, RequestSpotFleet, ModifyFleet, and ModifySpotFleetRequest."]}letmake?instanceFamily=fun()->{instanceFamily}letto_valuex=structure_to_value[("instanceFamily",(Option.mapx.instanceFamily~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letinstanceFamily=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"instanceFamily")inmake?instanceFamily()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letinstanceFamily=field_mapjson__"InstanceFamily"String_.of_jsoninmake?instanceFamily()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Specify an instance family to use as the baseline reference for CPU performance. All instance types that match your specified attributes will be compared against the CPU performance of the referenced instance family, regardless of CPU manufacturer or architecture. Currently, only one instance family can be specified in the list."]moduleStringList=structtypenonrect=String_.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:String_.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:String_.of_xml)letof_jsonj=list_of_json~kind:"StringList"~of_json:String_.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmodulePerformanceFactorReferenceSet=structtypenonrect=PerformanceFactorReference.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:PerformanceFactorReference.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:PerformanceFactorReference.of_xml)letof_jsonj=list_of_json~kind:"PerformanceFactorReferenceSet"~of_json:PerformanceFactorReference.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleRuleOption=structtypenonrect={keyword:String_.toption[@ocaml.doc"The Suricata keyword."];settings:StringList.toption[@ocaml.doc"The settings for the keyword."]}letmake?keyword=fun?settings->fun()->{keyword;settings}letto_valuex=structure_to_value[("keyword",(Option.mapx.keyword~f:String_.to_value));("settingSet",(Option.mapx.settings~f:StringList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsettings=(Option.map~f:StringList.of_xml)(Xml.childxml_arg0"settingSet")inletkeyword=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"keyword")inmake?settings?keyword()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsettings=field_mapjson__"Settings"StringList.of_jsoninletkeyword=field_mapjson__"Keyword"String_.of_jsoninmake?settings?keyword()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes additional settings for a stateful rule."]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_valueendmoduleBoolean=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_valueendmoduleAcceleratorManufacturer=structtypenonrect=|Amazon_web_services|Amd|Nvidia|Xilinx|Habana|Non_static_idofstringletmakei=iletto_string=function|Amazon_web_services->"amazon-web-services"|Amd->"amd"|Nvidia->"nvidia"|Xilinx->"xilinx"|Habana->"habana"|Non_static_ids->sletof_string=function|"amazon-web-services"->Amazon_web_services|"amd"->Amd|"nvidia"->Nvidia|"xilinx"->Xilinx|"habana"->Habana|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 AcceleratorManufacturer"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"AcceleratorManufacturer"j)letto_json=simple_to_jsonto_valueendmoduleAcceleratorName=structtypenonrect=|A100|Inferentia|K520|K80|M60|Radeon_pro_v520|T4|Vu9p|V100|A10g|H100|T4g|L40s|L4|Gaudi_hl_205|Inferentia2|Trainium|Trainium2|U30|Non_static_idofstringletmakei=iletto_string=function|A100->"a100"|Inferentia->"inferentia"|K520->"k520"|K80->"k80"|M60->"m60"|Radeon_pro_v520->"radeon-pro-v520"|T4->"t4"|Vu9p->"vu9p"|V100->"v100"|A10g->"a10g"|H100->"h100"|T4g->"t4g"|L40s->"l40s"|L4->"l4"|Gaudi_hl_205->"gaudi-hl-205"|Inferentia2->"inferentia2"|Trainium->"trainium"|Trainium2->"trainium2"|U30->"u30"|Non_static_ids->sletof_string=function|"a100"->A100|"inferentia"->Inferentia|"k520"->K520|"k80"->K80|"m60"->M60|"radeon-pro-v520"->Radeon_pro_v520|"t4"->T4|"vu9p"->Vu9p|"v100"->V100|"a10g"->A10g|"h100"->H100|"t4g"->T4g|"l40s"->L40s|"l4"->L4|"gaudi-hl-205"->Gaudi_hl_205|"inferentia2"->Inferentia2|"trainium"->Trainium|"trainium2"->Trainium2|"u30"->U30|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 AcceleratorName"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"AcceleratorName"j)letto_json=simple_to_jsonto_valueendmoduleAcceleratorType=structtypenonrect=|Gpu|Fpga|Inference|Media|Non_static_idofstringletmakei=iletto_string=function|Gpu->"gpu"|Fpga->"fpga"|Inference->"inference"|Media->"media"|Non_static_ids->sletof_string=function|"gpu"->Gpu|"fpga"->Fpga|"inference"->Inference|"media"->Media|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 AcceleratorType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"AcceleratorType"j)letto_json=simple_to_jsonto_valueendmoduleAllowedInstanceType=structtypenonrect=stringletcontext_="AllowedInstanceType"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:30)>>=(fun()->check_patterni~pattern:"[a-zA-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:"AllowedInstanceType"jletto_json=simple_to_jsonto_valueendmoduleCpuPerformanceFactor=structtypenonrect={references:PerformanceFactorReferenceSet.toption[@ocaml.doc"Specify an instance family to use as the baseline reference for CPU performance. All instance types that match your specified attributes will be compared against the CPU performance of the referenced instance family, regardless of CPU manufacturer or architecture differences. Currently, only one instance family can be specified in the list."]}letmake?references=fun()->{references}letto_valuex=structure_to_value[("referenceSet",(Option.mapx.references~f:PerformanceFactorReferenceSet.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letreferences=(Option.map~f:PerformanceFactorReferenceSet.of_xml)(Xml.childxml_arg0"referenceSet")inmake?references()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letreferences=field_mapjson__"References"PerformanceFactorReferenceSet.of_jsoninmake?references()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The CPU performance to consider, using an instance family as the baseline reference."]moduleCpuManufacturer=structtypenonrect=|Intel|Amd|Amazon_web_services|Apple|Non_static_idofstringletmakei=iletto_string=function|Intel->"intel"|Amd->"amd"|Amazon_web_services->"amazon-web-services"|Apple->"apple"|Non_static_ids->sletof_string=function|"intel"->Intel|"amd"->Amd|"amazon-web-services"->Amazon_web_services|"apple"->Apple|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 CpuManufacturer"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"CpuManufacturer"j)letto_json=simple_to_jsonto_valueendmoduleExcludedInstanceType=structtypenonrect=stringletcontext_="ExcludedInstanceType"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:30)>>=(fun()->check_patterni~pattern:"[a-zA-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:"ExcludedInstanceType"jletto_json=simple_to_jsonto_valueendmoduleInstanceGeneration=structtypenonrect=|Current|Previous|Non_static_idofstringletmakei=iletto_string=function|Current->"current"|Previous->"previous"|Non_static_ids->sletof_string=function|"current"->Current|"previous"->Previous|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 InstanceGeneration"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"InstanceGeneration"j)letto_json=simple_to_jsonto_valueendmoduleLocalStorageType=structtypenonrect=|Hdd|Ssd|Non_static_idofstringletmakei=iletto_string=function|Hdd->"hdd"|Ssd->"ssd"|Non_static_ids->sletof_string=function|"hdd"->Hdd|"ssd"->Ssd|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 LocalStorageType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"LocalStorageType"j)letto_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_valueendmoduleKmsKeyId=structtypenonrect=stringletcontext_="KmsKeyId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"KmsKeyId"jletto_json=simple_to_jsonto_valueendmoduleSnapshotId=structtypenonrect=stringletcontext_="SnapshotId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"SnapshotId"jletto_json=simple_to_jsonto_valueendmoduleVolumeType=structtypenonrect=|Standard|Io1|Io2|Gp2|Sc1|St1|Gp3|Non_static_idofstringletmakei=iletto_string=function|Standard->"standard"|Io1->"io1"|Io2->"io2"|Gp2->"gp2"|Sc1->"sc1"|St1->"st1"|Gp3->"gp3"|Non_static_ids->sletof_string=function|"standard"->Standard|"io1"->Io1|"io2"->Io2|"gp2"->Gp2|"sc1"->Sc1|"st1"->St1|"gp3"->Gp3|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 VolumeType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"VolumeType"j)letto_json=simple_to_jsonto_valueendmodulePerformanceFactorReferenceRequest=structtypenonrect={instanceFamily:String_.toption[@ocaml.doc"The instance family to use as a baseline reference. Ensure that you specify the correct value for the instance family. The instance family is everything before the period (.) in the instance type name. For example, in the instance type c6i.large, the instance family is c6i, not c6. For more information, see Amazon EC2 instance type naming conventions in Amazon EC2 Instance Types. The following instance families are not supported for performance protection: c1 g3 | g3s hpc7g m1 | m2 mac1 | mac2 | mac2-m1ultra | mac2-m2 | mac2-m2pro p3dn | p4d | p5 t1 u-12tb1 | u-18tb1 | u-24tb1 | u-3tb1 | u-6tb1 | u-9tb1 | u7i-12tb | u7in-16tb | u7in-24tb | u7in-32tb If you enable performance protection by specifying a supported instance family, the returned instance types will exclude the above unsupported instance families. If you specify an unsupported instance family as a value for baseline performance, the API returns an empty response for GetInstanceTypesFromInstanceRequirements and an exception for CreateFleet, RequestSpotFleet, ModifyFleet, and ModifySpotFleetRequest."]}letmake?instanceFamily=fun()->{instanceFamily}letto_valuex=structure_to_value[("InstanceFamily",(Option.mapx.instanceFamily~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letinstanceFamily=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"InstanceFamily")inmake?instanceFamily()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letinstanceFamily=field_mapjson__"InstanceFamily"String_.of_jsoninmake?instanceFamily()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Specify an instance family to use as the baseline reference for CPU performance. All instance types that match your specified attributes will be compared against the CPU performance of the referenced instance family, regardless of CPU manufacturer or architecture. Currently, only one instance family can be specified in the list."]moduleResourceArn=structtypenonrect=stringletcontext_="ResourceArn"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:1283)>>=(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:"ResourceArn"jletto_json=simple_to_jsonto_valueendmoduleRuleOptionList=structtypenonrect=RuleOption.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:RuleOption.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:RuleOption.of_xml)letof_jsonj=list_of_json~kind:"RuleOptionList"~of_json:RuleOption.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmodulePortRange=structtypenonrect={from:Integer.toption[@ocaml.doc"The first port in the range."];to_:Integer.toption[@ocaml.doc"The last port in the range."]}letmake?from=fun?to_->fun()->{from;to_}letto_valuex=structure_to_value[("from",(Option.mapx.from~f:Integer.to_value));("to",(Option.mapx.to_~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letto_=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"to")inletfrom=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"from")inmake?to_?from()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letto_=field_mapjson__"To"Integer.of_jsoninletfrom=field_mapjson__"From"Integer.of_jsoninmake?to_?from()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a range of ports."]moduleProtocolInt=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:255)>>=(fun()->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 ProtocolInt"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleEnaSrdUdpSpecificationRequest=structtypenonrect={enaSrdUdpEnabled:Boolean.toption[@ocaml.doc"Indicates whether UDP traffic uses ENA Express for your instance. To ensure that UDP traffic can use ENA Express when you launch an instance, you must also set EnaSrdEnabled in the EnaSrdSpecificationRequest to true."]}letmake?enaSrdUdpEnabled=fun()->{enaSrdUdpEnabled}letto_valuex=structure_to_value[("EnaSrdUdpEnabled",(Option.mapx.enaSrdUdpEnabled~f:Boolean.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letenaSrdUdpEnabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"EnaSrdUdpEnabled")inmake?enaSrdUdpEnabled()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letenaSrdUdpEnabled=field_mapjson__"EnaSrdUdpEnabled"Boolean.of_jsoninmake?enaSrdUdpEnabled()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Configures ENA Express for UDP network traffic from your launch template."]moduleInstanceIpv6Address=structtypenonrect={ipv6Address:String_.toption[@ocaml.doc"The IPv6 address."];isPrimaryIpv6:Boolean.toption[@ocaml.doc"Determines if an IPv6 address associated with a network interface is the primary IPv6 address. When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the instance is terminated or the network interface is detached. For more information, see RunInstances."]}letmake?ipv6Address=fun?isPrimaryIpv6->fun()->{ipv6Address;isPrimaryIpv6}letto_valuex=structure_to_value[("ipv6Address",(Option.mapx.ipv6Address~f:String_.to_value));("isPrimaryIpv6",(Option.mapx.isPrimaryIpv6~f:Boolean.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letisPrimaryIpv6=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"isPrimaryIpv6")inletipv6Address=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ipv6Address")inmake?isPrimaryIpv6?ipv6Address()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letisPrimaryIpv6=field_mapjson__"IsPrimaryIpv6"Boolean.of_jsoninletipv6Address=field_mapjson__"Ipv6Address"String_.of_jsoninmake?isPrimaryIpv6?ipv6Address()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an IPv6 address."]moduleIpv4PrefixSpecificationRequest=structtypenonrect={ipv4Prefix:String_.toption[@ocaml.doc"The IPv4 prefix. For information, see Assigning prefixes to network interfaces in the Amazon EC2 User Guide."]}letmake?ipv4Prefix=fun()->{ipv4Prefix}letto_valuex=structure_to_value[("Ipv4Prefix",(Option.mapx.ipv4Prefix~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letipv4Prefix=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Ipv4Prefix")inmake?ipv4Prefix()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letipv4Prefix=field_mapjson__"Ipv4Prefix"String_.of_jsoninmake?ipv4Prefix()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the IPv4 prefix option for a network interface."]moduleIpv6PrefixSpecificationRequest=structtypenonrect={ipv6Prefix:String_.toption[@ocaml.doc"The IPv6 prefix."]}letmake?ipv6Prefix=fun()->{ipv6Prefix}letto_valuex=structure_to_value[("Ipv6Prefix",(Option.mapx.ipv6Prefix~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letipv6Prefix=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Ipv6Prefix")inmake?ipv6Prefix()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letipv6Prefix=field_mapjson__"Ipv6Prefix"String_.of_jsoninmake?ipv6Prefix()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the IPv6 prefix option for a network interface."]modulePrivateIpAddressSpecification=structtypenonrect={primary:Boolean.toption[@ocaml.doc"Indicates whether the private IPv4 address is the primary private IPv4 address. Only one IPv4 address can be designated as primary."];privateIpAddress:String_.toption[@ocaml.doc"The private IPv4 address."]}letmake?primary=fun?privateIpAddress->fun()->{primary;privateIpAddress}letto_valuex=structure_to_value[("primary",(Option.mapx.primary~f:Boolean.to_value));("privateIpAddress",(Option.mapx.privateIpAddress~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letprivateIpAddress=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"privateIpAddress")inletprimary=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"primary")inmake?privateIpAddress?primary()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letprivateIpAddress=field_mapjson__"PrivateIpAddress"String_.of_jsoninletprimary=field_mapjson__"Primary"Boolean.of_jsoninmake?privateIpAddress?primary()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a secondary private IPv4 address for a network interface."]moduleSecurityGroupId=structtypenonrect=stringletcontext_="SecurityGroupId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"SecurityGroupId"jletto_json=simple_to_jsonto_valueendmoduleTag=structtypenonrect={key:String_.toption[@ocaml.doc"The key of the tag. Constraints: Tag keys are case-sensitive and accept a maximum of 127 Unicode characters. May not begin with aws:."];value:String_.toption[@ocaml.doc"The value of the tag. Constraints: Tag values are case-sensitive and accept a maximum of 256 Unicode characters."]}letmake?key=fun?value->fun()->{key;value}letto_valuex=structure_to_value[("key",(Option.mapx.key~f:String_.to_value));("value",(Option.mapx.value~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvalue=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"value")inletkey=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"key")inmake?value?key()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvalue=field_mapjson__"Value"String_.of_jsoninletkey=field_mapjson__"Key"String_.of_jsoninmake?value?key()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a tag."]moduleAcceleratorCount=structtypenonrect={min:Integer.toption[@ocaml.doc"The minimum number of accelerators. If this parameter is not specified, there is no minimum limit."];max:Integer.toption[@ocaml.doc"The maximum number of accelerators. If this parameter is not specified, there is no maximum limit."]}letmake?min=fun?max->fun()->{min;max}letto_valuex=structure_to_value[("min",(Option.mapx.min~f:Integer.to_value));("max",(Option.mapx.max~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmax=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"max")inletmin=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"min")inmake?max?min()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmax=field_mapjson__"Max"Integer.of_jsoninletmin=field_mapjson__"Min"Integer.of_jsoninmake?max?min()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web Services Inferentia chips) on an instance."]moduleAcceleratorManufacturerSet=structtypenonrect=AcceleratorManufacturer.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:AcceleratorManufacturer.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:AcceleratorManufacturer.of_xml)letof_jsonj=list_of_json~kind:"AcceleratorManufacturerSet"~of_json:AcceleratorManufacturer.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAcceleratorNameSet=structtypenonrect=AcceleratorName.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:AcceleratorName.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:AcceleratorName.of_xml)letof_jsonj=list_of_json~kind:"AcceleratorNameSet"~of_json:AcceleratorName.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAcceleratorTotalMemoryMiB=structtypenonrect={min:Integer.toption[@ocaml.doc"The minimum amount of accelerator memory, in MiB. If this parameter is not specified, there is no minimum limit."];max:Integer.toption[@ocaml.doc"The maximum amount of accelerator memory, in MiB. If this parameter is not specified, there is no maximum limit."]}letmake?min=fun?max->fun()->{min;max}letto_valuex=structure_to_value[("min",(Option.mapx.min~f:Integer.to_value));("max",(Option.mapx.max~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmax=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"max")inletmin=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"min")inmake?max?min()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmax=field_mapjson__"Max"Integer.of_jsoninletmin=field_mapjson__"Min"Integer.of_jsoninmake?max?min()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The minimum and maximum amount of total accelerator memory, in MiB."]moduleAcceleratorTypeSet=structtypenonrect=AcceleratorType.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:AcceleratorType.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:AcceleratorType.of_xml)letof_jsonj=list_of_json~kind:"AcceleratorTypeSet"~of_json:AcceleratorType.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAllowedInstanceTypeSet=structtypenonrect=AllowedInstanceType.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:400)>>=(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:AllowedInstanceType.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:AllowedInstanceType.of_xml)letof_jsonj=list_of_json~kind:"AllowedInstanceTypeSet"~of_json:AllowedInstanceType.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleBareMetal=structtypenonrect=|Included|Required|Excluded|Non_static_idofstringletmakei=iletto_string=function|Included->"included"|Required->"required"|Excluded->"excluded"|Non_static_ids->sletof_string=function|"included"->Included|"required"->Required|"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 BareMetal"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"BareMetal"j)letto_json=simple_to_jsonto_valueendmoduleBaselineEbsBandwidthMbps=structtypenonrect={min:Integer.toption[@ocaml.doc"The minimum baseline bandwidth, in Mbps. If this parameter is not specified, there is no minimum limit."];max:Integer.toption[@ocaml.doc"The maximum baseline bandwidth, in Mbps. If this parameter is not specified, there is no maximum limit."]}letmake?min=fun?max->fun()->{min;max}letto_valuex=structure_to_value[("min",(Option.mapx.min~f:Integer.to_value));("max",(Option.mapx.max~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmax=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"max")inletmin=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"min")inmake?max?min()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmax=field_mapjson__"Max"Integer.of_jsoninletmin=field_mapjson__"Min"Integer.of_jsoninmake?max?min()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see Amazon EBS\226\128\147optimized instances in the Amazon EC2 User Guide."]moduleBaselinePerformanceFactors=structtypenonrect={cpu:CpuPerformanceFactor.toption[@ocaml.doc"The CPU performance to consider, using an instance family as the baseline reference."]}letmake?cpu=fun()->{cpu}letto_valuex=structure_to_value[("cpu",(Option.mapx.cpu~f:CpuPerformanceFactor.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcpu=(Option.map~f:CpuPerformanceFactor.of_xml)(Xml.childxml_arg0"cpu")inmake?cpu()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcpu=field_mapjson__"Cpu"CpuPerformanceFactor.of_jsoninmake?cpu()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The baseline performance to consider, using an instance family as a baseline reference. The instance family establishes the lowest acceptable level of performance. Amazon EC2 uses this baseline to guide instance type selection, but there is no guarantee that the selected instance types will always exceed the baseline for every application. Currently, this parameter only supports CPU performance as a baseline performance factor. For example, specifying c6i would use the CPU performance of the c6i family as the baseline reference."]moduleBurstablePerformance=structtypenonrect=|Included|Required|Excluded|Non_static_idofstringletmakei=iletto_string=function|Included->"included"|Required->"required"|Excluded->"excluded"|Non_static_ids->sletof_string=function|"included"->Included|"required"->Required|"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 BurstablePerformance"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"BurstablePerformance"j)letto_json=simple_to_jsonto_valueendmoduleCpuManufacturerSet=structtypenonrect=CpuManufacturer.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:CpuManufacturer.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:CpuManufacturer.of_xml)letof_jsonj=list_of_json~kind:"CpuManufacturerSet"~of_json:CpuManufacturer.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleExcludedInstanceTypeSet=structtypenonrect=ExcludedInstanceType.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:400)>>=(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:ExcludedInstanceType.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:ExcludedInstanceType.of_xml)letof_jsonj=list_of_json~kind:"ExcludedInstanceTypeSet"~of_json:ExcludedInstanceType.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleInstanceGenerationSet=structtypenonrect=InstanceGeneration.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:InstanceGeneration.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:InstanceGeneration.of_xml)letof_jsonj=list_of_json~kind:"InstanceGenerationSet"~of_json:InstanceGeneration.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleLocalStorage=structtypenonrect=|Included|Required|Excluded|Non_static_idofstringletmakei=iletto_string=function|Included->"included"|Required->"required"|Excluded->"excluded"|Non_static_ids->sletof_string=function|"included"->Included|"required"->Required|"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 LocalStorage"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"LocalStorage"j)letto_json=simple_to_jsonto_valueendmoduleLocalStorageTypeSet=structtypenonrect=LocalStorageType.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:LocalStorageType.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:LocalStorageType.of_xml)letof_jsonj=list_of_json~kind:"LocalStorageTypeSet"~of_json:LocalStorageType.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleMemoryGiBPerVCpu=structtypenonrect={min:Double.toption[@ocaml.doc"The minimum amount of memory per vCPU, in GiB. If this parameter is not specified, there is no minimum limit."];max:Double.toption[@ocaml.doc"The maximum amount of memory per vCPU, in GiB. If this parameter is not specified, there is no maximum limit."]}letmake?min=fun?max->fun()->{min;max}letto_valuex=structure_to_value[("min",(Option.mapx.min~f:Double.to_value));("max",(Option.mapx.max~f:Double.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmax=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"max")inletmin=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"min")inmake?max?min()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmax=field_mapjson__"Max"Double.of_jsoninletmin=field_mapjson__"Min"Double.of_jsoninmake?max?min()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The minimum and maximum amount of memory per vCPU, in GiB."]moduleMemoryMiB=structtypenonrect={min:Integer.toption[@ocaml.doc"The minimum amount of memory, in MiB. If this parameter is not specified, there is no minimum limit."];max:Integer.toption[@ocaml.doc"The maximum amount of memory, in MiB. If this parameter is not specified, there is no maximum limit."]}letmake?min=fun?max->fun()->{min;max}letto_valuex=structure_to_value[("min",(Option.mapx.min~f:Integer.to_value));("max",(Option.mapx.max~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmax=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"max")inletmin=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"min")inmake?max?min()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmax=field_mapjson__"Max"Integer.of_jsoninletmin=field_mapjson__"Min"Integer.of_jsoninmake?max?min()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The minimum and maximum amount of memory, in MiB."]moduleNetworkBandwidthGbps=structtypenonrect={min:Double.toption[@ocaml.doc"The minimum amount of network bandwidth, in Gbps. If this parameter is not specified, there is no minimum limit."];max:Double.toption[@ocaml.doc"The maximum amount of network bandwidth, in Gbps. If this parameter is not specified, there is no maximum limit."]}letmake?min=fun?max->fun()->{min;max}letto_valuex=structure_to_value[("min",(Option.mapx.min~f:Double.to_value));("max",(Option.mapx.max~f:Double.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmax=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"max")inletmin=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"min")inmake?max?min()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmax=field_mapjson__"Max"Double.of_jsoninletmin=field_mapjson__"Min"Double.of_jsoninmake?max?min()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps). Setting the minimum bandwidth does not guarantee that your instance will achieve the minimum bandwidth. Amazon EC2 will identify instance types that support the specified minimum bandwidth, but the actual bandwidth of your instance might go below the specified minimum at times. For more information, see Available instance bandwidth in the Amazon EC2 User Guide."]moduleNetworkInterfaceCount=structtypenonrect={min:Integer.toption[@ocaml.doc"The minimum number of network interfaces. If this parameter is not specified, there is no minimum limit."];max:Integer.toption[@ocaml.doc"The maximum number of network interfaces. If this parameter is not specified, there is no maximum limit."]}letmake?min=fun?max->fun()->{min;max}letto_valuex=structure_to_value[("min",(Option.mapx.min~f:Integer.to_value));("max",(Option.mapx.max~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmax=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"max")inletmin=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"min")inmake?max?min()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmax=field_mapjson__"Max"Integer.of_jsoninletmin=field_mapjson__"Min"Integer.of_jsoninmake?max?min()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The minimum and maximum number of network interfaces."]moduleTotalLocalStorageGB=structtypenonrect={min:Double.toption[@ocaml.doc"The minimum amount of total local storage, in GB. If this parameter is not specified, there is no minimum limit."];max:Double.toption[@ocaml.doc"The maximum amount of total local storage, in GB. If this parameter is not specified, there is no maximum limit."]}letmake?min=fun?max->fun()->{min;max}letto_valuex=structure_to_value[("min",(Option.mapx.min~f:Double.to_value));("max",(Option.mapx.max~f:Double.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmax=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"max")inletmin=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"min")inmake?max?min()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmax=field_mapjson__"Max"Double.of_jsoninletmin=field_mapjson__"Min"Double.of_jsoninmake?max?min()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The minimum and maximum amount of total local storage, in GB."]moduleVCpuCountRange=structtypenonrect={min:Integer.toption[@ocaml.doc"The minimum number of vCPUs. If the value is 0, there is no minimum limit."];max:Integer.toption[@ocaml.doc"The maximum number of vCPUs. If this parameter is not specified, there is no maximum limit."]}letmake?min=fun?max->fun()->{min;max}letto_valuex=structure_to_value[("min",(Option.mapx.min~f:Integer.to_value));("max",(Option.mapx.max~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmax=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"max")inletmin=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"min")inmake?max?min()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmax=field_mapjson__"Max"Integer.of_jsoninletmin=field_mapjson__"Min"Integer.of_jsoninmake?max?min()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The minimum and maximum number of vCPUs."]moduleInstanceAttachmentEnaSrdUdpSpecification=structtypenonrect={enaSrdUdpEnabled:Boolean.toption[@ocaml.doc"Indicates whether UDP traffic to and from the instance uses ENA Express. To specify this setting, you must first enable ENA Express."]}letmake?enaSrdUdpEnabled=fun()->{enaSrdUdpEnabled}letto_valuex=structure_to_value[("enaSrdUdpEnabled",(Option.mapx.enaSrdUdpEnabled~f:Boolean.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letenaSrdUdpEnabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"enaSrdUdpEnabled")inmake?enaSrdUdpEnabled()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letenaSrdUdpEnabled=field_mapjson__"EnaSrdUdpEnabled"Boolean.of_jsoninmake?enaSrdUdpEnabled()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"ENA Express is compatible with both TCP and UDP transport protocols. When it's enabled, TCP traffic automatically uses it. However, some UDP-based applications are designed to handle network packets that are out of order, without a need for retransmission, such as live video broadcasting or other near-real-time applications. For UDP traffic, you can specify whether to use ENA Express, based on your application environment needs."]moduleInstanceNetworkInterfaceAssociation=structtypenonrect={carrierIp:String_.toption[@ocaml.doc"The carrier IP address associated with the network interface."];customerOwnedIp:String_.toption[@ocaml.doc"The customer-owned IP address associated with the network interface."];ipOwnerId:String_.toption[@ocaml.doc"The ID of the owner of the Elastic IP address."];publicDnsName:String_.toption[@ocaml.doc"The public DNS name."];publicIp:String_.toption[@ocaml.doc"The public IP address or Elastic IP address bound to the network interface."]}letmake?carrierIp=fun?customerOwnedIp->fun?ipOwnerId->fun?publicDnsName->fun?publicIp->fun()->{carrierIp;customerOwnedIp;ipOwnerId;publicDnsName;publicIp}letto_valuex=structure_to_value[("carrierIp",(Option.mapx.carrierIp~f:String_.to_value));("customerOwnedIp",(Option.mapx.customerOwnedIp~f:String_.to_value));("ipOwnerId",(Option.mapx.ipOwnerId~f:String_.to_value));("publicDnsName",(Option.mapx.publicDnsName~f:String_.to_value));("publicIp",(Option.mapx.publicIp~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpublicIp=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"publicIp")inletpublicDnsName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"publicDnsName")inletipOwnerId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ipOwnerId")inletcustomerOwnedIp=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"customerOwnedIp")inletcarrierIp=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"carrierIp")inmake?publicIp?publicDnsName?ipOwnerId?customerOwnedIp?carrierIp()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpublicIp=field_mapjson__"PublicIp"String_.of_jsoninletpublicDnsName=field_mapjson__"PublicDnsName"String_.of_jsoninletipOwnerId=field_mapjson__"IpOwnerId"String_.of_jsoninletcustomerOwnedIp=field_mapjson__"CustomerOwnedIp"String_.of_jsoninletcarrierIp=field_mapjson__"CarrierIp"String_.of_jsoninmake?publicIp?publicDnsName?ipOwnerId?customerOwnedIp?carrierIp()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes association information for an Elastic IP address (IPv4)."]moduleEbsBlockDeviceResponse=structtypenonrect={encrypted:Boolean.toption[@ocaml.doc"Indicates whether the volume is encrypted."];deleteOnTermination:Boolean.toption[@ocaml.doc"Indicates whether the volume is deleted on instance termination."];iops:Integer.toption[@ocaml.doc"The number of I/O operations per second (IOPS). For gp3, io1, and io2 volumes, this represents the number of IOPS that are provisioned for the volume. For gp2 volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting."];throughput:Integer.toption[@ocaml.doc"The throughput that the volume supports, in MiB/s."];kmsKeyId:KmsKeyId.toption[@ocaml.doc"Identifier (key ID, key alias, key ARN, or alias ARN) of the customer managed KMS key to use for EBS encryption."];snapshotId:SnapshotId.toption[@ocaml.doc"The ID of the snapshot."];volumeSize:Integer.toption[@ocaml.doc"The size of the volume, in GiBs."];volumeType:VolumeType.toption[@ocaml.doc"The volume type. For more information, see Amazon EBS volume types in the Amazon EBS User Guide."]}letmake?encrypted=fun?deleteOnTermination->fun?iops->fun?throughput->fun?kmsKeyId->fun?snapshotId->fun?volumeSize->fun?volumeType->fun()->{encrypted;deleteOnTermination;iops;throughput;kmsKeyId;snapshotId;volumeSize;volumeType}letto_valuex=structure_to_value[("encrypted",(Option.mapx.encrypted~f:Boolean.to_value));("deleteOnTermination",(Option.mapx.deleteOnTermination~f:Boolean.to_value));("iops",(Option.mapx.iops~f:Integer.to_value));("throughput",(Option.mapx.throughput~f:Integer.to_value));("kmsKeyId",(Option.mapx.kmsKeyId~f:KmsKeyId.to_value));("snapshotId",(Option.mapx.snapshotId~f:SnapshotId.to_value));("volumeSize",(Option.mapx.volumeSize~f:Integer.to_value));("volumeType",(Option.mapx.volumeType~f:VolumeType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvolumeType=(Option.map~f:VolumeType.of_xml)(Xml.childxml_arg0"volumeType")inletvolumeSize=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"volumeSize")inletsnapshotId=(Option.map~f:SnapshotId.of_xml)(Xml.childxml_arg0"snapshotId")inletkmsKeyId=(Option.map~f:KmsKeyId.of_xml)(Xml.childxml_arg0"kmsKeyId")inletthroughput=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"throughput")inletiops=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"iops")inletdeleteOnTermination=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"deleteOnTermination")inletencrypted=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"encrypted")inmake?volumeType?volumeSize?snapshotId?kmsKeyId?throughput?iops?deleteOnTermination?encrypted()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvolumeType=field_mapjson__"VolumeType"VolumeType.of_jsoninletvolumeSize=field_mapjson__"VolumeSize"Integer.of_jsoninletsnapshotId=field_mapjson__"SnapshotId"SnapshotId.of_jsoninletkmsKeyId=field_mapjson__"KmsKeyId"KmsKeyId.of_jsoninletthroughput=field_mapjson__"Throughput"Integer.of_jsoninletiops=field_mapjson__"Iops"Integer.of_jsoninletdeleteOnTermination=field_mapjson__"DeleteOnTermination"Boolean.of_jsoninletencrypted=field_mapjson__"Encrypted"Boolean.of_jsoninmake?volumeType?volumeSize?snapshotId?kmsKeyId?throughput?iops?deleteOnTermination?encrypted()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a block device for an EBS volume."]modulePerformanceFactorReferenceSetRequest=structtypenonrect=PerformanceFactorReferenceRequest.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:PerformanceFactorReferenceRequest.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:PerformanceFactorReferenceRequest.of_xml)letof_jsonj=list_of_json~kind:"PerformanceFactorReferenceSetRequest"~of_json:PerformanceFactorReferenceRequest.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAnalysisComponent=structtypenonrect={id:String_.toption[@ocaml.doc"The ID of the component."];arn:String_.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the component."];name:String_.toption[@ocaml.doc"The name of the analysis component."]}letmake?id=fun?arn->fun?name->fun()->{id;arn;name}letto_valuex=structure_to_value[("id",(Option.mapx.id~f:String_.to_value));("arn",(Option.mapx.arn~f:String_.to_value));("name",(Option.mapx.name~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letname=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"name")inletarn=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"arn")inletid=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"id")inmake?name?arn?id()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letname=field_mapjson__"Name"String_.of_jsoninletarn=field_mapjson__"Arn"String_.of_jsoninletid=field_mapjson__"Id"String_.of_jsoninmake?name?arn?id()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a path component."]moduleRuleGroupRuleOptionsPair=structtypenonrect={ruleGroupArn:ResourceArn.toption[@ocaml.doc"The ARN of the rule group."];ruleOptions:RuleOptionList.toption[@ocaml.doc"The rule options."]}letmake?ruleGroupArn=fun?ruleOptions->fun()->{ruleGroupArn;ruleOptions}letto_valuex=structure_to_value[("ruleGroupArn",(Option.mapx.ruleGroupArn~f:ResourceArn.to_value));("ruleOptionSet",(Option.mapx.ruleOptions~f:RuleOptionList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letruleOptions=(Option.map~f:RuleOptionList.of_xml)(Xml.childxml_arg0"ruleOptionSet")inletruleGroupArn=(Option.map~f:ResourceArn.of_xml)(Xml.childxml_arg0"ruleGroupArn")inmake?ruleOptions?ruleGroupArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letruleOptions=field_mapjson__"RuleOptions"RuleOptionList.of_jsoninletruleGroupArn=field_mapjson__"RuleGroupArn"ResourceArn.of_jsoninmake?ruleOptions?ruleGroupArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the rule options for a stateful rule group."]moduleRuleGroupTypePair=structtypenonrect={ruleGroupArn:ResourceArn.toption[@ocaml.doc"The ARN of the rule group."];ruleGroupType:String_.toption[@ocaml.doc"The rule group type. The possible values are Domain List and Suricata."]}letmake?ruleGroupArn=fun?ruleGroupType->fun()->{ruleGroupArn;ruleGroupType}letto_valuex=structure_to_value[("ruleGroupArn",(Option.mapx.ruleGroupArn~f:ResourceArn.to_value));("ruleGroupType",(Option.mapx.ruleGroupType~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letruleGroupType=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ruleGroupType")inletruleGroupArn=(Option.map~f:ResourceArn.of_xml)(Xml.childxml_arg0"ruleGroupArn")inmake?ruleGroupType?ruleGroupArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letruleGroupType=field_mapjson__"RuleGroupType"String_.of_jsoninletruleGroupArn=field_mapjson__"RuleGroupArn"ResourceArn.of_jsoninmake?ruleGroupType?ruleGroupArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the type of a stateful rule group."]modulePort=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:65535)>>=(fun()->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 Port"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleIpAddress=structtypenonrect=stringletcontext_="IpAddress"letmakei=letopenResultinok_or_failwith((check_string_mini~min:0)>>=(fun()->(check_string_maxi~max:15)>>=(fun()->check_patterni~pattern:"^([0-9]{1,3}.){3}[0-9]{1,3}$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"IpAddress"jletto_json=simple_to_jsonto_valueendmodulePortRangeList=structtypenonrect=PortRange.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:PortRange.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:PortRange.of_xml)letof_jsonj=list_of_json~kind:"PortRangeList"~of_json:PortRange.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleValueStringList=structtypenonrect=String_.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:String_.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:String_.of_xml)letof_jsonj=list_of_json~kind:"ValueStringList"~of_json:String_.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmodulePriority=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:65535)>>=(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 Priority"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleProtocolIntList=structtypenonrect=ProtocolInt.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ProtocolInt.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:ProtocolInt.of_xml)letof_jsonj=list_of_json~kind:"ProtocolIntList"~of_json:ProtocolInt.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleEbsBlockDevice=structtypenonrect={deleteOnTermination:Boolean.toption[@ocaml.doc"Indicates whether the EBS volume is deleted on instance termination. For more information, see Preserving Amazon EBS volumes on instance termination in the Amazon EC2 User Guide."];iops:Integer.toption[@ocaml.doc"The number of I/O operations per second (IOPS). For gp3, io1, and io2 volumes, this represents the number of IOPS that are provisioned for the volume. For gp2 volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. The following are the supported values for each volume type: gp3: 3,000 - 80,000 IOPS io1: 100 - 64,000 IOPS io2: 100 - 256,000 IOPS For io2 volumes, you can achieve up to 256,000 IOPS on instances built on the Nitro System. On other instances, you can achieve performance up to 32,000 IOPS. This parameter is required for io1 and io2 volumes. The default for gp3 volumes is 3,000 IOPS."];snapshotId:SnapshotId.toption[@ocaml.doc"The ID of the snapshot."];volumeSize:Integer.toption[@ocaml.doc"The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. If you specify a snapshot, the default is the snapshot size. You can specify a volume size that is equal to or larger than the snapshot size. The following are the supported sizes for each volume type: gp2: 1 - 16,384 GiB gp3: 1 - 65,536 GiB io1: 4 - 16,384 GiB io2: 4 - 65,536 GiB st1 and sc1: 125 - 16,384 GiB standard: 1 - 1024 GiB"];volumeType:VolumeType.toption[@ocaml.doc"The volume type. For more information, see Amazon EBS volume types in the Amazon EBS User Guide."];kmsKeyId:String_.toption[@ocaml.doc"Identifier (key ID, key alias, key ARN, or alias ARN) of the customer managed KMS key to use for EBS encryption. This parameter is only supported on BlockDeviceMapping objects called by RunInstances, RequestSpotFleet, and RequestSpotInstances."];throughput:Integer.toption[@ocaml.doc"The throughput that the volume supports, in MiB/s. This parameter is valid only for gp3 volumes. Valid Range: Minimum value of 125. Maximum value of 2,000."];outpostArn:String_.toption[@ocaml.doc"The ARN of the Outpost on which the snapshot is stored. This parameter is not supported when using CreateImage."];availabilityZone:String_.toption[@ocaml.doc"The Availability Zone where the EBS volume will be created (for example, us-east-1a). Either AvailabilityZone or AvailabilityZoneId can be specified, but not both. If neither is specified, Amazon EC2 automatically selects an Availability Zone within the Region. This parameter is not supported when using CreateFleet, CreateImage, DescribeImages, RequestSpotFleet, RequestSpotInstances, and RunInstances."];encrypted:Boolean.toption[@ocaml.doc"Indicates whether the encryption state of an EBS volume is changed while being restored from a backing snapshot. The effect of setting the encryption state to true depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see Amazon EBS encryption in the Amazon EBS User Guide. In no case can you remove encryption from an encrypted volume. Encrypted volumes can only be attached to instances that support Amazon EBS encryption. For more information, see Supported instance types. This parameter is not returned by DescribeImageAttribute. For CreateImage and RegisterImage, whether you can include this parameter, and the allowed values differ depending on the type of block device mapping you are creating. If you are creating a block device mapping for a new (empty) volume, you can include this parameter, and specify either true for an encrypted volume, or false for an unencrypted volume. If you omit this parameter, it defaults to false (unencrypted). If you are creating a block device mapping from an existing encrypted or unencrypted snapshot, you must omit this parameter. If you include this parameter, the request will fail, regardless of the value that you specify. If you are creating a block device mapping from an existing unencrypted volume, you can include this parameter, but you must specify false. If you specify true, the request will fail. In this case, we recommend that you omit the parameter. If you are creating a block device mapping from an existing encrypted volume, you can include this parameter, and specify either true or false. However, if you specify false, the parameter is ignored and the block device mapping is always encrypted. In this case, we recommend that you omit the parameter."];volumeInitializationRate:Integer.toption[@ocaml.doc"Specifies the Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate), in MiB/s, at which to download the snapshot blocks from Amazon S3 to the volume. This is also known as volume initialization. Specifying a volume initialization rate ensures that the volume is initialized at a predictable and consistent rate after creation. For more information, see Initialize Amazon EBS volumes in the Amazon EC2 User Guide. This parameter is supported only for volumes created from snapshots. Omit this parameter if: You want to create the volume using fast snapshot restore. You must specify a snapshot that is enabled for fast snapshot restore. In this case, the volume is fully initialized at creation. If you specify a snapshot that is enabled for fast snapshot restore and a volume initialization rate, the volume will be initialized at the specified rate instead of fast snapshot restore. You want to create a volume that is initialized at the default rate. This parameter is not supported when using CreateImage and DescribeImages. Valid range: 100 - 300 MiB/s"];availabilityZoneId:String_.toption[@ocaml.doc"The ID of the Availability Zone where the EBS volume will be created (for example, use1-az1). Either AvailabilityZone or AvailabilityZoneId can be specified, but not both. If neither is specified, Amazon EC2 automatically selects an Availability Zone within the Region. This parameter is not supported when using CreateFleet, CreateImage, DescribeImages, RequestSpotFleet, RequestSpotInstances, and RunInstances."];ebsCardIndex:Integer.toption[@ocaml.doc"The index of the EBS card. Some instance types support multiple EBS cards. The default EBS card index is 0."]}letmake?deleteOnTermination=fun?iops->fun?snapshotId->fun?volumeSize->fun?volumeType->fun?kmsKeyId->fun?throughput->fun?outpostArn->fun?availabilityZone->fun?encrypted->fun?volumeInitializationRate->fun?availabilityZoneId->fun?ebsCardIndex->fun()->{deleteOnTermination;iops;snapshotId;volumeSize;volumeType;kmsKeyId;throughput;outpostArn;availabilityZone;encrypted;volumeInitializationRate;availabilityZoneId;ebsCardIndex}letto_valuex=structure_to_value[("deleteOnTermination",(Option.mapx.deleteOnTermination~f:Boolean.to_value));("iops",(Option.mapx.iops~f:Integer.to_value));("snapshotId",(Option.mapx.snapshotId~f:SnapshotId.to_value));("volumeSize",(Option.mapx.volumeSize~f:Integer.to_value));("volumeType",(Option.mapx.volumeType~f:VolumeType.to_value));("kmsKeyId",(Option.mapx.kmsKeyId~f:String_.to_value));("throughput",(Option.mapx.throughput~f:Integer.to_value));("outpostArn",(Option.mapx.outpostArn~f:String_.to_value));("availabilityZone",(Option.mapx.availabilityZone~f:String_.to_value));("encrypted",(Option.mapx.encrypted~f:Boolean.to_value));("VolumeInitializationRate",(Option.mapx.volumeInitializationRate~f:Integer.to_value));("AvailabilityZoneId",(Option.mapx.availabilityZoneId~f:String_.to_value));("EbsCardIndex",(Option.mapx.ebsCardIndex~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letebsCardIndex=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"EbsCardIndex")inletavailabilityZoneId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"AvailabilityZoneId")inletvolumeInitializationRate=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"VolumeInitializationRate")inletencrypted=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"encrypted")inletavailabilityZone=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"availabilityZone")inletoutpostArn=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"outpostArn")inletthroughput=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"throughput")inletkmsKeyId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"kmsKeyId")inletvolumeType=(Option.map~f:VolumeType.of_xml)(Xml.childxml_arg0"volumeType")inletvolumeSize=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"volumeSize")inletsnapshotId=(Option.map~f:SnapshotId.of_xml)(Xml.childxml_arg0"snapshotId")inletiops=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"iops")inletdeleteOnTermination=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"deleteOnTermination")inmake?ebsCardIndex?availabilityZoneId?volumeInitializationRate?encrypted?availabilityZone?outpostArn?throughput?kmsKeyId?volumeType?volumeSize?snapshotId?iops?deleteOnTermination()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letebsCardIndex=field_mapjson__"EbsCardIndex"Integer.of_jsoninletavailabilityZoneId=field_mapjson__"AvailabilityZoneId"String_.of_jsoninletvolumeInitializationRate=field_mapjson__"VolumeInitializationRate"Integer.of_jsoninletencrypted=field_mapjson__"Encrypted"Boolean.of_jsoninletavailabilityZone=field_mapjson__"AvailabilityZone"String_.of_jsoninletoutpostArn=field_mapjson__"OutpostArn"String_.of_jsoninletthroughput=field_mapjson__"Throughput"Integer.of_jsoninletkmsKeyId=field_mapjson__"KmsKeyId"String_.of_jsoninletvolumeType=field_mapjson__"VolumeType"VolumeType.of_jsoninletvolumeSize=field_mapjson__"VolumeSize"Integer.of_jsoninletsnapshotId=field_mapjson__"SnapshotId"SnapshotId.of_jsoninletiops=field_mapjson__"Iops"Integer.of_jsoninletdeleteOnTermination=field_mapjson__"DeleteOnTermination"Boolean.of_jsoninmake?ebsCardIndex?availabilityZoneId?volumeInitializationRate?encrypted?availabilityZone?outpostArn?throughput?kmsKeyId?volumeType?volumeSize?snapshotId?iops?deleteOnTermination()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a block device for an EBS volume."]moduleConnectionTrackingSpecificationRequest=structtypenonrect={tcpEstablishedTimeout:Integer.toption[@ocaml.doc"Timeout (in seconds) for idle TCP connections in an established state. Min: 60 seconds. Max: 432000 seconds (5 days). Default: 432000 seconds. Recommended: Less than 432000 seconds."];udpStreamTimeout:Integer.toption[@ocaml.doc"Timeout (in seconds) for idle UDP flows classified as streams which have seen more than one request-response transaction. Min: 60 seconds. Max: 180 seconds (3 minutes). Default: 180 seconds."];udpTimeout:Integer.toption[@ocaml.doc"Timeout (in seconds) for idle UDP flows that have seen traffic only in a single direction or a single request-response transaction. Min: 30 seconds. Max: 60 seconds. Default: 30 seconds."]}letmake?tcpEstablishedTimeout=fun?udpStreamTimeout->fun?udpTimeout->fun()->{tcpEstablishedTimeout;udpStreamTimeout;udpTimeout}letto_valuex=structure_to_value[("TcpEstablishedTimeout",(Option.mapx.tcpEstablishedTimeout~f:Integer.to_value));("UdpStreamTimeout",(Option.mapx.udpStreamTimeout~f:Integer.to_value));("UdpTimeout",(Option.mapx.udpTimeout~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letudpTimeout=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"UdpTimeout")inletudpStreamTimeout=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"UdpStreamTimeout")inlettcpEstablishedTimeout=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"TcpEstablishedTimeout")inmake?udpTimeout?udpStreamTimeout?tcpEstablishedTimeout()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letudpTimeout=field_mapjson__"UdpTimeout"Integer.of_jsoninletudpStreamTimeout=field_mapjson__"UdpStreamTimeout"Integer.of_jsoninlettcpEstablishedTimeout=field_mapjson__"TcpEstablishedTimeout"Integer.of_jsoninmake?udpTimeout?udpStreamTimeout?tcpEstablishedTimeout()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A security group connection tracking specification request that enables you to set the idle timeout for connection tracking on an Elastic network interface. For more information, see Connection tracking timeouts in the Amazon EC2 User Guide."]moduleEnaSrdSpecificationRequest=structtypenonrect={enaSrdEnabled:Boolean.toption[@ocaml.doc"Specifies whether ENA Express is enabled for the network interface when you launch an instance."];enaSrdUdpSpecification:EnaSrdUdpSpecificationRequest.toption[@ocaml.doc"Contains ENA Express settings for UDP network traffic for the network interface attached to the instance."]}letmake?enaSrdEnabled=fun?enaSrdUdpSpecification->fun()->{enaSrdEnabled;enaSrdUdpSpecification}letto_valuex=structure_to_value[("EnaSrdEnabled",(Option.mapx.enaSrdEnabled~f:Boolean.to_value));("EnaSrdUdpSpecification",(Option.mapx.enaSrdUdpSpecification~f:EnaSrdUdpSpecificationRequest.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letenaSrdUdpSpecification=(Option.map~f:EnaSrdUdpSpecificationRequest.of_xml)(Xml.childxml_arg0"EnaSrdUdpSpecification")inletenaSrdEnabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"EnaSrdEnabled")inmake?enaSrdUdpSpecification?enaSrdEnabled()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letenaSrdUdpSpecification=field_mapjson__"EnaSrdUdpSpecification"EnaSrdUdpSpecificationRequest.of_jsoninletenaSrdEnabled=field_mapjson__"EnaSrdEnabled"Boolean.of_jsoninmake?enaSrdUdpSpecification?enaSrdEnabled()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Launch instances with ENA Express settings configured from your launch template."]moduleInstanceIpv6AddressList=structtypenonrect=InstanceIpv6Address.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:InstanceIpv6Address.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:InstanceIpv6Address.of_xml)letof_jsonj=list_of_json~kind:"InstanceIpv6AddressList"~of_json:InstanceIpv6Address.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleIpv4PrefixList=structtypenonrect=Ipv4PrefixSpecificationRequest.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Ipv4PrefixSpecificationRequest.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:Ipv4PrefixSpecificationRequest.of_xml)letof_jsonj=list_of_json~kind:"Ipv4PrefixList"~of_json:Ipv4PrefixSpecificationRequest.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleIpv6PrefixList=structtypenonrect=Ipv6PrefixSpecificationRequest.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Ipv6PrefixSpecificationRequest.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:Ipv6PrefixSpecificationRequest.of_xml)letof_jsonj=list_of_json~kind:"Ipv6PrefixList"~of_json:Ipv6PrefixSpecificationRequest.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleNetworkInterfaceId=structtypenonrect=stringletcontext_="NetworkInterfaceId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"NetworkInterfaceId"jletto_json=simple_to_jsonto_valueendmodulePrivateIpAddressSpecificationList=structtypenonrect=PrivateIpAddressSpecification.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:PrivateIpAddressSpecification.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:PrivateIpAddressSpecification.of_xml)letof_jsonj=list_of_json~kind:"PrivateIpAddressSpecificationList"~of_json:PrivateIpAddressSpecification.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleSecurityGroupIdStringList=structtypenonrect=SecurityGroupId.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:SecurityGroupId.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:SecurityGroupId.of_xml)letof_jsonj=list_of_json~kind:"SecurityGroupIdStringList"~of_json:SecurityGroupId.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleResourceType=structtypenonrect=|Capacity_reservation|Client_vpn_endpoint|Customer_gateway|Carrier_gateway|Coip_pool|Declarative_policies_report|Dedicated_host|Dhcp_options|Egress_only_internet_gateway|Elastic_ip|Elastic_gpu|Export_image_task|Export_instance_task|Fleet|Fpga_image|Host_reservation|Image|Image_usage_report|Import_image_task|Import_snapshot_task|Instance|Instance_event_window|Internet_gateway|Ipam|Ipam_pool|Ipam_scope|Ipv4pool_ec2|Ipv6pool_ec2|Key_pair|Launch_template|Local_gateway|Local_gateway_route_table|Local_gateway_virtual_interface|Local_gateway_virtual_interface_group|Local_gateway_route_table_vpc_association|Local_gateway_route_table_virtual_interface_group_association|Natgateway|Network_acl|Network_interface|Network_insights_analysis|Network_insights_path|Network_insights_access_scope|Network_insights_access_scope_analysis|Outpost_lag|Placement_group|Prefix_list|Replace_root_volume_task|Reserved_instances|Route_table|Security_group|Security_group_rule|Service_link_virtual_interface|Snapshot|Spot_fleet_request|Spot_instances_request|Subnet|Subnet_cidr_reservation|Traffic_mirror_filter|Traffic_mirror_session|Traffic_mirror_target|Transit_gateway|Transit_gateway_attachment|Transit_gateway_connect_peer|Transit_gateway_multicast_domain|Transit_gateway_policy_table|Transit_gateway_metering_policy|Transit_gateway_route_table|Transit_gateway_route_table_announcement|Volume|Vpc|Vpc_endpoint|Vpc_endpoint_connection|Vpc_endpoint_service|Vpc_endpoint_service_permission|Vpc_peering_connection|Vpn_connection|Vpn_gateway|Vpc_flow_log|Capacity_reservation_fleet|Traffic_mirror_filter_rule|Vpc_endpoint_connection_device_type|Verified_access_instance|Verified_access_group|Verified_access_endpoint|Verified_access_policy|Verified_access_trust_provider|Vpn_connection_device_type|Vpc_block_public_access_exclusion|Vpc_encryption_control|Route_server|Route_server_endpoint|Route_server_peer|Ipam_resource_discovery|Ipam_resource_discovery_association|Instance_connect_endpoint|Verified_access_endpoint_target|Ipam_external_resource_verification_token|Capacity_block|Mac_modification_task|Ipam_prefix_list_resolver|Ipam_policy|Ipam_prefix_list_resolver_target|Secondary_interface|Secondary_network|Secondary_subnet|Capacity_manager_data_export|Vpn_concentrator|Non_static_idofstringletmakei=iletto_string=function|Capacity_reservation->"capacity-reservation"|Client_vpn_endpoint->"client-vpn-endpoint"|Customer_gateway->"customer-gateway"|Carrier_gateway->"carrier-gateway"|Coip_pool->"coip-pool"|Declarative_policies_report->"declarative-policies-report"|Dedicated_host->"dedicated-host"|Dhcp_options->"dhcp-options"|Egress_only_internet_gateway->"egress-only-internet-gateway"|Elastic_ip->"elastic-ip"|Elastic_gpu->"elastic-gpu"|Export_image_task->"export-image-task"|Export_instance_task->"export-instance-task"|Fleet->"fleet"|Fpga_image->"fpga-image"|Host_reservation->"host-reservation"|Image->"image"|Image_usage_report->"image-usage-report"|Import_image_task->"import-image-task"|Import_snapshot_task->"import-snapshot-task"|Instance->"instance"|Instance_event_window->"instance-event-window"|Internet_gateway->"internet-gateway"|Ipam->"ipam"|Ipam_pool->"ipam-pool"|Ipam_scope->"ipam-scope"|Ipv4pool_ec2->"ipv4pool-ec2"|Ipv6pool_ec2->"ipv6pool-ec2"|Key_pair->"key-pair"|Launch_template->"launch-template"|Local_gateway->"local-gateway"|Local_gateway_route_table->"local-gateway-route-table"|Local_gateway_virtual_interface->"local-gateway-virtual-interface"|Local_gateway_virtual_interface_group->"local-gateway-virtual-interface-group"|Local_gateway_route_table_vpc_association->"local-gateway-route-table-vpc-association"|Local_gateway_route_table_virtual_interface_group_association->"local-gateway-route-table-virtual-interface-group-association"|Natgateway->"natgateway"|Network_acl->"network-acl"|Network_interface->"network-interface"|Network_insights_analysis->"network-insights-analysis"|Network_insights_path->"network-insights-path"|Network_insights_access_scope->"network-insights-access-scope"|Network_insights_access_scope_analysis->"network-insights-access-scope-analysis"|Outpost_lag->"outpost-lag"|Placement_group->"placement-group"|Prefix_list->"prefix-list"|Replace_root_volume_task->"replace-root-volume-task"|Reserved_instances->"reserved-instances"|Route_table->"route-table"|Security_group->"security-group"|Security_group_rule->"security-group-rule"|Service_link_virtual_interface->"service-link-virtual-interface"|Snapshot->"snapshot"|Spot_fleet_request->"spot-fleet-request"|Spot_instances_request->"spot-instances-request"|Subnet->"subnet"|Subnet_cidr_reservation->"subnet-cidr-reservation"|Traffic_mirror_filter->"traffic-mirror-filter"|Traffic_mirror_session->"traffic-mirror-session"|Traffic_mirror_target->"traffic-mirror-target"|Transit_gateway->"transit-gateway"|Transit_gateway_attachment->"transit-gateway-attachment"|Transit_gateway_connect_peer->"transit-gateway-connect-peer"|Transit_gateway_multicast_domain->"transit-gateway-multicast-domain"|Transit_gateway_policy_table->"transit-gateway-policy-table"|Transit_gateway_metering_policy->"transit-gateway-metering-policy"|Transit_gateway_route_table->"transit-gateway-route-table"|Transit_gateway_route_table_announcement->"transit-gateway-route-table-announcement"|Volume->"volume"|Vpc->"vpc"|Vpc_endpoint->"vpc-endpoint"|Vpc_endpoint_connection->"vpc-endpoint-connection"|Vpc_endpoint_service->"vpc-endpoint-service"|Vpc_endpoint_service_permission->"vpc-endpoint-service-permission"|Vpc_peering_connection->"vpc-peering-connection"|Vpn_connection->"vpn-connection"|Vpn_gateway->"vpn-gateway"|Vpc_flow_log->"vpc-flow-log"|Capacity_reservation_fleet->"capacity-reservation-fleet"|Traffic_mirror_filter_rule->"traffic-mirror-filter-rule"|Vpc_endpoint_connection_device_type->"vpc-endpoint-connection-device-type"|Verified_access_instance->"verified-access-instance"|Verified_access_group->"verified-access-group"|Verified_access_endpoint->"verified-access-endpoint"|Verified_access_policy->"verified-access-policy"|Verified_access_trust_provider->"verified-access-trust-provider"|Vpn_connection_device_type->"vpn-connection-device-type"|Vpc_block_public_access_exclusion->"vpc-block-public-access-exclusion"|Vpc_encryption_control->"vpc-encryption-control"|Route_server->"route-server"|Route_server_endpoint->"route-server-endpoint"|Route_server_peer->"route-server-peer"|Ipam_resource_discovery->"ipam-resource-discovery"|Ipam_resource_discovery_association->"ipam-resource-discovery-association"|Instance_connect_endpoint->"instance-connect-endpoint"|Verified_access_endpoint_target->"verified-access-endpoint-target"|Ipam_external_resource_verification_token->"ipam-external-resource-verification-token"|Capacity_block->"capacity-block"|Mac_modification_task->"mac-modification-task"|Ipam_prefix_list_resolver->"ipam-prefix-list-resolver"|Ipam_policy->"ipam-policy"|Ipam_prefix_list_resolver_target->"ipam-prefix-list-resolver-target"|Secondary_interface->"secondary-interface"|Secondary_network->"secondary-network"|Secondary_subnet->"secondary-subnet"|Capacity_manager_data_export->"capacity-manager-data-export"|Vpn_concentrator->"vpn-concentrator"|Non_static_ids->sletof_string=function|"capacity-reservation"->Capacity_reservation|"client-vpn-endpoint"->Client_vpn_endpoint|"customer-gateway"->Customer_gateway|"carrier-gateway"->Carrier_gateway|"coip-pool"->Coip_pool|"declarative-policies-report"->Declarative_policies_report|"dedicated-host"->Dedicated_host|"dhcp-options"->Dhcp_options|"egress-only-internet-gateway"->Egress_only_internet_gateway|"elastic-ip"->Elastic_ip|"elastic-gpu"->Elastic_gpu|"export-image-task"->Export_image_task|"export-instance-task"->Export_instance_task|"fleet"->Fleet|"fpga-image"->Fpga_image|"host-reservation"->Host_reservation|"image"->Image|"image-usage-report"->Image_usage_report|"import-image-task"->Import_image_task|"import-snapshot-task"->Import_snapshot_task|"instance"->Instance|"instance-event-window"->Instance_event_window|"internet-gateway"->Internet_gateway|"ipam"->Ipam|"ipam-pool"->Ipam_pool|"ipam-scope"->Ipam_scope|"ipv4pool-ec2"->Ipv4pool_ec2|"ipv6pool-ec2"->Ipv6pool_ec2|"key-pair"->Key_pair|"launch-template"->Launch_template|"local-gateway"->Local_gateway|"local-gateway-route-table"->Local_gateway_route_table|"local-gateway-virtual-interface"->Local_gateway_virtual_interface|"local-gateway-virtual-interface-group"->Local_gateway_virtual_interface_group|"local-gateway-route-table-vpc-association"->Local_gateway_route_table_vpc_association|"local-gateway-route-table-virtual-interface-group-association"->Local_gateway_route_table_virtual_interface_group_association|"natgateway"->Natgateway|"network-acl"->Network_acl|"network-interface"->Network_interface|"network-insights-analysis"->Network_insights_analysis|"network-insights-path"->Network_insights_path|"network-insights-access-scope"->Network_insights_access_scope|"network-insights-access-scope-analysis"->Network_insights_access_scope_analysis|"outpost-lag"->Outpost_lag|"placement-group"->Placement_group|"prefix-list"->Prefix_list|"replace-root-volume-task"->Replace_root_volume_task|"reserved-instances"->Reserved_instances|"route-table"->Route_table|"security-group"->Security_group|"security-group-rule"->Security_group_rule|"service-link-virtual-interface"->Service_link_virtual_interface|"snapshot"->Snapshot|"spot-fleet-request"->Spot_fleet_request|"spot-instances-request"->Spot_instances_request|"subnet"->Subnet|"subnet-cidr-reservation"->Subnet_cidr_reservation|"traffic-mirror-filter"->Traffic_mirror_filter|"traffic-mirror-session"->Traffic_mirror_session|"traffic-mirror-target"->Traffic_mirror_target|"transit-gateway"->Transit_gateway|"transit-gateway-attachment"->Transit_gateway_attachment|"transit-gateway-connect-peer"->Transit_gateway_connect_peer|"transit-gateway-multicast-domain"->Transit_gateway_multicast_domain|"transit-gateway-policy-table"->Transit_gateway_policy_table|"transit-gateway-metering-policy"->Transit_gateway_metering_policy|"transit-gateway-route-table"->Transit_gateway_route_table|"transit-gateway-route-table-announcement"->Transit_gateway_route_table_announcement|"volume"->Volume|"vpc"->Vpc|"vpc-endpoint"->Vpc_endpoint|"vpc-endpoint-connection"->Vpc_endpoint_connection|"vpc-endpoint-service"->Vpc_endpoint_service|"vpc-endpoint-service-permission"->Vpc_endpoint_service_permission|"vpc-peering-connection"->Vpc_peering_connection|"vpn-connection"->Vpn_connection|"vpn-gateway"->Vpn_gateway|"vpc-flow-log"->Vpc_flow_log|"capacity-reservation-fleet"->Capacity_reservation_fleet|"traffic-mirror-filter-rule"->Traffic_mirror_filter_rule|"vpc-endpoint-connection-device-type"->Vpc_endpoint_connection_device_type|"verified-access-instance"->Verified_access_instance|"verified-access-group"->Verified_access_group|"verified-access-endpoint"->Verified_access_endpoint|"verified-access-policy"->Verified_access_policy|"verified-access-trust-provider"->Verified_access_trust_provider|"vpn-connection-device-type"->Vpn_connection_device_type|"vpc-block-public-access-exclusion"->Vpc_block_public_access_exclusion|"vpc-encryption-control"->Vpc_encryption_control|"route-server"->Route_server|"route-server-endpoint"->Route_server_endpoint|"route-server-peer"->Route_server_peer|"ipam-resource-discovery"->Ipam_resource_discovery|"ipam-resource-discovery-association"->Ipam_resource_discovery_association|"instance-connect-endpoint"->Instance_connect_endpoint|"verified-access-endpoint-target"->Verified_access_endpoint_target|"ipam-external-resource-verification-token"->Ipam_external_resource_verification_token|"capacity-block"->Capacity_block|"mac-modification-task"->Mac_modification_task|"ipam-prefix-list-resolver"->Ipam_prefix_list_resolver|"ipam-policy"->Ipam_policy|"ipam-prefix-list-resolver-target"->Ipam_prefix_list_resolver_target|"secondary-interface"->Secondary_interface|"secondary-network"->Secondary_network|"secondary-subnet"->Secondary_subnet|"capacity-manager-data-export"->Capacity_manager_data_export|"vpn-concentrator"->Vpn_concentrator|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 ResourceType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ResourceType"j)letto_json=simple_to_jsonto_valueendmoduleTagList=structtypenonrect=Tag.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Tag.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:Tag.of_xml)letof_jsonj=list_of_json~kind:"TagList"~of_json:Tag.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAvailabilityZoneId=structtypenonrect=stringletcontext_="AvailabilityZoneId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"AvailabilityZoneId"jletto_json=simple_to_jsonto_valueendmoduleInstanceRequirements=structtypenonrect={vCpuCount:VCpuCountRange.toption[@ocaml.doc"The minimum and maximum number of vCPUs."];memoryMiB:MemoryMiB.toption[@ocaml.doc"The minimum and maximum amount of memory, in MiB."];cpuManufacturers:CpuManufacturerSet.toption[@ocaml.doc"The CPU manufacturers to include. For instance types with Intel CPUs, specify intel. For instance types with AMD CPUs, specify amd. For instance types with Amazon Web Services CPUs, specify amazon-web-services. For instance types with Apple CPUs, specify apple. Don't confuse the CPU manufacturer with the CPU architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template. Default: Any manufacturer"];memoryGiBPerVCpu:MemoryGiBPerVCpu.toption[@ocaml.doc"The minimum and maximum amount of memory per vCPU, in GiB. Default: No minimum or maximum limits"];excludedInstanceTypes:ExcludedInstanceTypeSet.toption[@ocaml.doc"The instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (*), to exclude an instance type, size, or generation. The following are examples: m5.8xlarge, c5*.*, m5a.*, r*, *3*. For example, if you specify c5*,Amazon EC2 will exclude the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, Amazon EC2 will exclude all the M5a instance types, but not the M5n instance types. If you specify ExcludedInstanceTypes, you can't specify AllowedInstanceTypes. Default: No excluded instance types"];instanceGenerations:InstanceGenerationSet.toption[@ocaml.doc"Indicates whether current or previous generation instance types are included. The current generation instance types are recommended for use. Current generation instance types are typically the latest two to three generations in each instance family. For more information, see Instance types in the Amazon EC2 User Guide. For current generation instance types, specify current. For previous generation instance types, specify previous. Default: Current and previous generation instance types"];spotMaxPricePercentageOverLowestPrice:Integer.toption[@ocaml.doc"\\[Price protection\\] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the Spot price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified Spot price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose Spot price exceeds your specified threshold. The parameter accepts an integer, which Amazon EC2 interprets as a percentage. If you set TargetCapacityUnitType to vcpu or memory-mib, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price. This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements. Only one of SpotMaxPricePercentageOverLowestPrice or MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as 999999. Default: 100"];onDemandMaxPricePercentageOverLowestPrice:Integer.toption[@ocaml.doc"\\[Price protection\\] The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold. The parameter accepts an integer, which Amazon EC2 interprets as a percentage. To turn off price protection, specify a high value, such as 999999. This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements. If you set TargetCapacityUnitType to vcpu or memory-mib, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price. Default: 20"];bareMetal:BareMetal.toption[@ocaml.doc"Indicates whether bare metal instance types must be included, excluded, or required. To include bare metal instance types, specify included. To require only bare metal instance types, specify required. To exclude bare metal instance types, specify excluded. Default: excluded"];burstablePerformance:BurstablePerformance.toption[@ocaml.doc"Indicates whether burstable performance T instance types are included, excluded, or required. For more information, see Burstable performance instances. To include burstable performance instance types, specify included. To require only burstable performance instance types, specify required. To exclude burstable performance instance types, specify excluded. Default: excluded"];requireHibernateSupport:Boolean.toption[@ocaml.doc"Indicates whether instance types must support hibernation for On-Demand Instances. This parameter is not supported for GetSpotPlacementScores. Default: false"];networkInterfaceCount:NetworkInterfaceCount.toption[@ocaml.doc"The minimum and maximum number of network interfaces. Default: No minimum or maximum limits"];localStorage:LocalStorage.toption[@ocaml.doc"Indicates whether instance types with instance store volumes are included, excluded, or required. For more information, Amazon EC2 instance store in the Amazon EC2 User Guide. To include instance types with instance store volumes, specify included. To require only instance types with instance store volumes, specify required. To exclude instance types with instance store volumes, specify excluded. Default: included"];localStorageTypes:LocalStorageTypeSet.toption[@ocaml.doc"The type of local storage that is required. For instance types with hard disk drive (HDD) storage, specify hdd. For instance types with solid state drive (SSD) storage, specify ssd. Default: hdd and ssd"];totalLocalStorageGB:TotalLocalStorageGB.toption[@ocaml.doc"The minimum and maximum amount of total local storage, in GB. Default: No minimum or maximum limits"];baselineEbsBandwidthMbps:BaselineEbsBandwidthMbps.toption[@ocaml.doc"The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see Amazon EBS\226\128\147optimized instances in the Amazon EC2 User Guide. Default: No minimum or maximum limits"];acceleratorTypes:AcceleratorTypeSet.toption[@ocaml.doc"The accelerator types that must be on the instance type. For instance types with FPGA accelerators, specify fpga. For instance types with GPU accelerators, specify gpu. For instance types with Inference accelerators, specify inference. For instance types with Media accelerators, specify media. Default: Any accelerator type"];acceleratorCount:AcceleratorCount.toption[@ocaml.doc"The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web Services Inferentia chips) on an instance. To exclude accelerator-enabled instance types, set Max to 0. Default: No minimum or maximum limits"];acceleratorManufacturers:AcceleratorManufacturerSet.toption[@ocaml.doc"Indicates whether instance types must have accelerators by specific manufacturers. For instance types with Amazon Web Services devices, specify amazon-web-services. For instance types with AMD devices, specify amd. For instance types with Habana devices, specify habana. For instance types with NVIDIA devices, specify nvidia. For instance types with Xilinx devices, specify xilinx. Default: Any manufacturer"];acceleratorNames:AcceleratorNameSet.toption[@ocaml.doc"The accelerators that must be on the instance type. For instance types with NVIDIA A10G GPUs, specify a10g. For instance types with NVIDIA A100 GPUs, specify a100. For instance types with NVIDIA H100 GPUs, specify h100. For instance types with Amazon Web Services Inferentia chips, specify inferentia. For instance types with Amazon Web Services Inferentia2 chips, specify inferentia2. For instance types with Habana Gaudi HL-205 GPUs, specify gaudi-hl-205. For instance types with NVIDIA GRID K520 GPUs, specify k520. For instance types with NVIDIA K80 GPUs, specify k80. For instance types with NVIDIA L4 GPUs, specify l4. For instance types with NVIDIA L40S GPUs, specify l40s. For instance types with NVIDIA M60 GPUs, specify m60. For instance types with AMD Radeon Pro V520 GPUs, specify radeon-pro-v520. For instance types with Amazon Web Services Trainium chips, specify trainium. For instance types with Amazon Web Services Trainium2 chips, specify trainium2. For instance types with NVIDIA T4 GPUs, specify t4. For instance types with NVIDIA T4G GPUs, specify t4g. For instance types with Xilinx U30 cards, specify u30. For instance types with Xilinx VU9P FPGAs, specify vu9p. For instance types with NVIDIA V100 GPUs, specify v100. Default: Any accelerator"];acceleratorTotalMemoryMiB:AcceleratorTotalMemoryMiB.toption[@ocaml.doc"The minimum and maximum amount of total accelerator memory, in MiB. Default: No minimum or maximum limits"];networkBandwidthGbps:NetworkBandwidthGbps.toption[@ocaml.doc"The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps). Default: No minimum or maximum limits"];allowedInstanceTypes:AllowedInstanceTypeSet.toption[@ocaml.doc"The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes. You can use strings with one or more wild cards, represented by an asterisk (*), to allow an instance type, size, or generation. The following are examples: m5.8xlarge, c5*.*, m5a.*, r*, *3*. For example, if you specify c5*,Amazon EC2 will allow the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, Amazon EC2 will allow all the M5a instance types, but not the M5n instance types. If you specify AllowedInstanceTypes, you can't specify ExcludedInstanceTypes. Default: All instance types"];maxSpotPriceAsPercentageOfOptimalOnDemandPrice:Integer.toption[@ocaml.doc"\\[Price protection\\] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold. The parameter accepts an integer, which Amazon EC2 interprets as a percentage. If you set TargetCapacityUnitType to vcpu or memory-mib, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price. Only one of SpotMaxPricePercentageOverLowestPrice or MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as 999999."];baselinePerformanceFactors:BaselinePerformanceFactors.toption[@ocaml.doc"The baseline performance to consider, using an instance family as a baseline reference. The instance family establishes the lowest acceptable level of performance. Amazon EC2 uses this baseline to guide instance type selection, but there is no guarantee that the selected instance types will always exceed the baseline for every application. Currently, this parameter only supports CPU performance as a baseline performance factor. For more information, see Performance protection in the Amazon EC2 User Guide."];requireEncryptionInTransit:Boolean.toption[@ocaml.doc"Specifies whether instance types must support encrypting in-transit traffic between instances. For more information, including the supported instance types, see Encryption in transit in the Amazon EC2 User Guide. Default: false"]}letmake?vCpuCount=fun?memoryMiB->fun?cpuManufacturers->fun?memoryGiBPerVCpu->fun?excludedInstanceTypes->fun?instanceGenerations->fun?spotMaxPricePercentageOverLowestPrice->fun?onDemandMaxPricePercentageOverLowestPrice->fun?bareMetal->fun?burstablePerformance->fun?requireHibernateSupport->fun?networkInterfaceCount->fun?localStorage->fun?localStorageTypes->fun?totalLocalStorageGB->fun?baselineEbsBandwidthMbps->fun?acceleratorTypes->fun?acceleratorCount->fun?acceleratorManufacturers->fun?acceleratorNames->fun?acceleratorTotalMemoryMiB->fun?networkBandwidthGbps->fun?allowedInstanceTypes->fun?maxSpotPriceAsPercentageOfOptimalOnDemandPrice->fun?baselinePerformanceFactors->fun?requireEncryptionInTransit->fun()->{vCpuCount;memoryMiB;cpuManufacturers;memoryGiBPerVCpu;excludedInstanceTypes;instanceGenerations;spotMaxPricePercentageOverLowestPrice;onDemandMaxPricePercentageOverLowestPrice;bareMetal;burstablePerformance;requireHibernateSupport;networkInterfaceCount;localStorage;localStorageTypes;totalLocalStorageGB;baselineEbsBandwidthMbps;acceleratorTypes;acceleratorCount;acceleratorManufacturers;acceleratorNames;acceleratorTotalMemoryMiB;networkBandwidthGbps;allowedInstanceTypes;maxSpotPriceAsPercentageOfOptimalOnDemandPrice;baselinePerformanceFactors;requireEncryptionInTransit}letto_valuex=structure_to_value[("vCpuCount",(Option.mapx.vCpuCount~f:VCpuCountRange.to_value));("memoryMiB",(Option.mapx.memoryMiB~f:MemoryMiB.to_value));("cpuManufacturerSet",(Option.mapx.cpuManufacturers~f:CpuManufacturerSet.to_value));("memoryGiBPerVCpu",(Option.mapx.memoryGiBPerVCpu~f:MemoryGiBPerVCpu.to_value));("excludedInstanceTypeSet",(Option.mapx.excludedInstanceTypes~f:ExcludedInstanceTypeSet.to_value));("instanceGenerationSet",(Option.mapx.instanceGenerations~f:InstanceGenerationSet.to_value));("spotMaxPricePercentageOverLowestPrice",(Option.mapx.spotMaxPricePercentageOverLowestPrice~f:Integer.to_value));("onDemandMaxPricePercentageOverLowestPrice",(Option.mapx.onDemandMaxPricePercentageOverLowestPrice~f:Integer.to_value));("bareMetal",(Option.mapx.bareMetal~f:BareMetal.to_value));("burstablePerformance",(Option.mapx.burstablePerformance~f:BurstablePerformance.to_value));("requireHibernateSupport",(Option.mapx.requireHibernateSupport~f:Boolean.to_value));("networkInterfaceCount",(Option.mapx.networkInterfaceCount~f:NetworkInterfaceCount.to_value));("localStorage",(Option.mapx.localStorage~f:LocalStorage.to_value));("localStorageTypeSet",(Option.mapx.localStorageTypes~f:LocalStorageTypeSet.to_value));("totalLocalStorageGB",(Option.mapx.totalLocalStorageGB~f:TotalLocalStorageGB.to_value));("baselineEbsBandwidthMbps",(Option.mapx.baselineEbsBandwidthMbps~f:BaselineEbsBandwidthMbps.to_value));("acceleratorTypeSet",(Option.mapx.acceleratorTypes~f:AcceleratorTypeSet.to_value));("acceleratorCount",(Option.mapx.acceleratorCount~f:AcceleratorCount.to_value));("acceleratorManufacturerSet",(Option.mapx.acceleratorManufacturers~f:AcceleratorManufacturerSet.to_value));("acceleratorNameSet",(Option.mapx.acceleratorNames~f:AcceleratorNameSet.to_value));("acceleratorTotalMemoryMiB",(Option.mapx.acceleratorTotalMemoryMiB~f:AcceleratorTotalMemoryMiB.to_value));("networkBandwidthGbps",(Option.mapx.networkBandwidthGbps~f:NetworkBandwidthGbps.to_value));("allowedInstanceTypeSet",(Option.mapx.allowedInstanceTypes~f:AllowedInstanceTypeSet.to_value));("maxSpotPriceAsPercentageOfOptimalOnDemandPrice",(Option.mapx.maxSpotPriceAsPercentageOfOptimalOnDemandPrice~f:Integer.to_value));("baselinePerformanceFactors",(Option.mapx.baselinePerformanceFactors~f:BaselinePerformanceFactors.to_value));("requireEncryptionInTransit",(Option.mapx.requireEncryptionInTransit~f:Boolean.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letrequireEncryptionInTransit=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"requireEncryptionInTransit")inletbaselinePerformanceFactors=(Option.map~f:BaselinePerformanceFactors.of_xml)(Xml.childxml_arg0"baselinePerformanceFactors")inletmaxSpotPriceAsPercentageOfOptimalOnDemandPrice=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"maxSpotPriceAsPercentageOfOptimalOnDemandPrice")inletallowedInstanceTypes=(Option.map~f:AllowedInstanceTypeSet.of_xml)(Xml.childxml_arg0"allowedInstanceTypeSet")inletnetworkBandwidthGbps=(Option.map~f:NetworkBandwidthGbps.of_xml)(Xml.childxml_arg0"networkBandwidthGbps")inletacceleratorTotalMemoryMiB=(Option.map~f:AcceleratorTotalMemoryMiB.of_xml)(Xml.childxml_arg0"acceleratorTotalMemoryMiB")inletacceleratorNames=(Option.map~f:AcceleratorNameSet.of_xml)(Xml.childxml_arg0"acceleratorNameSet")inletacceleratorManufacturers=(Option.map~f:AcceleratorManufacturerSet.of_xml)(Xml.childxml_arg0"acceleratorManufacturerSet")inletacceleratorCount=(Option.map~f:AcceleratorCount.of_xml)(Xml.childxml_arg0"acceleratorCount")inletacceleratorTypes=(Option.map~f:AcceleratorTypeSet.of_xml)(Xml.childxml_arg0"acceleratorTypeSet")inletbaselineEbsBandwidthMbps=(Option.map~f:BaselineEbsBandwidthMbps.of_xml)(Xml.childxml_arg0"baselineEbsBandwidthMbps")inlettotalLocalStorageGB=(Option.map~f:TotalLocalStorageGB.of_xml)(Xml.childxml_arg0"totalLocalStorageGB")inletlocalStorageTypes=(Option.map~f:LocalStorageTypeSet.of_xml)(Xml.childxml_arg0"localStorageTypeSet")inletlocalStorage=(Option.map~f:LocalStorage.of_xml)(Xml.childxml_arg0"localStorage")inletnetworkInterfaceCount=(Option.map~f:NetworkInterfaceCount.of_xml)(Xml.childxml_arg0"networkInterfaceCount")inletrequireHibernateSupport=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"requireHibernateSupport")inletburstablePerformance=(Option.map~f:BurstablePerformance.of_xml)(Xml.childxml_arg0"burstablePerformance")inletbareMetal=(Option.map~f:BareMetal.of_xml)(Xml.childxml_arg0"bareMetal")inletonDemandMaxPricePercentageOverLowestPrice=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"onDemandMaxPricePercentageOverLowestPrice")inletspotMaxPricePercentageOverLowestPrice=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"spotMaxPricePercentageOverLowestPrice")inletinstanceGenerations=(Option.map~f:InstanceGenerationSet.of_xml)(Xml.childxml_arg0"instanceGenerationSet")inletexcludedInstanceTypes=(Option.map~f:ExcludedInstanceTypeSet.of_xml)(Xml.childxml_arg0"excludedInstanceTypeSet")inletmemoryGiBPerVCpu=(Option.map~f:MemoryGiBPerVCpu.of_xml)(Xml.childxml_arg0"memoryGiBPerVCpu")inletcpuManufacturers=(Option.map~f:CpuManufacturerSet.of_xml)(Xml.childxml_arg0"cpuManufacturerSet")inletmemoryMiB=(Option.map~f:MemoryMiB.of_xml)(Xml.childxml_arg0"memoryMiB")inletvCpuCount=(Option.map~f:VCpuCountRange.of_xml)(Xml.childxml_arg0"vCpuCount")inmake?requireEncryptionInTransit?baselinePerformanceFactors?maxSpotPriceAsPercentageOfOptimalOnDemandPrice?allowedInstanceTypes?networkBandwidthGbps?acceleratorTotalMemoryMiB?acceleratorNames?acceleratorManufacturers?acceleratorCount?acceleratorTypes?baselineEbsBandwidthMbps?totalLocalStorageGB?localStorageTypes?localStorage?networkInterfaceCount?requireHibernateSupport?burstablePerformance?bareMetal?onDemandMaxPricePercentageOverLowestPrice?spotMaxPricePercentageOverLowestPrice?instanceGenerations?excludedInstanceTypes?memoryGiBPerVCpu?cpuManufacturers?memoryMiB?vCpuCount()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letrequireEncryptionInTransit=field_mapjson__"RequireEncryptionInTransit"Boolean.of_jsoninletbaselinePerformanceFactors=field_mapjson__"BaselinePerformanceFactors"BaselinePerformanceFactors.of_jsoninletmaxSpotPriceAsPercentageOfOptimalOnDemandPrice=field_mapjson__"MaxSpotPriceAsPercentageOfOptimalOnDemandPrice"Integer.of_jsoninletallowedInstanceTypes=field_mapjson__"AllowedInstanceTypes"AllowedInstanceTypeSet.of_jsoninletnetworkBandwidthGbps=field_mapjson__"NetworkBandwidthGbps"NetworkBandwidthGbps.of_jsoninletacceleratorTotalMemoryMiB=field_mapjson__"AcceleratorTotalMemoryMiB"AcceleratorTotalMemoryMiB.of_jsoninletacceleratorNames=field_mapjson__"AcceleratorNames"AcceleratorNameSet.of_jsoninletacceleratorManufacturers=field_mapjson__"AcceleratorManufacturers"AcceleratorManufacturerSet.of_jsoninletacceleratorCount=field_mapjson__"AcceleratorCount"AcceleratorCount.of_jsoninletacceleratorTypes=field_mapjson__"AcceleratorTypes"AcceleratorTypeSet.of_jsoninletbaselineEbsBandwidthMbps=field_mapjson__"BaselineEbsBandwidthMbps"BaselineEbsBandwidthMbps.of_jsoninlettotalLocalStorageGB=field_mapjson__"TotalLocalStorageGB"TotalLocalStorageGB.of_jsoninletlocalStorageTypes=field_mapjson__"LocalStorageTypes"LocalStorageTypeSet.of_jsoninletlocalStorage=field_mapjson__"LocalStorage"LocalStorage.of_jsoninletnetworkInterfaceCount=field_mapjson__"NetworkInterfaceCount"NetworkInterfaceCount.of_jsoninletrequireHibernateSupport=field_mapjson__"RequireHibernateSupport"Boolean.of_jsoninletburstablePerformance=field_mapjson__"BurstablePerformance"BurstablePerformance.of_jsoninletbareMetal=field_mapjson__"BareMetal"BareMetal.of_jsoninletonDemandMaxPricePercentageOverLowestPrice=field_mapjson__"OnDemandMaxPricePercentageOverLowestPrice"Integer.of_jsoninletspotMaxPricePercentageOverLowestPrice=field_mapjson__"SpotMaxPricePercentageOverLowestPrice"Integer.of_jsoninletinstanceGenerations=field_mapjson__"InstanceGenerations"InstanceGenerationSet.of_jsoninletexcludedInstanceTypes=field_mapjson__"ExcludedInstanceTypes"ExcludedInstanceTypeSet.of_jsoninletmemoryGiBPerVCpu=field_mapjson__"MemoryGiBPerVCpu"MemoryGiBPerVCpu.of_jsoninletcpuManufacturers=field_mapjson__"CpuManufacturers"CpuManufacturerSet.of_jsoninletmemoryMiB=field_mapjson__"MemoryMiB"MemoryMiB.of_jsoninletvCpuCount=field_mapjson__"VCpuCount"VCpuCountRange.of_jsoninmake?requireEncryptionInTransit?baselinePerformanceFactors?maxSpotPriceAsPercentageOfOptimalOnDemandPrice?allowedInstanceTypes?networkBandwidthGbps?acceleratorTotalMemoryMiB?acceleratorNames?acceleratorManufacturers?acceleratorCount?acceleratorTypes?baselineEbsBandwidthMbps?totalLocalStorageGB?localStorageTypes?localStorage?networkInterfaceCount?requireHibernateSupport?burstablePerformance?bareMetal?onDemandMaxPricePercentageOverLowestPrice?spotMaxPricePercentageOverLowestPrice?instanceGenerations?excludedInstanceTypes?memoryGiBPerVCpu?cpuManufacturers?memoryMiB?vCpuCount()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes. You must specify VCpuCount and MemoryMiB. All other attributes are optional. Any unspecified optional attribute is set to its default. When you specify multiple attributes, you get instance types that satisfy all of the specified attributes. If you specify multiple values for an attribute, you get instance types that satisfy any of the specified values. To limit the list of instance types from which Amazon EC2 can identify matching instance types, you can use one of the following parameters, but not both in the same request: AllowedInstanceTypes - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes. ExcludedInstanceTypes - The instance types to exclude from the list, even if they match your specified attributes. If you specify InstanceRequirements, you can't specify InstanceType. Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the launch instance wizard or with the RunInstances API, you can't specify InstanceRequirements. For more information, see Create mixed instances group using attribute-based instance type selection in the Amazon EC2 Auto Scaling User Guide, and also Specify attributes for instance type selection for EC2 Fleet or Spot Fleet and Spot placement score in the Amazon EC2 User Guide."]moduleInstanceType=structtypenonrect=|A1_medium|A1_large|A1_xlarge|A1_2xlarge|A1_4xlarge|A1_metal|C1_medium|C1_xlarge|C3_large|C3_xlarge|C3_2xlarge|C3_4xlarge|C3_8xlarge|C4_large|C4_xlarge|C4_2xlarge|C4_4xlarge|C4_8xlarge|C5_large|C5_xlarge|C5_2xlarge|C5_4xlarge|C5_9xlarge|C5_12xlarge|C5_18xlarge|C5_24xlarge|C5_metal|C5a_large|C5a_xlarge|C5a_2xlarge|C5a_4xlarge|C5a_8xlarge|C5a_12xlarge|C5a_16xlarge|C5a_24xlarge|C5ad_large|C5ad_xlarge|C5ad_2xlarge|C5ad_4xlarge|C5ad_8xlarge|C5ad_12xlarge|C5ad_16xlarge|C5ad_24xlarge|C5d_large|C5d_xlarge|C5d_2xlarge|C5d_4xlarge|C5d_9xlarge|C5d_12xlarge|C5d_18xlarge|C5d_24xlarge|C5d_metal|C5n_large|C5n_xlarge|C5n_2xlarge|C5n_4xlarge|C5n_9xlarge|C5n_18xlarge|C5n_metal|C6g_medium|C6g_large|C6g_xlarge|C6g_2xlarge|C6g_4xlarge|C6g_8xlarge|C6g_12xlarge|C6g_16xlarge|C6g_metal|C6gd_medium|C6gd_large|C6gd_xlarge|C6gd_2xlarge|C6gd_4xlarge|C6gd_8xlarge|C6gd_12xlarge|C6gd_16xlarge|C6gd_metal|C6gn_medium|C6gn_large|C6gn_xlarge|C6gn_2xlarge|C6gn_4xlarge|C6gn_8xlarge|C6gn_12xlarge|C6gn_16xlarge|C6i_large|C6i_xlarge|C6i_2xlarge|C6i_4xlarge|C6i_8xlarge|C6i_12xlarge|C6i_16xlarge|C6i_24xlarge|C6i_32xlarge|C6i_metal|Cc1_4xlarge|Cc2_8xlarge|Cg1_4xlarge|Cr1_8xlarge|D2_xlarge|D2_2xlarge|D2_4xlarge|D2_8xlarge|D3_xlarge|D3_2xlarge|D3_4xlarge|D3_8xlarge|D3en_xlarge|D3en_2xlarge|D3en_4xlarge|D3en_6xlarge|D3en_8xlarge|D3en_12xlarge|Dl1_24xlarge|F1_2xlarge|F1_4xlarge|F1_16xlarge|G2_2xlarge|G2_8xlarge|G3_4xlarge|G3_8xlarge|G3_16xlarge|G3s_xlarge|G4ad_xlarge|G4ad_2xlarge|G4ad_4xlarge|G4ad_8xlarge|G4ad_16xlarge|G4dn_xlarge|G4dn_2xlarge|G4dn_4xlarge|G4dn_8xlarge|G4dn_12xlarge|G4dn_16xlarge|G4dn_metal|G5_xlarge|G5_2xlarge|G5_4xlarge|G5_8xlarge|G5_12xlarge|G5_16xlarge|G5_24xlarge|G5_48xlarge|G5g_xlarge|G5g_2xlarge|G5g_4xlarge|G5g_8xlarge|G5g_16xlarge|G5g_metal|Hi1_4xlarge|Hpc6a_48xlarge|Hs1_8xlarge|H1_2xlarge|H1_4xlarge|H1_8xlarge|H1_16xlarge|I2_xlarge|I2_2xlarge|I2_4xlarge|I2_8xlarge|I3_large|I3_xlarge|I3_2xlarge|I3_4xlarge|I3_8xlarge|I3_16xlarge|I3_metal|I3en_large|I3en_xlarge|I3en_2xlarge|I3en_3xlarge|I3en_6xlarge|I3en_12xlarge|I3en_24xlarge|I3en_metal|Im4gn_large|Im4gn_xlarge|Im4gn_2xlarge|Im4gn_4xlarge|Im4gn_8xlarge|Im4gn_16xlarge|Inf1_xlarge|Inf1_2xlarge|Inf1_6xlarge|Inf1_24xlarge|Is4gen_medium|Is4gen_large|Is4gen_xlarge|Is4gen_2xlarge|Is4gen_4xlarge|Is4gen_8xlarge|M1_small|M1_medium|M1_large|M1_xlarge|M2_xlarge|M2_2xlarge|M2_4xlarge|M3_medium|M3_large|M3_xlarge|M3_2xlarge|M4_large|M4_xlarge|M4_2xlarge|M4_4xlarge|M4_10xlarge|M4_16xlarge|M5_large|M5_xlarge|M5_2xlarge|M5_4xlarge|M5_8xlarge|M5_12xlarge|M5_16xlarge|M5_24xlarge|M5_metal|M5a_large|M5a_xlarge|M5a_2xlarge|M5a_4xlarge|M5a_8xlarge|M5a_12xlarge|M5a_16xlarge|M5a_24xlarge|M5ad_large|M5ad_xlarge|M5ad_2xlarge|M5ad_4xlarge|M5ad_8xlarge|M5ad_12xlarge|M5ad_16xlarge|M5ad_24xlarge|M5d_large|M5d_xlarge|M5d_2xlarge|M5d_4xlarge|M5d_8xlarge|M5d_12xlarge|M5d_16xlarge|M5d_24xlarge|M5d_metal|M5dn_large|M5dn_xlarge|M5dn_2xlarge|M5dn_4xlarge|M5dn_8xlarge|M5dn_12xlarge|M5dn_16xlarge|M5dn_24xlarge|M5dn_metal|M5n_large|M5n_xlarge|M5n_2xlarge|M5n_4xlarge|M5n_8xlarge|M5n_12xlarge|M5n_16xlarge|M5n_24xlarge|M5n_metal|M5zn_large|M5zn_xlarge|M5zn_2xlarge|M5zn_3xlarge|M5zn_6xlarge|M5zn_12xlarge|M5zn_metal|M6a_large|M6a_xlarge|M6a_2xlarge|M6a_4xlarge|M6a_8xlarge|M6a_12xlarge|M6a_16xlarge|M6a_24xlarge|M6a_32xlarge|M6a_48xlarge|M6g_metal|M6g_medium|M6g_large|M6g_xlarge|M6g_2xlarge|M6g_4xlarge|M6g_8xlarge|M6g_12xlarge|M6g_16xlarge|M6gd_metal|M6gd_medium|M6gd_large|M6gd_xlarge|M6gd_2xlarge|M6gd_4xlarge|M6gd_8xlarge|M6gd_12xlarge|M6gd_16xlarge|M6i_large|M6i_xlarge|M6i_2xlarge|M6i_4xlarge|M6i_8xlarge|M6i_12xlarge|M6i_16xlarge|M6i_24xlarge|M6i_32xlarge|M6i_metal|Mac1_metal|P2_xlarge|P2_8xlarge|P2_16xlarge|P3_2xlarge|P3_8xlarge|P3_16xlarge|P3dn_24xlarge|P4d_24xlarge|R3_large|R3_xlarge|R3_2xlarge|R3_4xlarge|R3_8xlarge|R4_large|R4_xlarge|R4_2xlarge|R4_4xlarge|R4_8xlarge|R4_16xlarge|R5_large|R5_xlarge|R5_2xlarge|R5_4xlarge|R5_8xlarge|R5_12xlarge|R5_16xlarge|R5_24xlarge|R5_metal|R5a_large|R5a_xlarge|R5a_2xlarge|R5a_4xlarge|R5a_8xlarge|R5a_12xlarge|R5a_16xlarge|R5a_24xlarge|R5ad_large|R5ad_xlarge|R5ad_2xlarge|R5ad_4xlarge|R5ad_8xlarge|R5ad_12xlarge|R5ad_16xlarge|R5ad_24xlarge|R5b_large|R5b_xlarge|R5b_2xlarge|R5b_4xlarge|R5b_8xlarge|R5b_12xlarge|R5b_16xlarge|R5b_24xlarge|R5b_metal|R5d_large|R5d_xlarge|R5d_2xlarge|R5d_4xlarge|R5d_8xlarge|R5d_12xlarge|R5d_16xlarge|R5d_24xlarge|R5d_metal|R5dn_large|R5dn_xlarge|R5dn_2xlarge|R5dn_4xlarge|R5dn_8xlarge|R5dn_12xlarge|R5dn_16xlarge|R5dn_24xlarge|R5dn_metal|R5n_large|R5n_xlarge|R5n_2xlarge|R5n_4xlarge|R5n_8xlarge|R5n_12xlarge|R5n_16xlarge|R5n_24xlarge|R5n_metal|R6g_medium|R6g_large|R6g_xlarge|R6g_2xlarge|R6g_4xlarge|R6g_8xlarge|R6g_12xlarge|R6g_16xlarge|R6g_metal|R6gd_medium|R6gd_large|R6gd_xlarge|R6gd_2xlarge|R6gd_4xlarge|R6gd_8xlarge|R6gd_12xlarge|R6gd_16xlarge|R6gd_metal|R6i_large|R6i_xlarge|R6i_2xlarge|R6i_4xlarge|R6i_8xlarge|R6i_12xlarge|R6i_16xlarge|R6i_24xlarge|R6i_32xlarge|R6i_metal|T1_micro|T2_nano|T2_micro|T2_small|T2_medium|T2_large|T2_xlarge|T2_2xlarge|T3_nano|T3_micro|T3_small|T3_medium|T3_large|T3_xlarge|T3_2xlarge|T3a_nano|T3a_micro|T3a_small|T3a_medium|T3a_large|T3a_xlarge|T3a_2xlarge|T4g_nano|T4g_micro|T4g_small|T4g_medium|T4g_large|T4g_xlarge|T4g_2xlarge|U_6tb1_56xlarge|U_6tb1_112xlarge|U_9tb1_112xlarge|U_12tb1_112xlarge|U_6tb1_metal|U_9tb1_metal|U_12tb1_metal|U_18tb1_metal|U_24tb1_metal|Vt1_3xlarge|Vt1_6xlarge|Vt1_24xlarge|X1_16xlarge|X1_32xlarge|X1e_xlarge|X1e_2xlarge|X1e_4xlarge|X1e_8xlarge|X1e_16xlarge|X1e_32xlarge|X2iezn_2xlarge|X2iezn_4xlarge|X2iezn_6xlarge|X2iezn_8xlarge|X2iezn_12xlarge|X2iezn_metal|X2gd_medium|X2gd_large|X2gd_xlarge|X2gd_2xlarge|X2gd_4xlarge|X2gd_8xlarge|X2gd_12xlarge|X2gd_16xlarge|X2gd_metal|Z1d_large|Z1d_xlarge|Z1d_2xlarge|Z1d_3xlarge|Z1d_6xlarge|Z1d_12xlarge|Z1d_metal|X2idn_16xlarge|X2idn_24xlarge|X2idn_32xlarge|X2iedn_xlarge|X2iedn_2xlarge|X2iedn_4xlarge|X2iedn_8xlarge|X2iedn_16xlarge|X2iedn_24xlarge|X2iedn_32xlarge|C6a_large|C6a_xlarge|C6a_2xlarge|C6a_4xlarge|C6a_8xlarge|C6a_12xlarge|C6a_16xlarge|C6a_24xlarge|C6a_32xlarge|C6a_48xlarge|C6a_metal|M6a_metal|I4i_large|I4i_xlarge|I4i_2xlarge|I4i_4xlarge|I4i_8xlarge|I4i_16xlarge|I4i_32xlarge|I4i_metal|X2idn_metal|X2iedn_metal|C7g_medium|C7g_large|C7g_xlarge|C7g_2xlarge|C7g_4xlarge|C7g_8xlarge|C7g_12xlarge|C7g_16xlarge|Mac2_metal|C6id_large|C6id_xlarge|C6id_2xlarge|C6id_4xlarge|C6id_8xlarge|C6id_12xlarge|C6id_16xlarge|C6id_24xlarge|C6id_32xlarge|C6id_metal|M6id_large|M6id_xlarge|M6id_2xlarge|M6id_4xlarge|M6id_8xlarge|M6id_12xlarge|M6id_16xlarge|M6id_24xlarge|M6id_32xlarge|M6id_metal|R6id_large|R6id_xlarge|R6id_2xlarge|R6id_4xlarge|R6id_8xlarge|R6id_12xlarge|R6id_16xlarge|R6id_24xlarge|R6id_32xlarge|R6id_metal|R6a_large|R6a_xlarge|R6a_2xlarge|R6a_4xlarge|R6a_8xlarge|R6a_12xlarge|R6a_16xlarge|R6a_24xlarge|R6a_32xlarge|R6a_48xlarge|R6a_metal|P4de_24xlarge|U_3tb1_56xlarge|U_18tb1_112xlarge|U_24tb1_112xlarge|Trn1_2xlarge|Trn1_32xlarge|Hpc6id_32xlarge|C6in_large|C6in_xlarge|C6in_2xlarge|C6in_4xlarge|C6in_8xlarge|C6in_12xlarge|C6in_16xlarge|C6in_24xlarge|C6in_32xlarge|M6in_large|M6in_xlarge|M6in_2xlarge|M6in_4xlarge|M6in_8xlarge|M6in_12xlarge|M6in_16xlarge|M6in_24xlarge|M6in_32xlarge|M6idn_large|M6idn_xlarge|M6idn_2xlarge|M6idn_4xlarge|M6idn_8xlarge|M6idn_12xlarge|M6idn_16xlarge|M6idn_24xlarge|M6idn_32xlarge|R6in_large|R6in_xlarge|R6in_2xlarge|R6in_4xlarge|R6in_8xlarge|R6in_12xlarge|R6in_16xlarge|R6in_24xlarge|R6in_32xlarge|R6idn_large|R6idn_xlarge|R6idn_2xlarge|R6idn_4xlarge|R6idn_8xlarge|R6idn_12xlarge|R6idn_16xlarge|R6idn_24xlarge|R6idn_32xlarge|C7g_metal|M7g_medium|M7g_large|M7g_xlarge|M7g_2xlarge|M7g_4xlarge|M7g_8xlarge|M7g_12xlarge|M7g_16xlarge|M7g_metal|R7g_medium|R7g_large|R7g_xlarge|R7g_2xlarge|R7g_4xlarge|R7g_8xlarge|R7g_12xlarge|R7g_16xlarge|R7g_metal|C6in_metal|M6in_metal|M6idn_metal|R6in_metal|R6idn_metal|Inf2_xlarge|Inf2_8xlarge|Inf2_24xlarge|Inf2_48xlarge|Trn1n_32xlarge|I4g_large|I4g_xlarge|I4g_2xlarge|I4g_4xlarge|I4g_8xlarge|I4g_16xlarge|Hpc7g_4xlarge|Hpc7g_8xlarge|Hpc7g_16xlarge|C7gn_medium|C7gn_large|C7gn_xlarge|C7gn_2xlarge|C7gn_4xlarge|C7gn_8xlarge|C7gn_12xlarge|C7gn_16xlarge|P5_48xlarge|M7i_large|M7i_xlarge|M7i_2xlarge|M7i_4xlarge|M7i_8xlarge|M7i_12xlarge|M7i_16xlarge|M7i_24xlarge|M7i_48xlarge|M7i_flex_large|M7i_flex_xlarge|M7i_flex_2xlarge|M7i_flex_4xlarge|M7i_flex_8xlarge|M7a_medium|M7a_large|M7a_xlarge|M7a_2xlarge|M7a_4xlarge|M7a_8xlarge|M7a_12xlarge|M7a_16xlarge|M7a_24xlarge|M7a_32xlarge|M7a_48xlarge|M7a_metal_48xl|Hpc7a_12xlarge|Hpc7a_24xlarge|Hpc7a_48xlarge|Hpc7a_96xlarge|C7gd_medium|C7gd_large|C7gd_xlarge|C7gd_2xlarge|C7gd_4xlarge|C7gd_8xlarge|C7gd_12xlarge|C7gd_16xlarge|M7gd_medium|M7gd_large|M7gd_xlarge|M7gd_2xlarge|M7gd_4xlarge|M7gd_8xlarge|M7gd_12xlarge|M7gd_16xlarge|R7gd_medium|R7gd_large|R7gd_xlarge|R7gd_2xlarge|R7gd_4xlarge|R7gd_8xlarge|R7gd_12xlarge|R7gd_16xlarge|R7a_medium|R7a_large|R7a_xlarge|R7a_2xlarge|R7a_4xlarge|R7a_8xlarge|R7a_12xlarge|R7a_16xlarge|R7a_24xlarge|R7a_32xlarge|R7a_48xlarge|C7i_large|C7i_xlarge|C7i_2xlarge|C7i_4xlarge|C7i_8xlarge|C7i_12xlarge|C7i_16xlarge|C7i_24xlarge|C7i_48xlarge|Mac2_m2pro_metal|R7iz_large|R7iz_xlarge|R7iz_2xlarge|R7iz_4xlarge|R7iz_8xlarge|R7iz_12xlarge|R7iz_16xlarge|R7iz_32xlarge|C7a_medium|C7a_large|C7a_xlarge|C7a_2xlarge|C7a_4xlarge|C7a_8xlarge|C7a_12xlarge|C7a_16xlarge|C7a_24xlarge|C7a_32xlarge|C7a_48xlarge|C7a_metal_48xl|R7a_metal_48xl|R7i_large|R7i_xlarge|R7i_2xlarge|R7i_4xlarge|R7i_8xlarge|R7i_12xlarge|R7i_16xlarge|R7i_24xlarge|R7i_48xlarge|Dl2q_24xlarge|Mac2_m2_metal|I4i_12xlarge|I4i_24xlarge|C7i_metal_24xl|C7i_metal_48xl|M7i_metal_24xl|M7i_metal_48xl|R7i_metal_24xl|R7i_metal_48xl|R7iz_metal_16xl|R7iz_metal_32xl|C7gd_metal|M7gd_metal|R7gd_metal|G6_xlarge|G6_2xlarge|G6_4xlarge|G6_8xlarge|G6_12xlarge|G6_16xlarge|G6_24xlarge|G6_48xlarge|Gr6_4xlarge|Gr6_8xlarge|C7i_flex_large|C7i_flex_xlarge|C7i_flex_2xlarge|C7i_flex_4xlarge|C7i_flex_8xlarge|U7i_12tb_224xlarge|U7in_16tb_224xlarge|U7in_24tb_224xlarge|U7in_32tb_224xlarge|U7ib_12tb_224xlarge|C7gn_metal|R8g_medium|R8g_large|R8g_xlarge|R8g_2xlarge|R8g_4xlarge|R8g_8xlarge|R8g_12xlarge|R8g_16xlarge|R8g_24xlarge|R8g_48xlarge|R8g_metal_24xl|R8g_metal_48xl|Mac2_m1ultra_metal|G6e_xlarge|G6e_2xlarge|G6e_4xlarge|G6e_8xlarge|G6e_12xlarge|G6e_16xlarge|G6e_24xlarge|G6e_48xlarge|C8g_medium|C8g_large|C8g_xlarge|C8g_2xlarge|C8g_4xlarge|C8g_8xlarge|C8g_12xlarge|C8g_16xlarge|C8g_24xlarge|C8g_48xlarge|C8g_metal_24xl|C8g_metal_48xl|M8g_medium|M8g_large|M8g_xlarge|M8g_2xlarge|M8g_4xlarge|M8g_8xlarge|M8g_12xlarge|M8g_16xlarge|M8g_24xlarge|M8g_48xlarge|M8g_metal_24xl|M8g_metal_48xl|X8g_medium|X8g_large|X8g_xlarge|X8g_2xlarge|X8g_4xlarge|X8g_8xlarge|X8g_12xlarge|X8g_16xlarge|X8g_24xlarge|X8g_48xlarge|X8g_metal_24xl|X8g_metal_48xl|I7ie_large|I7ie_xlarge|I7ie_2xlarge|I7ie_3xlarge|I7ie_6xlarge|I7ie_12xlarge|I7ie_18xlarge|I7ie_24xlarge|I7ie_48xlarge|I8g_large|I8g_xlarge|I8g_2xlarge|I8g_4xlarge|I8g_8xlarge|I8g_12xlarge|I8g_16xlarge|I8g_24xlarge|I8g_metal_24xl|U7i_6tb_112xlarge|U7i_8tb_112xlarge|U7inh_32tb_480xlarge|P5e_48xlarge|P5en_48xlarge|F2_12xlarge|F2_48xlarge|Trn2_48xlarge|C7i_flex_12xlarge|C7i_flex_16xlarge|M7i_flex_12xlarge|M7i_flex_16xlarge|I7ie_metal_24xl|I7ie_metal_48xl|I8g_48xlarge|C8gd_medium|C8gd_large|C8gd_xlarge|C8gd_2xlarge|C8gd_4xlarge|C8gd_8xlarge|C8gd_12xlarge|C8gd_16xlarge|C8gd_24xlarge|C8gd_48xlarge|C8gd_metal_24xl|C8gd_metal_48xl|I7i_large|I7i_xlarge|I7i_2xlarge|I7i_4xlarge|I7i_8xlarge|I7i_12xlarge|I7i_16xlarge|I7i_24xlarge|I7i_48xlarge|I7i_metal_24xl|I7i_metal_48xl|P6_b200_48xlarge|M8gd_medium|M8gd_large|M8gd_xlarge|M8gd_2xlarge|M8gd_4xlarge|M8gd_8xlarge|M8gd_12xlarge|M8gd_16xlarge|M8gd_24xlarge|M8gd_48xlarge|M8gd_metal_24xl|M8gd_metal_48xl|R8gd_medium|R8gd_large|R8gd_xlarge|R8gd_2xlarge|R8gd_4xlarge|R8gd_8xlarge|R8gd_12xlarge|R8gd_16xlarge|R8gd_24xlarge|R8gd_48xlarge|R8gd_metal_24xl|R8gd_metal_48xl|C8gn_medium|C8gn_large|C8gn_xlarge|C8gn_2xlarge|C8gn_4xlarge|C8gn_8xlarge|C8gn_12xlarge|C8gn_16xlarge|C8gn_24xlarge|C8gn_48xlarge|C8gn_metal_24xl|C8gn_metal_48xl|F2_6xlarge|P6e_gb200_36xlarge|G6f_large|G6f_xlarge|G6f_2xlarge|G6f_4xlarge|Gr6f_4xlarge|P5_4xlarge|R8i_large|R8i_xlarge|R8i_2xlarge|R8i_4xlarge|R8i_8xlarge|R8i_12xlarge|R8i_16xlarge|R8i_24xlarge|R8i_32xlarge|R8i_48xlarge|R8i_96xlarge|R8i_metal_48xl|R8i_metal_96xl|R8i_flex_large|R8i_flex_xlarge|R8i_flex_2xlarge|R8i_flex_4xlarge|R8i_flex_8xlarge|R8i_flex_12xlarge|R8i_flex_16xlarge|M8i_large|M8i_xlarge|M8i_2xlarge|M8i_4xlarge|M8i_8xlarge|M8i_12xlarge|M8i_16xlarge|M8i_24xlarge|M8i_32xlarge|M8i_48xlarge|M8i_96xlarge|M8i_metal_48xl|M8i_metal_96xl|M8i_flex_large|M8i_flex_xlarge|M8i_flex_2xlarge|M8i_flex_4xlarge|M8i_flex_8xlarge|M8i_flex_12xlarge|M8i_flex_16xlarge|I8ge_large|I8ge_xlarge|I8ge_2xlarge|I8ge_3xlarge|I8ge_6xlarge|I8ge_12xlarge|I8ge_18xlarge|I8ge_24xlarge|I8ge_48xlarge|I8ge_metal_24xl|I8ge_metal_48xl|Mac_m4_metal|Mac_m4pro_metal|R8gn_medium|R8gn_large|R8gn_xlarge|R8gn_2xlarge|R8gn_4xlarge|R8gn_8xlarge|R8gn_12xlarge|R8gn_16xlarge|R8gn_24xlarge|R8gn_48xlarge|R8gn_metal_24xl|R8gn_metal_48xl|C8i_large|C8i_xlarge|C8i_2xlarge|C8i_4xlarge|C8i_8xlarge|C8i_12xlarge|C8i_16xlarge|C8i_24xlarge|C8i_32xlarge|C8i_48xlarge|C8i_96xlarge|C8i_metal_48xl|C8i_metal_96xl|C8i_flex_large|C8i_flex_xlarge|C8i_flex_2xlarge|C8i_flex_4xlarge|C8i_flex_8xlarge|C8i_flex_12xlarge|C8i_flex_16xlarge|R8gb_medium|R8gb_large|R8gb_xlarge|R8gb_2xlarge|R8gb_4xlarge|R8gb_8xlarge|R8gb_12xlarge|R8gb_16xlarge|R8gb_24xlarge|R8gb_metal_24xl|M8a_medium|M8a_large|M8a_xlarge|M8a_2xlarge|M8a_4xlarge|M8a_8xlarge|M8a_12xlarge|M8a_16xlarge|M8a_24xlarge|M8a_48xlarge|M8a_metal_24xl|M8a_metal_48xl|Trn2_3xlarge|R8a_medium|R8a_large|R8a_xlarge|R8a_2xlarge|R8a_4xlarge|R8a_8xlarge|R8a_12xlarge|R8a_16xlarge|R8a_24xlarge|R8a_48xlarge|R8a_metal_24xl|R8a_metal_48xl|P6_b300_48xlarge|C8a_medium|C8a_large|C8a_xlarge|C8a_2xlarge|C8a_4xlarge|C8a_8xlarge|C8a_12xlarge|C8a_16xlarge|C8a_24xlarge|C8a_48xlarge|C8a_metal_24xl|C8a_metal_48xl|C8gb_12xlarge|C8gb_16xlarge|C8gb_24xlarge|C8gb_2xlarge|C8gb_4xlarge|C8gb_8xlarge|C8gb_large|C8gb_medium|C8gb_metal_24xl|C8gb_xlarge|C8gb_48xlarge|C8gb_metal_48xl|M8gb_12xlarge|M8gb_16xlarge|M8gb_24xlarge|M8gb_2xlarge|M8gb_4xlarge|M8gb_8xlarge|M8gb_large|M8gb_medium|M8gb_xlarge|M8gb_48xlarge|M8gb_metal_24xl|M8gb_metal_48xl|M8gn_12xlarge|M8gn_16xlarge|M8gn_24xlarge|M8gn_2xlarge|M8gn_48xlarge|M8gn_4xlarge|M8gn_8xlarge|M8gn_large|M8gn_medium|M8gn_xlarge|M8gn_metal_24xl|M8gn_metal_48xl|X8aedz_12xlarge|X8aedz_24xlarge|X8aedz_3xlarge|X8aedz_6xlarge|X8aedz_large|X8aedz_metal_12xl|X8aedz_metal_24xl|X8aedz_xlarge|M8azn_medium|M8azn_large|M8azn_xlarge|M8azn_3xlarge|M8azn_6xlarge|M8azn_12xlarge|M8azn_24xlarge|M8azn_metal_12xl|M8azn_metal_24xl|X8i_large|X8i_xlarge|X8i_2xlarge|X8i_4xlarge|X8i_8xlarge|X8i_12xlarge|X8i_16xlarge|X8i_24xlarge|X8i_32xlarge|X8i_48xlarge|X8i_64xlarge|X8i_96xlarge|X8i_metal_48xl|X8i_metal_96xl|Mac_m4max_metal|G7e_2xlarge|G7e_4xlarge|G7e_8xlarge|G7e_12xlarge|G7e_24xlarge|G7e_48xlarge|R8id_large|R8id_xlarge|R8id_2xlarge|R8id_4xlarge|R8id_8xlarge|R8id_12xlarge|R8id_16xlarge|R8id_24xlarge|R8id_32xlarge|R8id_48xlarge|R8id_96xlarge|R8id_metal_48xl|R8id_metal_96xl|C8id_large|C8id_xlarge|C8id_2xlarge|C8id_4xlarge|C8id_8xlarge|C8id_12xlarge|C8id_16xlarge|C8id_24xlarge|C8id_32xlarge|C8id_48xlarge|C8id_96xlarge|C8id_metal_48xl|C8id_metal_96xl|M8id_large|M8id_xlarge|M8id_2xlarge|M8id_4xlarge|M8id_8xlarge|M8id_12xlarge|M8id_16xlarge|M8id_24xlarge|M8id_32xlarge|M8id_48xlarge|M8id_96xlarge|M8id_metal_48xl|M8id_metal_96xl|Hpc8a_96xlarge|Non_static_idofstringletmakei=iletto_string=function|A1_medium->"a1.medium"|A1_large->"a1.large"|A1_xlarge->"a1.xlarge"|A1_2xlarge->"a1.2xlarge"|A1_4xlarge->"a1.4xlarge"|A1_metal->"a1.metal"|C1_medium->"c1.medium"|C1_xlarge->"c1.xlarge"|C3_large->"c3.large"|C3_xlarge->"c3.xlarge"|C3_2xlarge->"c3.2xlarge"|C3_4xlarge->"c3.4xlarge"|C3_8xlarge->"c3.8xlarge"|C4_large->"c4.large"|C4_xlarge->"c4.xlarge"|C4_2xlarge->"c4.2xlarge"|C4_4xlarge->"c4.4xlarge"|C4_8xlarge->"c4.8xlarge"|C5_large->"c5.large"|C5_xlarge->"c5.xlarge"|C5_2xlarge->"c5.2xlarge"|C5_4xlarge->"c5.4xlarge"|C5_9xlarge->"c5.9xlarge"|C5_12xlarge->"c5.12xlarge"|C5_18xlarge->"c5.18xlarge"|C5_24xlarge->"c5.24xlarge"|C5_metal->"c5.metal"|C5a_large->"c5a.large"|C5a_xlarge->"c5a.xlarge"|C5a_2xlarge->"c5a.2xlarge"|C5a_4xlarge->"c5a.4xlarge"|C5a_8xlarge->"c5a.8xlarge"|C5a_12xlarge->"c5a.12xlarge"|C5a_16xlarge->"c5a.16xlarge"|C5a_24xlarge->"c5a.24xlarge"|C5ad_large->"c5ad.large"|C5ad_xlarge->"c5ad.xlarge"|C5ad_2xlarge->"c5ad.2xlarge"|C5ad_4xlarge->"c5ad.4xlarge"|C5ad_8xlarge->"c5ad.8xlarge"|C5ad_12xlarge->"c5ad.12xlarge"|C5ad_16xlarge->"c5ad.16xlarge"|C5ad_24xlarge->"c5ad.24xlarge"|C5d_large->"c5d.large"|C5d_xlarge->"c5d.xlarge"|C5d_2xlarge->"c5d.2xlarge"|C5d_4xlarge->"c5d.4xlarge"|C5d_9xlarge->"c5d.9xlarge"|C5d_12xlarge->"c5d.12xlarge"|C5d_18xlarge->"c5d.18xlarge"|C5d_24xlarge->"c5d.24xlarge"|C5d_metal->"c5d.metal"|C5n_large->"c5n.large"|C5n_xlarge->"c5n.xlarge"|C5n_2xlarge->"c5n.2xlarge"|C5n_4xlarge->"c5n.4xlarge"|C5n_9xlarge->"c5n.9xlarge"|C5n_18xlarge->"c5n.18xlarge"|C5n_metal->"c5n.metal"|C6g_medium->"c6g.medium"|C6g_large->"c6g.large"|C6g_xlarge->"c6g.xlarge"|C6g_2xlarge->"c6g.2xlarge"|C6g_4xlarge->"c6g.4xlarge"|C6g_8xlarge->"c6g.8xlarge"|C6g_12xlarge->"c6g.12xlarge"|C6g_16xlarge->"c6g.16xlarge"|C6g_metal->"c6g.metal"|C6gd_medium->"c6gd.medium"|C6gd_large->"c6gd.large"|C6gd_xlarge->"c6gd.xlarge"|C6gd_2xlarge->"c6gd.2xlarge"|C6gd_4xlarge->"c6gd.4xlarge"|C6gd_8xlarge->"c6gd.8xlarge"|C6gd_12xlarge->"c6gd.12xlarge"|C6gd_16xlarge->"c6gd.16xlarge"|C6gd_metal->"c6gd.metal"|C6gn_medium->"c6gn.medium"|C6gn_large->"c6gn.large"|C6gn_xlarge->"c6gn.xlarge"|C6gn_2xlarge->"c6gn.2xlarge"|C6gn_4xlarge->"c6gn.4xlarge"|C6gn_8xlarge->"c6gn.8xlarge"|C6gn_12xlarge->"c6gn.12xlarge"|C6gn_16xlarge->"c6gn.16xlarge"|C6i_large->"c6i.large"|C6i_xlarge->"c6i.xlarge"|C6i_2xlarge->"c6i.2xlarge"|C6i_4xlarge->"c6i.4xlarge"|C6i_8xlarge->"c6i.8xlarge"|C6i_12xlarge->"c6i.12xlarge"|C6i_16xlarge->"c6i.16xlarge"|C6i_24xlarge->"c6i.24xlarge"|C6i_32xlarge->"c6i.32xlarge"|C6i_metal->"c6i.metal"|Cc1_4xlarge->"cc1.4xlarge"|Cc2_8xlarge->"cc2.8xlarge"|Cg1_4xlarge->"cg1.4xlarge"|Cr1_8xlarge->"cr1.8xlarge"|D2_xlarge->"d2.xlarge"|D2_2xlarge->"d2.2xlarge"|D2_4xlarge->"d2.4xlarge"|D2_8xlarge->"d2.8xlarge"|D3_xlarge->"d3.xlarge"|D3_2xlarge->"d3.2xlarge"|D3_4xlarge->"d3.4xlarge"|D3_8xlarge->"d3.8xlarge"|D3en_xlarge->"d3en.xlarge"|D3en_2xlarge->"d3en.2xlarge"|D3en_4xlarge->"d3en.4xlarge"|D3en_6xlarge->"d3en.6xlarge"|D3en_8xlarge->"d3en.8xlarge"|D3en_12xlarge->"d3en.12xlarge"|Dl1_24xlarge->"dl1.24xlarge"|F1_2xlarge->"f1.2xlarge"|F1_4xlarge->"f1.4xlarge"|F1_16xlarge->"f1.16xlarge"|G2_2xlarge->"g2.2xlarge"|G2_8xlarge->"g2.8xlarge"|G3_4xlarge->"g3.4xlarge"|G3_8xlarge->"g3.8xlarge"|G3_16xlarge->"g3.16xlarge"|G3s_xlarge->"g3s.xlarge"|G4ad_xlarge->"g4ad.xlarge"|G4ad_2xlarge->"g4ad.2xlarge"|G4ad_4xlarge->"g4ad.4xlarge"|G4ad_8xlarge->"g4ad.8xlarge"|G4ad_16xlarge->"g4ad.16xlarge"|G4dn_xlarge->"g4dn.xlarge"|G4dn_2xlarge->"g4dn.2xlarge"|G4dn_4xlarge->"g4dn.4xlarge"|G4dn_8xlarge->"g4dn.8xlarge"|G4dn_12xlarge->"g4dn.12xlarge"|G4dn_16xlarge->"g4dn.16xlarge"|G4dn_metal->"g4dn.metal"|G5_xlarge->"g5.xlarge"|G5_2xlarge->"g5.2xlarge"|G5_4xlarge->"g5.4xlarge"|G5_8xlarge->"g5.8xlarge"|G5_12xlarge->"g5.12xlarge"|G5_16xlarge->"g5.16xlarge"|G5_24xlarge->"g5.24xlarge"|G5_48xlarge->"g5.48xlarge"|G5g_xlarge->"g5g.xlarge"|G5g_2xlarge->"g5g.2xlarge"|G5g_4xlarge->"g5g.4xlarge"|G5g_8xlarge->"g5g.8xlarge"|G5g_16xlarge->"g5g.16xlarge"|G5g_metal->"g5g.metal"|Hi1_4xlarge->"hi1.4xlarge"|Hpc6a_48xlarge->"hpc6a.48xlarge"|Hs1_8xlarge->"hs1.8xlarge"|H1_2xlarge->"h1.2xlarge"|H1_4xlarge->"h1.4xlarge"|H1_8xlarge->"h1.8xlarge"|H1_16xlarge->"h1.16xlarge"|I2_xlarge->"i2.xlarge"|I2_2xlarge->"i2.2xlarge"|I2_4xlarge->"i2.4xlarge"|I2_8xlarge->"i2.8xlarge"|I3_large->"i3.large"|I3_xlarge->"i3.xlarge"|I3_2xlarge->"i3.2xlarge"|I3_4xlarge->"i3.4xlarge"|I3_8xlarge->"i3.8xlarge"|I3_16xlarge->"i3.16xlarge"|I3_metal->"i3.metal"|I3en_large->"i3en.large"|I3en_xlarge->"i3en.xlarge"|I3en_2xlarge->"i3en.2xlarge"|I3en_3xlarge->"i3en.3xlarge"|I3en_6xlarge->"i3en.6xlarge"|I3en_12xlarge->"i3en.12xlarge"|I3en_24xlarge->"i3en.24xlarge"|I3en_metal->"i3en.metal"|Im4gn_large->"im4gn.large"|Im4gn_xlarge->"im4gn.xlarge"|Im4gn_2xlarge->"im4gn.2xlarge"|Im4gn_4xlarge->"im4gn.4xlarge"|Im4gn_8xlarge->"im4gn.8xlarge"|Im4gn_16xlarge->"im4gn.16xlarge"|Inf1_xlarge->"inf1.xlarge"|Inf1_2xlarge->"inf1.2xlarge"|Inf1_6xlarge->"inf1.6xlarge"|Inf1_24xlarge->"inf1.24xlarge"|Is4gen_medium->"is4gen.medium"|Is4gen_large->"is4gen.large"|Is4gen_xlarge->"is4gen.xlarge"|Is4gen_2xlarge->"is4gen.2xlarge"|Is4gen_4xlarge->"is4gen.4xlarge"|Is4gen_8xlarge->"is4gen.8xlarge"|M1_small->"m1.small"|M1_medium->"m1.medium"|M1_large->"m1.large"|M1_xlarge->"m1.xlarge"|M2_xlarge->"m2.xlarge"|M2_2xlarge->"m2.2xlarge"|M2_4xlarge->"m2.4xlarge"|M3_medium->"m3.medium"|M3_large->"m3.large"|M3_xlarge->"m3.xlarge"|M3_2xlarge->"m3.2xlarge"|M4_large->"m4.large"|M4_xlarge->"m4.xlarge"|M4_2xlarge->"m4.2xlarge"|M4_4xlarge->"m4.4xlarge"|M4_10xlarge->"m4.10xlarge"|M4_16xlarge->"m4.16xlarge"|M5_large->"m5.large"|M5_xlarge->"m5.xlarge"|M5_2xlarge->"m5.2xlarge"|M5_4xlarge->"m5.4xlarge"|M5_8xlarge->"m5.8xlarge"|M5_12xlarge->"m5.12xlarge"|M5_16xlarge->"m5.16xlarge"|M5_24xlarge->"m5.24xlarge"|M5_metal->"m5.metal"|M5a_large->"m5a.large"|M5a_xlarge->"m5a.xlarge"|M5a_2xlarge->"m5a.2xlarge"|M5a_4xlarge->"m5a.4xlarge"|M5a_8xlarge->"m5a.8xlarge"|M5a_12xlarge->"m5a.12xlarge"|M5a_16xlarge->"m5a.16xlarge"|M5a_24xlarge->"m5a.24xlarge"|M5ad_large->"m5ad.large"|M5ad_xlarge->"m5ad.xlarge"|M5ad_2xlarge->"m5ad.2xlarge"|M5ad_4xlarge->"m5ad.4xlarge"|M5ad_8xlarge->"m5ad.8xlarge"|M5ad_12xlarge->"m5ad.12xlarge"|M5ad_16xlarge->"m5ad.16xlarge"|M5ad_24xlarge->"m5ad.24xlarge"|M5d_large->"m5d.large"|M5d_xlarge->"m5d.xlarge"|M5d_2xlarge->"m5d.2xlarge"|M5d_4xlarge->"m5d.4xlarge"|M5d_8xlarge->"m5d.8xlarge"|M5d_12xlarge->"m5d.12xlarge"|M5d_16xlarge->"m5d.16xlarge"|M5d_24xlarge->"m5d.24xlarge"|M5d_metal->"m5d.metal"|M5dn_large->"m5dn.large"|M5dn_xlarge->"m5dn.xlarge"|M5dn_2xlarge->"m5dn.2xlarge"|M5dn_4xlarge->"m5dn.4xlarge"|M5dn_8xlarge->"m5dn.8xlarge"|M5dn_12xlarge->"m5dn.12xlarge"|M5dn_16xlarge->"m5dn.16xlarge"|M5dn_24xlarge->"m5dn.24xlarge"|M5dn_metal->"m5dn.metal"|M5n_large->"m5n.large"|M5n_xlarge->"m5n.xlarge"|M5n_2xlarge->"m5n.2xlarge"|M5n_4xlarge->"m5n.4xlarge"|M5n_8xlarge->"m5n.8xlarge"|M5n_12xlarge->"m5n.12xlarge"|M5n_16xlarge->"m5n.16xlarge"|M5n_24xlarge->"m5n.24xlarge"|M5n_metal->"m5n.metal"|M5zn_large->"m5zn.large"|M5zn_xlarge->"m5zn.xlarge"|M5zn_2xlarge->"m5zn.2xlarge"|M5zn_3xlarge->"m5zn.3xlarge"|M5zn_6xlarge->"m5zn.6xlarge"|M5zn_12xlarge->"m5zn.12xlarge"|M5zn_metal->"m5zn.metal"|M6a_large->"m6a.large"|M6a_xlarge->"m6a.xlarge"|M6a_2xlarge->"m6a.2xlarge"|M6a_4xlarge->"m6a.4xlarge"|M6a_8xlarge->"m6a.8xlarge"|M6a_12xlarge->"m6a.12xlarge"|M6a_16xlarge->"m6a.16xlarge"|M6a_24xlarge->"m6a.24xlarge"|M6a_32xlarge->"m6a.32xlarge"|M6a_48xlarge->"m6a.48xlarge"|M6g_metal->"m6g.metal"|M6g_medium->"m6g.medium"|M6g_large->"m6g.large"|M6g_xlarge->"m6g.xlarge"|M6g_2xlarge->"m6g.2xlarge"|M6g_4xlarge->"m6g.4xlarge"|M6g_8xlarge->"m6g.8xlarge"|M6g_12xlarge->"m6g.12xlarge"|M6g_16xlarge->"m6g.16xlarge"|M6gd_metal->"m6gd.metal"|M6gd_medium->"m6gd.medium"|M6gd_large->"m6gd.large"|M6gd_xlarge->"m6gd.xlarge"|M6gd_2xlarge->"m6gd.2xlarge"|M6gd_4xlarge->"m6gd.4xlarge"|M6gd_8xlarge->"m6gd.8xlarge"|M6gd_12xlarge->"m6gd.12xlarge"|M6gd_16xlarge->"m6gd.16xlarge"|M6i_large->"m6i.large"|M6i_xlarge->"m6i.xlarge"|M6i_2xlarge->"m6i.2xlarge"|M6i_4xlarge->"m6i.4xlarge"|M6i_8xlarge->"m6i.8xlarge"|M6i_12xlarge->"m6i.12xlarge"|M6i_16xlarge->"m6i.16xlarge"|M6i_24xlarge->"m6i.24xlarge"|M6i_32xlarge->"m6i.32xlarge"|M6i_metal->"m6i.metal"|Mac1_metal->"mac1.metal"|P2_xlarge->"p2.xlarge"|P2_8xlarge->"p2.8xlarge"|P2_16xlarge->"p2.16xlarge"|P3_2xlarge->"p3.2xlarge"|P3_8xlarge->"p3.8xlarge"|P3_16xlarge->"p3.16xlarge"|P3dn_24xlarge->"p3dn.24xlarge"|P4d_24xlarge->"p4d.24xlarge"|R3_large->"r3.large"|R3_xlarge->"r3.xlarge"|R3_2xlarge->"r3.2xlarge"|R3_4xlarge->"r3.4xlarge"|R3_8xlarge->"r3.8xlarge"|R4_large->"r4.large"|R4_xlarge->"r4.xlarge"|R4_2xlarge->"r4.2xlarge"|R4_4xlarge->"r4.4xlarge"|R4_8xlarge->"r4.8xlarge"|R4_16xlarge->"r4.16xlarge"|R5_large->"r5.large"|R5_xlarge->"r5.xlarge"|R5_2xlarge->"r5.2xlarge"|R5_4xlarge->"r5.4xlarge"|R5_8xlarge->"r5.8xlarge"|R5_12xlarge->"r5.12xlarge"|R5_16xlarge->"r5.16xlarge"|R5_24xlarge->"r5.24xlarge"|R5_metal->"r5.metal"|R5a_large->"r5a.large"|R5a_xlarge->"r5a.xlarge"|R5a_2xlarge->"r5a.2xlarge"|R5a_4xlarge->"r5a.4xlarge"|R5a_8xlarge->"r5a.8xlarge"|R5a_12xlarge->"r5a.12xlarge"|R5a_16xlarge->"r5a.16xlarge"|R5a_24xlarge->"r5a.24xlarge"|R5ad_large->"r5ad.large"|R5ad_xlarge->"r5ad.xlarge"|R5ad_2xlarge->"r5ad.2xlarge"|R5ad_4xlarge->"r5ad.4xlarge"|R5ad_8xlarge->"r5ad.8xlarge"|R5ad_12xlarge->"r5ad.12xlarge"|R5ad_16xlarge->"r5ad.16xlarge"|R5ad_24xlarge->"r5ad.24xlarge"|R5b_large->"r5b.large"|R5b_xlarge->"r5b.xlarge"|R5b_2xlarge->"r5b.2xlarge"|R5b_4xlarge->"r5b.4xlarge"|R5b_8xlarge->"r5b.8xlarge"|R5b_12xlarge->"r5b.12xlarge"|R5b_16xlarge->"r5b.16xlarge"|R5b_24xlarge->"r5b.24xlarge"|R5b_metal->"r5b.metal"|R5d_large->"r5d.large"|R5d_xlarge->"r5d.xlarge"|R5d_2xlarge->"r5d.2xlarge"|R5d_4xlarge->"r5d.4xlarge"|R5d_8xlarge->"r5d.8xlarge"|R5d_12xlarge->"r5d.12xlarge"|R5d_16xlarge->"r5d.16xlarge"|R5d_24xlarge->"r5d.24xlarge"|R5d_metal->"r5d.metal"|R5dn_large->"r5dn.large"|R5dn_xlarge->"r5dn.xlarge"|R5dn_2xlarge->"r5dn.2xlarge"|R5dn_4xlarge->"r5dn.4xlarge"|R5dn_8xlarge->"r5dn.8xlarge"|R5dn_12xlarge->"r5dn.12xlarge"|R5dn_16xlarge->"r5dn.16xlarge"|R5dn_24xlarge->"r5dn.24xlarge"|R5dn_metal->"r5dn.metal"|R5n_large->"r5n.large"|R5n_xlarge->"r5n.xlarge"|R5n_2xlarge->"r5n.2xlarge"|R5n_4xlarge->"r5n.4xlarge"|R5n_8xlarge->"r5n.8xlarge"|R5n_12xlarge->"r5n.12xlarge"|R5n_16xlarge->"r5n.16xlarge"|R5n_24xlarge->"r5n.24xlarge"|R5n_metal->"r5n.metal"|R6g_medium->"r6g.medium"|R6g_large->"r6g.large"|R6g_xlarge->"r6g.xlarge"|R6g_2xlarge->"r6g.2xlarge"|R6g_4xlarge->"r6g.4xlarge"|R6g_8xlarge->"r6g.8xlarge"|R6g_12xlarge->"r6g.12xlarge"|R6g_16xlarge->"r6g.16xlarge"|R6g_metal->"r6g.metal"|R6gd_medium->"r6gd.medium"|R6gd_large->"r6gd.large"|R6gd_xlarge->"r6gd.xlarge"|R6gd_2xlarge->"r6gd.2xlarge"|R6gd_4xlarge->"r6gd.4xlarge"|R6gd_8xlarge->"r6gd.8xlarge"|R6gd_12xlarge->"r6gd.12xlarge"|R6gd_16xlarge->"r6gd.16xlarge"|R6gd_metal->"r6gd.metal"|R6i_large->"r6i.large"|R6i_xlarge->"r6i.xlarge"|R6i_2xlarge->"r6i.2xlarge"|R6i_4xlarge->"r6i.4xlarge"|R6i_8xlarge->"r6i.8xlarge"|R6i_12xlarge->"r6i.12xlarge"|R6i_16xlarge->"r6i.16xlarge"|R6i_24xlarge->"r6i.24xlarge"|R6i_32xlarge->"r6i.32xlarge"|R6i_metal->"r6i.metal"|T1_micro->"t1.micro"|T2_nano->"t2.nano"|T2_micro->"t2.micro"|T2_small->"t2.small"|T2_medium->"t2.medium"|T2_large->"t2.large"|T2_xlarge->"t2.xlarge"|T2_2xlarge->"t2.2xlarge"|T3_nano->"t3.nano"|T3_micro->"t3.micro"|T3_small->"t3.small"|T3_medium->"t3.medium"|T3_large->"t3.large"|T3_xlarge->"t3.xlarge"|T3_2xlarge->"t3.2xlarge"|T3a_nano->"t3a.nano"|T3a_micro->"t3a.micro"|T3a_small->"t3a.small"|T3a_medium->"t3a.medium"|T3a_large->"t3a.large"|T3a_xlarge->"t3a.xlarge"|T3a_2xlarge->"t3a.2xlarge"|T4g_nano->"t4g.nano"|T4g_micro->"t4g.micro"|T4g_small->"t4g.small"|T4g_medium->"t4g.medium"|T4g_large->"t4g.large"|T4g_xlarge->"t4g.xlarge"|T4g_2xlarge->"t4g.2xlarge"|U_6tb1_56xlarge->"u-6tb1.56xlarge"|U_6tb1_112xlarge->"u-6tb1.112xlarge"|U_9tb1_112xlarge->"u-9tb1.112xlarge"|U_12tb1_112xlarge->"u-12tb1.112xlarge"|U_6tb1_metal->"u-6tb1.metal"|U_9tb1_metal->"u-9tb1.metal"|U_12tb1_metal->"u-12tb1.metal"|U_18tb1_metal->"u-18tb1.metal"|U_24tb1_metal->"u-24tb1.metal"|Vt1_3xlarge->"vt1.3xlarge"|Vt1_6xlarge->"vt1.6xlarge"|Vt1_24xlarge->"vt1.24xlarge"|X1_16xlarge->"x1.16xlarge"|X1_32xlarge->"x1.32xlarge"|X1e_xlarge->"x1e.xlarge"|X1e_2xlarge->"x1e.2xlarge"|X1e_4xlarge->"x1e.4xlarge"|X1e_8xlarge->"x1e.8xlarge"|X1e_16xlarge->"x1e.16xlarge"|X1e_32xlarge->"x1e.32xlarge"|X2iezn_2xlarge->"x2iezn.2xlarge"|X2iezn_4xlarge->"x2iezn.4xlarge"|X2iezn_6xlarge->"x2iezn.6xlarge"|X2iezn_8xlarge->"x2iezn.8xlarge"|X2iezn_12xlarge->"x2iezn.12xlarge"|X2iezn_metal->"x2iezn.metal"|X2gd_medium->"x2gd.medium"|X2gd_large->"x2gd.large"|X2gd_xlarge->"x2gd.xlarge"|X2gd_2xlarge->"x2gd.2xlarge"|X2gd_4xlarge->"x2gd.4xlarge"|X2gd_8xlarge->"x2gd.8xlarge"|X2gd_12xlarge->"x2gd.12xlarge"|X2gd_16xlarge->"x2gd.16xlarge"|X2gd_metal->"x2gd.metal"|Z1d_large->"z1d.large"|Z1d_xlarge->"z1d.xlarge"|Z1d_2xlarge->"z1d.2xlarge"|Z1d_3xlarge->"z1d.3xlarge"|Z1d_6xlarge->"z1d.6xlarge"|Z1d_12xlarge->"z1d.12xlarge"|Z1d_metal->"z1d.metal"|X2idn_16xlarge->"x2idn.16xlarge"|X2idn_24xlarge->"x2idn.24xlarge"|X2idn_32xlarge->"x2idn.32xlarge"|X2iedn_xlarge->"x2iedn.xlarge"|X2iedn_2xlarge->"x2iedn.2xlarge"|X2iedn_4xlarge->"x2iedn.4xlarge"|X2iedn_8xlarge->"x2iedn.8xlarge"|X2iedn_16xlarge->"x2iedn.16xlarge"|X2iedn_24xlarge->"x2iedn.24xlarge"|X2iedn_32xlarge->"x2iedn.32xlarge"|C6a_large->"c6a.large"|C6a_xlarge->"c6a.xlarge"|C6a_2xlarge->"c6a.2xlarge"|C6a_4xlarge->"c6a.4xlarge"|C6a_8xlarge->"c6a.8xlarge"|C6a_12xlarge->"c6a.12xlarge"|C6a_16xlarge->"c6a.16xlarge"|C6a_24xlarge->"c6a.24xlarge"|C6a_32xlarge->"c6a.32xlarge"|C6a_48xlarge->"c6a.48xlarge"|C6a_metal->"c6a.metal"|M6a_metal->"m6a.metal"|I4i_large->"i4i.large"|I4i_xlarge->"i4i.xlarge"|I4i_2xlarge->"i4i.2xlarge"|I4i_4xlarge->"i4i.4xlarge"|I4i_8xlarge->"i4i.8xlarge"|I4i_16xlarge->"i4i.16xlarge"|I4i_32xlarge->"i4i.32xlarge"|I4i_metal->"i4i.metal"|X2idn_metal->"x2idn.metal"|X2iedn_metal->"x2iedn.metal"|C7g_medium->"c7g.medium"|C7g_large->"c7g.large"|C7g_xlarge->"c7g.xlarge"|C7g_2xlarge->"c7g.2xlarge"|C7g_4xlarge->"c7g.4xlarge"|C7g_8xlarge->"c7g.8xlarge"|C7g_12xlarge->"c7g.12xlarge"|C7g_16xlarge->"c7g.16xlarge"|Mac2_metal->"mac2.metal"|C6id_large->"c6id.large"|C6id_xlarge->"c6id.xlarge"|C6id_2xlarge->"c6id.2xlarge"|C6id_4xlarge->"c6id.4xlarge"|C6id_8xlarge->"c6id.8xlarge"|C6id_12xlarge->"c6id.12xlarge"|C6id_16xlarge->"c6id.16xlarge"|C6id_24xlarge->"c6id.24xlarge"|C6id_32xlarge->"c6id.32xlarge"|C6id_metal->"c6id.metal"|M6id_large->"m6id.large"|M6id_xlarge->"m6id.xlarge"|M6id_2xlarge->"m6id.2xlarge"|M6id_4xlarge->"m6id.4xlarge"|M6id_8xlarge->"m6id.8xlarge"|M6id_12xlarge->"m6id.12xlarge"|M6id_16xlarge->"m6id.16xlarge"|M6id_24xlarge->"m6id.24xlarge"|M6id_32xlarge->"m6id.32xlarge"|M6id_metal->"m6id.metal"|R6id_large->"r6id.large"|R6id_xlarge->"r6id.xlarge"|R6id_2xlarge->"r6id.2xlarge"|R6id_4xlarge->"r6id.4xlarge"|R6id_8xlarge->"r6id.8xlarge"|R6id_12xlarge->"r6id.12xlarge"|R6id_16xlarge->"r6id.16xlarge"|R6id_24xlarge->"r6id.24xlarge"|R6id_32xlarge->"r6id.32xlarge"|R6id_metal->"r6id.metal"|R6a_large->"r6a.large"|R6a_xlarge->"r6a.xlarge"|R6a_2xlarge->"r6a.2xlarge"|R6a_4xlarge->"r6a.4xlarge"|R6a_8xlarge->"r6a.8xlarge"|R6a_12xlarge->"r6a.12xlarge"|R6a_16xlarge->"r6a.16xlarge"|R6a_24xlarge->"r6a.24xlarge"|R6a_32xlarge->"r6a.32xlarge"|R6a_48xlarge->"r6a.48xlarge"|R6a_metal->"r6a.metal"|P4de_24xlarge->"p4de.24xlarge"|U_3tb1_56xlarge->"u-3tb1.56xlarge"|U_18tb1_112xlarge->"u-18tb1.112xlarge"|U_24tb1_112xlarge->"u-24tb1.112xlarge"|Trn1_2xlarge->"trn1.2xlarge"|Trn1_32xlarge->"trn1.32xlarge"|Hpc6id_32xlarge->"hpc6id.32xlarge"|C6in_large->"c6in.large"|C6in_xlarge->"c6in.xlarge"|C6in_2xlarge->"c6in.2xlarge"|C6in_4xlarge->"c6in.4xlarge"|C6in_8xlarge->"c6in.8xlarge"|C6in_12xlarge->"c6in.12xlarge"|C6in_16xlarge->"c6in.16xlarge"|C6in_24xlarge->"c6in.24xlarge"|C6in_32xlarge->"c6in.32xlarge"|M6in_large->"m6in.large"|M6in_xlarge->"m6in.xlarge"|M6in_2xlarge->"m6in.2xlarge"|M6in_4xlarge->"m6in.4xlarge"|M6in_8xlarge->"m6in.8xlarge"|M6in_12xlarge->"m6in.12xlarge"|M6in_16xlarge->"m6in.16xlarge"|M6in_24xlarge->"m6in.24xlarge"|M6in_32xlarge->"m6in.32xlarge"|M6idn_large->"m6idn.large"|M6idn_xlarge->"m6idn.xlarge"|M6idn_2xlarge->"m6idn.2xlarge"|M6idn_4xlarge->"m6idn.4xlarge"|M6idn_8xlarge->"m6idn.8xlarge"|M6idn_12xlarge->"m6idn.12xlarge"|M6idn_16xlarge->"m6idn.16xlarge"|M6idn_24xlarge->"m6idn.24xlarge"|M6idn_32xlarge->"m6idn.32xlarge"|R6in_large->"r6in.large"|R6in_xlarge->"r6in.xlarge"|R6in_2xlarge->"r6in.2xlarge"|R6in_4xlarge->"r6in.4xlarge"|R6in_8xlarge->"r6in.8xlarge"|R6in_12xlarge->"r6in.12xlarge"|R6in_16xlarge->"r6in.16xlarge"|R6in_24xlarge->"r6in.24xlarge"|R6in_32xlarge->"r6in.32xlarge"|R6idn_large->"r6idn.large"|R6idn_xlarge->"r6idn.xlarge"|R6idn_2xlarge->"r6idn.2xlarge"|R6idn_4xlarge->"r6idn.4xlarge"|R6idn_8xlarge->"r6idn.8xlarge"|R6idn_12xlarge->"r6idn.12xlarge"|R6idn_16xlarge->"r6idn.16xlarge"|R6idn_24xlarge->"r6idn.24xlarge"|R6idn_32xlarge->"r6idn.32xlarge"|C7g_metal->"c7g.metal"|M7g_medium->"m7g.medium"|M7g_large->"m7g.large"|M7g_xlarge->"m7g.xlarge"|M7g_2xlarge->"m7g.2xlarge"|M7g_4xlarge->"m7g.4xlarge"|M7g_8xlarge->"m7g.8xlarge"|M7g_12xlarge->"m7g.12xlarge"|M7g_16xlarge->"m7g.16xlarge"|M7g_metal->"m7g.metal"|R7g_medium->"r7g.medium"|R7g_large->"r7g.large"|R7g_xlarge->"r7g.xlarge"|R7g_2xlarge->"r7g.2xlarge"|R7g_4xlarge->"r7g.4xlarge"|R7g_8xlarge->"r7g.8xlarge"|R7g_12xlarge->"r7g.12xlarge"|R7g_16xlarge->"r7g.16xlarge"|R7g_metal->"r7g.metal"|C6in_metal->"c6in.metal"|M6in_metal->"m6in.metal"|M6idn_metal->"m6idn.metal"|R6in_metal->"r6in.metal"|R6idn_metal->"r6idn.metal"|Inf2_xlarge->"inf2.xlarge"|Inf2_8xlarge->"inf2.8xlarge"|Inf2_24xlarge->"inf2.24xlarge"|Inf2_48xlarge->"inf2.48xlarge"|Trn1n_32xlarge->"trn1n.32xlarge"|I4g_large->"i4g.large"|I4g_xlarge->"i4g.xlarge"|I4g_2xlarge->"i4g.2xlarge"|I4g_4xlarge->"i4g.4xlarge"|I4g_8xlarge->"i4g.8xlarge"|I4g_16xlarge->"i4g.16xlarge"|Hpc7g_4xlarge->"hpc7g.4xlarge"|Hpc7g_8xlarge->"hpc7g.8xlarge"|Hpc7g_16xlarge->"hpc7g.16xlarge"|C7gn_medium->"c7gn.medium"|C7gn_large->"c7gn.large"|C7gn_xlarge->"c7gn.xlarge"|C7gn_2xlarge->"c7gn.2xlarge"|C7gn_4xlarge->"c7gn.4xlarge"|C7gn_8xlarge->"c7gn.8xlarge"|C7gn_12xlarge->"c7gn.12xlarge"|C7gn_16xlarge->"c7gn.16xlarge"|P5_48xlarge->"p5.48xlarge"|M7i_large->"m7i.large"|M7i_xlarge->"m7i.xlarge"|M7i_2xlarge->"m7i.2xlarge"|M7i_4xlarge->"m7i.4xlarge"|M7i_8xlarge->"m7i.8xlarge"|M7i_12xlarge->"m7i.12xlarge"|M7i_16xlarge->"m7i.16xlarge"|M7i_24xlarge->"m7i.24xlarge"|M7i_48xlarge->"m7i.48xlarge"|M7i_flex_large->"m7i-flex.large"|M7i_flex_xlarge->"m7i-flex.xlarge"|M7i_flex_2xlarge->"m7i-flex.2xlarge"|M7i_flex_4xlarge->"m7i-flex.4xlarge"|M7i_flex_8xlarge->"m7i-flex.8xlarge"|M7a_medium->"m7a.medium"|M7a_large->"m7a.large"|M7a_xlarge->"m7a.xlarge"|M7a_2xlarge->"m7a.2xlarge"|M7a_4xlarge->"m7a.4xlarge"|M7a_8xlarge->"m7a.8xlarge"|M7a_12xlarge->"m7a.12xlarge"|M7a_16xlarge->"m7a.16xlarge"|M7a_24xlarge->"m7a.24xlarge"|M7a_32xlarge->"m7a.32xlarge"|M7a_48xlarge->"m7a.48xlarge"|M7a_metal_48xl->"m7a.metal-48xl"|Hpc7a_12xlarge->"hpc7a.12xlarge"|Hpc7a_24xlarge->"hpc7a.24xlarge"|Hpc7a_48xlarge->"hpc7a.48xlarge"|Hpc7a_96xlarge->"hpc7a.96xlarge"|C7gd_medium->"c7gd.medium"|C7gd_large->"c7gd.large"|C7gd_xlarge->"c7gd.xlarge"|C7gd_2xlarge->"c7gd.2xlarge"|C7gd_4xlarge->"c7gd.4xlarge"|C7gd_8xlarge->"c7gd.8xlarge"|C7gd_12xlarge->"c7gd.12xlarge"|C7gd_16xlarge->"c7gd.16xlarge"|M7gd_medium->"m7gd.medium"|M7gd_large->"m7gd.large"|M7gd_xlarge->"m7gd.xlarge"|M7gd_2xlarge->"m7gd.2xlarge"|M7gd_4xlarge->"m7gd.4xlarge"|M7gd_8xlarge->"m7gd.8xlarge"|M7gd_12xlarge->"m7gd.12xlarge"|M7gd_16xlarge->"m7gd.16xlarge"|R7gd_medium->"r7gd.medium"|R7gd_large->"r7gd.large"|R7gd_xlarge->"r7gd.xlarge"|R7gd_2xlarge->"r7gd.2xlarge"|R7gd_4xlarge->"r7gd.4xlarge"|R7gd_8xlarge->"r7gd.8xlarge"|R7gd_12xlarge->"r7gd.12xlarge"|R7gd_16xlarge->"r7gd.16xlarge"|R7a_medium->"r7a.medium"|R7a_large->"r7a.large"|R7a_xlarge->"r7a.xlarge"|R7a_2xlarge->"r7a.2xlarge"|R7a_4xlarge->"r7a.4xlarge"|R7a_8xlarge->"r7a.8xlarge"|R7a_12xlarge->"r7a.12xlarge"|R7a_16xlarge->"r7a.16xlarge"|R7a_24xlarge->"r7a.24xlarge"|R7a_32xlarge->"r7a.32xlarge"|R7a_48xlarge->"r7a.48xlarge"|C7i_large->"c7i.large"|C7i_xlarge->"c7i.xlarge"|C7i_2xlarge->"c7i.2xlarge"|C7i_4xlarge->"c7i.4xlarge"|C7i_8xlarge->"c7i.8xlarge"|C7i_12xlarge->"c7i.12xlarge"|C7i_16xlarge->"c7i.16xlarge"|C7i_24xlarge->"c7i.24xlarge"|C7i_48xlarge->"c7i.48xlarge"|Mac2_m2pro_metal->"mac2-m2pro.metal"|R7iz_large->"r7iz.large"|R7iz_xlarge->"r7iz.xlarge"|R7iz_2xlarge->"r7iz.2xlarge"|R7iz_4xlarge->"r7iz.4xlarge"|R7iz_8xlarge->"r7iz.8xlarge"|R7iz_12xlarge->"r7iz.12xlarge"|R7iz_16xlarge->"r7iz.16xlarge"|R7iz_32xlarge->"r7iz.32xlarge"|C7a_medium->"c7a.medium"|C7a_large->"c7a.large"|C7a_xlarge->"c7a.xlarge"|C7a_2xlarge->"c7a.2xlarge"|C7a_4xlarge->"c7a.4xlarge"|C7a_8xlarge->"c7a.8xlarge"|C7a_12xlarge->"c7a.12xlarge"|C7a_16xlarge->"c7a.16xlarge"|C7a_24xlarge->"c7a.24xlarge"|C7a_32xlarge->"c7a.32xlarge"|C7a_48xlarge->"c7a.48xlarge"|C7a_metal_48xl->"c7a.metal-48xl"|R7a_metal_48xl->"r7a.metal-48xl"|R7i_large->"r7i.large"|R7i_xlarge->"r7i.xlarge"|R7i_2xlarge->"r7i.2xlarge"|R7i_4xlarge->"r7i.4xlarge"|R7i_8xlarge->"r7i.8xlarge"|R7i_12xlarge->"r7i.12xlarge"|R7i_16xlarge->"r7i.16xlarge"|R7i_24xlarge->"r7i.24xlarge"|R7i_48xlarge->"r7i.48xlarge"|Dl2q_24xlarge->"dl2q.24xlarge"|Mac2_m2_metal->"mac2-m2.metal"|I4i_12xlarge->"i4i.12xlarge"|I4i_24xlarge->"i4i.24xlarge"|C7i_metal_24xl->"c7i.metal-24xl"|C7i_metal_48xl->"c7i.metal-48xl"|M7i_metal_24xl->"m7i.metal-24xl"|M7i_metal_48xl->"m7i.metal-48xl"|R7i_metal_24xl->"r7i.metal-24xl"|R7i_metal_48xl->"r7i.metal-48xl"|R7iz_metal_16xl->"r7iz.metal-16xl"|R7iz_metal_32xl->"r7iz.metal-32xl"|C7gd_metal->"c7gd.metal"|M7gd_metal->"m7gd.metal"|R7gd_metal->"r7gd.metal"|G6_xlarge->"g6.xlarge"|G6_2xlarge->"g6.2xlarge"|G6_4xlarge->"g6.4xlarge"|G6_8xlarge->"g6.8xlarge"|G6_12xlarge->"g6.12xlarge"|G6_16xlarge->"g6.16xlarge"|G6_24xlarge->"g6.24xlarge"|G6_48xlarge->"g6.48xlarge"|Gr6_4xlarge->"gr6.4xlarge"|Gr6_8xlarge->"gr6.8xlarge"|C7i_flex_large->"c7i-flex.large"|C7i_flex_xlarge->"c7i-flex.xlarge"|C7i_flex_2xlarge->"c7i-flex.2xlarge"|C7i_flex_4xlarge->"c7i-flex.4xlarge"|C7i_flex_8xlarge->"c7i-flex.8xlarge"|U7i_12tb_224xlarge->"u7i-12tb.224xlarge"|U7in_16tb_224xlarge->"u7in-16tb.224xlarge"|U7in_24tb_224xlarge->"u7in-24tb.224xlarge"|U7in_32tb_224xlarge->"u7in-32tb.224xlarge"|U7ib_12tb_224xlarge->"u7ib-12tb.224xlarge"|C7gn_metal->"c7gn.metal"|R8g_medium->"r8g.medium"|R8g_large->"r8g.large"|R8g_xlarge->"r8g.xlarge"|R8g_2xlarge->"r8g.2xlarge"|R8g_4xlarge->"r8g.4xlarge"|R8g_8xlarge->"r8g.8xlarge"|R8g_12xlarge->"r8g.12xlarge"|R8g_16xlarge->"r8g.16xlarge"|R8g_24xlarge->"r8g.24xlarge"|R8g_48xlarge->"r8g.48xlarge"|R8g_metal_24xl->"r8g.metal-24xl"|R8g_metal_48xl->"r8g.metal-48xl"|Mac2_m1ultra_metal->"mac2-m1ultra.metal"|G6e_xlarge->"g6e.xlarge"|G6e_2xlarge->"g6e.2xlarge"|G6e_4xlarge->"g6e.4xlarge"|G6e_8xlarge->"g6e.8xlarge"|G6e_12xlarge->"g6e.12xlarge"|G6e_16xlarge->"g6e.16xlarge"|G6e_24xlarge->"g6e.24xlarge"|G6e_48xlarge->"g6e.48xlarge"|C8g_medium->"c8g.medium"|C8g_large->"c8g.large"|C8g_xlarge->"c8g.xlarge"|C8g_2xlarge->"c8g.2xlarge"|C8g_4xlarge->"c8g.4xlarge"|C8g_8xlarge->"c8g.8xlarge"|C8g_12xlarge->"c8g.12xlarge"|C8g_16xlarge->"c8g.16xlarge"|C8g_24xlarge->"c8g.24xlarge"|C8g_48xlarge->"c8g.48xlarge"|C8g_metal_24xl->"c8g.metal-24xl"|C8g_metal_48xl->"c8g.metal-48xl"|M8g_medium->"m8g.medium"|M8g_large->"m8g.large"|M8g_xlarge->"m8g.xlarge"|M8g_2xlarge->"m8g.2xlarge"|M8g_4xlarge->"m8g.4xlarge"|M8g_8xlarge->"m8g.8xlarge"|M8g_12xlarge->"m8g.12xlarge"|M8g_16xlarge->"m8g.16xlarge"|M8g_24xlarge->"m8g.24xlarge"|M8g_48xlarge->"m8g.48xlarge"|M8g_metal_24xl->"m8g.metal-24xl"|M8g_metal_48xl->"m8g.metal-48xl"|X8g_medium->"x8g.medium"|X8g_large->"x8g.large"|X8g_xlarge->"x8g.xlarge"|X8g_2xlarge->"x8g.2xlarge"|X8g_4xlarge->"x8g.4xlarge"|X8g_8xlarge->"x8g.8xlarge"|X8g_12xlarge->"x8g.12xlarge"|X8g_16xlarge->"x8g.16xlarge"|X8g_24xlarge->"x8g.24xlarge"|X8g_48xlarge->"x8g.48xlarge"|X8g_metal_24xl->"x8g.metal-24xl"|X8g_metal_48xl->"x8g.metal-48xl"|I7ie_large->"i7ie.large"|I7ie_xlarge->"i7ie.xlarge"|I7ie_2xlarge->"i7ie.2xlarge"|I7ie_3xlarge->"i7ie.3xlarge"|I7ie_6xlarge->"i7ie.6xlarge"|I7ie_12xlarge->"i7ie.12xlarge"|I7ie_18xlarge->"i7ie.18xlarge"|I7ie_24xlarge->"i7ie.24xlarge"|I7ie_48xlarge->"i7ie.48xlarge"|I8g_large->"i8g.large"|I8g_xlarge->"i8g.xlarge"|I8g_2xlarge->"i8g.2xlarge"|I8g_4xlarge->"i8g.4xlarge"|I8g_8xlarge->"i8g.8xlarge"|I8g_12xlarge->"i8g.12xlarge"|I8g_16xlarge->"i8g.16xlarge"|I8g_24xlarge->"i8g.24xlarge"|I8g_metal_24xl->"i8g.metal-24xl"|U7i_6tb_112xlarge->"u7i-6tb.112xlarge"|U7i_8tb_112xlarge->"u7i-8tb.112xlarge"|U7inh_32tb_480xlarge->"u7inh-32tb.480xlarge"|P5e_48xlarge->"p5e.48xlarge"|P5en_48xlarge->"p5en.48xlarge"|F2_12xlarge->"f2.12xlarge"|F2_48xlarge->"f2.48xlarge"|Trn2_48xlarge->"trn2.48xlarge"|C7i_flex_12xlarge->"c7i-flex.12xlarge"|C7i_flex_16xlarge->"c7i-flex.16xlarge"|M7i_flex_12xlarge->"m7i-flex.12xlarge"|M7i_flex_16xlarge->"m7i-flex.16xlarge"|I7ie_metal_24xl->"i7ie.metal-24xl"|I7ie_metal_48xl->"i7ie.metal-48xl"|I8g_48xlarge->"i8g.48xlarge"|C8gd_medium->"c8gd.medium"|C8gd_large->"c8gd.large"|C8gd_xlarge->"c8gd.xlarge"|C8gd_2xlarge->"c8gd.2xlarge"|C8gd_4xlarge->"c8gd.4xlarge"|C8gd_8xlarge->"c8gd.8xlarge"|C8gd_12xlarge->"c8gd.12xlarge"|C8gd_16xlarge->"c8gd.16xlarge"|C8gd_24xlarge->"c8gd.24xlarge"|C8gd_48xlarge->"c8gd.48xlarge"|C8gd_metal_24xl->"c8gd.metal-24xl"|C8gd_metal_48xl->"c8gd.metal-48xl"|I7i_large->"i7i.large"|I7i_xlarge->"i7i.xlarge"|I7i_2xlarge->"i7i.2xlarge"|I7i_4xlarge->"i7i.4xlarge"|I7i_8xlarge->"i7i.8xlarge"|I7i_12xlarge->"i7i.12xlarge"|I7i_16xlarge->"i7i.16xlarge"|I7i_24xlarge->"i7i.24xlarge"|I7i_48xlarge->"i7i.48xlarge"|I7i_metal_24xl->"i7i.metal-24xl"|I7i_metal_48xl->"i7i.metal-48xl"|P6_b200_48xlarge->"p6-b200.48xlarge"|M8gd_medium->"m8gd.medium"|M8gd_large->"m8gd.large"|M8gd_xlarge->"m8gd.xlarge"|M8gd_2xlarge->"m8gd.2xlarge"|M8gd_4xlarge->"m8gd.4xlarge"|M8gd_8xlarge->"m8gd.8xlarge"|M8gd_12xlarge->"m8gd.12xlarge"|M8gd_16xlarge->"m8gd.16xlarge"|M8gd_24xlarge->"m8gd.24xlarge"|M8gd_48xlarge->"m8gd.48xlarge"|M8gd_metal_24xl->"m8gd.metal-24xl"|M8gd_metal_48xl->"m8gd.metal-48xl"|R8gd_medium->"r8gd.medium"|R8gd_large->"r8gd.large"|R8gd_xlarge->"r8gd.xlarge"|R8gd_2xlarge->"r8gd.2xlarge"|R8gd_4xlarge->"r8gd.4xlarge"|R8gd_8xlarge->"r8gd.8xlarge"|R8gd_12xlarge->"r8gd.12xlarge"|R8gd_16xlarge->"r8gd.16xlarge"|R8gd_24xlarge->"r8gd.24xlarge"|R8gd_48xlarge->"r8gd.48xlarge"|R8gd_metal_24xl->"r8gd.metal-24xl"|R8gd_metal_48xl->"r8gd.metal-48xl"|C8gn_medium->"c8gn.medium"|C8gn_large->"c8gn.large"|C8gn_xlarge->"c8gn.xlarge"|C8gn_2xlarge->"c8gn.2xlarge"|C8gn_4xlarge->"c8gn.4xlarge"|C8gn_8xlarge->"c8gn.8xlarge"|C8gn_12xlarge->"c8gn.12xlarge"|C8gn_16xlarge->"c8gn.16xlarge"|C8gn_24xlarge->"c8gn.24xlarge"|C8gn_48xlarge->"c8gn.48xlarge"|C8gn_metal_24xl->"c8gn.metal-24xl"|C8gn_metal_48xl->"c8gn.metal-48xl"|F2_6xlarge->"f2.6xlarge"|P6e_gb200_36xlarge->"p6e-gb200.36xlarge"|G6f_large->"g6f.large"|G6f_xlarge->"g6f.xlarge"|G6f_2xlarge->"g6f.2xlarge"|G6f_4xlarge->"g6f.4xlarge"|Gr6f_4xlarge->"gr6f.4xlarge"|P5_4xlarge->"p5.4xlarge"|R8i_large->"r8i.large"|R8i_xlarge->"r8i.xlarge"|R8i_2xlarge->"r8i.2xlarge"|R8i_4xlarge->"r8i.4xlarge"|R8i_8xlarge->"r8i.8xlarge"|R8i_12xlarge->"r8i.12xlarge"|R8i_16xlarge->"r8i.16xlarge"|R8i_24xlarge->"r8i.24xlarge"|R8i_32xlarge->"r8i.32xlarge"|R8i_48xlarge->"r8i.48xlarge"|R8i_96xlarge->"r8i.96xlarge"|R8i_metal_48xl->"r8i.metal-48xl"|R8i_metal_96xl->"r8i.metal-96xl"|R8i_flex_large->"r8i-flex.large"|R8i_flex_xlarge->"r8i-flex.xlarge"|R8i_flex_2xlarge->"r8i-flex.2xlarge"|R8i_flex_4xlarge->"r8i-flex.4xlarge"|R8i_flex_8xlarge->"r8i-flex.8xlarge"|R8i_flex_12xlarge->"r8i-flex.12xlarge"|R8i_flex_16xlarge->"r8i-flex.16xlarge"|M8i_large->"m8i.large"|M8i_xlarge->"m8i.xlarge"|M8i_2xlarge->"m8i.2xlarge"|M8i_4xlarge->"m8i.4xlarge"|M8i_8xlarge->"m8i.8xlarge"|M8i_12xlarge->"m8i.12xlarge"|M8i_16xlarge->"m8i.16xlarge"|M8i_24xlarge->"m8i.24xlarge"|M8i_32xlarge->"m8i.32xlarge"|M8i_48xlarge->"m8i.48xlarge"|M8i_96xlarge->"m8i.96xlarge"|M8i_metal_48xl->"m8i.metal-48xl"|M8i_metal_96xl->"m8i.metal-96xl"|M8i_flex_large->"m8i-flex.large"|M8i_flex_xlarge->"m8i-flex.xlarge"|M8i_flex_2xlarge->"m8i-flex.2xlarge"|M8i_flex_4xlarge->"m8i-flex.4xlarge"|M8i_flex_8xlarge->"m8i-flex.8xlarge"|M8i_flex_12xlarge->"m8i-flex.12xlarge"|M8i_flex_16xlarge->"m8i-flex.16xlarge"|I8ge_large->"i8ge.large"|I8ge_xlarge->"i8ge.xlarge"|I8ge_2xlarge->"i8ge.2xlarge"|I8ge_3xlarge->"i8ge.3xlarge"|I8ge_6xlarge->"i8ge.6xlarge"|I8ge_12xlarge->"i8ge.12xlarge"|I8ge_18xlarge->"i8ge.18xlarge"|I8ge_24xlarge->"i8ge.24xlarge"|I8ge_48xlarge->"i8ge.48xlarge"|I8ge_metal_24xl->"i8ge.metal-24xl"|I8ge_metal_48xl->"i8ge.metal-48xl"|Mac_m4_metal->"mac-m4.metal"|Mac_m4pro_metal->"mac-m4pro.metal"|R8gn_medium->"r8gn.medium"|R8gn_large->"r8gn.large"|R8gn_xlarge->"r8gn.xlarge"|R8gn_2xlarge->"r8gn.2xlarge"|R8gn_4xlarge->"r8gn.4xlarge"|R8gn_8xlarge->"r8gn.8xlarge"|R8gn_12xlarge->"r8gn.12xlarge"|R8gn_16xlarge->"r8gn.16xlarge"|R8gn_24xlarge->"r8gn.24xlarge"|R8gn_48xlarge->"r8gn.48xlarge"|R8gn_metal_24xl->"r8gn.metal-24xl"|R8gn_metal_48xl->"r8gn.metal-48xl"|C8i_large->"c8i.large"|C8i_xlarge->"c8i.xlarge"|C8i_2xlarge->"c8i.2xlarge"|C8i_4xlarge->"c8i.4xlarge"|C8i_8xlarge->"c8i.8xlarge"|C8i_12xlarge->"c8i.12xlarge"|C8i_16xlarge->"c8i.16xlarge"|C8i_24xlarge->"c8i.24xlarge"|C8i_32xlarge->"c8i.32xlarge"|C8i_48xlarge->"c8i.48xlarge"|C8i_96xlarge->"c8i.96xlarge"|C8i_metal_48xl->"c8i.metal-48xl"|C8i_metal_96xl->"c8i.metal-96xl"|C8i_flex_large->"c8i-flex.large"|C8i_flex_xlarge->"c8i-flex.xlarge"|C8i_flex_2xlarge->"c8i-flex.2xlarge"|C8i_flex_4xlarge->"c8i-flex.4xlarge"|C8i_flex_8xlarge->"c8i-flex.8xlarge"|C8i_flex_12xlarge->"c8i-flex.12xlarge"|C8i_flex_16xlarge->"c8i-flex.16xlarge"|R8gb_medium->"r8gb.medium"|R8gb_large->"r8gb.large"|R8gb_xlarge->"r8gb.xlarge"|R8gb_2xlarge->"r8gb.2xlarge"|R8gb_4xlarge->"r8gb.4xlarge"|R8gb_8xlarge->"r8gb.8xlarge"|R8gb_12xlarge->"r8gb.12xlarge"|R8gb_16xlarge->"r8gb.16xlarge"|R8gb_24xlarge->"r8gb.24xlarge"|R8gb_metal_24xl->"r8gb.metal-24xl"|M8a_medium->"m8a.medium"|M8a_large->"m8a.large"|M8a_xlarge->"m8a.xlarge"|M8a_2xlarge->"m8a.2xlarge"|M8a_4xlarge->"m8a.4xlarge"|M8a_8xlarge->"m8a.8xlarge"|M8a_12xlarge->"m8a.12xlarge"|M8a_16xlarge->"m8a.16xlarge"|M8a_24xlarge->"m8a.24xlarge"|M8a_48xlarge->"m8a.48xlarge"|M8a_metal_24xl->"m8a.metal-24xl"|M8a_metal_48xl->"m8a.metal-48xl"|Trn2_3xlarge->"trn2.3xlarge"|R8a_medium->"r8a.medium"|R8a_large->"r8a.large"|R8a_xlarge->"r8a.xlarge"|R8a_2xlarge->"r8a.2xlarge"|R8a_4xlarge->"r8a.4xlarge"|R8a_8xlarge->"r8a.8xlarge"|R8a_12xlarge->"r8a.12xlarge"|R8a_16xlarge->"r8a.16xlarge"|R8a_24xlarge->"r8a.24xlarge"|R8a_48xlarge->"r8a.48xlarge"|R8a_metal_24xl->"r8a.metal-24xl"|R8a_metal_48xl->"r8a.metal-48xl"|P6_b300_48xlarge->"p6-b300.48xlarge"|C8a_medium->"c8a.medium"|C8a_large->"c8a.large"|C8a_xlarge->"c8a.xlarge"|C8a_2xlarge->"c8a.2xlarge"|C8a_4xlarge->"c8a.4xlarge"|C8a_8xlarge->"c8a.8xlarge"|C8a_12xlarge->"c8a.12xlarge"|C8a_16xlarge->"c8a.16xlarge"|C8a_24xlarge->"c8a.24xlarge"|C8a_48xlarge->"c8a.48xlarge"|C8a_metal_24xl->"c8a.metal-24xl"|C8a_metal_48xl->"c8a.metal-48xl"|C8gb_12xlarge->"c8gb.12xlarge"|C8gb_16xlarge->"c8gb.16xlarge"|C8gb_24xlarge->"c8gb.24xlarge"|C8gb_2xlarge->"c8gb.2xlarge"|C8gb_4xlarge->"c8gb.4xlarge"|C8gb_8xlarge->"c8gb.8xlarge"|C8gb_large->"c8gb.large"|C8gb_medium->"c8gb.medium"|C8gb_metal_24xl->"c8gb.metal-24xl"|C8gb_xlarge->"c8gb.xlarge"|C8gb_48xlarge->"c8gb.48xlarge"|C8gb_metal_48xl->"c8gb.metal-48xl"|M8gb_12xlarge->"m8gb.12xlarge"|M8gb_16xlarge->"m8gb.16xlarge"|M8gb_24xlarge->"m8gb.24xlarge"|M8gb_2xlarge->"m8gb.2xlarge"|M8gb_4xlarge->"m8gb.4xlarge"|M8gb_8xlarge->"m8gb.8xlarge"|M8gb_large->"m8gb.large"|M8gb_medium->"m8gb.medium"|M8gb_xlarge->"m8gb.xlarge"|M8gb_48xlarge->"m8gb.48xlarge"|M8gb_metal_24xl->"m8gb.metal-24xl"|M8gb_metal_48xl->"m8gb.metal-48xl"|M8gn_12xlarge->"m8gn.12xlarge"|M8gn_16xlarge->"m8gn.16xlarge"|M8gn_24xlarge->"m8gn.24xlarge"|M8gn_2xlarge->"m8gn.2xlarge"|M8gn_48xlarge->"m8gn.48xlarge"|M8gn_4xlarge->"m8gn.4xlarge"|M8gn_8xlarge->"m8gn.8xlarge"|M8gn_large->"m8gn.large"|M8gn_medium->"m8gn.medium"|M8gn_xlarge->"m8gn.xlarge"|M8gn_metal_24xl->"m8gn.metal-24xl"|M8gn_metal_48xl->"m8gn.metal-48xl"|X8aedz_12xlarge->"x8aedz.12xlarge"|X8aedz_24xlarge->"x8aedz.24xlarge"|X8aedz_3xlarge->"x8aedz.3xlarge"|X8aedz_6xlarge->"x8aedz.6xlarge"|X8aedz_large->"x8aedz.large"|X8aedz_metal_12xl->"x8aedz.metal-12xl"|X8aedz_metal_24xl->"x8aedz.metal-24xl"|X8aedz_xlarge->"x8aedz.xlarge"|M8azn_medium->"m8azn.medium"|M8azn_large->"m8azn.large"|M8azn_xlarge->"m8azn.xlarge"|M8azn_3xlarge->"m8azn.3xlarge"|M8azn_6xlarge->"m8azn.6xlarge"|M8azn_12xlarge->"m8azn.12xlarge"|M8azn_24xlarge->"m8azn.24xlarge"|M8azn_metal_12xl->"m8azn.metal-12xl"|M8azn_metal_24xl->"m8azn.metal-24xl"|X8i_large->"x8i.large"|X8i_xlarge->"x8i.xlarge"|X8i_2xlarge->"x8i.2xlarge"|X8i_4xlarge->"x8i.4xlarge"|X8i_8xlarge->"x8i.8xlarge"|X8i_12xlarge->"x8i.12xlarge"|X8i_16xlarge->"x8i.16xlarge"|X8i_24xlarge->"x8i.24xlarge"|X8i_32xlarge->"x8i.32xlarge"|X8i_48xlarge->"x8i.48xlarge"|X8i_64xlarge->"x8i.64xlarge"|X8i_96xlarge->"x8i.96xlarge"|X8i_metal_48xl->"x8i.metal-48xl"|X8i_metal_96xl->"x8i.metal-96xl"|Mac_m4max_metal->"mac-m4max.metal"|G7e_2xlarge->"g7e.2xlarge"|G7e_4xlarge->"g7e.4xlarge"|G7e_8xlarge->"g7e.8xlarge"|G7e_12xlarge->"g7e.12xlarge"|G7e_24xlarge->"g7e.24xlarge"|G7e_48xlarge->"g7e.48xlarge"|R8id_large->"r8id.large"|R8id_xlarge->"r8id.xlarge"|R8id_2xlarge->"r8id.2xlarge"|R8id_4xlarge->"r8id.4xlarge"|R8id_8xlarge->"r8id.8xlarge"|R8id_12xlarge->"r8id.12xlarge"|R8id_16xlarge->"r8id.16xlarge"|R8id_24xlarge->"r8id.24xlarge"|R8id_32xlarge->"r8id.32xlarge"|R8id_48xlarge->"r8id.48xlarge"|R8id_96xlarge->"r8id.96xlarge"|R8id_metal_48xl->"r8id.metal-48xl"|R8id_metal_96xl->"r8id.metal-96xl"|C8id_large->"c8id.large"|C8id_xlarge->"c8id.xlarge"|C8id_2xlarge->"c8id.2xlarge"|C8id_4xlarge->"c8id.4xlarge"|C8id_8xlarge->"c8id.8xlarge"|C8id_12xlarge->"c8id.12xlarge"|C8id_16xlarge->"c8id.16xlarge"|C8id_24xlarge->"c8id.24xlarge"|C8id_32xlarge->"c8id.32xlarge"|C8id_48xlarge->"c8id.48xlarge"|C8id_96xlarge->"c8id.96xlarge"|C8id_metal_48xl->"c8id.metal-48xl"|C8id_metal_96xl->"c8id.metal-96xl"|M8id_large->"m8id.large"|M8id_xlarge->"m8id.xlarge"|M8id_2xlarge->"m8id.2xlarge"|M8id_4xlarge->"m8id.4xlarge"|M8id_8xlarge->"m8id.8xlarge"|M8id_12xlarge->"m8id.12xlarge"|M8id_16xlarge->"m8id.16xlarge"|M8id_24xlarge->"m8id.24xlarge"|M8id_32xlarge->"m8id.32xlarge"|M8id_48xlarge->"m8id.48xlarge"|M8id_96xlarge->"m8id.96xlarge"|M8id_metal_48xl->"m8id.metal-48xl"|M8id_metal_96xl->"m8id.metal-96xl"|Hpc8a_96xlarge->"hpc8a.96xlarge"|Non_static_ids->sletof_string=function|"a1.medium"->A1_medium|"a1.large"->A1_large|"a1.xlarge"->A1_xlarge|"a1.2xlarge"->A1_2xlarge|"a1.4xlarge"->A1_4xlarge|"a1.metal"->A1_metal|"c1.medium"->C1_medium|"c1.xlarge"->C1_xlarge|"c3.large"->C3_large|"c3.xlarge"->C3_xlarge|"c3.2xlarge"->C3_2xlarge|"c3.4xlarge"->C3_4xlarge|"c3.8xlarge"->C3_8xlarge|"c4.large"->C4_large|"c4.xlarge"->C4_xlarge|"c4.2xlarge"->C4_2xlarge|"c4.4xlarge"->C4_4xlarge|"c4.8xlarge"->C4_8xlarge|"c5.large"->C5_large|"c5.xlarge"->C5_xlarge|"c5.2xlarge"->C5_2xlarge|"c5.4xlarge"->C5_4xlarge|"c5.9xlarge"->C5_9xlarge|"c5.12xlarge"->C5_12xlarge|"c5.18xlarge"->C5_18xlarge|"c5.24xlarge"->C5_24xlarge|"c5.metal"->C5_metal|"c5a.large"->C5a_large|"c5a.xlarge"->C5a_xlarge|"c5a.2xlarge"->C5a_2xlarge|"c5a.4xlarge"->C5a_4xlarge|"c5a.8xlarge"->C5a_8xlarge|"c5a.12xlarge"->C5a_12xlarge|"c5a.16xlarge"->C5a_16xlarge|"c5a.24xlarge"->C5a_24xlarge|"c5ad.large"->C5ad_large|"c5ad.xlarge"->C5ad_xlarge|"c5ad.2xlarge"->C5ad_2xlarge|"c5ad.4xlarge"->C5ad_4xlarge|"c5ad.8xlarge"->C5ad_8xlarge|"c5ad.12xlarge"->C5ad_12xlarge|"c5ad.16xlarge"->C5ad_16xlarge|"c5ad.24xlarge"->C5ad_24xlarge|"c5d.large"->C5d_large|"c5d.xlarge"->C5d_xlarge|"c5d.2xlarge"->C5d_2xlarge|"c5d.4xlarge"->C5d_4xlarge|"c5d.9xlarge"->C5d_9xlarge|"c5d.12xlarge"->C5d_12xlarge|"c5d.18xlarge"->C5d_18xlarge|"c5d.24xlarge"->C5d_24xlarge|"c5d.metal"->C5d_metal|"c5n.large"->C5n_large|"c5n.xlarge"->C5n_xlarge|"c5n.2xlarge"->C5n_2xlarge|"c5n.4xlarge"->C5n_4xlarge|"c5n.9xlarge"->C5n_9xlarge|"c5n.18xlarge"->C5n_18xlarge|"c5n.metal"->C5n_metal|"c6g.medium"->C6g_medium|"c6g.large"->C6g_large|"c6g.xlarge"->C6g_xlarge|"c6g.2xlarge"->C6g_2xlarge|"c6g.4xlarge"->C6g_4xlarge|"c6g.8xlarge"->C6g_8xlarge|"c6g.12xlarge"->C6g_12xlarge|"c6g.16xlarge"->C6g_16xlarge|"c6g.metal"->C6g_metal|"c6gd.medium"->C6gd_medium|"c6gd.large"->C6gd_large|"c6gd.xlarge"->C6gd_xlarge|"c6gd.2xlarge"->C6gd_2xlarge|"c6gd.4xlarge"->C6gd_4xlarge|"c6gd.8xlarge"->C6gd_8xlarge|"c6gd.12xlarge"->C6gd_12xlarge|"c6gd.16xlarge"->C6gd_16xlarge|"c6gd.metal"->C6gd_metal|"c6gn.medium"->C6gn_medium|"c6gn.large"->C6gn_large|"c6gn.xlarge"->C6gn_xlarge|"c6gn.2xlarge"->C6gn_2xlarge|"c6gn.4xlarge"->C6gn_4xlarge|"c6gn.8xlarge"->C6gn_8xlarge|"c6gn.12xlarge"->C6gn_12xlarge|"c6gn.16xlarge"->C6gn_16xlarge|"c6i.large"->C6i_large|"c6i.xlarge"->C6i_xlarge|"c6i.2xlarge"->C6i_2xlarge|"c6i.4xlarge"->C6i_4xlarge|"c6i.8xlarge"->C6i_8xlarge|"c6i.12xlarge"->C6i_12xlarge|"c6i.16xlarge"->C6i_16xlarge|"c6i.24xlarge"->C6i_24xlarge|"c6i.32xlarge"->C6i_32xlarge|"c6i.metal"->C6i_metal|"cc1.4xlarge"->Cc1_4xlarge|"cc2.8xlarge"->Cc2_8xlarge|"cg1.4xlarge"->Cg1_4xlarge|"cr1.8xlarge"->Cr1_8xlarge|"d2.xlarge"->D2_xlarge|"d2.2xlarge"->D2_2xlarge|"d2.4xlarge"->D2_4xlarge|"d2.8xlarge"->D2_8xlarge|"d3.xlarge"->D3_xlarge|"d3.2xlarge"->D3_2xlarge|"d3.4xlarge"->D3_4xlarge|"d3.8xlarge"->D3_8xlarge|"d3en.xlarge"->D3en_xlarge|"d3en.2xlarge"->D3en_2xlarge|"d3en.4xlarge"->D3en_4xlarge|"d3en.6xlarge"->D3en_6xlarge|"d3en.8xlarge"->D3en_8xlarge|"d3en.12xlarge"->D3en_12xlarge|"dl1.24xlarge"->Dl1_24xlarge|"f1.2xlarge"->F1_2xlarge|"f1.4xlarge"->F1_4xlarge|"f1.16xlarge"->F1_16xlarge|"g2.2xlarge"->G2_2xlarge|"g2.8xlarge"->G2_8xlarge|"g3.4xlarge"->G3_4xlarge|"g3.8xlarge"->G3_8xlarge|"g3.16xlarge"->G3_16xlarge|"g3s.xlarge"->G3s_xlarge|"g4ad.xlarge"->G4ad_xlarge|"g4ad.2xlarge"->G4ad_2xlarge|"g4ad.4xlarge"->G4ad_4xlarge|"g4ad.8xlarge"->G4ad_8xlarge|"g4ad.16xlarge"->G4ad_16xlarge|"g4dn.xlarge"->G4dn_xlarge|"g4dn.2xlarge"->G4dn_2xlarge|"g4dn.4xlarge"->G4dn_4xlarge|"g4dn.8xlarge"->G4dn_8xlarge|"g4dn.12xlarge"->G4dn_12xlarge|"g4dn.16xlarge"->G4dn_16xlarge|"g4dn.metal"->G4dn_metal|"g5.xlarge"->G5_xlarge|"g5.2xlarge"->G5_2xlarge|"g5.4xlarge"->G5_4xlarge|"g5.8xlarge"->G5_8xlarge|"g5.12xlarge"->G5_12xlarge|"g5.16xlarge"->G5_16xlarge|"g5.24xlarge"->G5_24xlarge|"g5.48xlarge"->G5_48xlarge|"g5g.xlarge"->G5g_xlarge|"g5g.2xlarge"->G5g_2xlarge|"g5g.4xlarge"->G5g_4xlarge|"g5g.8xlarge"->G5g_8xlarge|"g5g.16xlarge"->G5g_16xlarge|"g5g.metal"->G5g_metal|"hi1.4xlarge"->Hi1_4xlarge|"hpc6a.48xlarge"->Hpc6a_48xlarge|"hs1.8xlarge"->Hs1_8xlarge|"h1.2xlarge"->H1_2xlarge|"h1.4xlarge"->H1_4xlarge|"h1.8xlarge"->H1_8xlarge|"h1.16xlarge"->H1_16xlarge|"i2.xlarge"->I2_xlarge|"i2.2xlarge"->I2_2xlarge|"i2.4xlarge"->I2_4xlarge|"i2.8xlarge"->I2_8xlarge|"i3.large"->I3_large|"i3.xlarge"->I3_xlarge|"i3.2xlarge"->I3_2xlarge|"i3.4xlarge"->I3_4xlarge|"i3.8xlarge"->I3_8xlarge|"i3.16xlarge"->I3_16xlarge|"i3.metal"->I3_metal|"i3en.large"->I3en_large|"i3en.xlarge"->I3en_xlarge|"i3en.2xlarge"->I3en_2xlarge|"i3en.3xlarge"->I3en_3xlarge|"i3en.6xlarge"->I3en_6xlarge|"i3en.12xlarge"->I3en_12xlarge|"i3en.24xlarge"->I3en_24xlarge|"i3en.metal"->I3en_metal|"im4gn.large"->Im4gn_large|"im4gn.xlarge"->Im4gn_xlarge|"im4gn.2xlarge"->Im4gn_2xlarge|"im4gn.4xlarge"->Im4gn_4xlarge|"im4gn.8xlarge"->Im4gn_8xlarge|"im4gn.16xlarge"->Im4gn_16xlarge|"inf1.xlarge"->Inf1_xlarge|"inf1.2xlarge"->Inf1_2xlarge|"inf1.6xlarge"->Inf1_6xlarge|"inf1.24xlarge"->Inf1_24xlarge|"is4gen.medium"->Is4gen_medium|"is4gen.large"->Is4gen_large|"is4gen.xlarge"->Is4gen_xlarge|"is4gen.2xlarge"->Is4gen_2xlarge|"is4gen.4xlarge"->Is4gen_4xlarge|"is4gen.8xlarge"->Is4gen_8xlarge|"m1.small"->M1_small|"m1.medium"->M1_medium|"m1.large"->M1_large|"m1.xlarge"->M1_xlarge|"m2.xlarge"->M2_xlarge|"m2.2xlarge"->M2_2xlarge|"m2.4xlarge"->M2_4xlarge|"m3.medium"->M3_medium|"m3.large"->M3_large|"m3.xlarge"->M3_xlarge|"m3.2xlarge"->M3_2xlarge|"m4.large"->M4_large|"m4.xlarge"->M4_xlarge|"m4.2xlarge"->M4_2xlarge|"m4.4xlarge"->M4_4xlarge|"m4.10xlarge"->M4_10xlarge|"m4.16xlarge"->M4_16xlarge|"m5.large"->M5_large|"m5.xlarge"->M5_xlarge|"m5.2xlarge"->M5_2xlarge|"m5.4xlarge"->M5_4xlarge|"m5.8xlarge"->M5_8xlarge|"m5.12xlarge"->M5_12xlarge|"m5.16xlarge"->M5_16xlarge|"m5.24xlarge"->M5_24xlarge|"m5.metal"->M5_metal|"m5a.large"->M5a_large|"m5a.xlarge"->M5a_xlarge|"m5a.2xlarge"->M5a_2xlarge|"m5a.4xlarge"->M5a_4xlarge|"m5a.8xlarge"->M5a_8xlarge|"m5a.12xlarge"->M5a_12xlarge|"m5a.16xlarge"->M5a_16xlarge|"m5a.24xlarge"->M5a_24xlarge|"m5ad.large"->M5ad_large|"m5ad.xlarge"->M5ad_xlarge|"m5ad.2xlarge"->M5ad_2xlarge|"m5ad.4xlarge"->M5ad_4xlarge|"m5ad.8xlarge"->M5ad_8xlarge|"m5ad.12xlarge"->M5ad_12xlarge|"m5ad.16xlarge"->M5ad_16xlarge|"m5ad.24xlarge"->M5ad_24xlarge|"m5d.large"->M5d_large|"m5d.xlarge"->M5d_xlarge|"m5d.2xlarge"->M5d_2xlarge|"m5d.4xlarge"->M5d_4xlarge|"m5d.8xlarge"->M5d_8xlarge|"m5d.12xlarge"->M5d_12xlarge|"m5d.16xlarge"->M5d_16xlarge|"m5d.24xlarge"->M5d_24xlarge|"m5d.metal"->M5d_metal|"m5dn.large"->M5dn_large|"m5dn.xlarge"->M5dn_xlarge|"m5dn.2xlarge"->M5dn_2xlarge|"m5dn.4xlarge"->M5dn_4xlarge|"m5dn.8xlarge"->M5dn_8xlarge|"m5dn.12xlarge"->M5dn_12xlarge|"m5dn.16xlarge"->M5dn_16xlarge|"m5dn.24xlarge"->M5dn_24xlarge|"m5dn.metal"->M5dn_metal|"m5n.large"->M5n_large|"m5n.xlarge"->M5n_xlarge|"m5n.2xlarge"->M5n_2xlarge|"m5n.4xlarge"->M5n_4xlarge|"m5n.8xlarge"->M5n_8xlarge|"m5n.12xlarge"->M5n_12xlarge|"m5n.16xlarge"->M5n_16xlarge|"m5n.24xlarge"->M5n_24xlarge|"m5n.metal"->M5n_metal|"m5zn.large"->M5zn_large|"m5zn.xlarge"->M5zn_xlarge|"m5zn.2xlarge"->M5zn_2xlarge|"m5zn.3xlarge"->M5zn_3xlarge|"m5zn.6xlarge"->M5zn_6xlarge|"m5zn.12xlarge"->M5zn_12xlarge|"m5zn.metal"->M5zn_metal|"m6a.large"->M6a_large|"m6a.xlarge"->M6a_xlarge|"m6a.2xlarge"->M6a_2xlarge|"m6a.4xlarge"->M6a_4xlarge|"m6a.8xlarge"->M6a_8xlarge|"m6a.12xlarge"->M6a_12xlarge|"m6a.16xlarge"->M6a_16xlarge|"m6a.24xlarge"->M6a_24xlarge|"m6a.32xlarge"->M6a_32xlarge|"m6a.48xlarge"->M6a_48xlarge|"m6g.metal"->M6g_metal|"m6g.medium"->M6g_medium|"m6g.large"->M6g_large|"m6g.xlarge"->M6g_xlarge|"m6g.2xlarge"->M6g_2xlarge|"m6g.4xlarge"->M6g_4xlarge|"m6g.8xlarge"->M6g_8xlarge|"m6g.12xlarge"->M6g_12xlarge|"m6g.16xlarge"->M6g_16xlarge|"m6gd.metal"->M6gd_metal|"m6gd.medium"->M6gd_medium|"m6gd.large"->M6gd_large|"m6gd.xlarge"->M6gd_xlarge|"m6gd.2xlarge"->M6gd_2xlarge|"m6gd.4xlarge"->M6gd_4xlarge|"m6gd.8xlarge"->M6gd_8xlarge|"m6gd.12xlarge"->M6gd_12xlarge|"m6gd.16xlarge"->M6gd_16xlarge|"m6i.large"->M6i_large|"m6i.xlarge"->M6i_xlarge|"m6i.2xlarge"->M6i_2xlarge|"m6i.4xlarge"->M6i_4xlarge|"m6i.8xlarge"->M6i_8xlarge|"m6i.12xlarge"->M6i_12xlarge|"m6i.16xlarge"->M6i_16xlarge|"m6i.24xlarge"->M6i_24xlarge|"m6i.32xlarge"->M6i_32xlarge|"m6i.metal"->M6i_metal|"mac1.metal"->Mac1_metal|"p2.xlarge"->P2_xlarge|"p2.8xlarge"->P2_8xlarge|"p2.16xlarge"->P2_16xlarge|"p3.2xlarge"->P3_2xlarge|"p3.8xlarge"->P3_8xlarge|"p3.16xlarge"->P3_16xlarge|"p3dn.24xlarge"->P3dn_24xlarge|"p4d.24xlarge"->P4d_24xlarge|"r3.large"->R3_large|"r3.xlarge"->R3_xlarge|"r3.2xlarge"->R3_2xlarge|"r3.4xlarge"->R3_4xlarge|"r3.8xlarge"->R3_8xlarge|"r4.large"->R4_large|"r4.xlarge"->R4_xlarge|"r4.2xlarge"->R4_2xlarge|"r4.4xlarge"->R4_4xlarge|"r4.8xlarge"->R4_8xlarge|"r4.16xlarge"->R4_16xlarge|"r5.large"->R5_large|"r5.xlarge"->R5_xlarge|"r5.2xlarge"->R5_2xlarge|"r5.4xlarge"->R5_4xlarge|"r5.8xlarge"->R5_8xlarge|"r5.12xlarge"->R5_12xlarge|"r5.16xlarge"->R5_16xlarge|"r5.24xlarge"->R5_24xlarge|"r5.metal"->R5_metal|"r5a.large"->R5a_large|"r5a.xlarge"->R5a_xlarge|"r5a.2xlarge"->R5a_2xlarge|"r5a.4xlarge"->R5a_4xlarge|"r5a.8xlarge"->R5a_8xlarge|"r5a.12xlarge"->R5a_12xlarge|"r5a.16xlarge"->R5a_16xlarge|"r5a.24xlarge"->R5a_24xlarge|"r5ad.large"->R5ad_large|"r5ad.xlarge"->R5ad_xlarge|"r5ad.2xlarge"->R5ad_2xlarge|"r5ad.4xlarge"->R5ad_4xlarge|"r5ad.8xlarge"->R5ad_8xlarge|"r5ad.12xlarge"->R5ad_12xlarge|"r5ad.16xlarge"->R5ad_16xlarge|"r5ad.24xlarge"->R5ad_24xlarge|"r5b.large"->R5b_large|"r5b.xlarge"->R5b_xlarge|"r5b.2xlarge"->R5b_2xlarge|"r5b.4xlarge"->R5b_4xlarge|"r5b.8xlarge"->R5b_8xlarge|"r5b.12xlarge"->R5b_12xlarge|"r5b.16xlarge"->R5b_16xlarge|"r5b.24xlarge"->R5b_24xlarge|"r5b.metal"->R5b_metal|"r5d.large"->R5d_large|"r5d.xlarge"->R5d_xlarge|"r5d.2xlarge"->R5d_2xlarge|"r5d.4xlarge"->R5d_4xlarge|"r5d.8xlarge"->R5d_8xlarge|"r5d.12xlarge"->R5d_12xlarge|"r5d.16xlarge"->R5d_16xlarge|"r5d.24xlarge"->R5d_24xlarge|"r5d.metal"->R5d_metal|"r5dn.large"->R5dn_large|"r5dn.xlarge"->R5dn_xlarge|"r5dn.2xlarge"->R5dn_2xlarge|"r5dn.4xlarge"->R5dn_4xlarge|"r5dn.8xlarge"->R5dn_8xlarge|"r5dn.12xlarge"->R5dn_12xlarge|"r5dn.16xlarge"->R5dn_16xlarge|"r5dn.24xlarge"->R5dn_24xlarge|"r5dn.metal"->R5dn_metal|"r5n.large"->R5n_large|"r5n.xlarge"->R5n_xlarge|"r5n.2xlarge"->R5n_2xlarge|"r5n.4xlarge"->R5n_4xlarge|"r5n.8xlarge"->R5n_8xlarge|"r5n.12xlarge"->R5n_12xlarge|"r5n.16xlarge"->R5n_16xlarge|"r5n.24xlarge"->R5n_24xlarge|"r5n.metal"->R5n_metal|"r6g.medium"->R6g_medium|"r6g.large"->R6g_large|"r6g.xlarge"->R6g_xlarge|"r6g.2xlarge"->R6g_2xlarge|"r6g.4xlarge"->R6g_4xlarge|"r6g.8xlarge"->R6g_8xlarge|"r6g.12xlarge"->R6g_12xlarge|"r6g.16xlarge"->R6g_16xlarge|"r6g.metal"->R6g_metal|"r6gd.medium"->R6gd_medium|"r6gd.large"->R6gd_large|"r6gd.xlarge"->R6gd_xlarge|"r6gd.2xlarge"->R6gd_2xlarge|"r6gd.4xlarge"->R6gd_4xlarge|"r6gd.8xlarge"->R6gd_8xlarge|"r6gd.12xlarge"->R6gd_12xlarge|"r6gd.16xlarge"->R6gd_16xlarge|"r6gd.metal"->R6gd_metal|"r6i.large"->R6i_large|"r6i.xlarge"->R6i_xlarge|"r6i.2xlarge"->R6i_2xlarge|"r6i.4xlarge"->R6i_4xlarge|"r6i.8xlarge"->R6i_8xlarge|"r6i.12xlarge"->R6i_12xlarge|"r6i.16xlarge"->R6i_16xlarge|"r6i.24xlarge"->R6i_24xlarge|"r6i.32xlarge"->R6i_32xlarge|"r6i.metal"->R6i_metal|"t1.micro"->T1_micro|"t2.nano"->T2_nano|"t2.micro"->T2_micro|"t2.small"->T2_small|"t2.medium"->T2_medium|"t2.large"->T2_large|"t2.xlarge"->T2_xlarge|"t2.2xlarge"->T2_2xlarge|"t3.nano"->T3_nano|"t3.micro"->T3_micro|"t3.small"->T3_small|"t3.medium"->T3_medium|"t3.large"->T3_large|"t3.xlarge"->T3_xlarge|"t3.2xlarge"->T3_2xlarge|"t3a.nano"->T3a_nano|"t3a.micro"->T3a_micro|"t3a.small"->T3a_small|"t3a.medium"->T3a_medium|"t3a.large"->T3a_large|"t3a.xlarge"->T3a_xlarge|"t3a.2xlarge"->T3a_2xlarge|"t4g.nano"->T4g_nano|"t4g.micro"->T4g_micro|"t4g.small"->T4g_small|"t4g.medium"->T4g_medium|"t4g.large"->T4g_large|"t4g.xlarge"->T4g_xlarge|"t4g.2xlarge"->T4g_2xlarge|"u-6tb1.56xlarge"->U_6tb1_56xlarge|"u-6tb1.112xlarge"->U_6tb1_112xlarge|"u-9tb1.112xlarge"->U_9tb1_112xlarge|"u-12tb1.112xlarge"->U_12tb1_112xlarge|"u-6tb1.metal"->U_6tb1_metal|"u-9tb1.metal"->U_9tb1_metal|"u-12tb1.metal"->U_12tb1_metal|"u-18tb1.metal"->U_18tb1_metal|"u-24tb1.metal"->U_24tb1_metal|"vt1.3xlarge"->Vt1_3xlarge|"vt1.6xlarge"->Vt1_6xlarge|"vt1.24xlarge"->Vt1_24xlarge|"x1.16xlarge"->X1_16xlarge|"x1.32xlarge"->X1_32xlarge|"x1e.xlarge"->X1e_xlarge|"x1e.2xlarge"->X1e_2xlarge|"x1e.4xlarge"->X1e_4xlarge|"x1e.8xlarge"->X1e_8xlarge|"x1e.16xlarge"->X1e_16xlarge|"x1e.32xlarge"->X1e_32xlarge|"x2iezn.2xlarge"->X2iezn_2xlarge|"x2iezn.4xlarge"->X2iezn_4xlarge|"x2iezn.6xlarge"->X2iezn_6xlarge|"x2iezn.8xlarge"->X2iezn_8xlarge|"x2iezn.12xlarge"->X2iezn_12xlarge|"x2iezn.metal"->X2iezn_metal|"x2gd.medium"->X2gd_medium|"x2gd.large"->X2gd_large|"x2gd.xlarge"->X2gd_xlarge|"x2gd.2xlarge"->X2gd_2xlarge|"x2gd.4xlarge"->X2gd_4xlarge|"x2gd.8xlarge"->X2gd_8xlarge|"x2gd.12xlarge"->X2gd_12xlarge|"x2gd.16xlarge"->X2gd_16xlarge|"x2gd.metal"->X2gd_metal|"z1d.large"->Z1d_large|"z1d.xlarge"->Z1d_xlarge|"z1d.2xlarge"->Z1d_2xlarge|"z1d.3xlarge"->Z1d_3xlarge|"z1d.6xlarge"->Z1d_6xlarge|"z1d.12xlarge"->Z1d_12xlarge|"z1d.metal"->Z1d_metal|"x2idn.16xlarge"->X2idn_16xlarge|"x2idn.24xlarge"->X2idn_24xlarge|"x2idn.32xlarge"->X2idn_32xlarge|"x2iedn.xlarge"->X2iedn_xlarge|"x2iedn.2xlarge"->X2iedn_2xlarge|"x2iedn.4xlarge"->X2iedn_4xlarge|"x2iedn.8xlarge"->X2iedn_8xlarge|"x2iedn.16xlarge"->X2iedn_16xlarge|"x2iedn.24xlarge"->X2iedn_24xlarge|"x2iedn.32xlarge"->X2iedn_32xlarge|"c6a.large"->C6a_large|"c6a.xlarge"->C6a_xlarge|"c6a.2xlarge"->C6a_2xlarge|"c6a.4xlarge"->C6a_4xlarge|"c6a.8xlarge"->C6a_8xlarge|"c6a.12xlarge"->C6a_12xlarge|"c6a.16xlarge"->C6a_16xlarge|"c6a.24xlarge"->C6a_24xlarge|"c6a.32xlarge"->C6a_32xlarge|"c6a.48xlarge"->C6a_48xlarge|"c6a.metal"->C6a_metal|"m6a.metal"->M6a_metal|"i4i.large"->I4i_large|"i4i.xlarge"->I4i_xlarge|"i4i.2xlarge"->I4i_2xlarge|"i4i.4xlarge"->I4i_4xlarge|"i4i.8xlarge"->I4i_8xlarge|"i4i.16xlarge"->I4i_16xlarge|"i4i.32xlarge"->I4i_32xlarge|"i4i.metal"->I4i_metal|"x2idn.metal"->X2idn_metal|"x2iedn.metal"->X2iedn_metal|"c7g.medium"->C7g_medium|"c7g.large"->C7g_large|"c7g.xlarge"->C7g_xlarge|"c7g.2xlarge"->C7g_2xlarge|"c7g.4xlarge"->C7g_4xlarge|"c7g.8xlarge"->C7g_8xlarge|"c7g.12xlarge"->C7g_12xlarge|"c7g.16xlarge"->C7g_16xlarge|"mac2.metal"->Mac2_metal|"c6id.large"->C6id_large|"c6id.xlarge"->C6id_xlarge|"c6id.2xlarge"->C6id_2xlarge|"c6id.4xlarge"->C6id_4xlarge|"c6id.8xlarge"->C6id_8xlarge|"c6id.12xlarge"->C6id_12xlarge|"c6id.16xlarge"->C6id_16xlarge|"c6id.24xlarge"->C6id_24xlarge|"c6id.32xlarge"->C6id_32xlarge|"c6id.metal"->C6id_metal|"m6id.large"->M6id_large|"m6id.xlarge"->M6id_xlarge|"m6id.2xlarge"->M6id_2xlarge|"m6id.4xlarge"->M6id_4xlarge|"m6id.8xlarge"->M6id_8xlarge|"m6id.12xlarge"->M6id_12xlarge|"m6id.16xlarge"->M6id_16xlarge|"m6id.24xlarge"->M6id_24xlarge|"m6id.32xlarge"->M6id_32xlarge|"m6id.metal"->M6id_metal|"r6id.large"->R6id_large|"r6id.xlarge"->R6id_xlarge|"r6id.2xlarge"->R6id_2xlarge|"r6id.4xlarge"->R6id_4xlarge|"r6id.8xlarge"->R6id_8xlarge|"r6id.12xlarge"->R6id_12xlarge|"r6id.16xlarge"->R6id_16xlarge|"r6id.24xlarge"->R6id_24xlarge|"r6id.32xlarge"->R6id_32xlarge|"r6id.metal"->R6id_metal|"r6a.large"->R6a_large|"r6a.xlarge"->R6a_xlarge|"r6a.2xlarge"->R6a_2xlarge|"r6a.4xlarge"->R6a_4xlarge|"r6a.8xlarge"->R6a_8xlarge|"r6a.12xlarge"->R6a_12xlarge|"r6a.16xlarge"->R6a_16xlarge|"r6a.24xlarge"->R6a_24xlarge|"r6a.32xlarge"->R6a_32xlarge|"r6a.48xlarge"->R6a_48xlarge|"r6a.metal"->R6a_metal|"p4de.24xlarge"->P4de_24xlarge|"u-3tb1.56xlarge"->U_3tb1_56xlarge|"u-18tb1.112xlarge"->U_18tb1_112xlarge|"u-24tb1.112xlarge"->U_24tb1_112xlarge|"trn1.2xlarge"->Trn1_2xlarge|"trn1.32xlarge"->Trn1_32xlarge|"hpc6id.32xlarge"->Hpc6id_32xlarge|"c6in.large"->C6in_large|"c6in.xlarge"->C6in_xlarge|"c6in.2xlarge"->C6in_2xlarge|"c6in.4xlarge"->C6in_4xlarge|"c6in.8xlarge"->C6in_8xlarge|"c6in.12xlarge"->C6in_12xlarge|"c6in.16xlarge"->C6in_16xlarge|"c6in.24xlarge"->C6in_24xlarge|"c6in.32xlarge"->C6in_32xlarge|"m6in.large"->M6in_large|"m6in.xlarge"->M6in_xlarge|"m6in.2xlarge"->M6in_2xlarge|"m6in.4xlarge"->M6in_4xlarge|"m6in.8xlarge"->M6in_8xlarge|"m6in.12xlarge"->M6in_12xlarge|"m6in.16xlarge"->M6in_16xlarge|"m6in.24xlarge"->M6in_24xlarge|"m6in.32xlarge"->M6in_32xlarge|"m6idn.large"->M6idn_large|"m6idn.xlarge"->M6idn_xlarge|"m6idn.2xlarge"->M6idn_2xlarge|"m6idn.4xlarge"->M6idn_4xlarge|"m6idn.8xlarge"->M6idn_8xlarge|"m6idn.12xlarge"->M6idn_12xlarge|"m6idn.16xlarge"->M6idn_16xlarge|"m6idn.24xlarge"->M6idn_24xlarge|"m6idn.32xlarge"->M6idn_32xlarge|"r6in.large"->R6in_large|"r6in.xlarge"->R6in_xlarge|"r6in.2xlarge"->R6in_2xlarge|"r6in.4xlarge"->R6in_4xlarge|"r6in.8xlarge"->R6in_8xlarge|"r6in.12xlarge"->R6in_12xlarge|"r6in.16xlarge"->R6in_16xlarge|"r6in.24xlarge"->R6in_24xlarge|"r6in.32xlarge"->R6in_32xlarge|"r6idn.large"->R6idn_large|"r6idn.xlarge"->R6idn_xlarge|"r6idn.2xlarge"->R6idn_2xlarge|"r6idn.4xlarge"->R6idn_4xlarge|"r6idn.8xlarge"->R6idn_8xlarge|"r6idn.12xlarge"->R6idn_12xlarge|"r6idn.16xlarge"->R6idn_16xlarge|"r6idn.24xlarge"->R6idn_24xlarge|"r6idn.32xlarge"->R6idn_32xlarge|"c7g.metal"->C7g_metal|"m7g.medium"->M7g_medium|"m7g.large"->M7g_large|"m7g.xlarge"->M7g_xlarge|"m7g.2xlarge"->M7g_2xlarge|"m7g.4xlarge"->M7g_4xlarge|"m7g.8xlarge"->M7g_8xlarge|"m7g.12xlarge"->M7g_12xlarge|"m7g.16xlarge"->M7g_16xlarge|"m7g.metal"->M7g_metal|"r7g.medium"->R7g_medium|"r7g.large"->R7g_large|"r7g.xlarge"->R7g_xlarge|"r7g.2xlarge"->R7g_2xlarge|"r7g.4xlarge"->R7g_4xlarge|"r7g.8xlarge"->R7g_8xlarge|"r7g.12xlarge"->R7g_12xlarge|"r7g.16xlarge"->R7g_16xlarge|"r7g.metal"->R7g_metal|"c6in.metal"->C6in_metal|"m6in.metal"->M6in_metal|"m6idn.metal"->M6idn_metal|"r6in.metal"->R6in_metal|"r6idn.metal"->R6idn_metal|"inf2.xlarge"->Inf2_xlarge|"inf2.8xlarge"->Inf2_8xlarge|"inf2.24xlarge"->Inf2_24xlarge|"inf2.48xlarge"->Inf2_48xlarge|"trn1n.32xlarge"->Trn1n_32xlarge|"i4g.large"->I4g_large|"i4g.xlarge"->I4g_xlarge|"i4g.2xlarge"->I4g_2xlarge|"i4g.4xlarge"->I4g_4xlarge|"i4g.8xlarge"->I4g_8xlarge|"i4g.16xlarge"->I4g_16xlarge|"hpc7g.4xlarge"->Hpc7g_4xlarge|"hpc7g.8xlarge"->Hpc7g_8xlarge|"hpc7g.16xlarge"->Hpc7g_16xlarge|"c7gn.medium"->C7gn_medium|"c7gn.large"->C7gn_large|"c7gn.xlarge"->C7gn_xlarge|"c7gn.2xlarge"->C7gn_2xlarge|"c7gn.4xlarge"->C7gn_4xlarge|"c7gn.8xlarge"->C7gn_8xlarge|"c7gn.12xlarge"->C7gn_12xlarge|"c7gn.16xlarge"->C7gn_16xlarge|"p5.48xlarge"->P5_48xlarge|"m7i.large"->M7i_large|"m7i.xlarge"->M7i_xlarge|"m7i.2xlarge"->M7i_2xlarge|"m7i.4xlarge"->M7i_4xlarge|"m7i.8xlarge"->M7i_8xlarge|"m7i.12xlarge"->M7i_12xlarge|"m7i.16xlarge"->M7i_16xlarge|"m7i.24xlarge"->M7i_24xlarge|"m7i.48xlarge"->M7i_48xlarge|"m7i-flex.large"->M7i_flex_large|"m7i-flex.xlarge"->M7i_flex_xlarge|"m7i-flex.2xlarge"->M7i_flex_2xlarge|"m7i-flex.4xlarge"->M7i_flex_4xlarge|"m7i-flex.8xlarge"->M7i_flex_8xlarge|"m7a.medium"->M7a_medium|"m7a.large"->M7a_large|"m7a.xlarge"->M7a_xlarge|"m7a.2xlarge"->M7a_2xlarge|"m7a.4xlarge"->M7a_4xlarge|"m7a.8xlarge"->M7a_8xlarge|"m7a.12xlarge"->M7a_12xlarge|"m7a.16xlarge"->M7a_16xlarge|"m7a.24xlarge"->M7a_24xlarge|"m7a.32xlarge"->M7a_32xlarge|"m7a.48xlarge"->M7a_48xlarge|"m7a.metal-48xl"->M7a_metal_48xl|"hpc7a.12xlarge"->Hpc7a_12xlarge|"hpc7a.24xlarge"->Hpc7a_24xlarge|"hpc7a.48xlarge"->Hpc7a_48xlarge|"hpc7a.96xlarge"->Hpc7a_96xlarge|"c7gd.medium"->C7gd_medium|"c7gd.large"->C7gd_large|"c7gd.xlarge"->C7gd_xlarge|"c7gd.2xlarge"->C7gd_2xlarge|"c7gd.4xlarge"->C7gd_4xlarge|"c7gd.8xlarge"->C7gd_8xlarge|"c7gd.12xlarge"->C7gd_12xlarge|"c7gd.16xlarge"->C7gd_16xlarge|"m7gd.medium"->M7gd_medium|"m7gd.large"->M7gd_large|"m7gd.xlarge"->M7gd_xlarge|"m7gd.2xlarge"->M7gd_2xlarge|"m7gd.4xlarge"->M7gd_4xlarge|"m7gd.8xlarge"->M7gd_8xlarge|"m7gd.12xlarge"->M7gd_12xlarge|"m7gd.16xlarge"->M7gd_16xlarge|"r7gd.medium"->R7gd_medium|"r7gd.large"->R7gd_large|"r7gd.xlarge"->R7gd_xlarge|"r7gd.2xlarge"->R7gd_2xlarge|"r7gd.4xlarge"->R7gd_4xlarge|"r7gd.8xlarge"->R7gd_8xlarge|"r7gd.12xlarge"->R7gd_12xlarge|"r7gd.16xlarge"->R7gd_16xlarge|"r7a.medium"->R7a_medium|"r7a.large"->R7a_large|"r7a.xlarge"->R7a_xlarge|"r7a.2xlarge"->R7a_2xlarge|"r7a.4xlarge"->R7a_4xlarge|"r7a.8xlarge"->R7a_8xlarge|"r7a.12xlarge"->R7a_12xlarge|"r7a.16xlarge"->R7a_16xlarge|"r7a.24xlarge"->R7a_24xlarge|"r7a.32xlarge"->R7a_32xlarge|"r7a.48xlarge"->R7a_48xlarge|"c7i.large"->C7i_large|"c7i.xlarge"->C7i_xlarge|"c7i.2xlarge"->C7i_2xlarge|"c7i.4xlarge"->C7i_4xlarge|"c7i.8xlarge"->C7i_8xlarge|"c7i.12xlarge"->C7i_12xlarge|"c7i.16xlarge"->C7i_16xlarge|"c7i.24xlarge"->C7i_24xlarge|"c7i.48xlarge"->C7i_48xlarge|"mac2-m2pro.metal"->Mac2_m2pro_metal|"r7iz.large"->R7iz_large|"r7iz.xlarge"->R7iz_xlarge|"r7iz.2xlarge"->R7iz_2xlarge|"r7iz.4xlarge"->R7iz_4xlarge|"r7iz.8xlarge"->R7iz_8xlarge|"r7iz.12xlarge"->R7iz_12xlarge|"r7iz.16xlarge"->R7iz_16xlarge|"r7iz.32xlarge"->R7iz_32xlarge|"c7a.medium"->C7a_medium|"c7a.large"->C7a_large|"c7a.xlarge"->C7a_xlarge|"c7a.2xlarge"->C7a_2xlarge|"c7a.4xlarge"->C7a_4xlarge|"c7a.8xlarge"->C7a_8xlarge|"c7a.12xlarge"->C7a_12xlarge|"c7a.16xlarge"->C7a_16xlarge|"c7a.24xlarge"->C7a_24xlarge|"c7a.32xlarge"->C7a_32xlarge|"c7a.48xlarge"->C7a_48xlarge|"c7a.metal-48xl"->C7a_metal_48xl|"r7a.metal-48xl"->R7a_metal_48xl|"r7i.large"->R7i_large|"r7i.xlarge"->R7i_xlarge|"r7i.2xlarge"->R7i_2xlarge|"r7i.4xlarge"->R7i_4xlarge|"r7i.8xlarge"->R7i_8xlarge|"r7i.12xlarge"->R7i_12xlarge|"r7i.16xlarge"->R7i_16xlarge|"r7i.24xlarge"->R7i_24xlarge|"r7i.48xlarge"->R7i_48xlarge|"dl2q.24xlarge"->Dl2q_24xlarge|"mac2-m2.metal"->Mac2_m2_metal|"i4i.12xlarge"->I4i_12xlarge|"i4i.24xlarge"->I4i_24xlarge|"c7i.metal-24xl"->C7i_metal_24xl|"c7i.metal-48xl"->C7i_metal_48xl|"m7i.metal-24xl"->M7i_metal_24xl|"m7i.metal-48xl"->M7i_metal_48xl|"r7i.metal-24xl"->R7i_metal_24xl|"r7i.metal-48xl"->R7i_metal_48xl|"r7iz.metal-16xl"->R7iz_metal_16xl|"r7iz.metal-32xl"->R7iz_metal_32xl|"c7gd.metal"->C7gd_metal|"m7gd.metal"->M7gd_metal|"r7gd.metal"->R7gd_metal|"g6.xlarge"->G6_xlarge|"g6.2xlarge"->G6_2xlarge|"g6.4xlarge"->G6_4xlarge|"g6.8xlarge"->G6_8xlarge|"g6.12xlarge"->G6_12xlarge|"g6.16xlarge"->G6_16xlarge|"g6.24xlarge"->G6_24xlarge|"g6.48xlarge"->G6_48xlarge|"gr6.4xlarge"->Gr6_4xlarge|"gr6.8xlarge"->Gr6_8xlarge|"c7i-flex.large"->C7i_flex_large|"c7i-flex.xlarge"->C7i_flex_xlarge|"c7i-flex.2xlarge"->C7i_flex_2xlarge|"c7i-flex.4xlarge"->C7i_flex_4xlarge|"c7i-flex.8xlarge"->C7i_flex_8xlarge|"u7i-12tb.224xlarge"->U7i_12tb_224xlarge|"u7in-16tb.224xlarge"->U7in_16tb_224xlarge|"u7in-24tb.224xlarge"->U7in_24tb_224xlarge|"u7in-32tb.224xlarge"->U7in_32tb_224xlarge|"u7ib-12tb.224xlarge"->U7ib_12tb_224xlarge|"c7gn.metal"->C7gn_metal|"r8g.medium"->R8g_medium|"r8g.large"->R8g_large|"r8g.xlarge"->R8g_xlarge|"r8g.2xlarge"->R8g_2xlarge|"r8g.4xlarge"->R8g_4xlarge|"r8g.8xlarge"->R8g_8xlarge|"r8g.12xlarge"->R8g_12xlarge|"r8g.16xlarge"->R8g_16xlarge|"r8g.24xlarge"->R8g_24xlarge|"r8g.48xlarge"->R8g_48xlarge|"r8g.metal-24xl"->R8g_metal_24xl|"r8g.metal-48xl"->R8g_metal_48xl|"mac2-m1ultra.metal"->Mac2_m1ultra_metal|"g6e.xlarge"->G6e_xlarge|"g6e.2xlarge"->G6e_2xlarge|"g6e.4xlarge"->G6e_4xlarge|"g6e.8xlarge"->G6e_8xlarge|"g6e.12xlarge"->G6e_12xlarge|"g6e.16xlarge"->G6e_16xlarge|"g6e.24xlarge"->G6e_24xlarge|"g6e.48xlarge"->G6e_48xlarge|"c8g.medium"->C8g_medium|"c8g.large"->C8g_large|"c8g.xlarge"->C8g_xlarge|"c8g.2xlarge"->C8g_2xlarge|"c8g.4xlarge"->C8g_4xlarge|"c8g.8xlarge"->C8g_8xlarge|"c8g.12xlarge"->C8g_12xlarge|"c8g.16xlarge"->C8g_16xlarge|"c8g.24xlarge"->C8g_24xlarge|"c8g.48xlarge"->C8g_48xlarge|"c8g.metal-24xl"->C8g_metal_24xl|"c8g.metal-48xl"->C8g_metal_48xl|"m8g.medium"->M8g_medium|"m8g.large"->M8g_large|"m8g.xlarge"->M8g_xlarge|"m8g.2xlarge"->M8g_2xlarge|"m8g.4xlarge"->M8g_4xlarge|"m8g.8xlarge"->M8g_8xlarge|"m8g.12xlarge"->M8g_12xlarge|"m8g.16xlarge"->M8g_16xlarge|"m8g.24xlarge"->M8g_24xlarge|"m8g.48xlarge"->M8g_48xlarge|"m8g.metal-24xl"->M8g_metal_24xl|"m8g.metal-48xl"->M8g_metal_48xl|"x8g.medium"->X8g_medium|"x8g.large"->X8g_large|"x8g.xlarge"->X8g_xlarge|"x8g.2xlarge"->X8g_2xlarge|"x8g.4xlarge"->X8g_4xlarge|"x8g.8xlarge"->X8g_8xlarge|"x8g.12xlarge"->X8g_12xlarge|"x8g.16xlarge"->X8g_16xlarge|"x8g.24xlarge"->X8g_24xlarge|"x8g.48xlarge"->X8g_48xlarge|"x8g.metal-24xl"->X8g_metal_24xl|"x8g.metal-48xl"->X8g_metal_48xl|"i7ie.large"->I7ie_large|"i7ie.xlarge"->I7ie_xlarge|"i7ie.2xlarge"->I7ie_2xlarge|"i7ie.3xlarge"->I7ie_3xlarge|"i7ie.6xlarge"->I7ie_6xlarge|"i7ie.12xlarge"->I7ie_12xlarge|"i7ie.18xlarge"->I7ie_18xlarge|"i7ie.24xlarge"->I7ie_24xlarge|"i7ie.48xlarge"->I7ie_48xlarge|"i8g.large"->I8g_large|"i8g.xlarge"->I8g_xlarge|"i8g.2xlarge"->I8g_2xlarge|"i8g.4xlarge"->I8g_4xlarge|"i8g.8xlarge"->I8g_8xlarge|"i8g.12xlarge"->I8g_12xlarge|"i8g.16xlarge"->I8g_16xlarge|"i8g.24xlarge"->I8g_24xlarge|"i8g.metal-24xl"->I8g_metal_24xl|"u7i-6tb.112xlarge"->U7i_6tb_112xlarge|"u7i-8tb.112xlarge"->U7i_8tb_112xlarge|"u7inh-32tb.480xlarge"->U7inh_32tb_480xlarge|"p5e.48xlarge"->P5e_48xlarge|"p5en.48xlarge"->P5en_48xlarge|"f2.12xlarge"->F2_12xlarge|"f2.48xlarge"->F2_48xlarge|"trn2.48xlarge"->Trn2_48xlarge|"c7i-flex.12xlarge"->C7i_flex_12xlarge|"c7i-flex.16xlarge"->C7i_flex_16xlarge|"m7i-flex.12xlarge"->M7i_flex_12xlarge|"m7i-flex.16xlarge"->M7i_flex_16xlarge|"i7ie.metal-24xl"->I7ie_metal_24xl|"i7ie.metal-48xl"->I7ie_metal_48xl|"i8g.48xlarge"->I8g_48xlarge|"c8gd.medium"->C8gd_medium|"c8gd.large"->C8gd_large|"c8gd.xlarge"->C8gd_xlarge|"c8gd.2xlarge"->C8gd_2xlarge|"c8gd.4xlarge"->C8gd_4xlarge|"c8gd.8xlarge"->C8gd_8xlarge|"c8gd.12xlarge"->C8gd_12xlarge|"c8gd.16xlarge"->C8gd_16xlarge|"c8gd.24xlarge"->C8gd_24xlarge|"c8gd.48xlarge"->C8gd_48xlarge|"c8gd.metal-24xl"->C8gd_metal_24xl|"c8gd.metal-48xl"->C8gd_metal_48xl|"i7i.large"->I7i_large|"i7i.xlarge"->I7i_xlarge|"i7i.2xlarge"->I7i_2xlarge|"i7i.4xlarge"->I7i_4xlarge|"i7i.8xlarge"->I7i_8xlarge|"i7i.12xlarge"->I7i_12xlarge|"i7i.16xlarge"->I7i_16xlarge|"i7i.24xlarge"->I7i_24xlarge|"i7i.48xlarge"->I7i_48xlarge|"i7i.metal-24xl"->I7i_metal_24xl|"i7i.metal-48xl"->I7i_metal_48xl|"p6-b200.48xlarge"->P6_b200_48xlarge|"m8gd.medium"->M8gd_medium|"m8gd.large"->M8gd_large|"m8gd.xlarge"->M8gd_xlarge|"m8gd.2xlarge"->M8gd_2xlarge|"m8gd.4xlarge"->M8gd_4xlarge|"m8gd.8xlarge"->M8gd_8xlarge|"m8gd.12xlarge"->M8gd_12xlarge|"m8gd.16xlarge"->M8gd_16xlarge|"m8gd.24xlarge"->M8gd_24xlarge|"m8gd.48xlarge"->M8gd_48xlarge|"m8gd.metal-24xl"->M8gd_metal_24xl|"m8gd.metal-48xl"->M8gd_metal_48xl|"r8gd.medium"->R8gd_medium|"r8gd.large"->R8gd_large|"r8gd.xlarge"->R8gd_xlarge|"r8gd.2xlarge"->R8gd_2xlarge|"r8gd.4xlarge"->R8gd_4xlarge|"r8gd.8xlarge"->R8gd_8xlarge|"r8gd.12xlarge"->R8gd_12xlarge|"r8gd.16xlarge"->R8gd_16xlarge|"r8gd.24xlarge"->R8gd_24xlarge|"r8gd.48xlarge"->R8gd_48xlarge|"r8gd.metal-24xl"->R8gd_metal_24xl|"r8gd.metal-48xl"->R8gd_metal_48xl|"c8gn.medium"->C8gn_medium|"c8gn.large"->C8gn_large|"c8gn.xlarge"->C8gn_xlarge|"c8gn.2xlarge"->C8gn_2xlarge|"c8gn.4xlarge"->C8gn_4xlarge|"c8gn.8xlarge"->C8gn_8xlarge|"c8gn.12xlarge"->C8gn_12xlarge|"c8gn.16xlarge"->C8gn_16xlarge|"c8gn.24xlarge"->C8gn_24xlarge|"c8gn.48xlarge"->C8gn_48xlarge|"c8gn.metal-24xl"->C8gn_metal_24xl|"c8gn.metal-48xl"->C8gn_metal_48xl|"f2.6xlarge"->F2_6xlarge|"p6e-gb200.36xlarge"->P6e_gb200_36xlarge|"g6f.large"->G6f_large|"g6f.xlarge"->G6f_xlarge|"g6f.2xlarge"->G6f_2xlarge|"g6f.4xlarge"->G6f_4xlarge|"gr6f.4xlarge"->Gr6f_4xlarge|"p5.4xlarge"->P5_4xlarge|"r8i.large"->R8i_large|"r8i.xlarge"->R8i_xlarge|"r8i.2xlarge"->R8i_2xlarge|"r8i.4xlarge"->R8i_4xlarge|"r8i.8xlarge"->R8i_8xlarge|"r8i.12xlarge"->R8i_12xlarge|"r8i.16xlarge"->R8i_16xlarge|"r8i.24xlarge"->R8i_24xlarge|"r8i.32xlarge"->R8i_32xlarge|"r8i.48xlarge"->R8i_48xlarge|"r8i.96xlarge"->R8i_96xlarge|"r8i.metal-48xl"->R8i_metal_48xl|"r8i.metal-96xl"->R8i_metal_96xl|"r8i-flex.large"->R8i_flex_large|"r8i-flex.xlarge"->R8i_flex_xlarge|"r8i-flex.2xlarge"->R8i_flex_2xlarge|"r8i-flex.4xlarge"->R8i_flex_4xlarge|"r8i-flex.8xlarge"->R8i_flex_8xlarge|"r8i-flex.12xlarge"->R8i_flex_12xlarge|"r8i-flex.16xlarge"->R8i_flex_16xlarge|"m8i.large"->M8i_large|"m8i.xlarge"->M8i_xlarge|"m8i.2xlarge"->M8i_2xlarge|"m8i.4xlarge"->M8i_4xlarge|"m8i.8xlarge"->M8i_8xlarge|"m8i.12xlarge"->M8i_12xlarge|"m8i.16xlarge"->M8i_16xlarge|"m8i.24xlarge"->M8i_24xlarge|"m8i.32xlarge"->M8i_32xlarge|"m8i.48xlarge"->M8i_48xlarge|"m8i.96xlarge"->M8i_96xlarge|"m8i.metal-48xl"->M8i_metal_48xl|"m8i.metal-96xl"->M8i_metal_96xl|"m8i-flex.large"->M8i_flex_large|"m8i-flex.xlarge"->M8i_flex_xlarge|"m8i-flex.2xlarge"->M8i_flex_2xlarge|"m8i-flex.4xlarge"->M8i_flex_4xlarge|"m8i-flex.8xlarge"->M8i_flex_8xlarge|"m8i-flex.12xlarge"->M8i_flex_12xlarge|"m8i-flex.16xlarge"->M8i_flex_16xlarge|"i8ge.large"->I8ge_large|"i8ge.xlarge"->I8ge_xlarge|"i8ge.2xlarge"->I8ge_2xlarge|"i8ge.3xlarge"->I8ge_3xlarge|"i8ge.6xlarge"->I8ge_6xlarge|"i8ge.12xlarge"->I8ge_12xlarge|"i8ge.18xlarge"->I8ge_18xlarge|"i8ge.24xlarge"->I8ge_24xlarge|"i8ge.48xlarge"->I8ge_48xlarge|"i8ge.metal-24xl"->I8ge_metal_24xl|"i8ge.metal-48xl"->I8ge_metal_48xl|"mac-m4.metal"->Mac_m4_metal|"mac-m4pro.metal"->Mac_m4pro_metal|"r8gn.medium"->R8gn_medium|"r8gn.large"->R8gn_large|"r8gn.xlarge"->R8gn_xlarge|"r8gn.2xlarge"->R8gn_2xlarge|"r8gn.4xlarge"->R8gn_4xlarge|"r8gn.8xlarge"->R8gn_8xlarge|"r8gn.12xlarge"->R8gn_12xlarge|"r8gn.16xlarge"->R8gn_16xlarge|"r8gn.24xlarge"->R8gn_24xlarge|"r8gn.48xlarge"->R8gn_48xlarge|"r8gn.metal-24xl"->R8gn_metal_24xl|"r8gn.metal-48xl"->R8gn_metal_48xl|"c8i.large"->C8i_large|"c8i.xlarge"->C8i_xlarge|"c8i.2xlarge"->C8i_2xlarge|"c8i.4xlarge"->C8i_4xlarge|"c8i.8xlarge"->C8i_8xlarge|"c8i.12xlarge"->C8i_12xlarge|"c8i.16xlarge"->C8i_16xlarge|"c8i.24xlarge"->C8i_24xlarge|"c8i.32xlarge"->C8i_32xlarge|"c8i.48xlarge"->C8i_48xlarge|"c8i.96xlarge"->C8i_96xlarge|"c8i.metal-48xl"->C8i_metal_48xl|"c8i.metal-96xl"->C8i_metal_96xl|"c8i-flex.large"->C8i_flex_large|"c8i-flex.xlarge"->C8i_flex_xlarge|"c8i-flex.2xlarge"->C8i_flex_2xlarge|"c8i-flex.4xlarge"->C8i_flex_4xlarge|"c8i-flex.8xlarge"->C8i_flex_8xlarge|"c8i-flex.12xlarge"->C8i_flex_12xlarge|"c8i-flex.16xlarge"->C8i_flex_16xlarge|"r8gb.medium"->R8gb_medium|"r8gb.large"->R8gb_large|"r8gb.xlarge"->R8gb_xlarge|"r8gb.2xlarge"->R8gb_2xlarge|"r8gb.4xlarge"->R8gb_4xlarge|"r8gb.8xlarge"->R8gb_8xlarge|"r8gb.12xlarge"->R8gb_12xlarge|"r8gb.16xlarge"->R8gb_16xlarge|"r8gb.24xlarge"->R8gb_24xlarge|"r8gb.metal-24xl"->R8gb_metal_24xl|"m8a.medium"->M8a_medium|"m8a.large"->M8a_large|"m8a.xlarge"->M8a_xlarge|"m8a.2xlarge"->M8a_2xlarge|"m8a.4xlarge"->M8a_4xlarge|"m8a.8xlarge"->M8a_8xlarge|"m8a.12xlarge"->M8a_12xlarge|"m8a.16xlarge"->M8a_16xlarge|"m8a.24xlarge"->M8a_24xlarge|"m8a.48xlarge"->M8a_48xlarge|"m8a.metal-24xl"->M8a_metal_24xl|"m8a.metal-48xl"->M8a_metal_48xl|"trn2.3xlarge"->Trn2_3xlarge|"r8a.medium"->R8a_medium|"r8a.large"->R8a_large|"r8a.xlarge"->R8a_xlarge|"r8a.2xlarge"->R8a_2xlarge|"r8a.4xlarge"->R8a_4xlarge|"r8a.8xlarge"->R8a_8xlarge|"r8a.12xlarge"->R8a_12xlarge|"r8a.16xlarge"->R8a_16xlarge|"r8a.24xlarge"->R8a_24xlarge|"r8a.48xlarge"->R8a_48xlarge|"r8a.metal-24xl"->R8a_metal_24xl|"r8a.metal-48xl"->R8a_metal_48xl|"p6-b300.48xlarge"->P6_b300_48xlarge|"c8a.medium"->C8a_medium|"c8a.large"->C8a_large|"c8a.xlarge"->C8a_xlarge|"c8a.2xlarge"->C8a_2xlarge|"c8a.4xlarge"->C8a_4xlarge|"c8a.8xlarge"->C8a_8xlarge|"c8a.12xlarge"->C8a_12xlarge|"c8a.16xlarge"->C8a_16xlarge|"c8a.24xlarge"->C8a_24xlarge|"c8a.48xlarge"->C8a_48xlarge|"c8a.metal-24xl"->C8a_metal_24xl|"c8a.metal-48xl"->C8a_metal_48xl|"c8gb.12xlarge"->C8gb_12xlarge|"c8gb.16xlarge"->C8gb_16xlarge|"c8gb.24xlarge"->C8gb_24xlarge|"c8gb.2xlarge"->C8gb_2xlarge|"c8gb.4xlarge"->C8gb_4xlarge|"c8gb.8xlarge"->C8gb_8xlarge|"c8gb.large"->C8gb_large|"c8gb.medium"->C8gb_medium|"c8gb.metal-24xl"->C8gb_metal_24xl|"c8gb.xlarge"->C8gb_xlarge|"c8gb.48xlarge"->C8gb_48xlarge|"c8gb.metal-48xl"->C8gb_metal_48xl|"m8gb.12xlarge"->M8gb_12xlarge|"m8gb.16xlarge"->M8gb_16xlarge|"m8gb.24xlarge"->M8gb_24xlarge|"m8gb.2xlarge"->M8gb_2xlarge|"m8gb.4xlarge"->M8gb_4xlarge|"m8gb.8xlarge"->M8gb_8xlarge|"m8gb.large"->M8gb_large|"m8gb.medium"->M8gb_medium|"m8gb.xlarge"->M8gb_xlarge|"m8gb.48xlarge"->M8gb_48xlarge|"m8gb.metal-24xl"->M8gb_metal_24xl|"m8gb.metal-48xl"->M8gb_metal_48xl|"m8gn.12xlarge"->M8gn_12xlarge|"m8gn.16xlarge"->M8gn_16xlarge|"m8gn.24xlarge"->M8gn_24xlarge|"m8gn.2xlarge"->M8gn_2xlarge|"m8gn.48xlarge"->M8gn_48xlarge|"m8gn.4xlarge"->M8gn_4xlarge|"m8gn.8xlarge"->M8gn_8xlarge|"m8gn.large"->M8gn_large|"m8gn.medium"->M8gn_medium|"m8gn.xlarge"->M8gn_xlarge|"m8gn.metal-24xl"->M8gn_metal_24xl|"m8gn.metal-48xl"->M8gn_metal_48xl|"x8aedz.12xlarge"->X8aedz_12xlarge|"x8aedz.24xlarge"->X8aedz_24xlarge|"x8aedz.3xlarge"->X8aedz_3xlarge|"x8aedz.6xlarge"->X8aedz_6xlarge|"x8aedz.large"->X8aedz_large|"x8aedz.metal-12xl"->X8aedz_metal_12xl|"x8aedz.metal-24xl"->X8aedz_metal_24xl|"x8aedz.xlarge"->X8aedz_xlarge|"m8azn.medium"->M8azn_medium|"m8azn.large"->M8azn_large|"m8azn.xlarge"->M8azn_xlarge|"m8azn.3xlarge"->M8azn_3xlarge|"m8azn.6xlarge"->M8azn_6xlarge|"m8azn.12xlarge"->M8azn_12xlarge|"m8azn.24xlarge"->M8azn_24xlarge|"m8azn.metal-12xl"->M8azn_metal_12xl|"m8azn.metal-24xl"->M8azn_metal_24xl|"x8i.large"->X8i_large|"x8i.xlarge"->X8i_xlarge|"x8i.2xlarge"->X8i_2xlarge|"x8i.4xlarge"->X8i_4xlarge|"x8i.8xlarge"->X8i_8xlarge|"x8i.12xlarge"->X8i_12xlarge|"x8i.16xlarge"->X8i_16xlarge|"x8i.24xlarge"->X8i_24xlarge|"x8i.32xlarge"->X8i_32xlarge|"x8i.48xlarge"->X8i_48xlarge|"x8i.64xlarge"->X8i_64xlarge|"x8i.96xlarge"->X8i_96xlarge|"x8i.metal-48xl"->X8i_metal_48xl|"x8i.metal-96xl"->X8i_metal_96xl|"mac-m4max.metal"->Mac_m4max_metal|"g7e.2xlarge"->G7e_2xlarge|"g7e.4xlarge"->G7e_4xlarge|"g7e.8xlarge"->G7e_8xlarge|"g7e.12xlarge"->G7e_12xlarge|"g7e.24xlarge"->G7e_24xlarge|"g7e.48xlarge"->G7e_48xlarge|"r8id.large"->R8id_large|"r8id.xlarge"->R8id_xlarge|"r8id.2xlarge"->R8id_2xlarge|"r8id.4xlarge"->R8id_4xlarge|"r8id.8xlarge"->R8id_8xlarge|"r8id.12xlarge"->R8id_12xlarge|"r8id.16xlarge"->R8id_16xlarge|"r8id.24xlarge"->R8id_24xlarge|"r8id.32xlarge"->R8id_32xlarge|"r8id.48xlarge"->R8id_48xlarge|"r8id.96xlarge"->R8id_96xlarge|"r8id.metal-48xl"->R8id_metal_48xl|"r8id.metal-96xl"->R8id_metal_96xl|"c8id.large"->C8id_large|"c8id.xlarge"->C8id_xlarge|"c8id.2xlarge"->C8id_2xlarge|"c8id.4xlarge"->C8id_4xlarge|"c8id.8xlarge"->C8id_8xlarge|"c8id.12xlarge"->C8id_12xlarge|"c8id.16xlarge"->C8id_16xlarge|"c8id.24xlarge"->C8id_24xlarge|"c8id.32xlarge"->C8id_32xlarge|"c8id.48xlarge"->C8id_48xlarge|"c8id.96xlarge"->C8id_96xlarge|"c8id.metal-48xl"->C8id_metal_48xl|"c8id.metal-96xl"->C8id_metal_96xl|"m8id.large"->M8id_large|"m8id.xlarge"->M8id_xlarge|"m8id.2xlarge"->M8id_2xlarge|"m8id.4xlarge"->M8id_4xlarge|"m8id.8xlarge"->M8id_8xlarge|"m8id.12xlarge"->M8id_12xlarge|"m8id.16xlarge"->M8id_16xlarge|"m8id.24xlarge"->M8id_24xlarge|"m8id.32xlarge"->M8id_32xlarge|"m8id.48xlarge"->M8id_48xlarge|"m8id.96xlarge"->M8id_96xlarge|"m8id.metal-48xl"->M8id_metal_48xl|"m8id.metal-96xl"->M8id_metal_96xl|"hpc8a.96xlarge"->Hpc8a_96xlarge|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 InstanceType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"InstanceType"j)letto_json=simple_to_jsonto_valueendmoduleSubnetId=structtypenonrect=stringletcontext_="SubnetId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"SubnetId"jletto_json=simple_to_jsonto_valueendmoduleAttachmentStatus=structtypenonrect=|Attaching|Attached|Detaching|Detached|Non_static_idofstringletmakei=iletto_string=function|Attaching->"attaching"|Attached->"attached"|Detaching->"detaching"|Detached->"detached"|Non_static_ids->sletof_string=function|"attaching"->Attaching|"attached"->Attached|"detaching"->Detaching|"detached"->Detached|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 AttachmentStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"AttachmentStatus"j)letto_json=simple_to_jsonto_valueendmoduleDateTime=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_valueendmoduleOperatorResponse=structtypenonrect={managed:Boolean.toption[@ocaml.doc"If true, the resource is managed by a service provider."];principal:String_.toption[@ocaml.doc"If managed is true, then the principal is returned. The principal is the service provider that manages the resource."];hiddenByDefault:Boolean.toption[@ocaml.doc"If true, the resource is hidden by default based on the managed resource visibility settings for the account."]}letmake?managed=fun?principal->fun?hiddenByDefault->fun()->{managed;principal;hiddenByDefault}letto_valuex=structure_to_value[("managed",(Option.mapx.managed~f:Boolean.to_value));("principal",(Option.mapx.principal~f:String_.to_value));("hiddenByDefault",(Option.mapx.hiddenByDefault~f:Boolean.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lethiddenByDefault=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"hiddenByDefault")inletprincipal=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"principal")inletmanaged=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"managed")inmake?hiddenByDefault?principal?managed()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lethiddenByDefault=field_mapjson__"HiddenByDefault"Boolean.of_jsoninletprincipal=field_mapjson__"Principal"String_.of_jsoninletmanaged=field_mapjson__"Managed"Boolean.of_jsoninmake?hiddenByDefault?principal?managed()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes whether the resource is managed by a service provider and, if so, describes the service provider that manages it."]moduleGroupIdentifier=structtypenonrect={groupId:String_.toption[@ocaml.doc"The ID of the security group."];groupName:String_.toption[@ocaml.doc"The name of the security group."]}letmake?groupId=fun?groupName->fun()->{groupId;groupName}letto_valuex=structure_to_value[("groupId",(Option.mapx.groupId~f:String_.to_value));("groupName",(Option.mapx.groupName~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgroupName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"groupName")inletgroupId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"groupId")inmake?groupName?groupId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgroupName=field_mapjson__"GroupName"String_.of_jsoninletgroupId=field_mapjson__"GroupId"String_.of_jsoninmake?groupName?groupId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a security group."]moduleInstanceIpv4Prefix=structtypenonrect={ipv4Prefix:String_.toption[@ocaml.doc"One or more IPv4 prefixes assigned to the network interface."]}letmake?ipv4Prefix=fun()->{ipv4Prefix}letto_valuex=structure_to_value[("ipv4Prefix",(Option.mapx.ipv4Prefix~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letipv4Prefix=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ipv4Prefix")inmake?ipv4Prefix()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letipv4Prefix=field_mapjson__"Ipv4Prefix"String_.of_jsoninmake?ipv4Prefix()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Information about an IPv4 prefix."]moduleInstanceIpv6Prefix=structtypenonrect={ipv6Prefix:String_.toption[@ocaml.doc"One or more IPv6 prefixes assigned to the network interface."]}letmake?ipv6Prefix=fun()->{ipv6Prefix}letto_valuex=structure_to_value[("ipv6Prefix",(Option.mapx.ipv6Prefix~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letipv6Prefix=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ipv6Prefix")inmake?ipv6Prefix()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letipv6Prefix=field_mapjson__"Ipv6Prefix"String_.of_jsoninmake?ipv6Prefix()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Information about an IPv6 prefix."]moduleInstanceAttachmentEnaSrdSpecification=structtypenonrect={enaSrdEnabled:Boolean.toption[@ocaml.doc"Indicates whether ENA Express is enabled for the network interface."];enaSrdUdpSpecification:InstanceAttachmentEnaSrdUdpSpecification.toption[@ocaml.doc"Configures ENA Express for UDP network traffic."]}letmake?enaSrdEnabled=fun?enaSrdUdpSpecification->fun()->{enaSrdEnabled;enaSrdUdpSpecification}letto_valuex=structure_to_value[("enaSrdEnabled",(Option.mapx.enaSrdEnabled~f:Boolean.to_value));("enaSrdUdpSpecification",(Option.mapx.enaSrdUdpSpecification~f:InstanceAttachmentEnaSrdUdpSpecification.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letenaSrdUdpSpecification=(Option.map~f:InstanceAttachmentEnaSrdUdpSpecification.of_xml)(Xml.childxml_arg0"enaSrdUdpSpecification")inletenaSrdEnabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"enaSrdEnabled")inmake?enaSrdUdpSpecification?enaSrdEnabled()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letenaSrdUdpSpecification=field_mapjson__"EnaSrdUdpSpecification"InstanceAttachmentEnaSrdUdpSpecification.of_jsoninletenaSrdEnabled=field_mapjson__"EnaSrdEnabled"Boolean.of_jsoninmake?enaSrdUdpSpecification?enaSrdEnabled()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) technology to increase the maximum bandwidth used per stream and minimize tail latency of network traffic between EC2 instances. With ENA Express, you can communicate between two EC2 instances in the same subnet within the same account, or in different accounts. Both sending and receiving instances must have ENA Express enabled. To improve the reliability of network packet delivery, ENA Express reorders network packets on the receiving end by default. However, some UDP-based applications are designed to handle network packets that are out of order to reduce the overhead for packet delivery at the network layer. When ENA Express is enabled, you can specify whether UDP network traffic uses it."]moduleInstancePrivateIpAddress=structtypenonrect={association:InstanceNetworkInterfaceAssociation.toption[@ocaml.doc"The association information for an Elastic IP address for the network interface."];primary:Boolean.toption[@ocaml.doc"Indicates whether this IPv4 address is the primary private IP address of the network interface."];privateDnsName:String_.toption[@ocaml.doc"The private IPv4 DNS name."];privateIpAddress:String_.toption[@ocaml.doc"The private IPv4 address of the network interface."]}letmake?association=fun?primary->fun?privateDnsName->fun?privateIpAddress->fun()->{association;primary;privateDnsName;privateIpAddress}letto_valuex=structure_to_value[("association",(Option.mapx.association~f:InstanceNetworkInterfaceAssociation.to_value));("primary",(Option.mapx.primary~f:Boolean.to_value));("privateDnsName",(Option.mapx.privateDnsName~f:String_.to_value));("privateIpAddress",(Option.mapx.privateIpAddress~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letprivateIpAddress=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"privateIpAddress")inletprivateDnsName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"privateDnsName")inletprimary=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"primary")inletassociation=(Option.map~f:InstanceNetworkInterfaceAssociation.of_xml)(Xml.childxml_arg0"association")inmake?privateIpAddress?privateDnsName?primary?association()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letprivateIpAddress=field_mapjson__"PrivateIpAddress"String_.of_jsoninletprivateDnsName=field_mapjson__"PrivateDnsName"String_.of_jsoninletprimary=field_mapjson__"Primary"Boolean.of_jsoninletassociation=field_mapjson__"Association"InstanceNetworkInterfaceAssociation.of_jsoninmake?privateIpAddress?privateDnsName?primary?association()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a private IPv4 address."]moduleMillisecondDateTime=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_valueendmoduleInstanceSecondaryInterfacePrivateIpAddress=structtypenonrect={privateIpAddress:String_.toption[@ocaml.doc"The private IPv4 address."]}letmake?privateIpAddress=fun()->{privateIpAddress}letto_valuex=structure_to_value[("privateIpAddress",(Option.mapx.privateIpAddress~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letprivateIpAddress=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"privateIpAddress")inmake?privateIpAddress()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letprivateIpAddress=field_mapjson__"PrivateIpAddress"String_.of_jsoninmake?privateIpAddress()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a private IPv4 address for a secondary interface."]moduleImageUsageResourceTypeOptionValue=structtypenonrect=stringletcontext_="ImageUsageResourceTypeOptionValue"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ImageUsageResourceTypeOptionValue"jletto_json=simple_to_jsonto_valueendmoduleBlockDeviceMappingResponse=structtypenonrect={deviceName:String_.toption[@ocaml.doc"The device name (for example, /dev/sdh or xvdh)."];virtualName:String_.toption[@ocaml.doc"The virtual device name."];ebs:EbsBlockDeviceResponse.toption[@ocaml.doc"Parameters used to automatically set up EBS volumes when the instance is launched."];noDevice:String_.toption[@ocaml.doc"Suppresses the specified device included in the block device mapping."]}letmake?deviceName=fun?virtualName->fun?ebs->fun?noDevice->fun()->{deviceName;virtualName;ebs;noDevice}letto_valuex=structure_to_value[("deviceName",(Option.mapx.deviceName~f:String_.to_value));("virtualName",(Option.mapx.virtualName~f:String_.to_value));("ebs",(Option.mapx.ebs~f:EbsBlockDeviceResponse.to_value));("noDevice",(Option.mapx.noDevice~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnoDevice=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"noDevice")inletebs=(Option.map~f:EbsBlockDeviceResponse.of_xml)(Xml.childxml_arg0"ebs")inletvirtualName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"virtualName")inletdeviceName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"deviceName")inmake?noDevice?ebs?virtualName?deviceName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnoDevice=field_mapjson__"NoDevice"String_.of_jsoninletebs=field_mapjson__"Ebs"EbsBlockDeviceResponse.of_jsoninletvirtualName=field_mapjson__"VirtualName"String_.of_jsoninletdeviceName=field_mapjson__"DeviceName"String_.of_jsoninmake?noDevice?ebs?virtualName?deviceName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a block device mapping, which defines the EBS volumes and instance store volumes to attach to an instance at launch."]modulePlacementGroupName=structtypenonrect=stringletcontext_="PlacementGroupName"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"PlacementGroupName"jletto_json=simple_to_jsonto_valueendmoduleFleetEbsBlockDeviceRequest=structtypenonrect={encrypted:Boolean.toption[@ocaml.doc"Indicates whether the encryption state of an EBS volume is changed while being restored from a backing snapshot. The effect of setting the encryption state to true depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see Amazon EBS encryption in the Amazon EBS User Guide. In no case can you remove encryption from an encrypted volume. Encrypted volumes can only be attached to instances that support Amazon EBS encryption. For more information, see Supported instance types. This parameter is not returned by DescribeImageAttribute. For CreateImage and RegisterImage, whether you can include this parameter, and the allowed values differ depending on the type of block device mapping you are creating. If you are creating a block device mapping for a new (empty) volume, you can include this parameter, and specify either true for an encrypted volume, or false for an unencrypted volume. If you omit this parameter, it defaults to false (unencrypted). If you are creating a block device mapping from an existing encrypted or unencrypted snapshot, you must omit this parameter. If you include this parameter, the request will fail, regardless of the value that you specify. If you are creating a block device mapping from an existing unencrypted volume, you can include this parameter, but you must specify false. If you specify true, the request will fail. In this case, we recommend that you omit the parameter. If you are creating a block device mapping from an existing encrypted volume, you can include this parameter, and specify either true or false. However, if you specify false, the parameter is ignored and the block device mapping is always encrypted. In this case, we recommend that you omit the parameter."];deleteOnTermination:Boolean.toption[@ocaml.doc"Indicates whether the EBS volume is deleted on instance termination. For more information, see Preserve data when an instance is terminated in the Amazon EC2 User Guide."];iops:Integer.toption[@ocaml.doc"The number of I/O operations per second (IOPS). For gp3, io1, and io2 volumes, this represents the number of IOPS that are provisioned for the volume. For gp2 volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. The following are the supported values for each volume type: gp3: 3,000 - 80,000 IOPS io1: 100 - 64,000 IOPS io2: 100 - 256,000 IOPS For io2 volumes, you can achieve up to 256,000 IOPS on instances built on the Nitro System. On other instances, you can achieve performance up to 32,000 IOPS. This parameter is required for io1 and io2 volumes. The default for gp3 volumes is 3,000 IOPS."];throughput:Integer.toption[@ocaml.doc"The throughput that the volume supports, in MiB/s. This parameter is valid only for gp3 volumes. Valid Range: Minimum value of 125. Maximum value of 2,000."];kmsKeyId:KmsKeyId.toption[@ocaml.doc"Identifier (key ID, key alias, key ARN, or alias ARN) of the customer managed KMS key to use for EBS encryption. This parameter is only supported on BlockDeviceMapping objects called by CreateFleet, RequestSpotInstances, and RunInstances."];snapshotId:SnapshotId.toption[@ocaml.doc"The ID of the snapshot."];volumeSize:Integer.toption[@ocaml.doc"The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. If you specify a snapshot, the default is the snapshot size. You can specify a volume size that is equal to or larger than the snapshot size. The following are the supported sizes for each volume type: gp2: 1 - 16,384 GiB gp3: 1 - 65,536 GiB io1: 4 - 16,384 GiB io2: 4 - 65,536 GiB st1 and sc1: 125 - 16,384 GiB standard: 1 - 1024 GiB"];volumeType:VolumeType.toption[@ocaml.doc"The volume type. For more information, see Amazon EBS volume types in the Amazon EBS User Guide."]}letmake?encrypted=fun?deleteOnTermination->fun?iops->fun?throughput->fun?kmsKeyId->fun?snapshotId->fun?volumeSize->fun?volumeType->fun()->{encrypted;deleteOnTermination;iops;throughput;kmsKeyId;snapshotId;volumeSize;volumeType}letto_valuex=structure_to_value[("Encrypted",(Option.mapx.encrypted~f:Boolean.to_value));("DeleteOnTermination",(Option.mapx.deleteOnTermination~f:Boolean.to_value));("Iops",(Option.mapx.iops~f:Integer.to_value));("Throughput",(Option.mapx.throughput~f:Integer.to_value));("KmsKeyId",(Option.mapx.kmsKeyId~f:KmsKeyId.to_value));("SnapshotId",(Option.mapx.snapshotId~f:SnapshotId.to_value));("VolumeSize",(Option.mapx.volumeSize~f:Integer.to_value));("VolumeType",(Option.mapx.volumeType~f:VolumeType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvolumeType=(Option.map~f:VolumeType.of_xml)(Xml.childxml_arg0"VolumeType")inletvolumeSize=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"VolumeSize")inletsnapshotId=(Option.map~f:SnapshotId.of_xml)(Xml.childxml_arg0"SnapshotId")inletkmsKeyId=(Option.map~f:KmsKeyId.of_xml)(Xml.childxml_arg0"KmsKeyId")inletthroughput=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"Throughput")inletiops=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"Iops")inletdeleteOnTermination=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"DeleteOnTermination")inletencrypted=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"Encrypted")inmake?volumeType?volumeSize?snapshotId?kmsKeyId?throughput?iops?deleteOnTermination?encrypted()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvolumeType=field_mapjson__"VolumeType"VolumeType.of_jsoninletvolumeSize=field_mapjson__"VolumeSize"Integer.of_jsoninletsnapshotId=field_mapjson__"SnapshotId"SnapshotId.of_jsoninletkmsKeyId=field_mapjson__"KmsKeyId"KmsKeyId.of_jsoninletthroughput=field_mapjson__"Throughput"Integer.of_jsoninletiops=field_mapjson__"Iops"Integer.of_jsoninletdeleteOnTermination=field_mapjson__"DeleteOnTermination"Boolean.of_jsoninletencrypted=field_mapjson__"Encrypted"Boolean.of_jsoninmake?volumeType?volumeSize?snapshotId?kmsKeyId?throughput?iops?deleteOnTermination?encrypted()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a block device for an EBS volume."]moduleCpuPerformanceFactorRequest=structtypenonrect={references:PerformanceFactorReferenceSetRequest.toption[@ocaml.doc"Specify an instance family to use as the baseline reference for CPU performance. All instance types that match your specified attributes will be compared against the CPU performance of the referenced instance family, regardless of CPU manufacturer or architecture differences. Currently, only one instance family can be specified in the list."]}letmake?references=fun()->{references}letto_valuex=structure_to_value[("Reference",(Option.mapx.references~f:PerformanceFactorReferenceSetRequest.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letreferences=(Option.map~f:PerformanceFactorReferenceSetRequest.of_xml)(Xml.childxml_arg0"Reference")inmake?references()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letreferences=field_mapjson__"References"PerformanceFactorReferenceSetRequest.of_jsoninmake?references()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The CPU performance to consider, using an instance family as the baseline reference."]moduleProtocol=structtypenonrect=|Tcp|Udp|Non_static_idofstringletmakei=iletto_string=function|Tcp->"tcp"|Udp->"udp"|Non_static_ids->sletof_string=function|"tcp"->Tcp|"udp"->Udp|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 Protocol"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"Protocol"j)letto_json=simple_to_jsonto_valueendmoduleAnalysisComponentList=structtypenonrect=AnalysisComponent.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:AnalysisComponent.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:AnalysisComponent.of_xml)letof_jsonj=list_of_json~kind:"AnalysisComponentList"~of_json:AnalysisComponent.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleRuleGroupRuleOptionsPairList=structtypenonrect=RuleGroupRuleOptionsPair.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:RuleGroupRuleOptionsPair.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:RuleGroupRuleOptionsPair.of_xml)letof_jsonj=list_of_json~kind:"RuleGroupRuleOptionsPairList"~of_json:RuleGroupRuleOptionsPair.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleRuleGroupTypePairList=structtypenonrect=RuleGroupTypePair.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:RuleGroupTypePair.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:RuleGroupTypePair.of_xml)letof_jsonj=list_of_json~kind:"RuleGroupTypePairList"~of_json:RuleGroupTypePair.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAnalysisAclRule=structtypenonrect={cidr:String_.toption[@ocaml.doc"The IPv4 address range, in CIDR notation."];egress:Boolean.toption[@ocaml.doc"Indicates whether the rule is an outbound rule."];portRange:PortRange.toption[@ocaml.doc"The range of ports."];protocol:String_.toption[@ocaml.doc"The protocol."];ruleAction:String_.toption[@ocaml.doc"Indicates whether to allow or deny traffic that matches the rule."];ruleNumber:Integer.toption[@ocaml.doc"The rule number."]}letmake?cidr=fun?egress->fun?portRange->fun?protocol->fun?ruleAction->fun?ruleNumber->fun()->{cidr;egress;portRange;protocol;ruleAction;ruleNumber}letto_valuex=structure_to_value[("cidr",(Option.mapx.cidr~f:String_.to_value));("egress",(Option.mapx.egress~f:Boolean.to_value));("portRange",(Option.mapx.portRange~f:PortRange.to_value));("protocol",(Option.mapx.protocol~f:String_.to_value));("ruleAction",(Option.mapx.ruleAction~f:String_.to_value));("ruleNumber",(Option.mapx.ruleNumber~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letruleNumber=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"ruleNumber")inletruleAction=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ruleAction")inletprotocol=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"protocol")inletportRange=(Option.map~f:PortRange.of_xml)(Xml.childxml_arg0"portRange")inletegress=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"egress")inletcidr=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"cidr")inmake?ruleNumber?ruleAction?protocol?portRange?egress?cidr()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letruleNumber=field_mapjson__"RuleNumber"Integer.of_jsoninletruleAction=field_mapjson__"RuleAction"String_.of_jsoninletprotocol=field_mapjson__"Protocol"String_.of_jsoninletportRange=field_mapjson__"PortRange"PortRange.of_jsoninletegress=field_mapjson__"Egress"Boolean.of_jsoninletcidr=field_mapjson__"Cidr"String_.of_jsoninmake?ruleNumber?ruleAction?protocol?portRange?egress?cidr()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a network access control (ACL) rule."]moduleAnalysisLoadBalancerListener=structtypenonrect={loadBalancerPort:Port.toption[@ocaml.doc"The port on which the load balancer is listening."];instancePort:Port.toption[@ocaml.doc"\\[Classic Load Balancers\\] The back-end port for the listener."]}letmake?loadBalancerPort=fun?instancePort->fun()->{loadBalancerPort;instancePort}letto_valuex=structure_to_value[("loadBalancerPort",(Option.mapx.loadBalancerPort~f:Port.to_value));("instancePort",(Option.mapx.instancePort~f:Port.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letinstancePort=(Option.map~f:Port.of_xml)(Xml.childxml_arg0"instancePort")inletloadBalancerPort=(Option.map~f:Port.of_xml)(Xml.childxml_arg0"loadBalancerPort")inmake?instancePort?loadBalancerPort()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letinstancePort=field_mapjson__"InstancePort"Port.of_jsoninletloadBalancerPort=field_mapjson__"LoadBalancerPort"Port.of_jsoninmake?instancePort?loadBalancerPort()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a load balancer listener."]moduleAnalysisLoadBalancerTarget=structtypenonrect={address:IpAddress.toption[@ocaml.doc"The IP address."];availabilityZone:String_.toption[@ocaml.doc"The Availability Zone."];availabilityZoneId:String_.toption[@ocaml.doc"The ID of the Availability Zone."];instance:AnalysisComponent.toption[@ocaml.doc"Information about the instance."];port:Port.toption[@ocaml.doc"The port on which the target is listening."]}letmake?address=fun?availabilityZone->fun?availabilityZoneId->fun?instance->fun?port->fun()->{address;availabilityZone;availabilityZoneId;instance;port}letto_valuex=structure_to_value[("address",(Option.mapx.address~f:IpAddress.to_value));("availabilityZone",(Option.mapx.availabilityZone~f:String_.to_value));("availabilityZoneId",(Option.mapx.availabilityZoneId~f:String_.to_value));("instance",(Option.mapx.instance~f:AnalysisComponent.to_value));("port",(Option.mapx.port~f:Port.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letport=(Option.map~f:Port.of_xml)(Xml.childxml_arg0"port")inletinstance=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"instance")inletavailabilityZoneId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"availabilityZoneId")inletavailabilityZone=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"availabilityZone")inletaddress=(Option.map~f:IpAddress.of_xml)(Xml.childxml_arg0"address")inmake?port?instance?availabilityZoneId?availabilityZone?address()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letport=field_mapjson__"Port"Port.of_jsoninletinstance=field_mapjson__"Instance"AnalysisComponent.of_jsoninletavailabilityZoneId=field_mapjson__"AvailabilityZoneId"String_.of_jsoninletavailabilityZone=field_mapjson__"AvailabilityZone"String_.of_jsoninletaddress=field_mapjson__"Address"IpAddress.of_jsoninmake?port?instance?availabilityZoneId?availabilityZone?address()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a load balancer target."]moduleAnalysisRouteTableRoute=structtypenonrect={destinationCidr:String_.toption[@ocaml.doc"The destination IPv4 address, in CIDR notation."];destinationPrefixListId:String_.toption[@ocaml.doc"The prefix of the Amazon Web Services service."];egressOnlyInternetGatewayId:String_.toption[@ocaml.doc"The ID of an egress-only internet gateway."];gatewayId:String_.toption[@ocaml.doc"The ID of the gateway, such as an internet gateway or virtual private gateway."];instanceId:String_.toption[@ocaml.doc"The ID of the instance, such as a NAT instance."];natGatewayId:String_.toption[@ocaml.doc"The ID of a NAT gateway."];networkInterfaceId:String_.toption[@ocaml.doc"The ID of a network interface."];origin:String_.toption[@ocaml.doc"Describes how the route was created. The following are the possible values: CreateRouteTable - The route was automatically created when the route table was created. CreateRoute - The route was manually added to the route table. EnableVgwRoutePropagation - The route was propagated by route propagation."];transitGatewayId:String_.toption[@ocaml.doc"The ID of a transit gateway."];vpcPeeringConnectionId:String_.toption[@ocaml.doc"The ID of a VPC peering connection."];state:String_.toption[@ocaml.doc"The state. The following are the possible values: active blackhole"];carrierGatewayId:String_.toption[@ocaml.doc"The ID of a carrier gateway."];coreNetworkArn:ResourceArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of a core network."];localGatewayId:String_.toption[@ocaml.doc"The ID of a local gateway."]}letmake?destinationCidr=fun?destinationPrefixListId->fun?egressOnlyInternetGatewayId->fun?gatewayId->fun?instanceId->fun?natGatewayId->fun?networkInterfaceId->fun?origin->fun?transitGatewayId->fun?vpcPeeringConnectionId->fun?state->fun?carrierGatewayId->fun?coreNetworkArn->fun?localGatewayId->fun()->{destinationCidr;destinationPrefixListId;egressOnlyInternetGatewayId;gatewayId;instanceId;natGatewayId;networkInterfaceId;origin;transitGatewayId;vpcPeeringConnectionId;state;carrierGatewayId;coreNetworkArn;localGatewayId}letto_valuex=structure_to_value[("destinationCidr",(Option.mapx.destinationCidr~f:String_.to_value));("destinationPrefixListId",(Option.mapx.destinationPrefixListId~f:String_.to_value));("egressOnlyInternetGatewayId",(Option.mapx.egressOnlyInternetGatewayId~f:String_.to_value));("gatewayId",(Option.mapx.gatewayId~f:String_.to_value));("instanceId",(Option.mapx.instanceId~f:String_.to_value));("natGatewayId",(Option.mapx.natGatewayId~f:String_.to_value));("networkInterfaceId",(Option.mapx.networkInterfaceId~f:String_.to_value));("origin",(Option.mapx.origin~f:String_.to_value));("transitGatewayId",(Option.mapx.transitGatewayId~f:String_.to_value));("vpcPeeringConnectionId",(Option.mapx.vpcPeeringConnectionId~f:String_.to_value));("state",(Option.mapx.state~f:String_.to_value));("carrierGatewayId",(Option.mapx.carrierGatewayId~f:String_.to_value));("coreNetworkArn",(Option.mapx.coreNetworkArn~f:ResourceArn.to_value));("localGatewayId",(Option.mapx.localGatewayId~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlocalGatewayId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"localGatewayId")inletcoreNetworkArn=(Option.map~f:ResourceArn.of_xml)(Xml.childxml_arg0"coreNetworkArn")inletcarrierGatewayId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"carrierGatewayId")inletstate=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"state")inletvpcPeeringConnectionId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"vpcPeeringConnectionId")inlettransitGatewayId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"transitGatewayId")inletorigin=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"origin")inletnetworkInterfaceId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"networkInterfaceId")inletnatGatewayId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"natGatewayId")inletinstanceId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"instanceId")inletgatewayId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"gatewayId")inletegressOnlyInternetGatewayId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"egressOnlyInternetGatewayId")inletdestinationPrefixListId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"destinationPrefixListId")inletdestinationCidr=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"destinationCidr")inmake?localGatewayId?coreNetworkArn?carrierGatewayId?state?vpcPeeringConnectionId?transitGatewayId?origin?networkInterfaceId?natGatewayId?instanceId?gatewayId?egressOnlyInternetGatewayId?destinationPrefixListId?destinationCidr()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlocalGatewayId=field_mapjson__"LocalGatewayId"String_.of_jsoninletcoreNetworkArn=field_mapjson__"CoreNetworkArn"ResourceArn.of_jsoninletcarrierGatewayId=field_mapjson__"CarrierGatewayId"String_.of_jsoninletstate=field_mapjson__"State"String_.of_jsoninletvpcPeeringConnectionId=field_mapjson__"VpcPeeringConnectionId"String_.of_jsoninlettransitGatewayId=field_mapjson__"TransitGatewayId"String_.of_jsoninletorigin=field_mapjson__"Origin"String_.of_jsoninletnetworkInterfaceId=field_mapjson__"NetworkInterfaceId"String_.of_jsoninletnatGatewayId=field_mapjson__"NatGatewayId"String_.of_jsoninletinstanceId=field_mapjson__"InstanceId"String_.of_jsoninletgatewayId=field_mapjson__"GatewayId"String_.of_jsoninletegressOnlyInternetGatewayId=field_mapjson__"EgressOnlyInternetGatewayId"String_.of_jsoninletdestinationPrefixListId=field_mapjson__"DestinationPrefixListId"String_.of_jsoninletdestinationCidr=field_mapjson__"DestinationCidr"String_.of_jsoninmake?localGatewayId?coreNetworkArn?carrierGatewayId?state?vpcPeeringConnectionId?transitGatewayId?origin?networkInterfaceId?natGatewayId?instanceId?gatewayId?egressOnlyInternetGatewayId?destinationPrefixListId?destinationCidr()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a route table route."]moduleAnalysisSecurityGroupRule=structtypenonrect={cidr:String_.toption[@ocaml.doc"The IPv4 address range, in CIDR notation."];direction:String_.toption[@ocaml.doc"The direction. The following are the possible values: egress ingress"];securityGroupId:String_.toption[@ocaml.doc"The security group ID."];portRange:PortRange.toption[@ocaml.doc"The port range."];prefixListId:String_.toption[@ocaml.doc"The prefix list ID."];protocol:String_.toption[@ocaml.doc"The protocol name."]}letmake?cidr=fun?direction->fun?securityGroupId->fun?portRange->fun?prefixListId->fun?protocol->fun()->{cidr;direction;securityGroupId;portRange;prefixListId;protocol}letto_valuex=structure_to_value[("cidr",(Option.mapx.cidr~f:String_.to_value));("direction",(Option.mapx.direction~f:String_.to_value));("securityGroupId",(Option.mapx.securityGroupId~f:String_.to_value));("portRange",(Option.mapx.portRange~f:PortRange.to_value));("prefixListId",(Option.mapx.prefixListId~f:String_.to_value));("protocol",(Option.mapx.protocol~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letprotocol=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"protocol")inletprefixListId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"prefixListId")inletportRange=(Option.map~f:PortRange.of_xml)(Xml.childxml_arg0"portRange")inletsecurityGroupId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"securityGroupId")inletdirection=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"direction")inletcidr=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"cidr")inmake?protocol?prefixListId?portRange?securityGroupId?direction?cidr()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letprotocol=field_mapjson__"Protocol"String_.of_jsoninletprefixListId=field_mapjson__"PrefixListId"String_.of_jsoninletportRange=field_mapjson__"PortRange"PortRange.of_jsoninletsecurityGroupId=field_mapjson__"SecurityGroupId"String_.of_jsoninletdirection=field_mapjson__"Direction"String_.of_jsoninletcidr=field_mapjson__"Cidr"String_.of_jsoninmake?protocol?prefixListId?portRange?securityGroupId?direction?cidr()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a security group rule."]moduleComponentAccount=structtypenonrect=stringletcontext_="ComponentAccount"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"\\d{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:"ComponentAccount"jletto_json=simple_to_jsonto_valueendmoduleComponentRegion=structtypenonrect=stringletcontext_="ComponentRegion"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"[a-z]{2}-[a-z]+-[1-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:"ComponentRegion"jletto_json=simple_to_jsonto_valueendmoduleFirewallStatefulRule=structtypenonrect={ruleGroupArn:ResourceArn.toption[@ocaml.doc"The ARN of the stateful rule group."];sources:ValueStringList.toption[@ocaml.doc"The source IP addresses, in CIDR notation."];destinations:ValueStringList.toption[@ocaml.doc"The destination IP addresses, in CIDR notation."];sourcePorts:PortRangeList.toption[@ocaml.doc"The source ports."];destinationPorts:PortRangeList.toption[@ocaml.doc"The destination ports."];protocol:String_.toption[@ocaml.doc"The protocol."];ruleAction:String_.toption[@ocaml.doc"The rule action. The possible values are pass, drop, and alert."];direction:String_.toption[@ocaml.doc"The direction. The possible values are FORWARD and ANY."]}letmake?ruleGroupArn=fun?sources->fun?destinations->fun?sourcePorts->fun?destinationPorts->fun?protocol->fun?ruleAction->fun?direction->fun()->{ruleGroupArn;sources;destinations;sourcePorts;destinationPorts;protocol;ruleAction;direction}letto_valuex=structure_to_value[("ruleGroupArn",(Option.mapx.ruleGroupArn~f:ResourceArn.to_value));("sourceSet",(Option.mapx.sources~f:ValueStringList.to_value));("destinationSet",(Option.mapx.destinations~f:ValueStringList.to_value));("sourcePortSet",(Option.mapx.sourcePorts~f:PortRangeList.to_value));("destinationPortSet",(Option.mapx.destinationPorts~f:PortRangeList.to_value));("protocol",(Option.mapx.protocol~f:String_.to_value));("ruleAction",(Option.mapx.ruleAction~f:String_.to_value));("direction",(Option.mapx.direction~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letdirection=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"direction")inletruleAction=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ruleAction")inletprotocol=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"protocol")inletdestinationPorts=(Option.map~f:PortRangeList.of_xml)(Xml.childxml_arg0"destinationPortSet")inletsourcePorts=(Option.map~f:PortRangeList.of_xml)(Xml.childxml_arg0"sourcePortSet")inletdestinations=(Option.map~f:ValueStringList.of_xml)(Xml.childxml_arg0"destinationSet")inletsources=(Option.map~f:ValueStringList.of_xml)(Xml.childxml_arg0"sourceSet")inletruleGroupArn=(Option.map~f:ResourceArn.of_xml)(Xml.childxml_arg0"ruleGroupArn")inmake?direction?ruleAction?protocol?destinationPorts?sourcePorts?destinations?sources?ruleGroupArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letdirection=field_mapjson__"Direction"String_.of_jsoninletruleAction=field_mapjson__"RuleAction"String_.of_jsoninletprotocol=field_mapjson__"Protocol"String_.of_jsoninletdestinationPorts=field_mapjson__"DestinationPorts"PortRangeList.of_jsoninletsourcePorts=field_mapjson__"SourcePorts"PortRangeList.of_jsoninletdestinations=field_mapjson__"Destinations"ValueStringList.of_jsoninletsources=field_mapjson__"Sources"ValueStringList.of_jsoninletruleGroupArn=field_mapjson__"RuleGroupArn"ResourceArn.of_jsoninmake?direction?ruleAction?protocol?destinationPorts?sourcePorts?destinations?sources?ruleGroupArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a stateful rule."]moduleFirewallStatelessRule=structtypenonrect={ruleGroupArn:ResourceArn.toption[@ocaml.doc"The ARN of the stateless rule group."];sources:ValueStringList.toption[@ocaml.doc"The source IP addresses, in CIDR notation."];destinations:ValueStringList.toption[@ocaml.doc"The destination IP addresses, in CIDR notation."];sourcePorts:PortRangeList.toption[@ocaml.doc"The source ports."];destinationPorts:PortRangeList.toption[@ocaml.doc"The destination ports."];protocols:ProtocolIntList.toption[@ocaml.doc"The protocols."];ruleAction:String_.toption[@ocaml.doc"The rule action. The possible values are pass, drop, and forward_to_site."];priority:Priority.toption[@ocaml.doc"The rule priority."]}letmake?ruleGroupArn=fun?sources->fun?destinations->fun?sourcePorts->fun?destinationPorts->fun?protocols->fun?ruleAction->fun?priority->fun()->{ruleGroupArn;sources;destinations;sourcePorts;destinationPorts;protocols;ruleAction;priority}letto_valuex=structure_to_value[("ruleGroupArn",(Option.mapx.ruleGroupArn~f:ResourceArn.to_value));("sourceSet",(Option.mapx.sources~f:ValueStringList.to_value));("destinationSet",(Option.mapx.destinations~f:ValueStringList.to_value));("sourcePortSet",(Option.mapx.sourcePorts~f:PortRangeList.to_value));("destinationPortSet",(Option.mapx.destinationPorts~f:PortRangeList.to_value));("protocolSet",(Option.mapx.protocols~f:ProtocolIntList.to_value));("ruleAction",(Option.mapx.ruleAction~f:String_.to_value));("priority",(Option.mapx.priority~f:Priority.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpriority=(Option.map~f:Priority.of_xml)(Xml.childxml_arg0"priority")inletruleAction=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ruleAction")inletprotocols=(Option.map~f:ProtocolIntList.of_xml)(Xml.childxml_arg0"protocolSet")inletdestinationPorts=(Option.map~f:PortRangeList.of_xml)(Xml.childxml_arg0"destinationPortSet")inletsourcePorts=(Option.map~f:PortRangeList.of_xml)(Xml.childxml_arg0"sourcePortSet")inletdestinations=(Option.map~f:ValueStringList.of_xml)(Xml.childxml_arg0"destinationSet")inletsources=(Option.map~f:ValueStringList.of_xml)(Xml.childxml_arg0"sourceSet")inletruleGroupArn=(Option.map~f:ResourceArn.of_xml)(Xml.childxml_arg0"ruleGroupArn")inmake?priority?ruleAction?protocols?destinationPorts?sourcePorts?destinations?sources?ruleGroupArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpriority=field_mapjson__"Priority"Priority.of_jsoninletruleAction=field_mapjson__"RuleAction"String_.of_jsoninletprotocols=field_mapjson__"Protocols"ProtocolIntList.of_jsoninletdestinationPorts=field_mapjson__"DestinationPorts"PortRangeList.of_jsoninletsourcePorts=field_mapjson__"SourcePorts"PortRangeList.of_jsoninletdestinations=field_mapjson__"Destinations"ValueStringList.of_jsoninletsources=field_mapjson__"Sources"ValueStringList.of_jsoninletruleGroupArn=field_mapjson__"RuleGroupArn"ResourceArn.of_jsoninmake?priority?ruleAction?protocols?destinationPorts?sourcePorts?destinations?sources?ruleGroupArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a stateless rule."]moduleIpAddressList=structtypenonrect=IpAddress.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:IpAddress.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:IpAddress.of_xml)letof_jsonj=list_of_json~kind:"IpAddressList"~of_json:IpAddress.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleTransitGatewayRouteTableRoute=structtypenonrect={destinationCidr:String_.toption[@ocaml.doc"The CIDR block used for destination matches."];state:String_.toption[@ocaml.doc"The state of the route."];routeOrigin:String_.toption[@ocaml.doc"The route origin. The following are the possible values: static propagated"];prefixListId:String_.toption[@ocaml.doc"The ID of the prefix list."];attachmentId:String_.toption[@ocaml.doc"The ID of the route attachment."];resourceId:String_.toption[@ocaml.doc"The ID of the resource for the route attachment."];resourceType:String_.toption[@ocaml.doc"The resource type for the route attachment."]}letmake?destinationCidr=fun?state->fun?routeOrigin->fun?prefixListId->fun?attachmentId->fun?resourceId->fun?resourceType->fun()->{destinationCidr;state;routeOrigin;prefixListId;attachmentId;resourceId;resourceType}letto_valuex=structure_to_value[("destinationCidr",(Option.mapx.destinationCidr~f:String_.to_value));("state",(Option.mapx.state~f:String_.to_value));("routeOrigin",(Option.mapx.routeOrigin~f:String_.to_value));("prefixListId",(Option.mapx.prefixListId~f:String_.to_value));("attachmentId",(Option.mapx.attachmentId~f:String_.to_value));("resourceId",(Option.mapx.resourceId~f:String_.to_value));("resourceType",(Option.mapx.resourceType~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceType=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"resourceType")inletresourceId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"resourceId")inletattachmentId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"attachmentId")inletprefixListId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"prefixListId")inletrouteOrigin=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"routeOrigin")inletstate=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"state")inletdestinationCidr=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"destinationCidr")inmake?resourceType?resourceId?attachmentId?prefixListId?routeOrigin?state?destinationCidr()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceType=field_mapjson__"ResourceType"String_.of_jsoninletresourceId=field_mapjson__"ResourceId"String_.of_jsoninletattachmentId=field_mapjson__"AttachmentId"String_.of_jsoninletprefixListId=field_mapjson__"PrefixListId"String_.of_jsoninletrouteOrigin=field_mapjson__"RouteOrigin"String_.of_jsoninletstate=field_mapjson__"State"String_.of_jsoninletdestinationCidr=field_mapjson__"DestinationCidr"String_.of_jsoninmake?resourceType?resourceId?attachmentId?prefixListId?routeOrigin?state?destinationCidr()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a route in a transit gateway route table."]moduleIKEVersionsListValue=structtypenonrect={value:String_.toption[@ocaml.doc"The IKE version."]}letmake?value=fun()->{value}letto_valuex=structure_to_value[("value",(Option.mapx.value~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvalue=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"value")inmake?value()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvalue=field_mapjson__"Value"String_.of_jsoninmake?value()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The internet key exchange (IKE) version permitted for the VPN tunnel."]modulePhase1DHGroupNumbersListValue=structtypenonrect={value:Integer.toption[@ocaml.doc"The Diffie-Hellmann group number."]}letmake?value=fun()->{value}letto_valuex=structure_to_value[("value",(Option.mapx.value~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvalue=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"value")inmake?value()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvalue=field_mapjson__"Value"Integer.of_jsoninmake?value()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The Diffie-Hellmann group number for phase 1 IKE negotiations."]modulePhase1EncryptionAlgorithmsListValue=structtypenonrect={value:String_.toption[@ocaml.doc"The value for the encryption algorithm."]}letmake?value=fun()->{value}letto_valuex=structure_to_value[("value",(Option.mapx.value~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvalue=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"value")inmake?value()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvalue=field_mapjson__"Value"String_.of_jsoninmake?value()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The encryption algorithm for phase 1 IKE negotiations."]modulePhase1IntegrityAlgorithmsListValue=structtypenonrect={value:String_.toption[@ocaml.doc"The value for the integrity algorithm."]}letmake?value=fun()->{value}letto_valuex=structure_to_value[("value",(Option.mapx.value~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvalue=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"value")inmake?value()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvalue=field_mapjson__"Value"String_.of_jsoninmake?value()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The integrity algorithm for phase 1 IKE negotiations."]modulePhase2DHGroupNumbersListValue=structtypenonrect={value:Integer.toption[@ocaml.doc"The Diffie-Hellmann group number."]}letmake?value=fun()->{value}letto_valuex=structure_to_value[("value",(Option.mapx.value~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvalue=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"value")inmake?value()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvalue=field_mapjson__"Value"Integer.of_jsoninmake?value()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The Diffie-Hellmann group number for phase 2 IKE negotiations."]modulePhase2EncryptionAlgorithmsListValue=structtypenonrect={value:String_.toption[@ocaml.doc"The encryption algorithm."]}letmake?value=fun()->{value}letto_valuex=structure_to_value[("value",(Option.mapx.value~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvalue=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"value")inmake?value()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvalue=field_mapjson__"Value"String_.of_jsoninmake?value()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The encryption algorithm for phase 2 IKE negotiations."]modulePhase2IntegrityAlgorithmsListValue=structtypenonrect={value:String_.toption[@ocaml.doc"The integrity algorithm."]}letmake?value=fun()->{value}letto_valuex=structure_to_value[("value",(Option.mapx.value~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvalue=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"value")inmake?value()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvalue=field_mapjson__"Value"String_.of_jsoninmake?value()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The integrity algorithm for phase 2 IKE negotiations."]moduleCloudWatchLogOptions=structtypenonrect={logEnabled:Boolean.toption[@ocaml.doc"Status of VPN tunnel logging feature. Default value is False. Valid values: True | False"];logGroupArn:String_.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the CloudWatch log group to send logs to."];logOutputFormat:String_.toption[@ocaml.doc"Configured log format. Default format is json. Valid values: json | text"];bgpLogEnabled:Boolean.toption[@ocaml.doc"Indicates whether Border Gateway Protocol (BGP) logging is enabled for the VPN connection. Default value is False. Valid values: True | False"];bgpLogGroupArn:String_.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the CloudWatch log group for BGP logs."];bgpLogOutputFormat:String_.toption[@ocaml.doc"The output format for BGP logs sent to CloudWatch. Default format is json. Valid values: json | text"]}letmake?logEnabled=fun?logGroupArn->fun?logOutputFormat->fun?bgpLogEnabled->fun?bgpLogGroupArn->fun?bgpLogOutputFormat->fun()->{logEnabled;logGroupArn;logOutputFormat;bgpLogEnabled;bgpLogGroupArn;bgpLogOutputFormat}letto_valuex=structure_to_value[("logEnabled",(Option.mapx.logEnabled~f:Boolean.to_value));("logGroupArn",(Option.mapx.logGroupArn~f:String_.to_value));("logOutputFormat",(Option.mapx.logOutputFormat~f:String_.to_value));("bgpLogEnabled",(Option.mapx.bgpLogEnabled~f:Boolean.to_value));("bgpLogGroupArn",(Option.mapx.bgpLogGroupArn~f:String_.to_value));("bgpLogOutputFormat",(Option.mapx.bgpLogOutputFormat~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letbgpLogOutputFormat=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"bgpLogOutputFormat")inletbgpLogGroupArn=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"bgpLogGroupArn")inletbgpLogEnabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"bgpLogEnabled")inletlogOutputFormat=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"logOutputFormat")inletlogGroupArn=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"logGroupArn")inletlogEnabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"logEnabled")inmake?bgpLogOutputFormat?bgpLogGroupArn?bgpLogEnabled?logOutputFormat?logGroupArn?logEnabled()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letbgpLogOutputFormat=field_mapjson__"BgpLogOutputFormat"String_.of_jsoninletbgpLogGroupArn=field_mapjson__"BgpLogGroupArn"String_.of_jsoninletbgpLogEnabled=field_mapjson__"BgpLogEnabled"Boolean.of_jsoninletlogOutputFormat=field_mapjson__"LogOutputFormat"String_.of_jsoninletlogGroupArn=field_mapjson__"LogGroupArn"String_.of_jsoninletlogEnabled=field_mapjson__"LogEnabled"Boolean.of_jsoninmake?bgpLogOutputFormat?bgpLogGroupArn?bgpLogEnabled?logOutputFormat?logGroupArn?logEnabled()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Options for sending VPN tunnel logs to CloudWatch."]moduleBlockDeviceMapping=structtypenonrect={ebs:EbsBlockDevice.toption[@ocaml.doc"Parameters used to automatically set up EBS volumes when the instance is launched."];noDevice:String_.toption[@ocaml.doc"To omit the device from the block device mapping, specify an empty string. When this property is specified, the device is removed from the block device mapping regardless of the assigned value."];deviceName:String_.toption[@ocaml.doc"The device name. For available device names, see Device names for volumes."];virtualName:String_.toption[@ocaml.doc"The virtual device name (ephemeralN). Instance store volumes are numbered starting from 0. An instance type with 2 available instance store volumes can specify mappings for ephemeral0 and ephemeral1. The number of available instance store volumes depends on the instance type. After you connect to the instance, you must mount the volume. NVMe instance store volumes are automatically enumerated and assigned a device name. Including them in your block device mapping has no effect. Constraints: For M3 instances, you must specify instance store volumes in the block device mapping for the instance. When you launch an M3 instance, we ignore any instance store volumes specified in the block device mapping for the AMI."]}letmake?ebs=fun?noDevice->fun?deviceName->fun?virtualName->fun()->{ebs;noDevice;deviceName;virtualName}letto_valuex=structure_to_value[("ebs",(Option.mapx.ebs~f:EbsBlockDevice.to_value));("noDevice",(Option.mapx.noDevice~f:String_.to_value));("deviceName",(Option.mapx.deviceName~f:String_.to_value));("virtualName",(Option.mapx.virtualName~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvirtualName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"virtualName")inletdeviceName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"deviceName")inletnoDevice=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"noDevice")inletebs=(Option.map~f:EbsBlockDevice.of_xml)(Xml.childxml_arg0"ebs")inmake?virtualName?deviceName?noDevice?ebs()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvirtualName=field_mapjson__"VirtualName"String_.of_jsoninletdeviceName=field_mapjson__"DeviceName"String_.of_jsoninletnoDevice=field_mapjson__"NoDevice"String_.of_jsoninletebs=field_mapjson__"Ebs"EbsBlockDevice.of_jsoninmake?virtualName?deviceName?noDevice?ebs()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a block device mapping, which defines the EBS volumes and instance store volumes to attach to an instance at launch."]moduleInstanceNetworkInterfaceSpecification=structtypenonrect={associatePublicIpAddress:Boolean.toption[@ocaml.doc"Indicates whether to assign a public IPv4 address to an instance you launch in a VPC. The public IP address can only be assigned to a network interface for eth0, and can only be assigned to a new network interface, not an existing one. You cannot specify more than one network interface in the request. If launching into a default subnet, the default value is true. Amazon Web Services charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the Public IPv4 Address tab on the Amazon VPC pricing page."];deleteOnTermination:Boolean.toption[@ocaml.doc"If set to true, the interface is deleted when the instance is terminated. You can specify true only if creating a new network interface when launching an instance."];description:String_.toption[@ocaml.doc"The description of the network interface. Applies only if creating a network interface when launching an instance."];deviceIndex:Integer.toption[@ocaml.doc"The position of the network interface in the attachment order. A primary network interface has a device index of 0. If you specify a network interface when launching an instance, you must specify the device index."];groups:SecurityGroupIdStringList.toption[@ocaml.doc"The IDs of the security groups for the network interface. Applies only if creating a network interface when launching an instance."];ipv6AddressCount:Integer.toption[@ocaml.doc"A number of IPv6 addresses to assign to the network interface. Amazon EC2 chooses the IPv6 addresses from the range of the subnet. You cannot specify this option and the option to assign specific IPv6 addresses in the same request. You can specify this option if you've specified a minimum number of instances to launch."];ipv6Addresses:InstanceIpv6AddressList.toption[@ocaml.doc"The IPv6 addresses to assign to the network interface. You cannot specify this option and the option to assign a number of IPv6 addresses in the same request. You cannot specify this option if you've specified a minimum number of instances to launch."];networkInterfaceId:NetworkInterfaceId.toption[@ocaml.doc"The ID of the network interface. If you are creating a Spot Fleet, omit this parameter because you can\226\128\153t specify a network interface ID in a launch specification."];privateIpAddress:String_.toption[@ocaml.doc"The private IPv4 address of the network interface. Applies only if creating a network interface when launching an instance. You cannot specify this option if you're launching more than one instance in a RunInstances request."];privateIpAddresses:PrivateIpAddressSpecificationList.toption[@ocaml.doc"The private IPv4 addresses to assign to the network interface. Only one private IPv4 address can be designated as primary. You cannot specify this option if you're launching more than one instance in a RunInstances request."];secondaryPrivateIpAddressCount:Integer.toption[@ocaml.doc"The number of secondary private IPv4 addresses. You can\226\128\153t specify this parameter and also specify a secondary private IP address using the PrivateIpAddress parameter."];subnetId:String_.toption[@ocaml.doc"The ID of the subnet associated with the network interface. Applies only if creating a network interface when launching an instance."];associateCarrierIpAddress:Boolean.toption[@ocaml.doc"Indicates whether to assign a carrier IP address to the network interface. You can only assign a carrier IP address to a network interface that is in a subnet in a Wavelength Zone. For more information about carrier IP addresses, see Carrier IP address in the Amazon Web Services Wavelength Developer Guide."];interfaceType:String_.toption[@ocaml.doc"The type of network interface. If you specify efa-only, do not assign any IP addresses to the network interface. EFA-only network interfaces do not support IP addresses. Valid values: interface | efa | efa-only"];networkCardIndex:Integer.toption[@ocaml.doc"The index of the network card. Some instance types support multiple network cards. The primary network interface must be assigned to network card index 0. The default is network card index 0. If you are using RequestSpotInstances to create Spot Instances, omit this parameter because you can\226\128\153t specify the network card index when using this API. To specify the network card index, use RunInstances."];ipv4Prefixes:Ipv4PrefixList.toption[@ocaml.doc"The IPv4 delegated prefixes to be assigned to the network interface. You cannot use this option if you use the Ipv4PrefixCount option."];ipv4PrefixCount:Integer.toption[@ocaml.doc"The number of IPv4 delegated prefixes to be automatically assigned to the network interface. You cannot use this option if you use the Ipv4Prefix option."];ipv6Prefixes:Ipv6PrefixList.toption[@ocaml.doc"The IPv6 delegated prefixes to be assigned to the network interface. You cannot use this option if you use the Ipv6PrefixCount option."];ipv6PrefixCount:Integer.toption[@ocaml.doc"The number of IPv6 delegated prefixes to be automatically assigned to the network interface. You cannot use this option if you use the Ipv6Prefix option."];primaryIpv6:Boolean.toption[@ocaml.doc"The primary IPv6 address of the network interface. When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the instance is terminated or the network interface is detached. For more information about primary IPv6 addresses, see RunInstances."];enaSrdSpecification:EnaSrdSpecificationRequest.toption[@ocaml.doc"Specifies the ENA Express settings for the network interface that's attached to the instance."];connectionTrackingSpecification:ConnectionTrackingSpecificationRequest.toption[@ocaml.doc"A security group connection tracking specification that enables you to set the timeout for connection tracking on an Elastic network interface. For more information, see Connection tracking timeouts in the Amazon EC2 User Guide."];enaQueueCount:Integer.toption[@ocaml.doc"The number of ENA queues to be created with the instance."]}letmake?associatePublicIpAddress=fun?deleteOnTermination->fun?description->fun?deviceIndex->fun?groups->fun?ipv6AddressCount->fun?ipv6Addresses->fun?networkInterfaceId->fun?privateIpAddress->fun?privateIpAddresses->fun?secondaryPrivateIpAddressCount->fun?subnetId->fun?associateCarrierIpAddress->fun?interfaceType->fun?networkCardIndex->fun?ipv4Prefixes->fun?ipv4PrefixCount->fun?ipv6Prefixes->fun?ipv6PrefixCount->fun?primaryIpv6->fun?enaSrdSpecification->fun?connectionTrackingSpecification->fun?enaQueueCount->fun()->{associatePublicIpAddress;deleteOnTermination;description;deviceIndex;groups;ipv6AddressCount;ipv6Addresses;networkInterfaceId;privateIpAddress;privateIpAddresses;secondaryPrivateIpAddressCount;subnetId;associateCarrierIpAddress;interfaceType;networkCardIndex;ipv4Prefixes;ipv4PrefixCount;ipv6Prefixes;ipv6PrefixCount;primaryIpv6;enaSrdSpecification;connectionTrackingSpecification;enaQueueCount}letto_valuex=structure_to_value[("associatePublicIpAddress",(Option.mapx.associatePublicIpAddress~f:Boolean.to_value));("deleteOnTermination",(Option.mapx.deleteOnTermination~f:Boolean.to_value));("description",(Option.mapx.description~f:String_.to_value));("deviceIndex",(Option.mapx.deviceIndex~f:Integer.to_value));("SecurityGroupId",(Option.mapx.groups~f:SecurityGroupIdStringList.to_value));("ipv6AddressCount",(Option.mapx.ipv6AddressCount~f:Integer.to_value));("ipv6AddressesSet",(Option.mapx.ipv6Addresses~f:InstanceIpv6AddressList.to_value));("networkInterfaceId",(Option.mapx.networkInterfaceId~f:NetworkInterfaceId.to_value));("privateIpAddress",(Option.mapx.privateIpAddress~f:String_.to_value));("privateIpAddressesSet",(Option.mapx.privateIpAddresses~f:PrivateIpAddressSpecificationList.to_value));("secondaryPrivateIpAddressCount",(Option.mapx.secondaryPrivateIpAddressCount~f:Integer.to_value));("subnetId",(Option.mapx.subnetId~f:String_.to_value));("AssociateCarrierIpAddress",(Option.mapx.associateCarrierIpAddress~f:Boolean.to_value));("InterfaceType",(Option.mapx.interfaceType~f:String_.to_value));("NetworkCardIndex",(Option.mapx.networkCardIndex~f:Integer.to_value));("Ipv4Prefix",(Option.mapx.ipv4Prefixes~f:Ipv4PrefixList.to_value));("Ipv4PrefixCount",(Option.mapx.ipv4PrefixCount~f:Integer.to_value));("Ipv6Prefix",(Option.mapx.ipv6Prefixes~f:Ipv6PrefixList.to_value));("Ipv6PrefixCount",(Option.mapx.ipv6PrefixCount~f:Integer.to_value));("PrimaryIpv6",(Option.mapx.primaryIpv6~f:Boolean.to_value));("EnaSrdSpecification",(Option.mapx.enaSrdSpecification~f:EnaSrdSpecificationRequest.to_value));("ConnectionTrackingSpecification",(Option.mapx.connectionTrackingSpecification~f:ConnectionTrackingSpecificationRequest.to_value));("EnaQueueCount",(Option.mapx.enaQueueCount~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letenaQueueCount=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"EnaQueueCount")inletconnectionTrackingSpecification=(Option.map~f:ConnectionTrackingSpecificationRequest.of_xml)(Xml.childxml_arg0"ConnectionTrackingSpecification")inletenaSrdSpecification=(Option.map~f:EnaSrdSpecificationRequest.of_xml)(Xml.childxml_arg0"EnaSrdSpecification")inletprimaryIpv6=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"PrimaryIpv6")inletipv6PrefixCount=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"Ipv6PrefixCount")inletipv6Prefixes=(Option.map~f:Ipv6PrefixList.of_xml)(Xml.childxml_arg0"Ipv6Prefix")inletipv4PrefixCount=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"Ipv4PrefixCount")inletipv4Prefixes=(Option.map~f:Ipv4PrefixList.of_xml)(Xml.childxml_arg0"Ipv4Prefix")inletnetworkCardIndex=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"NetworkCardIndex")inletinterfaceType=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"InterfaceType")inletassociateCarrierIpAddress=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"AssociateCarrierIpAddress")inletsubnetId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"subnetId")inletsecondaryPrivateIpAddressCount=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"secondaryPrivateIpAddressCount")inletprivateIpAddresses=(Option.map~f:PrivateIpAddressSpecificationList.of_xml)(Xml.childxml_arg0"privateIpAddressesSet")inletprivateIpAddress=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"privateIpAddress")inletnetworkInterfaceId=(Option.map~f:NetworkInterfaceId.of_xml)(Xml.childxml_arg0"networkInterfaceId")inletipv6Addresses=(Option.map~f:InstanceIpv6AddressList.of_xml)(Xml.childxml_arg0"ipv6AddressesSet")inletipv6AddressCount=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"ipv6AddressCount")inletgroups=(Option.map~f:SecurityGroupIdStringList.of_xml)(Xml.childxml_arg0"SecurityGroupId")inletdeviceIndex=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"deviceIndex")inletdescription=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"description")inletdeleteOnTermination=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"deleteOnTermination")inletassociatePublicIpAddress=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"associatePublicIpAddress")inmake?enaQueueCount?connectionTrackingSpecification?enaSrdSpecification?primaryIpv6?ipv6PrefixCount?ipv6Prefixes?ipv4PrefixCount?ipv4Prefixes?networkCardIndex?interfaceType?associateCarrierIpAddress?subnetId?secondaryPrivateIpAddressCount?privateIpAddresses?privateIpAddress?networkInterfaceId?ipv6Addresses?ipv6AddressCount?groups?deviceIndex?description?deleteOnTermination?associatePublicIpAddress()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letenaQueueCount=field_mapjson__"EnaQueueCount"Integer.of_jsoninletconnectionTrackingSpecification=field_mapjson__"ConnectionTrackingSpecification"ConnectionTrackingSpecificationRequest.of_jsoninletenaSrdSpecification=field_mapjson__"EnaSrdSpecification"EnaSrdSpecificationRequest.of_jsoninletprimaryIpv6=field_mapjson__"PrimaryIpv6"Boolean.of_jsoninletipv6PrefixCount=field_mapjson__"Ipv6PrefixCount"Integer.of_jsoninletipv6Prefixes=field_mapjson__"Ipv6Prefixes"Ipv6PrefixList.of_jsoninletipv4PrefixCount=field_mapjson__"Ipv4PrefixCount"Integer.of_jsoninletipv4Prefixes=field_mapjson__"Ipv4Prefixes"Ipv4PrefixList.of_jsoninletnetworkCardIndex=field_mapjson__"NetworkCardIndex"Integer.of_jsoninletinterfaceType=field_mapjson__"InterfaceType"String_.of_jsoninletassociateCarrierIpAddress=field_mapjson__"AssociateCarrierIpAddress"Boolean.of_jsoninletsubnetId=field_mapjson__"SubnetId"String_.of_jsoninletsecondaryPrivateIpAddressCount=field_mapjson__"SecondaryPrivateIpAddressCount"Integer.of_jsoninletprivateIpAddresses=field_mapjson__"PrivateIpAddresses"PrivateIpAddressSpecificationList.of_jsoninletprivateIpAddress=field_mapjson__"PrivateIpAddress"String_.of_jsoninletnetworkInterfaceId=field_mapjson__"NetworkInterfaceId"NetworkInterfaceId.of_jsoninletipv6Addresses=field_mapjson__"Ipv6Addresses"InstanceIpv6AddressList.of_jsoninletipv6AddressCount=field_mapjson__"Ipv6AddressCount"Integer.of_jsoninletgroups=field_mapjson__"Groups"SecurityGroupIdStringList.of_jsoninletdeviceIndex=field_mapjson__"DeviceIndex"Integer.of_jsoninletdescription=field_mapjson__"Description"String_.of_jsoninletdeleteOnTermination=field_mapjson__"DeleteOnTermination"Boolean.of_jsoninletassociatePublicIpAddress=field_mapjson__"AssociatePublicIpAddress"Boolean.of_jsoninmake?enaQueueCount?connectionTrackingSpecification?enaSrdSpecification?primaryIpv6?ipv6PrefixCount?ipv6Prefixes?ipv4PrefixCount?ipv4Prefixes?networkCardIndex?interfaceType?associateCarrierIpAddress?subnetId?secondaryPrivateIpAddressCount?privateIpAddresses?privateIpAddress?networkInterfaceId?ipv6Addresses?ipv6AddressCount?groups?deviceIndex?description?deleteOnTermination?associatePublicIpAddress()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a network interface."]moduleSpotFleetTagSpecification=structtypenonrect={resourceType:ResourceType.toption[@ocaml.doc"The type of resource. Currently, the only resource type that is supported is instance. To tag the Spot Fleet request on creation, use the TagSpecifications parameter in SpotFleetRequestConfigData ."];tags:TagList.toption[@ocaml.doc"The tags."]}letmake?resourceType=fun?tags->fun()->{resourceType;tags}letto_valuex=structure_to_value[("resourceType",(Option.mapx.resourceType~f:ResourceType.to_value));("tag",(Option.mapx.tags~f:TagList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:TagList.of_xml)(Xml.childxml_arg0"tag")inletresourceType=(Option.map~f:ResourceType.of_xml)(Xml.childxml_arg0"resourceType")inmake?tags?resourceType()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"Tags"TagList.of_jsoninletresourceType=field_mapjson__"ResourceType"ResourceType.of_jsoninmake?tags?resourceType()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The tags for a Spot Fleet resource."]moduleTenancy=structtypenonrect=|Default|Dedicated|Host|Non_static_idofstringletmakei=iletto_string=function|Default->"default"|Dedicated->"dedicated"|Host->"host"|Non_static_ids->sletof_string=function|"default"->Default|"dedicated"->Dedicated|"host"->Host|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 Tenancy"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"Tenancy"j)letto_json=simple_to_jsonto_valueendmoduleLaunchTemplateName=structtypenonrect=stringletcontext_="LaunchTemplateName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:3)>>=(fun()->(check_string_maxi~max:128)>>=(fun()->check_patterni~pattern:"[a-zA-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:"LaunchTemplateName"jletto_json=simple_to_jsonto_valueendmoduleLaunchTemplateOverrides=structtypenonrect={instanceType:InstanceType.toption[@ocaml.doc"The instance type."];spotPrice:String_.toption[@ocaml.doc"The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price. If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter."];subnetId:SubnetId.toption[@ocaml.doc"The ID of the subnet in which to launch the instances."];availabilityZone:String_.toption[@ocaml.doc"The Availability Zone in which to launch the instances. For example, us-east-2a. Either AvailabilityZone or AvailabilityZoneId must be specified in the request, but not both."];weightedCapacity:Double.toption[@ocaml.doc"The number of units provided by the specified instance type. These are the same units that you chose to set the target capacity in terms of instances, or a performance characteristic such as vCPUs, memory, or I/O. If the target capacity divided by this value is not a whole number, Amazon EC2 rounds the number of instances to the next whole number. If this value is not specified, the default is 1. When specifying weights, the price used in the lowestPrice and priceCapacityOptimized allocation strategies is per unit hour (where the instance price is divided by the specified weight). However, if all the specified weights are above the requested TargetCapacity, resulting in only 1 instance being launched, the price used is per instance hour."];priority:Double.toption[@ocaml.doc"The priority for the launch template override. The highest priority is launched first. If OnDemandAllocationStrategy is set to prioritized, Spot Fleet uses priority to determine which launch template override to use first in fulfilling On-Demand capacity. If the Spot AllocationStrategy is set to capacityOptimizedPrioritized, Spot Fleet uses priority on a best-effort basis to determine which launch template override to use in fulfilling Spot capacity, but optimizes for capacity first. Valid values are whole numbers starting at 0. The lower the number, the higher the priority. If no number is set, the launch template override has the lowest priority. You can set the same priority for different launch template overrides."];instanceRequirements:InstanceRequirements.toption[@ocaml.doc"The instance requirements. When you specify instance requirements, Amazon EC2 will identify instance types with the provided requirements, and then use your On-Demand and Spot allocation strategies to launch instances from these instance types, in the same way as when you specify a list of instance types. If you specify InstanceRequirements, you can't specify InstanceType."];availabilityZoneId:AvailabilityZoneId.toption[@ocaml.doc"The ID of the Availability Zone in which to launch the instances. For example, use2-az1. Either AvailabilityZone or AvailabilityZoneId must be specified in the request, but not both."]}letmake?instanceType=fun?spotPrice->fun?subnetId->fun?availabilityZone->fun?weightedCapacity->fun?priority->fun?instanceRequirements->fun?availabilityZoneId->fun()->{instanceType;spotPrice;subnetId;availabilityZone;weightedCapacity;priority;instanceRequirements;availabilityZoneId}letto_valuex=structure_to_value[("instanceType",(Option.mapx.instanceType~f:InstanceType.to_value));("spotPrice",(Option.mapx.spotPrice~f:String_.to_value));("subnetId",(Option.mapx.subnetId~f:SubnetId.to_value));("availabilityZone",(Option.mapx.availabilityZone~f:String_.to_value));("weightedCapacity",(Option.mapx.weightedCapacity~f:Double.to_value));("priority",(Option.mapx.priority~f:Double.to_value));("instanceRequirements",(Option.mapx.instanceRequirements~f:InstanceRequirements.to_value));("availabilityZoneId",(Option.mapx.availabilityZoneId~f:AvailabilityZoneId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letavailabilityZoneId=(Option.map~f:AvailabilityZoneId.of_xml)(Xml.childxml_arg0"availabilityZoneId")inletinstanceRequirements=(Option.map~f:InstanceRequirements.of_xml)(Xml.childxml_arg0"instanceRequirements")inletpriority=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"priority")inletweightedCapacity=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"weightedCapacity")inletavailabilityZone=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"availabilityZone")inletsubnetId=(Option.map~f:SubnetId.of_xml)(Xml.childxml_arg0"subnetId")inletspotPrice=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"spotPrice")inletinstanceType=(Option.map~f:InstanceType.of_xml)(Xml.childxml_arg0"instanceType")inmake?availabilityZoneId?instanceRequirements?priority?weightedCapacity?availabilityZone?subnetId?spotPrice?instanceType()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letavailabilityZoneId=field_mapjson__"AvailabilityZoneId"AvailabilityZoneId.of_jsoninletinstanceRequirements=field_mapjson__"InstanceRequirements"InstanceRequirements.of_jsoninletpriority=field_mapjson__"Priority"Double.of_jsoninletweightedCapacity=field_mapjson__"WeightedCapacity"Double.of_jsoninletavailabilityZone=field_mapjson__"AvailabilityZone"String_.of_jsoninletsubnetId=field_mapjson__"SubnetId"SubnetId.of_jsoninletspotPrice=field_mapjson__"SpotPrice"String_.of_jsoninletinstanceType=field_mapjson__"InstanceType"InstanceType.of_jsoninmake?availabilityZoneId?instanceRequirements?priority?weightedCapacity?availabilityZone?subnetId?spotPrice?instanceType()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes overrides for a launch template."]moduleClassicLoadBalancer=structtypenonrect={name:String_.toption[@ocaml.doc"The name of the load balancer."]}letmake?name=fun()->{name}letto_valuex=structure_to_value[("name",(Option.mapx.name~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letname=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"name")inmake?name()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letname=field_mapjson__"Name"String_.of_jsoninmake?name()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a Classic Load Balancer."]moduleTargetGroup=structtypenonrect={arn:String_.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the target group."]}letmake?arn=fun()->{arn}letto_valuex=structure_to_value[("arn",(Option.mapx.arn~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letarn=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"arn")inmake?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letarn=field_mapjson__"Arn"String_.of_jsoninmake?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a load balancer target group."]moduleIpv4PrefixSpecificationResponse=structtypenonrect={ipv4Prefix:String_.toption[@ocaml.doc"The IPv4 delegated prefixes assigned to the network interface."]}letmake?ipv4Prefix=fun()->{ipv4Prefix}letto_valuex=structure_to_value[("ipv4Prefix",(Option.mapx.ipv4Prefix~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letipv4Prefix=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ipv4Prefix")inmake?ipv4Prefix()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letipv4Prefix=field_mapjson__"Ipv4Prefix"String_.of_jsoninmake?ipv4Prefix()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Information about the IPv4 delegated prefixes assigned to a network interface."]moduleIpv6PrefixSpecificationResponse=structtypenonrect={ipv6Prefix:String_.toption[@ocaml.doc"The IPv6 delegated prefixes assigned to the network interface."]}letmake?ipv6Prefix=fun()->{ipv6Prefix}letto_valuex=structure_to_value[("ipv6Prefix",(Option.mapx.ipv6Prefix~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letipv6Prefix=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ipv6Prefix")inmake?ipv6Prefix()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letipv6Prefix=field_mapjson__"Ipv6Prefix"String_.of_jsoninmake?ipv6Prefix()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Information about the IPv6 delegated prefixes assigned to a network interface."]moduleLaunchTemplateEnaSrdUdpSpecification=structtypenonrect={enaSrdUdpEnabled:Boolean.toption[@ocaml.doc"Indicates whether UDP traffic to and from the instance uses ENA Express. To specify this setting, you must first enable ENA Express."]}letmake?enaSrdUdpEnabled=fun()->{enaSrdUdpEnabled}letto_valuex=structure_to_value[("enaSrdUdpEnabled",(Option.mapx.enaSrdUdpEnabled~f:Boolean.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letenaSrdUdpEnabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"enaSrdUdpEnabled")inmake?enaSrdUdpEnabled()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letenaSrdUdpEnabled=field_mapjson__"EnaSrdUdpEnabled"Boolean.of_jsoninmake?enaSrdUdpEnabled()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"ENA Express is compatible with both TCP and UDP transport protocols. When it's enabled, TCP traffic automatically uses it. However, some UDP-based applications are designed to handle network packets that are out of order, without a need for retransmission, such as live video broadcasting or other near-real-time applications. For UDP traffic, you can specify whether to use ENA Express, based on your application environment needs."]moduleSecondaryInterfacePrivateIpAddressSpecification=structtypenonrect={privateIpAddress:String_.toption[@ocaml.doc"The private IPv4 address."]}letmake?privateIpAddress=fun()->{privateIpAddress}letto_valuex=structure_to_value[("privateIpAddress",(Option.mapx.privateIpAddress~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letprivateIpAddress=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"privateIpAddress")inmake?privateIpAddress()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letprivateIpAddress=field_mapjson__"PrivateIpAddress"String_.of_jsoninmake?privateIpAddress()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a private IPv4 address specification for a secondary interface."]moduleElasticGpuId=structtypenonrect=stringletcontext_="ElasticGpuId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ElasticGpuId"jletto_json=simple_to_jsonto_valueendmoduleEbsInstanceBlockDevice=structtypenonrect={attachTime:DateTime.toption[@ocaml.doc"The time stamp when the attachment initiated."];deleteOnTermination:Boolean.toption[@ocaml.doc"Indicates whether the volume is deleted on instance termination."];status:AttachmentStatus.toption[@ocaml.doc"The attachment state."];volumeId:String_.toption[@ocaml.doc"The ID of the EBS volume."];associatedResource:String_.toption[@ocaml.doc"The ARN of the Amazon Web Services-managed resource to which the volume is attached."];volumeOwnerId:String_.toption[@ocaml.doc"The ID of the Amazon Web Services account that owns the volume. This parameter is returned only for volumes that are attached to Amazon Web Services-managed resources."];operator:OperatorResponse.toption[@ocaml.doc"The service provider that manages the EBS volume."];ebsCardIndex:Integer.toption[@ocaml.doc"The index of the EBS card. Some instance types support multiple EBS cards. The default EBS card index is 0."]}letmake?attachTime=fun?deleteOnTermination->fun?status->fun?volumeId->fun?associatedResource->fun?volumeOwnerId->fun?operator->fun?ebsCardIndex->fun()->{attachTime;deleteOnTermination;status;volumeId;associatedResource;volumeOwnerId;operator;ebsCardIndex}letto_valuex=structure_to_value[("attachTime",(Option.mapx.attachTime~f:DateTime.to_value));("deleteOnTermination",(Option.mapx.deleteOnTermination~f:Boolean.to_value));("status",(Option.mapx.status~f:AttachmentStatus.to_value));("volumeId",(Option.mapx.volumeId~f:String_.to_value));("associatedResource",(Option.mapx.associatedResource~f:String_.to_value));("volumeOwnerId",(Option.mapx.volumeOwnerId~f:String_.to_value));("operator",(Option.mapx.operator~f:OperatorResponse.to_value));("ebsCardIndex",(Option.mapx.ebsCardIndex~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letebsCardIndex=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"ebsCardIndex")inletoperator=(Option.map~f:OperatorResponse.of_xml)(Xml.childxml_arg0"operator")inletvolumeOwnerId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"volumeOwnerId")inletassociatedResource=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"associatedResource")inletvolumeId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"volumeId")inletstatus=(Option.map~f:AttachmentStatus.of_xml)(Xml.childxml_arg0"status")inletdeleteOnTermination=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"deleteOnTermination")inletattachTime=(Option.map~f:DateTime.of_xml)(Xml.childxml_arg0"attachTime")inmake?ebsCardIndex?operator?volumeOwnerId?associatedResource?volumeId?status?deleteOnTermination?attachTime()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letebsCardIndex=field_mapjson__"EbsCardIndex"Integer.of_jsoninletoperator=field_mapjson__"Operator"OperatorResponse.of_jsoninletvolumeOwnerId=field_mapjson__"VolumeOwnerId"String_.of_jsoninletassociatedResource=field_mapjson__"AssociatedResource"String_.of_jsoninletvolumeId=field_mapjson__"VolumeId"String_.of_jsoninletstatus=field_mapjson__"Status"AttachmentStatus.of_jsoninletdeleteOnTermination=field_mapjson__"DeleteOnTermination"Boolean.of_jsoninletattachTime=field_mapjson__"AttachTime"DateTime.of_jsoninmake?ebsCardIndex?operator?volumeOwnerId?associatedResource?volumeId?status?deleteOnTermination?attachTime()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a parameter used to set up an EBS volume in a block device mapping."]moduleConnectionTrackingSpecificationResponse=structtypenonrect={tcpEstablishedTimeout:Integer.toption[@ocaml.doc"Timeout (in seconds) for idle TCP connections in an established state. Min: 60 seconds. Max: 432000 seconds (5 days). Default: 432000 seconds. Recommended: Less than 432000 seconds."];udpStreamTimeout:Integer.toption[@ocaml.doc"Timeout (in seconds) for idle UDP flows classified as streams which have seen more than one request-response transaction. Min: 60 seconds. Max: 180 seconds (3 minutes). Default: 180 seconds."];udpTimeout:Integer.toption[@ocaml.doc"Timeout (in seconds) for idle UDP flows that have seen traffic only in a single direction or a single request-response transaction. Min: 30 seconds. Max: 60 seconds. Default: 30 seconds."]}letmake?tcpEstablishedTimeout=fun?udpStreamTimeout->fun?udpTimeout->fun()->{tcpEstablishedTimeout;udpStreamTimeout;udpTimeout}letto_valuex=structure_to_value[("tcpEstablishedTimeout",(Option.mapx.tcpEstablishedTimeout~f:Integer.to_value));("udpStreamTimeout",(Option.mapx.udpStreamTimeout~f:Integer.to_value));("udpTimeout",(Option.mapx.udpTimeout~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letudpTimeout=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"udpTimeout")inletudpStreamTimeout=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"udpStreamTimeout")inlettcpEstablishedTimeout=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"tcpEstablishedTimeout")inmake?udpTimeout?udpStreamTimeout?tcpEstablishedTimeout()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letudpTimeout=field_mapjson__"UdpTimeout"Integer.of_jsoninletudpStreamTimeout=field_mapjson__"UdpStreamTimeout"Integer.of_jsoninlettcpEstablishedTimeout=field_mapjson__"TcpEstablishedTimeout"Integer.of_jsoninmake?udpTimeout?udpStreamTimeout?tcpEstablishedTimeout()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A security group connection tracking specification response that enables you to set the idle timeout for connection tracking on an Elastic network interface. For more information, see Connection tracking timeouts in the Amazon EC2 User Guide."]moduleGroupIdentifierList=structtypenonrect=GroupIdentifier.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:GroupIdentifier.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:GroupIdentifier.of_xml)letof_jsonj=list_of_json~kind:"GroupIdentifierList"~of_json:GroupIdentifier.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleInstanceIpv4PrefixList=structtypenonrect=InstanceIpv4Prefix.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:InstanceIpv4Prefix.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:InstanceIpv4Prefix.of_xml)letof_jsonj=list_of_json~kind:"InstanceIpv4PrefixList"~of_json:InstanceIpv4Prefix.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleInstanceIpv6PrefixList=structtypenonrect=InstanceIpv6Prefix.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:InstanceIpv6Prefix.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:InstanceIpv6Prefix.of_xml)letof_jsonj=list_of_json~kind:"InstanceIpv6PrefixList"~of_json:InstanceIpv6Prefix.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleInstanceNetworkInterfaceAttachment=structtypenonrect={attachTime:DateTime.toption[@ocaml.doc"The time stamp when the attachment initiated."];attachmentId:String_.toption[@ocaml.doc"The ID of the network interface attachment."];deleteOnTermination:Boolean.toption[@ocaml.doc"Indicates whether the network interface is deleted when the instance is terminated."];deviceIndex:Integer.toption[@ocaml.doc"The index of the device on the instance for the network interface attachment."];status:AttachmentStatus.toption[@ocaml.doc"The attachment state."];networkCardIndex:Integer.toption[@ocaml.doc"The index of the network card."];enaSrdSpecification:InstanceAttachmentEnaSrdSpecification.toption[@ocaml.doc"Contains the ENA Express settings for the network interface that's attached to the instance."];enaQueueCount:Integer.toption[@ocaml.doc"The number of ENA queues created with the instance."]}letmake?attachTime=fun?attachmentId->fun?deleteOnTermination->fun?deviceIndex->fun?status->fun?networkCardIndex->fun?enaSrdSpecification->fun?enaQueueCount->fun()->{attachTime;attachmentId;deleteOnTermination;deviceIndex;status;networkCardIndex;enaSrdSpecification;enaQueueCount}letto_valuex=structure_to_value[("attachTime",(Option.mapx.attachTime~f:DateTime.to_value));("attachmentId",(Option.mapx.attachmentId~f:String_.to_value));("deleteOnTermination",(Option.mapx.deleteOnTermination~f:Boolean.to_value));("deviceIndex",(Option.mapx.deviceIndex~f:Integer.to_value));("status",(Option.mapx.status~f:AttachmentStatus.to_value));("networkCardIndex",(Option.mapx.networkCardIndex~f:Integer.to_value));("enaSrdSpecification",(Option.mapx.enaSrdSpecification~f:InstanceAttachmentEnaSrdSpecification.to_value));("enaQueueCount",(Option.mapx.enaQueueCount~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letenaQueueCount=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"enaQueueCount")inletenaSrdSpecification=(Option.map~f:InstanceAttachmentEnaSrdSpecification.of_xml)(Xml.childxml_arg0"enaSrdSpecification")inletnetworkCardIndex=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"networkCardIndex")inletstatus=(Option.map~f:AttachmentStatus.of_xml)(Xml.childxml_arg0"status")inletdeviceIndex=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"deviceIndex")inletdeleteOnTermination=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"deleteOnTermination")inletattachmentId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"attachmentId")inletattachTime=(Option.map~f:DateTime.of_xml)(Xml.childxml_arg0"attachTime")inmake?enaQueueCount?enaSrdSpecification?networkCardIndex?status?deviceIndex?deleteOnTermination?attachmentId?attachTime()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letenaQueueCount=field_mapjson__"EnaQueueCount"Integer.of_jsoninletenaSrdSpecification=field_mapjson__"EnaSrdSpecification"InstanceAttachmentEnaSrdSpecification.of_jsoninletnetworkCardIndex=field_mapjson__"NetworkCardIndex"Integer.of_jsoninletstatus=field_mapjson__"Status"AttachmentStatus.of_jsoninletdeviceIndex=field_mapjson__"DeviceIndex"Integer.of_jsoninletdeleteOnTermination=field_mapjson__"DeleteOnTermination"Boolean.of_jsoninletattachmentId=field_mapjson__"AttachmentId"String_.of_jsoninletattachTime=field_mapjson__"AttachTime"DateTime.of_jsoninmake?enaQueueCount?enaSrdSpecification?networkCardIndex?status?deviceIndex?deleteOnTermination?attachmentId?attachTime()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a network interface attachment."]moduleInstancePrivateIpAddressList=structtypenonrect=InstancePrivateIpAddress.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:InstancePrivateIpAddress.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:InstancePrivateIpAddress.of_xml)letof_jsonj=list_of_json~kind:"InstancePrivateIpAddressList"~of_json:InstancePrivateIpAddress.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleNetworkInterfaceStatus=structtypenonrect=|Available|Associated|Attaching|In_use|Detaching|Non_static_idofstringletmakei=iletto_string=function|Available->"available"|Associated->"associated"|Attaching->"attaching"|In_use->"in-use"|Detaching->"detaching"|Non_static_ids->sletof_string=function|"available"->Available|"associated"->Associated|"attaching"->Attaching|"in-use"->In_use|"detaching"->Detaching|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 NetworkInterfaceStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"NetworkInterfaceStatus"j)letto_json=simple_to_jsonto_valueendmoduleInstanceSecondaryInterfaceAttachment=structtypenonrect={attachTime:MillisecondDateTime.toption[@ocaml.doc"The timestamp when the attachment was created."];attachmentId:String_.toption[@ocaml.doc"The ID of the attachment."];deleteOnTermination:Boolean.toption[@ocaml.doc"Indicates whether the secondary interface is deleted when the instance is terminated. The only supported value for this field is true."];deviceIndex:Integer.toption[@ocaml.doc"The device index of the secondary interface."];status:AttachmentStatus.toption[@ocaml.doc"The attachment state."];networkCardIndex:Integer.toption[@ocaml.doc"The index of the network card."]}letmake?attachTime=fun?attachmentId->fun?deleteOnTermination->fun?deviceIndex->fun?status->fun?networkCardIndex->fun()->{attachTime;attachmentId;deleteOnTermination;deviceIndex;status;networkCardIndex}letto_valuex=structure_to_value[("attachTime",(Option.mapx.attachTime~f:MillisecondDateTime.to_value));("attachmentId",(Option.mapx.attachmentId~f:String_.to_value));("deleteOnTermination",(Option.mapx.deleteOnTermination~f:Boolean.to_value));("deviceIndex",(Option.mapx.deviceIndex~f:Integer.to_value));("status",(Option.mapx.status~f:AttachmentStatus.to_value));("networkCardIndex",(Option.mapx.networkCardIndex~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnetworkCardIndex=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"networkCardIndex")inletstatus=(Option.map~f:AttachmentStatus.of_xml)(Xml.childxml_arg0"status")inletdeviceIndex=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"deviceIndex")inletdeleteOnTermination=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"deleteOnTermination")inletattachmentId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"attachmentId")inletattachTime=(Option.map~f:MillisecondDateTime.of_xml)(Xml.childxml_arg0"attachTime")inmake?networkCardIndex?status?deviceIndex?deleteOnTermination?attachmentId?attachTime()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnetworkCardIndex=field_mapjson__"NetworkCardIndex"Integer.of_jsoninletstatus=field_mapjson__"Status"AttachmentStatus.of_jsoninletdeviceIndex=field_mapjson__"DeviceIndex"Integer.of_jsoninletdeleteOnTermination=field_mapjson__"DeleteOnTermination"Boolean.of_jsoninletattachmentId=field_mapjson__"AttachmentId"String_.of_jsoninletattachTime=field_mapjson__"AttachTime"MillisecondDateTime.of_jsoninmake?networkCardIndex?status?deviceIndex?deleteOnTermination?attachmentId?attachTime()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the attachment of a secondary interface to an instance."]moduleInstanceSecondaryInterfacePrivateIpAddressList=structtypenonrect=InstanceSecondaryInterfacePrivateIpAddress.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:InstanceSecondaryInterfacePrivateIpAddress.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:InstanceSecondaryInterfacePrivateIpAddress.of_xml)letof_jsonj=list_of_json~kind:"InstanceSecondaryInterfacePrivateIpAddressList"~of_json:InstanceSecondaryInterfacePrivateIpAddress.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleSecondaryInterfaceId=structtypenonrect=stringletcontext_="SecondaryInterfaceId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"SecondaryInterfaceId"jletto_json=simple_to_jsonto_valueendmoduleSecondaryInterfaceStatus=structtypenonrect=|Available|In_use|Non_static_idofstringletmakei=iletto_string=function|Available->"available"|In_use->"in-use"|Non_static_ids->sletof_string=function|"available"->Available|"in-use"->In_use|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 SecondaryInterfaceStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"SecondaryInterfaceStatus"j)letto_json=simple_to_jsonto_valueendmoduleSecondaryInterfaceType=structtypenonrect=|Secondary|Non_static_idofstringletmakei=iletto_string=function|Secondary->"secondary"|Non_static_ids->sletof_string=function|"secondary"->Secondary|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 SecondaryInterfaceType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"SecondaryInterfaceType"j)letto_json=simple_to_jsonto_valueendmoduleSecondaryNetworkId=structtypenonrect=stringletcontext_="SecondaryNetworkId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"SecondaryNetworkId"jletto_json=simple_to_jsonto_valueendmoduleSecondarySubnetId=structtypenonrect=stringletcontext_="SecondarySubnetId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"SecondarySubnetId"jletto_json=simple_to_jsonto_valueendmoduleProductCodeValues=structtypenonrect=|Devpay|Marketplace|Non_static_idofstringletmakei=iletto_string=function|Devpay->"devpay"|Marketplace->"marketplace"|Non_static_ids->sletof_string=function|"devpay"->Devpay|"marketplace"->Marketplace|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 ProductCodeValues"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ProductCodeValues"j)letto_json=simple_to_jsonto_valueendmoduleFpgaDeviceMemorySize=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 FpgaDeviceMemorySize"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleGpuDeviceMemorySize=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 GpuDeviceMemorySize"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleWorkload=structtypenonrect=stringletcontext_="Workload"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"Workload"jletto_json=simple_to_jsonto_valueendmoduleInferenceDeviceMemorySize=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 InferenceDeviceMemorySize"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleMediaDeviceMemorySize=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 MediaDeviceMemorySize"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleNeuronDeviceCoreCount=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 NeuronDeviceCoreCount"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleNeuronDeviceCoreVersion=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 NeuronDeviceCoreVersion"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleNeuronDeviceMemorySize=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 NeuronDeviceMemorySize"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleImageUsageResourceTypeOptionValuesList=structtypenonrect=ImageUsageResourceTypeOptionValue.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ImageUsageResourceTypeOptionValue.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:ImageUsageResourceTypeOptionValue.of_xml)letof_jsonj=list_of_json~kind:"ImageUsageResourceTypeOptionValuesList"~of_json:ImageUsageResourceTypeOptionValue.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAvailabilityZoneName=structtypenonrect=stringletcontext_="AvailabilityZoneName"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"AvailabilityZoneName"jletto_json=simple_to_jsonto_valueendmoduleBlockDeviceMappingResponseList=structtypenonrect=BlockDeviceMappingResponse.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:BlockDeviceMappingResponse.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:BlockDeviceMappingResponse.of_xml)letof_jsonj=list_of_json~kind:"BlockDeviceMappingResponseList"~of_json:BlockDeviceMappingResponse.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleImageId=structtypenonrect=stringletcontext_="ImageId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ImageId"jletto_json=simple_to_jsonto_valueendmodulePlacementResponse=structtypenonrect={groupName:PlacementGroupName.toption[@ocaml.doc"The name of the placement group that the instance is in."]}letmake?groupName=fun()->{groupName}letto_valuex=structure_to_value[("groupName",(Option.mapx.groupName~f:PlacementGroupName.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgroupName=(Option.map~f:PlacementGroupName.of_xml)(Xml.childxml_arg0"groupName")inmake?groupName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgroupName=field_mapjson__"GroupName"PlacementGroupName.of_jsoninmake?groupName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the placement of an instance."]moduleDiskImageFormat=structtypenonrect=|VMDK|RAW|VHD|Non_static_idofstringletmakei=iletto_string=function|VMDK->"VMDK"|RAW->"RAW"|VHD->"VHD"|Non_static_ids->sletof_string=function|"VMDK"->VMDK|"RAW"->RAW|"VHD"->VHD|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 DiskImageFormat"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"DiskImageFormat"j)letto_json=simple_to_jsonto_valueendmoduleImportManifestUrl=structtypenonrect=stringletcontext_="ImportManifestUrl"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ImportManifestUrl"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_valueendmoduleIpv6Address=structtypenonrect=stringletcontext_="Ipv6Address"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"Ipv6Address"jletto_json=simple_to_jsonto_valueendmoduleFleetBlockDeviceMappingRequest=structtypenonrect={deviceName:String_.toption[@ocaml.doc"The device name (for example, /dev/sdh or xvdh)."];virtualName:String_.toption[@ocaml.doc"The virtual device name (ephemeralN). Instance store volumes are numbered starting from 0. An instance type with 2 available instance store volumes can specify mappings for ephemeral0 and ephemeral1. The number of available instance store volumes depends on the instance type. After you connect to the instance, you must mount the volume. NVMe instance store volumes are automatically enumerated and assigned a device name. Including them in your block device mapping has no effect. Constraints: For M3 instances, you must specify instance store volumes in the block device mapping for the instance. When you launch an M3 instance, we ignore any instance store volumes specified in the block device mapping for the AMI."];ebs:FleetEbsBlockDeviceRequest.toption[@ocaml.doc"Parameters used to automatically set up EBS volumes when the instance is launched."];noDevice:String_.toption[@ocaml.doc"To omit the device from the block device mapping, specify an empty string. When this property is specified, the device is removed from the block device mapping regardless of the assigned value."]}letmake?deviceName=fun?virtualName->fun?ebs->fun?noDevice->fun()->{deviceName;virtualName;ebs;noDevice}letto_valuex=structure_to_value[("DeviceName",(Option.mapx.deviceName~f:String_.to_value));("VirtualName",(Option.mapx.virtualName~f:String_.to_value));("Ebs",(Option.mapx.ebs~f:FleetEbsBlockDeviceRequest.to_value));("NoDevice",(Option.mapx.noDevice~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnoDevice=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"NoDevice")inletebs=(Option.map~f:FleetEbsBlockDeviceRequest.of_xml)(Xml.childxml_arg0"Ebs")inletvirtualName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"VirtualName")inletdeviceName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"DeviceName")inmake?noDevice?ebs?virtualName?deviceName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnoDevice=field_mapjson__"NoDevice"String_.of_jsoninletebs=field_mapjson__"Ebs"FleetEbsBlockDeviceRequest.of_jsoninletvirtualName=field_mapjson__"VirtualName"String_.of_jsoninletdeviceName=field_mapjson__"DeviceName"String_.of_jsoninmake?noDevice?ebs?virtualName?deviceName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a block device mapping, which defines the EBS volumes and instance store volumes to attach to an instance at launch. To override a block device mapping specified in the launch template: Specify the exact same DeviceName here as specified in the launch template. Only specify the parameters you want to change. Any parameters you don't specify here will keep their original launch template values. To add a new block device mapping: Specify a DeviceName that doesn't exist in the launch template. Specify all desired parameters here."]moduleAcceleratorCountRequest=structtypenonrect={min:Integer.toption[@ocaml.doc"The minimum number of accelerators. To specify no minimum limit, omit this parameter."];max:Integer.toption[@ocaml.doc"The maximum number of accelerators. To specify no maximum limit, omit this parameter. To exclude accelerator-enabled instance types, set Max to 0."]}letmake?min=fun?max->fun()->{min;max}letto_valuex=structure_to_value[("Min",(Option.mapx.min~f:Integer.to_value));("Max",(Option.mapx.max~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmax=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"Max")inletmin=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"Min")inmake?max?min()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmax=field_mapjson__"Max"Integer.of_jsoninletmin=field_mapjson__"Min"Integer.of_jsoninmake?max?min()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web Services Inferentia chips) on an instance. To exclude accelerator-enabled instance types, set Max to 0."]moduleAcceleratorTotalMemoryMiBRequest=structtypenonrect={min:Integer.toption[@ocaml.doc"The minimum amount of accelerator memory, in MiB. To specify no minimum limit, omit this parameter."];max:Integer.toption[@ocaml.doc"The maximum amount of accelerator memory, in MiB. To specify no maximum limit, omit this parameter."]}letmake?min=fun?max->fun()->{min;max}letto_valuex=structure_to_value[("Min",(Option.mapx.min~f:Integer.to_value));("Max",(Option.mapx.max~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmax=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"Max")inletmin=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"Min")inmake?max?min()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmax=field_mapjson__"Max"Integer.of_jsoninletmin=field_mapjson__"Min"Integer.of_jsoninmake?max?min()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The minimum and maximum amount of total accelerator memory, in MiB."]moduleBaselineEbsBandwidthMbpsRequest=structtypenonrect={min:Integer.toption[@ocaml.doc"The minimum baseline bandwidth, in Mbps. To specify no minimum limit, omit this parameter."];max:Integer.toption[@ocaml.doc"The maximum baseline bandwidth, in Mbps. To specify no maximum limit, omit this parameter."]}letmake?min=fun?max->fun()->{min;max}letto_valuex=structure_to_value[("Min",(Option.mapx.min~f:Integer.to_value));("Max",(Option.mapx.max~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmax=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"Max")inletmin=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"Min")inmake?max?min()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmax=field_mapjson__"Max"Integer.of_jsoninletmin=field_mapjson__"Min"Integer.of_jsoninmake?max?min()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see Amazon EBS\226\128\147optimized instances in the Amazon EC2 User Guide."]moduleBaselinePerformanceFactorsRequest=structtypenonrect={cpu:CpuPerformanceFactorRequest.toption[@ocaml.doc"The CPU performance to consider, using an instance family as the baseline reference."]}letmake?cpu=fun()->{cpu}letto_valuex=structure_to_value[("Cpu",(Option.mapx.cpu~f:CpuPerformanceFactorRequest.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcpu=(Option.map~f:CpuPerformanceFactorRequest.of_xml)(Xml.childxml_arg0"Cpu")inmake?cpu()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcpu=field_mapjson__"Cpu"CpuPerformanceFactorRequest.of_jsoninmake?cpu()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The baseline performance to consider, using an instance family as a baseline reference. The instance family establishes the lowest acceptable level of performance. Amazon EC2 uses this baseline to guide instance type selection, but there is no guarantee that the selected instance types will always exceed the baseline for every application. Currently, this parameter only supports CPU performance as a baseline performance factor. For example, specifying c6i would use the CPU performance of the c6i family as the baseline reference."]moduleMemoryGiBPerVCpuRequest=structtypenonrect={min:Double.toption[@ocaml.doc"The minimum amount of memory per vCPU, in GiB. To specify no minimum limit, omit this parameter."];max:Double.toption[@ocaml.doc"The maximum amount of memory per vCPU, in GiB. To specify no maximum limit, omit this parameter."]}letmake?min=fun?max->fun()->{min;max}letto_valuex=structure_to_value[("Min",(Option.mapx.min~f:Double.to_value));("Max",(Option.mapx.max~f:Double.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmax=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"Max")inletmin=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"Min")inmake?max?min()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmax=field_mapjson__"Max"Double.of_jsoninletmin=field_mapjson__"Min"Double.of_jsoninmake?max?min()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The minimum and maximum amount of memory per vCPU, in GiB."]moduleMemoryMiBRequest=structtypenonrect={min:Integer.t[@ocaml.doc"The minimum amount of memory, in MiB. To specify no minimum limit, specify 0."];max:Integer.toption[@ocaml.doc"The maximum amount of memory, in MiB. To specify no maximum limit, omit this parameter."]}letcontext_="MemoryMiBRequest"letmake?max=fun~min->fun()->{max;min}letto_valuex=structure_to_value[("Min",(Some(Integer.to_valuex.min)));("Max",(Option.mapx.max~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmax=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"Max")inletmin=Integer.of_xml(Xml.child_exn~context:context_xml_arg0"Min")inmake?max~min()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmax=field_mapjson__"Max"Integer.of_jsoninletmin=field_map_exnjson__"Min"Integer.of_jsoninmake?max~min()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The minimum and maximum amount of memory, in MiB."]moduleNetworkBandwidthGbpsRequest=structtypenonrect={min:Double.toption[@ocaml.doc"The minimum amount of network bandwidth, in Gbps. To specify no minimum limit, omit this parameter."];max:Double.toption[@ocaml.doc"The maximum amount of network bandwidth, in Gbps. To specify no maximum limit, omit this parameter."]}letmake?min=fun?max->fun()->{min;max}letto_valuex=structure_to_value[("Min",(Option.mapx.min~f:Double.to_value));("Max",(Option.mapx.max~f:Double.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmax=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"Max")inletmin=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"Min")inmake?max?min()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmax=field_mapjson__"Max"Double.of_jsoninletmin=field_mapjson__"Min"Double.of_jsoninmake?max?min()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps). Setting the minimum bandwidth does not guarantee that your instance will achieve the minimum bandwidth. Amazon EC2 will identify instance types that support the specified minimum bandwidth, but the actual bandwidth of your instance might go below the specified minimum at times. For more information, see Available instance bandwidth in the Amazon EC2 User Guide."]moduleNetworkInterfaceCountRequest=structtypenonrect={min:Integer.toption[@ocaml.doc"The minimum number of network interfaces. To specify no minimum limit, omit this parameter."];max:Integer.toption[@ocaml.doc"The maximum number of network interfaces. To specify no maximum limit, omit this parameter."]}letmake?min=fun?max->fun()->{min;max}letto_valuex=structure_to_value[("Min",(Option.mapx.min~f:Integer.to_value));("Max",(Option.mapx.max~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmax=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"Max")inletmin=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"Min")inmake?max?min()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmax=field_mapjson__"Max"Integer.of_jsoninletmin=field_mapjson__"Min"Integer.of_jsoninmake?max?min()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The minimum and maximum number of network interfaces."]moduleTotalLocalStorageGBRequest=structtypenonrect={min:Double.toption[@ocaml.doc"The minimum amount of total local storage, in GB. To specify no minimum limit, omit this parameter."];max:Double.toption[@ocaml.doc"The maximum amount of total local storage, in GB. To specify no maximum limit, omit this parameter."]}letmake?min=fun?max->fun()->{min;max}letto_valuex=structure_to_value[("Min",(Option.mapx.min~f:Double.to_value));("Max",(Option.mapx.max~f:Double.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmax=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"Max")inletmin=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"Min")inmake?max?min()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmax=field_mapjson__"Max"Double.of_jsoninletmin=field_mapjson__"Min"Double.of_jsoninmake?max?min()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The minimum and maximum amount of total local storage, in GB."]moduleVCpuCountRangeRequest=structtypenonrect={min:Integer.t[@ocaml.doc"The minimum number of vCPUs. To specify no minimum limit, specify 0."];max:Integer.toption[@ocaml.doc"The maximum number of vCPUs. To specify no maximum limit, omit this parameter."]}letcontext_="VCpuCountRangeRequest"letmake?max=fun~min->fun()->{max;min}letto_valuex=structure_to_value[("Min",(Some(Integer.to_valuex.min)));("Max",(Option.mapx.max~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmax=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"Max")inletmin=Integer.of_xml(Xml.child_exn~context:context_xml_arg0"Min")inmake?max~min()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmax=field_mapjson__"Max"Integer.of_jsoninletmin=field_map_exnjson__"Min"Integer.of_jsoninmake?max~min()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The minimum and maximum number of vCPUs."]modulePlacementGroupId=structtypenonrect=stringletcontext_="PlacementGroupId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"PlacementGroupId"jletto_json=simple_to_jsonto_valueendmoduleProtocolList=structtypenonrect=Protocol.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Protocol.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:Protocol.of_xml)letof_jsonj=list_of_json~kind:"ProtocolList"~of_json:Protocol.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleResourceStatement=structtypenonrect={resources:ValueStringList.toption[@ocaml.doc"The resources."];resourceTypes:ValueStringList.toption[@ocaml.doc"The resource types."]}letmake?resources=fun?resourceTypes->fun()->{resources;resourceTypes}letto_valuex=structure_to_value[("resourceSet",(Option.mapx.resources~f:ValueStringList.to_value));("resourceTypeSet",(Option.mapx.resourceTypes~f:ValueStringList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceTypes=(Option.map~f:ValueStringList.of_xml)(Xml.childxml_arg0"resourceTypeSet")inletresources=(Option.map~f:ValueStringList.of_xml)(Xml.childxml_arg0"resourceSet")inmake?resourceTypes?resources()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceTypes=field_mapjson__"ResourceTypes"ValueStringList.of_jsoninletresources=field_mapjson__"Resources"ValueStringList.of_jsoninmake?resourceTypes?resources()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a resource statement."]moduleAdditionalDetail=structtypenonrect={additionalDetailType:String_.toption[@ocaml.doc"The additional detail code."];component:AnalysisComponent.toption[@ocaml.doc"The path component."];vpcEndpointService:AnalysisComponent.toption[@ocaml.doc"The VPC endpoint service."];ruleOptions:RuleOptionList.toption[@ocaml.doc"The rule options."];ruleGroupTypePairs:RuleGroupTypePairList.toption[@ocaml.doc"The rule group type."];ruleGroupRuleOptionsPairs:RuleGroupRuleOptionsPairList.toption[@ocaml.doc"The rule options."];serviceName:String_.toption[@ocaml.doc"The name of the VPC endpoint service."];loadBalancers:AnalysisComponentList.toption[@ocaml.doc"The load balancers."]}letmake?additionalDetailType=fun?component->fun?vpcEndpointService->fun?ruleOptions->fun?ruleGroupTypePairs->fun?ruleGroupRuleOptionsPairs->fun?serviceName->fun?loadBalancers->fun()->{additionalDetailType;component;vpcEndpointService;ruleOptions;ruleGroupTypePairs;ruleGroupRuleOptionsPairs;serviceName;loadBalancers}letto_valuex=structure_to_value[("additionalDetailType",(Option.mapx.additionalDetailType~f:String_.to_value));("component",(Option.mapx.component~f:AnalysisComponent.to_value));("vpcEndpointService",(Option.mapx.vpcEndpointService~f:AnalysisComponent.to_value));("ruleOptionSet",(Option.mapx.ruleOptions~f:RuleOptionList.to_value));("ruleGroupTypePairSet",(Option.mapx.ruleGroupTypePairs~f:RuleGroupTypePairList.to_value));("ruleGroupRuleOptionsPairSet",(Option.mapx.ruleGroupRuleOptionsPairs~f:RuleGroupRuleOptionsPairList.to_value));("serviceName",(Option.mapx.serviceName~f:String_.to_value));("loadBalancerSet",(Option.mapx.loadBalancers~f:AnalysisComponentList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letloadBalancers=(Option.map~f:AnalysisComponentList.of_xml)(Xml.childxml_arg0"loadBalancerSet")inletserviceName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"serviceName")inletruleGroupRuleOptionsPairs=(Option.map~f:RuleGroupRuleOptionsPairList.of_xml)(Xml.childxml_arg0"ruleGroupRuleOptionsPairSet")inletruleGroupTypePairs=(Option.map~f:RuleGroupTypePairList.of_xml)(Xml.childxml_arg0"ruleGroupTypePairSet")inletruleOptions=(Option.map~f:RuleOptionList.of_xml)(Xml.childxml_arg0"ruleOptionSet")inletvpcEndpointService=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"vpcEndpointService")inletcomponent=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"component")inletadditionalDetailType=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"additionalDetailType")inmake?loadBalancers?serviceName?ruleGroupRuleOptionsPairs?ruleGroupTypePairs?ruleOptions?vpcEndpointService?component?additionalDetailType()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letloadBalancers=field_mapjson__"LoadBalancers"AnalysisComponentList.of_jsoninletserviceName=field_mapjson__"ServiceName"String_.of_jsoninletruleGroupRuleOptionsPairs=field_mapjson__"RuleGroupRuleOptionsPairs"RuleGroupRuleOptionsPairList.of_jsoninletruleGroupTypePairs=field_mapjson__"RuleGroupTypePairs"RuleGroupTypePairList.of_jsoninletruleOptions=field_mapjson__"RuleOptions"RuleOptionList.of_jsoninletvpcEndpointService=field_mapjson__"VpcEndpointService"AnalysisComponent.of_jsoninletcomponent=field_mapjson__"Component"AnalysisComponent.of_jsoninletadditionalDetailType=field_mapjson__"AdditionalDetailType"String_.of_jsoninmake?loadBalancers?serviceName?ruleGroupRuleOptionsPairs?ruleGroupTypePairs?ruleOptions?vpcEndpointService?component?additionalDetailType()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an additional detail for a path analysis. For more information, see Reachability Analyzer additional detail codes."]moduleExplanation=structtypenonrect={acl:AnalysisComponent.toption[@ocaml.doc"The network ACL."];aclRule:AnalysisAclRule.toption[@ocaml.doc"The network ACL rule."];address:IpAddress.toption[@ocaml.doc"The IPv4 address, in CIDR notation."];addresses:IpAddressList.toption[@ocaml.doc"The IPv4 addresses, in CIDR notation."];attachedTo:AnalysisComponent.toption[@ocaml.doc"The resource to which the component is attached."];availabilityZones:ValueStringList.toption[@ocaml.doc"The Availability Zones."];availabilityZoneIds:ValueStringList.toption[@ocaml.doc"The IDs of the Availability Zones."];cidrs:ValueStringList.toption[@ocaml.doc"The CIDR ranges."];component:AnalysisComponent.toption[@ocaml.doc"The component."];customerGateway:AnalysisComponent.toption[@ocaml.doc"The customer gateway."];destination:AnalysisComponent.toption[@ocaml.doc"The destination."];destinationVpc:AnalysisComponent.toption[@ocaml.doc"The destination VPC."];direction:String_.toption[@ocaml.doc"The direction. The following are the possible values: egress ingress"];explanationCode:String_.toption[@ocaml.doc"The explanation code."];ingressRouteTable:AnalysisComponent.toption[@ocaml.doc"The route table."];internetGateway:AnalysisComponent.toption[@ocaml.doc"The internet gateway."];loadBalancerArn:ResourceArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the load balancer."];classicLoadBalancerListener:AnalysisLoadBalancerListener.toption[@ocaml.doc"The listener for a Classic Load Balancer."];loadBalancerListenerPort:Port.toption[@ocaml.doc"The listener port of the load balancer."];loadBalancerTarget:AnalysisLoadBalancerTarget.toption[@ocaml.doc"The target."];loadBalancerTargetGroup:AnalysisComponent.toption[@ocaml.doc"The target group."];loadBalancerTargetGroups:AnalysisComponentList.toption[@ocaml.doc"The target groups."];loadBalancerTargetPort:Port.toption[@ocaml.doc"The target port."];elasticLoadBalancerListener:AnalysisComponent.toption[@ocaml.doc"The load balancer listener."];missingComponent:String_.toption[@ocaml.doc"The missing component."];natGateway:AnalysisComponent.toption[@ocaml.doc"The NAT gateway."];networkInterface:AnalysisComponent.toption[@ocaml.doc"The network interface."];packetField:String_.toption[@ocaml.doc"The packet field."];vpcPeeringConnection:AnalysisComponent.toption[@ocaml.doc"The VPC peering connection."];port:Port.toption[@ocaml.doc"The port."];portRanges:PortRangeList.toption[@ocaml.doc"The port ranges."];prefixList:AnalysisComponent.toption[@ocaml.doc"The prefix list."];protocols:StringList.toption[@ocaml.doc"The protocols."];routeTableRoute:AnalysisRouteTableRoute.toption[@ocaml.doc"The route table route."];routeTable:AnalysisComponent.toption[@ocaml.doc"The route table."];securityGroup:AnalysisComponent.toption[@ocaml.doc"The security group."];securityGroupRule:AnalysisSecurityGroupRule.toption[@ocaml.doc"The security group rule."];securityGroups:AnalysisComponentList.toption[@ocaml.doc"The security groups."];sourceVpc:AnalysisComponent.toption[@ocaml.doc"The source VPC."];state:String_.toption[@ocaml.doc"The state."];subnet:AnalysisComponent.toption[@ocaml.doc"The subnet."];subnetRouteTable:AnalysisComponent.toption[@ocaml.doc"The route table for the subnet."];vpc:AnalysisComponent.toption[@ocaml.doc"The component VPC."];vpcEndpoint:AnalysisComponent.toption[@ocaml.doc"The VPC endpoint."];vpnConnection:AnalysisComponent.toption[@ocaml.doc"The VPN connection."];vpnGateway:AnalysisComponent.toption[@ocaml.doc"The VPN gateway."];transitGateway:AnalysisComponent.toption[@ocaml.doc"The transit gateway."];transitGatewayRouteTable:AnalysisComponent.toption[@ocaml.doc"The transit gateway route table."];transitGatewayRouteTableRoute:TransitGatewayRouteTableRoute.toption[@ocaml.doc"The transit gateway route table route."];transitGatewayAttachment:AnalysisComponent.toption[@ocaml.doc"The transit gateway attachment."];componentAccount:ComponentAccount.toption[@ocaml.doc"The Amazon Web Services account for the component."];componentRegion:ComponentRegion.toption[@ocaml.doc"The Region for the component."];firewallStatelessRule:FirewallStatelessRule.toption[@ocaml.doc"The Network Firewall stateless rule."];firewallStatefulRule:FirewallStatefulRule.toption[@ocaml.doc"The Network Firewall stateful rule."]}letmake?acl=fun?aclRule->fun?address->fun?addresses->fun?attachedTo->fun?availabilityZones->fun?availabilityZoneIds->fun?cidrs->fun?component->fun?customerGateway->fun?destination->fun?destinationVpc->fun?direction->fun?explanationCode->fun?ingressRouteTable->fun?internetGateway->fun?loadBalancerArn->fun?classicLoadBalancerListener->fun?loadBalancerListenerPort->fun?loadBalancerTarget->fun?loadBalancerTargetGroup->fun?loadBalancerTargetGroups->fun?loadBalancerTargetPort->fun?elasticLoadBalancerListener->fun?missingComponent->fun?natGateway->fun?networkInterface->fun?packetField->fun?vpcPeeringConnection->fun?port->fun?portRanges->fun?prefixList->fun?protocols->fun?routeTableRoute->fun?routeTable->fun?securityGroup->fun?securityGroupRule->fun?securityGroups->fun?sourceVpc->fun?state->fun?subnet->fun?subnetRouteTable->fun?vpc->fun?vpcEndpoint->fun?vpnConnection->fun?vpnGateway->fun?transitGateway->fun?transitGatewayRouteTable->fun?transitGatewayRouteTableRoute->fun?transitGatewayAttachment->fun?componentAccount->fun?componentRegion->fun?firewallStatelessRule->fun?firewallStatefulRule->fun()->{acl;aclRule;address;addresses;attachedTo;availabilityZones;availabilityZoneIds;cidrs;component;customerGateway;destination;destinationVpc;direction;explanationCode;ingressRouteTable;internetGateway;loadBalancerArn;classicLoadBalancerListener;loadBalancerListenerPort;loadBalancerTarget;loadBalancerTargetGroup;loadBalancerTargetGroups;loadBalancerTargetPort;elasticLoadBalancerListener;missingComponent;natGateway;networkInterface;packetField;vpcPeeringConnection;port;portRanges;prefixList;protocols;routeTableRoute;routeTable;securityGroup;securityGroupRule;securityGroups;sourceVpc;state;subnet;subnetRouteTable;vpc;vpcEndpoint;vpnConnection;vpnGateway;transitGateway;transitGatewayRouteTable;transitGatewayRouteTableRoute;transitGatewayAttachment;componentAccount;componentRegion;firewallStatelessRule;firewallStatefulRule}letto_valuex=structure_to_value[("acl",(Option.mapx.acl~f:AnalysisComponent.to_value));("aclRule",(Option.mapx.aclRule~f:AnalysisAclRule.to_value));("address",(Option.mapx.address~f:IpAddress.to_value));("addressSet",(Option.mapx.addresses~f:IpAddressList.to_value));("attachedTo",(Option.mapx.attachedTo~f:AnalysisComponent.to_value));("availabilityZoneSet",(Option.mapx.availabilityZones~f:ValueStringList.to_value));("availabilityZoneIdSet",(Option.mapx.availabilityZoneIds~f:ValueStringList.to_value));("cidrSet",(Option.mapx.cidrs~f:ValueStringList.to_value));("component",(Option.mapx.component~f:AnalysisComponent.to_value));("customerGateway",(Option.mapx.customerGateway~f:AnalysisComponent.to_value));("destination",(Option.mapx.destination~f:AnalysisComponent.to_value));("destinationVpc",(Option.mapx.destinationVpc~f:AnalysisComponent.to_value));("direction",(Option.mapx.direction~f:String_.to_value));("explanationCode",(Option.mapx.explanationCode~f:String_.to_value));("ingressRouteTable",(Option.mapx.ingressRouteTable~f:AnalysisComponent.to_value));("internetGateway",(Option.mapx.internetGateway~f:AnalysisComponent.to_value));("loadBalancerArn",(Option.mapx.loadBalancerArn~f:ResourceArn.to_value));("classicLoadBalancerListener",(Option.mapx.classicLoadBalancerListener~f:AnalysisLoadBalancerListener.to_value));("loadBalancerListenerPort",(Option.mapx.loadBalancerListenerPort~f:Port.to_value));("loadBalancerTarget",(Option.mapx.loadBalancerTarget~f:AnalysisLoadBalancerTarget.to_value));("loadBalancerTargetGroup",(Option.mapx.loadBalancerTargetGroup~f:AnalysisComponent.to_value));("loadBalancerTargetGroupSet",(Option.mapx.loadBalancerTargetGroups~f:AnalysisComponentList.to_value));("loadBalancerTargetPort",(Option.mapx.loadBalancerTargetPort~f:Port.to_value));("elasticLoadBalancerListener",(Option.mapx.elasticLoadBalancerListener~f:AnalysisComponent.to_value));("missingComponent",(Option.mapx.missingComponent~f:String_.to_value));("natGateway",(Option.mapx.natGateway~f:AnalysisComponent.to_value));("networkInterface",(Option.mapx.networkInterface~f:AnalysisComponent.to_value));("packetField",(Option.mapx.packetField~f:String_.to_value));("vpcPeeringConnection",(Option.mapx.vpcPeeringConnection~f:AnalysisComponent.to_value));("port",(Option.mapx.port~f:Port.to_value));("portRangeSet",(Option.mapx.portRanges~f:PortRangeList.to_value));("prefixList",(Option.mapx.prefixList~f:AnalysisComponent.to_value));("protocolSet",(Option.mapx.protocols~f:StringList.to_value));("routeTableRoute",(Option.mapx.routeTableRoute~f:AnalysisRouteTableRoute.to_value));("routeTable",(Option.mapx.routeTable~f:AnalysisComponent.to_value));("securityGroup",(Option.mapx.securityGroup~f:AnalysisComponent.to_value));("securityGroupRule",(Option.mapx.securityGroupRule~f:AnalysisSecurityGroupRule.to_value));("securityGroupSet",(Option.mapx.securityGroups~f:AnalysisComponentList.to_value));("sourceVpc",(Option.mapx.sourceVpc~f:AnalysisComponent.to_value));("state",(Option.mapx.state~f:String_.to_value));("subnet",(Option.mapx.subnet~f:AnalysisComponent.to_value));("subnetRouteTable",(Option.mapx.subnetRouteTable~f:AnalysisComponent.to_value));("vpc",(Option.mapx.vpc~f:AnalysisComponent.to_value));("vpcEndpoint",(Option.mapx.vpcEndpoint~f:AnalysisComponent.to_value));("vpnConnection",(Option.mapx.vpnConnection~f:AnalysisComponent.to_value));("vpnGateway",(Option.mapx.vpnGateway~f:AnalysisComponent.to_value));("transitGateway",(Option.mapx.transitGateway~f:AnalysisComponent.to_value));("transitGatewayRouteTable",(Option.mapx.transitGatewayRouteTable~f:AnalysisComponent.to_value));("transitGatewayRouteTableRoute",(Option.mapx.transitGatewayRouteTableRoute~f:TransitGatewayRouteTableRoute.to_value));("transitGatewayAttachment",(Option.mapx.transitGatewayAttachment~f:AnalysisComponent.to_value));("componentAccount",(Option.mapx.componentAccount~f:ComponentAccount.to_value));("componentRegion",(Option.mapx.componentRegion~f:ComponentRegion.to_value));("firewallStatelessRule",(Option.mapx.firewallStatelessRule~f:FirewallStatelessRule.to_value));("firewallStatefulRule",(Option.mapx.firewallStatefulRule~f:FirewallStatefulRule.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfirewallStatefulRule=(Option.map~f:FirewallStatefulRule.of_xml)(Xml.childxml_arg0"firewallStatefulRule")inletfirewallStatelessRule=(Option.map~f:FirewallStatelessRule.of_xml)(Xml.childxml_arg0"firewallStatelessRule")inletcomponentRegion=(Option.map~f:ComponentRegion.of_xml)(Xml.childxml_arg0"componentRegion")inletcomponentAccount=(Option.map~f:ComponentAccount.of_xml)(Xml.childxml_arg0"componentAccount")inlettransitGatewayAttachment=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"transitGatewayAttachment")inlettransitGatewayRouteTableRoute=(Option.map~f:TransitGatewayRouteTableRoute.of_xml)(Xml.childxml_arg0"transitGatewayRouteTableRoute")inlettransitGatewayRouteTable=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"transitGatewayRouteTable")inlettransitGateway=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"transitGateway")inletvpnGateway=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"vpnGateway")inletvpnConnection=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"vpnConnection")inletvpcEndpoint=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"vpcEndpoint")inletvpc=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"vpc")inletsubnetRouteTable=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"subnetRouteTable")inletsubnet=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"subnet")inletstate=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"state")inletsourceVpc=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"sourceVpc")inletsecurityGroups=(Option.map~f:AnalysisComponentList.of_xml)(Xml.childxml_arg0"securityGroupSet")inletsecurityGroupRule=(Option.map~f:AnalysisSecurityGroupRule.of_xml)(Xml.childxml_arg0"securityGroupRule")inletsecurityGroup=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"securityGroup")inletrouteTable=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"routeTable")inletrouteTableRoute=(Option.map~f:AnalysisRouteTableRoute.of_xml)(Xml.childxml_arg0"routeTableRoute")inletprotocols=(Option.map~f:StringList.of_xml)(Xml.childxml_arg0"protocolSet")inletprefixList=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"prefixList")inletportRanges=(Option.map~f:PortRangeList.of_xml)(Xml.childxml_arg0"portRangeSet")inletport=(Option.map~f:Port.of_xml)(Xml.childxml_arg0"port")inletvpcPeeringConnection=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"vpcPeeringConnection")inletpacketField=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"packetField")inletnetworkInterface=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"networkInterface")inletnatGateway=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"natGateway")inletmissingComponent=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"missingComponent")inletelasticLoadBalancerListener=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"elasticLoadBalancerListener")inletloadBalancerTargetPort=(Option.map~f:Port.of_xml)(Xml.childxml_arg0"loadBalancerTargetPort")inletloadBalancerTargetGroups=(Option.map~f:AnalysisComponentList.of_xml)(Xml.childxml_arg0"loadBalancerTargetGroupSet")inletloadBalancerTargetGroup=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"loadBalancerTargetGroup")inletloadBalancerTarget=(Option.map~f:AnalysisLoadBalancerTarget.of_xml)(Xml.childxml_arg0"loadBalancerTarget")inletloadBalancerListenerPort=(Option.map~f:Port.of_xml)(Xml.childxml_arg0"loadBalancerListenerPort")inletclassicLoadBalancerListener=(Option.map~f:AnalysisLoadBalancerListener.of_xml)(Xml.childxml_arg0"classicLoadBalancerListener")inletloadBalancerArn=(Option.map~f:ResourceArn.of_xml)(Xml.childxml_arg0"loadBalancerArn")inletinternetGateway=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"internetGateway")inletingressRouteTable=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"ingressRouteTable")inletexplanationCode=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"explanationCode")inletdirection=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"direction")inletdestinationVpc=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"destinationVpc")inletdestination=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"destination")inletcustomerGateway=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"customerGateway")inletcomponent=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"component")inletcidrs=(Option.map~f:ValueStringList.of_xml)(Xml.childxml_arg0"cidrSet")inletavailabilityZoneIds=(Option.map~f:ValueStringList.of_xml)(Xml.childxml_arg0"availabilityZoneIdSet")inletavailabilityZones=(Option.map~f:ValueStringList.of_xml)(Xml.childxml_arg0"availabilityZoneSet")inletattachedTo=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"attachedTo")inletaddresses=(Option.map~f:IpAddressList.of_xml)(Xml.childxml_arg0"addressSet")inletaddress=(Option.map~f:IpAddress.of_xml)(Xml.childxml_arg0"address")inletaclRule=(Option.map~f:AnalysisAclRule.of_xml)(Xml.childxml_arg0"aclRule")inletacl=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"acl")inmake?firewallStatefulRule?firewallStatelessRule?componentRegion?componentAccount?transitGatewayAttachment?transitGatewayRouteTableRoute?transitGatewayRouteTable?transitGateway?vpnGateway?vpnConnection?vpcEndpoint?vpc?subnetRouteTable?subnet?state?sourceVpc?securityGroups?securityGroupRule?securityGroup?routeTable?routeTableRoute?protocols?prefixList?portRanges?port?vpcPeeringConnection?packetField?networkInterface?natGateway?missingComponent?elasticLoadBalancerListener?loadBalancerTargetPort?loadBalancerTargetGroups?loadBalancerTargetGroup?loadBalancerTarget?loadBalancerListenerPort?classicLoadBalancerListener?loadBalancerArn?internetGateway?ingressRouteTable?explanationCode?direction?destinationVpc?destination?customerGateway?component?cidrs?availabilityZoneIds?availabilityZones?attachedTo?addresses?address?aclRule?acl()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfirewallStatefulRule=field_mapjson__"FirewallStatefulRule"FirewallStatefulRule.of_jsoninletfirewallStatelessRule=field_mapjson__"FirewallStatelessRule"FirewallStatelessRule.of_jsoninletcomponentRegion=field_mapjson__"ComponentRegion"ComponentRegion.of_jsoninletcomponentAccount=field_mapjson__"ComponentAccount"ComponentAccount.of_jsoninlettransitGatewayAttachment=field_mapjson__"TransitGatewayAttachment"AnalysisComponent.of_jsoninlettransitGatewayRouteTableRoute=field_mapjson__"TransitGatewayRouteTableRoute"TransitGatewayRouteTableRoute.of_jsoninlettransitGatewayRouteTable=field_mapjson__"TransitGatewayRouteTable"AnalysisComponent.of_jsoninlettransitGateway=field_mapjson__"TransitGateway"AnalysisComponent.of_jsoninletvpnGateway=field_mapjson__"VpnGateway"AnalysisComponent.of_jsoninletvpnConnection=field_mapjson__"VpnConnection"AnalysisComponent.of_jsoninletvpcEndpoint=field_mapjson__"VpcEndpoint"AnalysisComponent.of_jsoninletvpc=field_mapjson__"Vpc"AnalysisComponent.of_jsoninletsubnetRouteTable=field_mapjson__"SubnetRouteTable"AnalysisComponent.of_jsoninletsubnet=field_mapjson__"Subnet"AnalysisComponent.of_jsoninletstate=field_mapjson__"State"String_.of_jsoninletsourceVpc=field_mapjson__"SourceVpc"AnalysisComponent.of_jsoninletsecurityGroups=field_mapjson__"SecurityGroups"AnalysisComponentList.of_jsoninletsecurityGroupRule=field_mapjson__"SecurityGroupRule"AnalysisSecurityGroupRule.of_jsoninletsecurityGroup=field_mapjson__"SecurityGroup"AnalysisComponent.of_jsoninletrouteTable=field_mapjson__"RouteTable"AnalysisComponent.of_jsoninletrouteTableRoute=field_mapjson__"RouteTableRoute"AnalysisRouteTableRoute.of_jsoninletprotocols=field_mapjson__"Protocols"StringList.of_jsoninletprefixList=field_mapjson__"PrefixList"AnalysisComponent.of_jsoninletportRanges=field_mapjson__"PortRanges"PortRangeList.of_jsoninletport=field_mapjson__"Port"Port.of_jsoninletvpcPeeringConnection=field_mapjson__"VpcPeeringConnection"AnalysisComponent.of_jsoninletpacketField=field_mapjson__"PacketField"String_.of_jsoninletnetworkInterface=field_mapjson__"NetworkInterface"AnalysisComponent.of_jsoninletnatGateway=field_mapjson__"NatGateway"AnalysisComponent.of_jsoninletmissingComponent=field_mapjson__"MissingComponent"String_.of_jsoninletelasticLoadBalancerListener=field_mapjson__"ElasticLoadBalancerListener"AnalysisComponent.of_jsoninletloadBalancerTargetPort=field_mapjson__"LoadBalancerTargetPort"Port.of_jsoninletloadBalancerTargetGroups=field_mapjson__"LoadBalancerTargetGroups"AnalysisComponentList.of_jsoninletloadBalancerTargetGroup=field_mapjson__"LoadBalancerTargetGroup"AnalysisComponent.of_jsoninletloadBalancerTarget=field_mapjson__"LoadBalancerTarget"AnalysisLoadBalancerTarget.of_jsoninletloadBalancerListenerPort=field_mapjson__"LoadBalancerListenerPort"Port.of_jsoninletclassicLoadBalancerListener=field_mapjson__"ClassicLoadBalancerListener"AnalysisLoadBalancerListener.of_jsoninletloadBalancerArn=field_mapjson__"LoadBalancerArn"ResourceArn.of_jsoninletinternetGateway=field_mapjson__"InternetGateway"AnalysisComponent.of_jsoninletingressRouteTable=field_mapjson__"IngressRouteTable"AnalysisComponent.of_jsoninletexplanationCode=field_mapjson__"ExplanationCode"String_.of_jsoninletdirection=field_mapjson__"Direction"String_.of_jsoninletdestinationVpc=field_mapjson__"DestinationVpc"AnalysisComponent.of_jsoninletdestination=field_mapjson__"Destination"AnalysisComponent.of_jsoninletcustomerGateway=field_mapjson__"CustomerGateway"AnalysisComponent.of_jsoninletcomponent=field_mapjson__"Component"AnalysisComponent.of_jsoninletcidrs=field_mapjson__"Cidrs"ValueStringList.of_jsoninletavailabilityZoneIds=field_mapjson__"AvailabilityZoneIds"ValueStringList.of_jsoninletavailabilityZones=field_mapjson__"AvailabilityZones"ValueStringList.of_jsoninletattachedTo=field_mapjson__"AttachedTo"AnalysisComponent.of_jsoninletaddresses=field_mapjson__"Addresses"IpAddressList.of_jsoninletaddress=field_mapjson__"Address"IpAddress.of_jsoninletaclRule=field_mapjson__"AclRule"AnalysisAclRule.of_jsoninletacl=field_mapjson__"Acl"AnalysisComponent.of_jsoninmake?firewallStatefulRule?firewallStatelessRule?componentRegion?componentAccount?transitGatewayAttachment?transitGatewayRouteTableRoute?transitGatewayRouteTable?transitGateway?vpnGateway?vpnConnection?vpcEndpoint?vpc?subnetRouteTable?subnet?state?sourceVpc?securityGroups?securityGroupRule?securityGroup?routeTable?routeTableRoute?protocols?prefixList?portRanges?port?vpcPeeringConnection?packetField?networkInterface?natGateway?missingComponent?elasticLoadBalancerListener?loadBalancerTargetPort?loadBalancerTargetGroups?loadBalancerTargetGroup?loadBalancerTarget?loadBalancerListenerPort?classicLoadBalancerListener?loadBalancerArn?internetGateway?ingressRouteTable?explanationCode?direction?destinationVpc?destination?customerGateway?component?cidrs?availabilityZoneIds?availabilityZones?attachedTo?addresses?address?aclRule?acl()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an explanation code for an unreachable path. For more information, see Reachability Analyzer explanation codes."]moduleIKEVersionsList=structtypenonrect=IKEVersionsListValue.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:IKEVersionsListValue.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:IKEVersionsListValue.of_xml)letof_jsonj=list_of_json~kind:"IKEVersionsList"~of_json:IKEVersionsListValue.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmodulePhase1DHGroupNumbersList=structtypenonrect=Phase1DHGroupNumbersListValue.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Phase1DHGroupNumbersListValue.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:Phase1DHGroupNumbersListValue.of_xml)letof_jsonj=list_of_json~kind:"Phase1DHGroupNumbersList"~of_json:Phase1DHGroupNumbersListValue.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmodulePhase1EncryptionAlgorithmsList=structtypenonrect=Phase1EncryptionAlgorithmsListValue.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Phase1EncryptionAlgorithmsListValue.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:Phase1EncryptionAlgorithmsListValue.of_xml)letof_jsonj=list_of_json~kind:"Phase1EncryptionAlgorithmsList"~of_json:Phase1EncryptionAlgorithmsListValue.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmodulePhase1IntegrityAlgorithmsList=structtypenonrect=Phase1IntegrityAlgorithmsListValue.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Phase1IntegrityAlgorithmsListValue.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:Phase1IntegrityAlgorithmsListValue.of_xml)letof_jsonj=list_of_json~kind:"Phase1IntegrityAlgorithmsList"~of_json:Phase1IntegrityAlgorithmsListValue.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmodulePhase2DHGroupNumbersList=structtypenonrect=Phase2DHGroupNumbersListValue.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Phase2DHGroupNumbersListValue.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:Phase2DHGroupNumbersListValue.of_xml)letof_jsonj=list_of_json~kind:"Phase2DHGroupNumbersList"~of_json:Phase2DHGroupNumbersListValue.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmodulePhase2EncryptionAlgorithmsList=structtypenonrect=Phase2EncryptionAlgorithmsListValue.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Phase2EncryptionAlgorithmsListValue.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:Phase2EncryptionAlgorithmsListValue.of_xml)letof_jsonj=list_of_json~kind:"Phase2EncryptionAlgorithmsList"~of_json:Phase2EncryptionAlgorithmsListValue.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmodulePhase2IntegrityAlgorithmsList=structtypenonrect=Phase2IntegrityAlgorithmsListValue.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Phase2IntegrityAlgorithmsListValue.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:Phase2IntegrityAlgorithmsListValue.of_xml)letof_jsonj=list_of_json~kind:"Phase2IntegrityAlgorithmsList"~of_json:Phase2IntegrityAlgorithmsListValue.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleVpnTunnelLogOptions=structtypenonrect={cloudWatchLogOptions:CloudWatchLogOptions.toption[@ocaml.doc"Options for sending VPN tunnel logs to CloudWatch."]}letmake?cloudWatchLogOptions=fun()->{cloudWatchLogOptions}letto_valuex=structure_to_value[("cloudWatchLogOptions",(Option.mapx.cloudWatchLogOptions~f:CloudWatchLogOptions.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcloudWatchLogOptions=(Option.map~f:CloudWatchLogOptions.of_xml)(Xml.childxml_arg0"cloudWatchLogOptions")inmake?cloudWatchLogOptions()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcloudWatchLogOptions=field_mapjson__"CloudWatchLogOptions"CloudWatchLogOptions.of_jsoninmake?cloudWatchLogOptions()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Options for logging VPN tunnel activity."]modulePreSharedKey=structtypenonrect=stringletcontext_="preSharedKey"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"preSharedKey"jletto_json=simple_to_jsonto_valueendmoduleVpcCidrBlockStateCode=structtypenonrect=|Associating|Associated|Disassociating|Disassociated|Failing|Failed|Non_static_idofstringletmakei=iletto_string=function|Associating->"associating"|Associated->"associated"|Disassociating->"disassociating"|Disassociated->"disassociated"|Failing->"failing"|Failed->"failed"|Non_static_ids->sletof_string=function|"associating"->Associating|"associated"->Associated|"disassociating"->Disassociating|"disassociated"->Disassociated|"failing"->Failing|"failed"->Failed|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 VpcCidrBlockStateCode"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"VpcCidrBlockStateCode"j)letto_json=simple_to_jsonto_valueendmoduleVpcEncryptionControlExclusionState=structtypenonrect=|Enabling|Enabled|Disabling|Disabled|Non_static_idofstringletmakei=iletto_string=function|Enabling->"enabling"|Enabled->"enabled"|Disabling->"disabling"|Disabled->"disabled"|Non_static_ids->sletof_string=function|"enabling"->Enabling|"enabled"->Enabled|"disabling"->Disabling|"disabled"->Disabled|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 VpcEncryptionControlExclusionState"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"VpcEncryptionControlExclusionState"j)letto_json=simple_to_jsonto_valueendmoduleVolumeStatusName=structtypenonrect=|Io_enabled|Io_performance|Initialization_state|Non_static_idofstringletmakei=iletto_string=function|Io_enabled->"io-enabled"|Io_performance->"io-performance"|Initialization_state->"initialization-state"|Non_static_ids->sletof_string=function|"io-enabled"->Io_enabled|"io-performance"->Io_performance|"initialization-state"->Initialization_state|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 VolumeStatusName"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"VolumeStatusName"j)letto_json=simple_to_jsonto_valueendmoduleVerifiedAccessLogDeliveryStatusCode=structtypenonrect=|Success|Failed|Non_static_idofstringletmakei=iletto_string=function|Success->"success"|Failed->"failed"|Non_static_ids->sletof_string=function|"success"->Success|"failed"->Failed|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 VerifiedAccessLogDeliveryStatusCode"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"VerifiedAccessLogDeliveryStatusCode"j)letto_json=simple_to_jsonto_valueendmoduleVerifiedAccessEndpointPortNumber=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:65535)>>=(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 VerifiedAccessEndpointPortNumber"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleBgpStatus=structtypenonrect=|Up|Down|Non_static_idofstringletmakei=iletto_string=function|Up->"up"|Down->"down"|Non_static_ids->sletof_string=function|"up"->Up|"down"->Down|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 BgpStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"BgpStatus"j)letto_json=simple_to_jsonto_valueendmoduleSubnetCidrBlockStateCode=structtypenonrect=|Associating|Associated|Disassociating|Disassociated|Failing|Failed|Non_static_idofstringletmakei=iletto_string=function|Associating->"associating"|Associated->"associated"|Disassociating->"disassociating"|Disassociated->"disassociated"|Failing->"failing"|Failed->"failed"|Non_static_ids->sletof_string=function|"associating"->Associating|"associated"->Associated|"disassociating"->Disassociating|"disassociated"->Disassociated|"failing"->Failing|"failed"->Failed|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 SubnetCidrBlockStateCode"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"SubnetCidrBlockStateCode"j)letto_json=simple_to_jsonto_valueendmoduleUserIdGroupPair=structtypenonrect={description:String_.toption[@ocaml.doc"A description for the security group rule that references this user ID group pair. Constraints: Up to 255 characters in length. Allowed characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,\\@\\[\\]+=;\\{\\}!$*"];userId:String_.toption[@ocaml.doc"The ID of an Amazon Web Services account. For a referenced security group in another VPC, the account ID of the referenced security group is returned in the response. If the referenced security group is deleted, this value is not returned."];groupName:String_.toption[@ocaml.doc"\\[Default VPC\\] The name of the security group. For a security group in a nondefault VPC, use the security group ID. For a referenced security group in another VPC, this value is not returned if the referenced security group is deleted."];groupId:String_.toption[@ocaml.doc"The ID of the security group."];vpcId:String_.toption[@ocaml.doc"The ID of the VPC for the referenced security group, if applicable."];vpcPeeringConnectionId:String_.toption[@ocaml.doc"The ID of the VPC peering connection, if applicable."];peeringStatus:String_.toption[@ocaml.doc"The status of a VPC peering connection, if applicable."]}letmake?description=fun?userId->fun?groupName->fun?groupId->fun?vpcId->fun?vpcPeeringConnectionId->fun?peeringStatus->fun()->{description;userId;groupName;groupId;vpcId;vpcPeeringConnectionId;peeringStatus}letto_valuex=structure_to_value[("description",(Option.mapx.description~f:String_.to_value));("userId",(Option.mapx.userId~f:String_.to_value));("groupName",(Option.mapx.groupName~f:String_.to_value));("groupId",(Option.mapx.groupId~f:String_.to_value));("vpcId",(Option.mapx.vpcId~f:String_.to_value));("vpcPeeringConnectionId",(Option.mapx.vpcPeeringConnectionId~f:String_.to_value));("peeringStatus",(Option.mapx.peeringStatus~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpeeringStatus=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"peeringStatus")inletvpcPeeringConnectionId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"vpcPeeringConnectionId")inletvpcId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"vpcId")inletgroupId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"groupId")inletgroupName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"groupName")inletuserId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"userId")inletdescription=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"description")inmake?peeringStatus?vpcPeeringConnectionId?vpcId?groupId?groupName?userId?description()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpeeringStatus=field_mapjson__"PeeringStatus"String_.of_jsoninletvpcPeeringConnectionId=field_mapjson__"VpcPeeringConnectionId"String_.of_jsoninletvpcId=field_mapjson__"VpcId"String_.of_jsoninletgroupId=field_mapjson__"GroupId"String_.of_jsoninletgroupName=field_mapjson__"GroupName"String_.of_jsoninletuserId=field_mapjson__"UserId"String_.of_jsoninletdescription=field_mapjson__"Description"String_.of_jsoninmake?peeringStatus?vpcPeeringConnectionId?vpcId?groupId?groupName?userId?description()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a security group and Amazon Web Services account ID pair."]moduleBlockDeviceMappingList=structtypenonrect=BlockDeviceMapping.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:BlockDeviceMapping.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:BlockDeviceMapping.of_xml)letof_jsonj=list_of_json~kind:"BlockDeviceMappingList"~of_json:BlockDeviceMapping.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleIamInstanceProfileSpecification=structtypenonrect={arn:String_.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the instance profile."];name:String_.toption[@ocaml.doc"The name of the instance profile."]}letmake?arn=fun?name->fun()->{arn;name}letto_valuex=structure_to_value[("arn",(Option.mapx.arn~f:String_.to_value));("name",(Option.mapx.name~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letname=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"name")inletarn=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"arn")inmake?name?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letname=field_mapjson__"Name"String_.of_jsoninletarn=field_mapjson__"Arn"String_.of_jsoninmake?name?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an IAM instance profile."]moduleInstanceNetworkInterfaceSpecificationList=structtypenonrect=InstanceNetworkInterfaceSpecification.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:InstanceNetworkInterfaceSpecification.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:InstanceNetworkInterfaceSpecification.of_xml)letof_jsonj=list_of_json~kind:"InstanceNetworkInterfaceSpecificationList"~of_json:InstanceNetworkInterfaceSpecification.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleKeyPairName=structtypenonrect=stringletcontext_="KeyPairName"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"KeyPairName"jletto_json=simple_to_jsonto_valueendmoduleSensitiveUserData=structtypenonrect=stringletcontext_="SensitiveUserData"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"SensitiveUserData"jletto_json=simple_to_jsonto_valueendmoduleSpotFleetMonitoring=structtypenonrect={enabled:Boolean.toption[@ocaml.doc"Enables monitoring for the instance. Default: false"]}letmake?enabled=fun()->{enabled}letto_valuex=structure_to_value[("enabled",(Option.mapx.enabled~f:Boolean.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letenabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"enabled")inmake?enabled()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letenabled=field_mapjson__"Enabled"Boolean.of_jsoninmake?enabled()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes whether monitoring is enabled."]moduleSpotFleetTagSpecificationList=structtypenonrect=SpotFleetTagSpecification.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:SpotFleetTagSpecification.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:SpotFleetTagSpecification.of_xml)letof_jsonj=list_of_json~kind:"SpotFleetTagSpecificationList"~of_json:SpotFleetTagSpecification.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleSpotPlacement=structtypenonrect={availabilityZone:String_.toption[@ocaml.doc"The Availability Zone. For example, us-east-2a. \\[Spot Fleet only\\] To specify multiple Availability Zones, separate them using commas; for example, \"us-east-2a, us-east-2b\". Either AvailabilityZone or AvailabilityZoneId must be specified in the request, but not both."];groupName:PlacementGroupName.toption[@ocaml.doc"The name of the placement group."];tenancy:Tenancy.toption[@ocaml.doc"The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for Spot Instances."];availabilityZoneId:String_.toption[@ocaml.doc"The ID of the Availability Zone. For example, use2-az1. \\[Spot Fleet only\\] To specify multiple Availability Zones, separate them using commas; for example, \"use2-az1, use2-bz1\". Either AvailabilityZone or AvailabilityZoneId must be specified in the request, but not both."]}letmake?availabilityZone=fun?groupName->fun?tenancy->fun?availabilityZoneId->fun()->{availabilityZone;groupName;tenancy;availabilityZoneId}letto_valuex=structure_to_value[("availabilityZone",(Option.mapx.availabilityZone~f:String_.to_value));("groupName",(Option.mapx.groupName~f:PlacementGroupName.to_value));("tenancy",(Option.mapx.tenancy~f:Tenancy.to_value));("availabilityZoneId",(Option.mapx.availabilityZoneId~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letavailabilityZoneId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"availabilityZoneId")inlettenancy=(Option.map~f:Tenancy.of_xml)(Xml.childxml_arg0"tenancy")inletgroupName=(Option.map~f:PlacementGroupName.of_xml)(Xml.childxml_arg0"groupName")inletavailabilityZone=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"availabilityZone")inmake?availabilityZoneId?tenancy?groupName?availabilityZone()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letavailabilityZoneId=field_mapjson__"AvailabilityZoneId"String_.of_jsoninlettenancy=field_mapjson__"Tenancy"Tenancy.of_jsoninletgroupName=field_mapjson__"GroupName"PlacementGroupName.of_jsoninletavailabilityZone=field_mapjson__"AvailabilityZone"String_.of_jsoninmake?availabilityZoneId?tenancy?groupName?availabilityZone()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes Spot Instance placement."]moduleFleetLaunchTemplateSpecification=structtypenonrect={launchTemplateId:String_.toption[@ocaml.doc"The ID of the launch template. You must specify the LaunchTemplateId or the LaunchTemplateName, but not both."];launchTemplateName:LaunchTemplateName.toption[@ocaml.doc"The name of the launch template. You must specify the LaunchTemplateName or the LaunchTemplateId, but not both."];version:String_.toption[@ocaml.doc"The launch template version number, $Latest, or $Default. You must specify a value, otherwise the request fails. If the value is $Latest, Amazon EC2 uses the latest version of the launch template. If the value is $Default, Amazon EC2 uses the default version of the launch template."]}letmake?launchTemplateId=fun?launchTemplateName->fun?version->fun()->{launchTemplateId;launchTemplateName;version}letto_valuex=structure_to_value[("launchTemplateId",(Option.mapx.launchTemplateId~f:String_.to_value));("launchTemplateName",(Option.mapx.launchTemplateName~f:LaunchTemplateName.to_value));("version",(Option.mapx.version~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letversion=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"version")inletlaunchTemplateName=(Option.map~f:LaunchTemplateName.of_xml)(Xml.childxml_arg0"launchTemplateName")inletlaunchTemplateId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"launchTemplateId")inmake?version?launchTemplateName?launchTemplateId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letversion=field_mapjson__"Version"String_.of_jsoninletlaunchTemplateName=field_mapjson__"LaunchTemplateName"LaunchTemplateName.of_jsoninletlaunchTemplateId=field_mapjson__"LaunchTemplateId"String_.of_jsoninmake?version?launchTemplateName?launchTemplateId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The Amazon EC2 launch template that can be used by a Spot Fleet to configure Amazon EC2 instances. You must specify either the ID or name of the launch template in the request, but not both. For information about launch templates, see Launch an instance from a launch template in the Amazon EC2 User Guide."]moduleLaunchTemplateOverridesList=structtypenonrect=LaunchTemplateOverrides.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:LaunchTemplateOverrides.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:LaunchTemplateOverrides.of_xml)letof_jsonj=list_of_json~kind:"LaunchTemplateOverridesList"~of_json:LaunchTemplateOverrides.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleClassicLoadBalancers=structtypenonrect=ClassicLoadBalancer.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:5)>>=(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:ClassicLoadBalancer.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:ClassicLoadBalancer.of_xml)letof_jsonj=list_of_json~kind:"ClassicLoadBalancers"~of_json:ClassicLoadBalancer.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleTargetGroups=structtypenonrect=TargetGroup.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:5)>>=(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:TargetGroup.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:TargetGroup.of_xml)letof_jsonj=list_of_json~kind:"TargetGroups"~of_json:TargetGroup.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleReplacementStrategy=structtypenonrect=|Launch|Launch_before_terminate|Non_static_idofstringletmakei=iletto_string=function|Launch->"launch"|Launch_before_terminate->"launch-before-terminate"|Non_static_ids->sletof_string=function|"launch"->Launch|"launch-before-terminate"->Launch_before_terminate|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 ReplacementStrategy"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ReplacementStrategy"j)letto_json=simple_to_jsonto_valueendmoduleIpRange=structtypenonrect={description:String_.toption[@ocaml.doc"A description for the security group rule that references this IPv4 address range. Constraints: Up to 255 characters in length. Allowed characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,\\@\\[\\]+=&;\\{\\}!$*"];cidrIp:String_.toption[@ocaml.doc"The IPv4 address range. You can either specify a CIDR block or a source security group, not both. To specify a single IPv4 address, use the /32 prefix length. Amazon Web Services canonicalizes IPv4 and IPv6 CIDRs. For example, if you specify 100.68.0.18/18 for the CIDR block, Amazon Web Services canonicalizes the CIDR block to 100.68.0.0/18. Any subsequent DescribeSecurityGroups and DescribeSecurityGroupRules calls will return the canonicalized form of the CIDR block. Additionally, if you attempt to add another rule with the non-canonical form of the CIDR (such as 100.68.0.18/18) and there is already a rule for the canonicalized form of the CIDR block (such as 100.68.0.0/18), the API throws an duplicate rule error."]}letmake?description=fun?cidrIp->fun()->{description;cidrIp}letto_valuex=structure_to_value[("description",(Option.mapx.description~f:String_.to_value));("cidrIp",(Option.mapx.cidrIp~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcidrIp=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"cidrIp")inletdescription=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"description")inmake?cidrIp?description()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcidrIp=field_mapjson__"CidrIp"String_.of_jsoninletdescription=field_mapjson__"Description"String_.of_jsoninmake?cidrIp?description()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an IPv4 address range."]moduleIpv6Range=structtypenonrect={description:String_.toption[@ocaml.doc"A description for the security group rule that references this IPv6 address range. Constraints: Up to 255 characters in length. Allowed characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,\\@\\[\\]+=&;\\{\\}!$*"];cidrIpv6:String_.toption[@ocaml.doc"The IPv6 address range. You can either specify a CIDR block or a source security group, not both. To specify a single IPv6 address, use the /128 prefix length. Amazon Web Services canonicalizes IPv4 and IPv6 CIDRs. For example, if you specify 100.68.0.18/18 for the CIDR block, Amazon Web Services canonicalizes the CIDR block to 100.68.0.0/18. Any subsequent DescribeSecurityGroups and DescribeSecurityGroupRules calls will return the canonicalized form of the CIDR block. Additionally, if you attempt to add another rule with the non-canonical form of the CIDR (such as 100.68.0.18/18) and there is already a rule for the canonicalized form of the CIDR block (such as 100.68.0.0/18), the API throws an duplicate rule error."]}letmake?description=fun?cidrIpv6->fun()->{description;cidrIpv6}letto_valuex=structure_to_value[("description",(Option.mapx.description~f:String_.to_value));("cidrIpv6",(Option.mapx.cidrIpv6~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcidrIpv6=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"cidrIpv6")inletdescription=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"description")inmake?cidrIpv6?description()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcidrIpv6=field_mapjson__"CidrIpv6"String_.of_jsoninletdescription=field_mapjson__"Description"String_.of_jsoninmake?cidrIpv6?description()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an IPv6 address range."]modulePrefixListId=structtypenonrect={description:String_.toption[@ocaml.doc"A description for the security group rule that references this prefix list ID. Constraints: Up to 255 characters in length. Allowed characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,\\@\\[\\]+=;\\{\\}!$*"];prefixListId:String_.toption[@ocaml.doc"The ID of the prefix."]}letmake?description=fun?prefixListId->fun()->{description;prefixListId}letto_valuex=structure_to_value[("description",(Option.mapx.description~f:String_.to_value));("prefixListId",(Option.mapx.prefixListId~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letprefixListId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"prefixListId")inletdescription=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"description")inmake?prefixListId?description()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letprefixListId=field_mapjson__"PrefixListId"String_.of_jsoninletdescription=field_mapjson__"Description"String_.of_jsoninmake?prefixListId?description()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a prefix list ID."]moduleRouteTableAssociationStateCode=structtypenonrect=|Associating|Associated|Disassociating|Disassociated|Failed|Non_static_idofstringletmakei=iletto_string=function|Associating->"associating"|Associated->"associated"|Disassociating->"disassociating"|Disassociated->"disassociated"|Failed->"failed"|Non_static_ids->sletof_string=function|"associating"->Associating|"associated"->Associated|"disassociating"->Disassociating|"disassociated"->Disassociated|"failed"->Failed|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 RouteTableAssociationStateCode"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"RouteTableAssociationStateCode"j)letto_json=simple_to_jsonto_valueendmoduleScope=structtypenonrect=|Availability_Zone|Region|Non_static_idofstringletmakei=iletto_string=function|Availability_Zone->"Availability Zone"|Region->"Region"|Non_static_ids->sletof_string=function|"Availability Zone"->Availability_Zone|"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 scope"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"scope"j)letto_json=simple_to_jsonto_valueendmoduleLaunchTemplateEbsBlockDevice=structtypenonrect={encrypted:Boolean.toption[@ocaml.doc"Indicates whether the EBS volume is encrypted."];deleteOnTermination:Boolean.toption[@ocaml.doc"Indicates whether the EBS volume is deleted on instance termination."];iops:Integer.toption[@ocaml.doc"The number of I/O operations per second (IOPS) that the volume supports."];kmsKeyId:KmsKeyId.toption[@ocaml.doc"Identifier (key ID, key alias, key ARN, or alias ARN) of the customer managed KMS key to use for EBS encryption."];snapshotId:SnapshotId.toption[@ocaml.doc"The ID of the snapshot."];volumeSize:Integer.toption[@ocaml.doc"The size of the volume, in GiB."];volumeType:VolumeType.toption[@ocaml.doc"The volume type."];throughput:Integer.toption[@ocaml.doc"The throughput that the volume supports, in MiB/s."];volumeInitializationRate:Integer.toption[@ocaml.doc"The Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate) specified for the volume, in MiB/s. If no volume initialization rate was specified, the value is null."];ebsCardIndex:Integer.toption[@ocaml.doc"The index of the EBS card. Some instance types support multiple EBS cards. The default EBS card index is 0."]}letmake?encrypted=fun?deleteOnTermination->fun?iops->fun?kmsKeyId->fun?snapshotId->fun?volumeSize->fun?volumeType->fun?throughput->fun?volumeInitializationRate->fun?ebsCardIndex->fun()->{encrypted;deleteOnTermination;iops;kmsKeyId;snapshotId;volumeSize;volumeType;throughput;volumeInitializationRate;ebsCardIndex}letto_valuex=structure_to_value[("encrypted",(Option.mapx.encrypted~f:Boolean.to_value));("deleteOnTermination",(Option.mapx.deleteOnTermination~f:Boolean.to_value));("iops",(Option.mapx.iops~f:Integer.to_value));("kmsKeyId",(Option.mapx.kmsKeyId~f:KmsKeyId.to_value));("snapshotId",(Option.mapx.snapshotId~f:SnapshotId.to_value));("volumeSize",(Option.mapx.volumeSize~f:Integer.to_value));("volumeType",(Option.mapx.volumeType~f:VolumeType.to_value));("throughput",(Option.mapx.throughput~f:Integer.to_value));("volumeInitializationRate",(Option.mapx.volumeInitializationRate~f:Integer.to_value));("ebsCardIndex",(Option.mapx.ebsCardIndex~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letebsCardIndex=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"ebsCardIndex")inletvolumeInitializationRate=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"volumeInitializationRate")inletthroughput=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"throughput")inletvolumeType=(Option.map~f:VolumeType.of_xml)(Xml.childxml_arg0"volumeType")inletvolumeSize=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"volumeSize")inletsnapshotId=(Option.map~f:SnapshotId.of_xml)(Xml.childxml_arg0"snapshotId")inletkmsKeyId=(Option.map~f:KmsKeyId.of_xml)(Xml.childxml_arg0"kmsKeyId")inletiops=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"iops")inletdeleteOnTermination=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"deleteOnTermination")inletencrypted=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"encrypted")inmake?ebsCardIndex?volumeInitializationRate?throughput?volumeType?volumeSize?snapshotId?kmsKeyId?iops?deleteOnTermination?encrypted()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letebsCardIndex=field_mapjson__"EbsCardIndex"Integer.of_jsoninletvolumeInitializationRate=field_mapjson__"VolumeInitializationRate"Integer.of_jsoninletthroughput=field_mapjson__"Throughput"Integer.of_jsoninletvolumeType=field_mapjson__"VolumeType"VolumeType.of_jsoninletvolumeSize=field_mapjson__"VolumeSize"Integer.of_jsoninletsnapshotId=field_mapjson__"SnapshotId"SnapshotId.of_jsoninletkmsKeyId=field_mapjson__"KmsKeyId"KmsKeyId.of_jsoninletiops=field_mapjson__"Iops"Integer.of_jsoninletdeleteOnTermination=field_mapjson__"DeleteOnTermination"Boolean.of_jsoninletencrypted=field_mapjson__"Encrypted"Boolean.of_jsoninmake?ebsCardIndex?volumeInitializationRate?throughput?volumeType?volumeSize?snapshotId?kmsKeyId?iops?deleteOnTermination?encrypted()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a block device for an EBS volume."]moduleInstanceInterruptionBehavior=structtypenonrect=|Hibernate|Stop|Terminate|Non_static_idofstringletmakei=iletto_string=function|Hibernate->"hibernate"|Stop->"stop"|Terminate->"terminate"|Non_static_ids->sletof_string=function|"hibernate"->Hibernate|"stop"->Stop|"terminate"->Terminate|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 InstanceInterruptionBehavior"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"InstanceInterruptionBehavior"j)letto_json=simple_to_jsonto_valueendmoduleSpotInstanceType=structtypenonrect=|One_time|Persistent|Non_static_idofstringletmakei=iletto_string=function|One_time->"one-time"|Persistent->"persistent"|Non_static_ids->sletof_string=function|"one-time"->One_time|"persistent"->Persistent|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 SpotInstanceType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"SpotInstanceType"j)letto_json=simple_to_jsonto_valueendmoduleConnectionTrackingSpecification=structtypenonrect={tcpEstablishedTimeout:Integer.toption[@ocaml.doc"Timeout (in seconds) for idle TCP connections in an established state. Min: 60 seconds. Max: 432000 seconds (5 days). Default: 432000 seconds. Recommended: Less than 432000 seconds."];udpTimeout:Integer.toption[@ocaml.doc"Timeout (in seconds) for idle UDP flows that have seen traffic only in a single direction or a single request-response transaction. Min: 30 seconds. Max: 60 seconds. Default: 30 seconds."];udpStreamTimeout:Integer.toption[@ocaml.doc"Timeout (in seconds) for idle UDP flows classified as streams which have seen more than one request-response transaction. Min: 60 seconds. Max: 180 seconds (3 minutes). Default: 180 seconds."]}letmake?tcpEstablishedTimeout=fun?udpTimeout->fun?udpStreamTimeout->fun()->{tcpEstablishedTimeout;udpTimeout;udpStreamTimeout}letto_valuex=structure_to_value[("tcpEstablishedTimeout",(Option.mapx.tcpEstablishedTimeout~f:Integer.to_value));("udpTimeout",(Option.mapx.udpTimeout~f:Integer.to_value));("udpStreamTimeout",(Option.mapx.udpStreamTimeout~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letudpStreamTimeout=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"udpStreamTimeout")inletudpTimeout=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"udpTimeout")inlettcpEstablishedTimeout=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"tcpEstablishedTimeout")inmake?udpStreamTimeout?udpTimeout?tcpEstablishedTimeout()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letudpStreamTimeout=field_mapjson__"UdpStreamTimeout"Integer.of_jsoninletudpTimeout=field_mapjson__"UdpTimeout"Integer.of_jsoninlettcpEstablishedTimeout=field_mapjson__"TcpEstablishedTimeout"Integer.of_jsoninmake?udpStreamTimeout?udpTimeout?tcpEstablishedTimeout()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A security group connection tracking specification that enables you to set the idle timeout for connection tracking on an Elastic network interface. For more information, see Connection tracking timeouts in the Amazon EC2 User Guide."]moduleGroupIdStringList=structtypenonrect=SecurityGroupId.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:SecurityGroupId.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:SecurityGroupId.of_xml)letof_jsonj=list_of_json~kind:"GroupIdStringList"~of_json:SecurityGroupId.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleIpv4PrefixListResponse=structtypenonrect=Ipv4PrefixSpecificationResponse.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Ipv4PrefixSpecificationResponse.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:Ipv4PrefixSpecificationResponse.of_xml)letof_jsonj=list_of_json~kind:"Ipv4PrefixListResponse"~of_json:Ipv4PrefixSpecificationResponse.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleIpv6PrefixListResponse=structtypenonrect=Ipv6PrefixSpecificationResponse.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Ipv6PrefixSpecificationResponse.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:Ipv6PrefixSpecificationResponse.of_xml)letof_jsonj=list_of_json~kind:"Ipv6PrefixListResponse"~of_json:Ipv6PrefixSpecificationResponse.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleLaunchTemplateEnaSrdSpecification=structtypenonrect={enaSrdEnabled:Boolean.toption[@ocaml.doc"Indicates whether ENA Express is enabled for the network interface."];enaSrdUdpSpecification:LaunchTemplateEnaSrdUdpSpecification.toption[@ocaml.doc"Configures ENA Express for UDP network traffic."]}letmake?enaSrdEnabled=fun?enaSrdUdpSpecification->fun()->{enaSrdEnabled;enaSrdUdpSpecification}letto_valuex=structure_to_value[("enaSrdEnabled",(Option.mapx.enaSrdEnabled~f:Boolean.to_value));("enaSrdUdpSpecification",(Option.mapx.enaSrdUdpSpecification~f:LaunchTemplateEnaSrdUdpSpecification.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letenaSrdUdpSpecification=(Option.map~f:LaunchTemplateEnaSrdUdpSpecification.of_xml)(Xml.childxml_arg0"enaSrdUdpSpecification")inletenaSrdEnabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"enaSrdEnabled")inmake?enaSrdUdpSpecification?enaSrdEnabled()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letenaSrdUdpSpecification=field_mapjson__"EnaSrdUdpSpecification"LaunchTemplateEnaSrdUdpSpecification.of_jsoninletenaSrdEnabled=field_mapjson__"EnaSrdEnabled"Boolean.of_jsoninmake?enaSrdUdpSpecification?enaSrdEnabled()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) technology to increase the maximum bandwidth used per stream and minimize tail latency of network traffic between EC2 instances. With ENA Express, you can communicate between two EC2 instances in the same subnet within the same account, or in different accounts. Both sending and receiving instances must have ENA Express enabled. To improve the reliability of network packet delivery, ENA Express reorders network packets on the receiving end by default. However, some UDP-based applications are designed to handle network packets that are out of order to reduce the overhead for packet delivery at the network layer. When ENA Express is enabled, you can specify whether UDP network traffic uses it."]moduleSecondaryInterfacePrivateIpAddressSpecificationList=structtypenonrect=SecondaryInterfacePrivateIpAddressSpecification.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:SecondaryInterfacePrivateIpAddressSpecification.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:SecondaryInterfacePrivateIpAddressSpecification.of_xml)letof_jsonj=list_of_json~kind:"SecondaryInterfacePrivateIpAddressSpecificationList"~of_json:SecondaryInterfacePrivateIpAddressSpecification.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleCapacityReservationPreference=structtypenonrect=|Capacity_reservations_only|Open|None|Non_static_idofstringletmakei=iletto_string=function|Capacity_reservations_only->"capacity-reservations-only"|Open->"open"|None->"none"|Non_static_ids->sletof_string=function|"capacity-reservations-only"->Capacity_reservations_only|"open"->Open|"none"->None|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 CapacityReservationPreference"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"CapacityReservationPreference"j)letto_json=simple_to_jsonto_valueendmoduleCapacityReservationTargetResponse=structtypenonrect={capacityReservationId:String_.toption[@ocaml.doc"The ID of the targeted Capacity Reservation."];capacityReservationResourceGroupArn:String_.toption[@ocaml.doc"The ARN of the targeted Capacity Reservation group."]}letmake?capacityReservationId=fun?capacityReservationResourceGroupArn->fun()->{capacityReservationId;capacityReservationResourceGroupArn}letto_valuex=structure_to_value[("capacityReservationId",(Option.mapx.capacityReservationId~f:String_.to_value));("capacityReservationResourceGroupArn",(Option.mapx.capacityReservationResourceGroupArn~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcapacityReservationResourceGroupArn=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"capacityReservationResourceGroupArn")inletcapacityReservationId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"capacityReservationId")inmake?capacityReservationResourceGroupArn?capacityReservationId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcapacityReservationResourceGroupArn=field_mapjson__"CapacityReservationResourceGroupArn"String_.of_jsoninletcapacityReservationId=field_mapjson__"CapacityReservationId"String_.of_jsoninmake?capacityReservationResourceGroupArn?capacityReservationId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a target Capacity Reservation or Capacity Reservation group."]moduleAmdSevSnpSpecification=structtypenonrect=|Enabled|Disabled|Non_static_idofstringletmakei=iletto_string=function|Enabled->"enabled"|Disabled->"disabled"|Non_static_ids->sletof_string=function|"enabled"->Enabled|"disabled"->Disabled|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 AmdSevSnpSpecification"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"AmdSevSnpSpecification"j)letto_json=simple_to_jsonto_valueendmoduleNestedVirtualizationSpecification=structtypenonrect=|Enabled|Disabled|Non_static_idofstringletmakei=iletto_string=function|Enabled->"enabled"|Disabled->"disabled"|Non_static_ids->sletof_string=function|"enabled"->Enabled|"disabled"->Disabled|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 NestedVirtualizationSpecification"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"NestedVirtualizationSpecification"j)letto_json=simple_to_jsonto_valueendmoduleElasticGpuAssociation=structtypenonrect={elasticGpuId:ElasticGpuId.toption[@ocaml.doc"The ID of the Elastic Graphics accelerator."];elasticGpuAssociationId:String_.toption[@ocaml.doc"The ID of the association."];elasticGpuAssociationState:String_.toption[@ocaml.doc"The state of the association between the instance and the Elastic Graphics accelerator."];elasticGpuAssociationTime:String_.toption[@ocaml.doc"The time the Elastic Graphics accelerator was associated with the instance."]}letmake?elasticGpuId=fun?elasticGpuAssociationId->fun?elasticGpuAssociationState->fun?elasticGpuAssociationTime->fun()->{elasticGpuId;elasticGpuAssociationId;elasticGpuAssociationState;elasticGpuAssociationTime}letto_valuex=structure_to_value[("elasticGpuId",(Option.mapx.elasticGpuId~f:ElasticGpuId.to_value));("elasticGpuAssociationId",(Option.mapx.elasticGpuAssociationId~f:String_.to_value));("elasticGpuAssociationState",(Option.mapx.elasticGpuAssociationState~f:String_.to_value));("elasticGpuAssociationTime",(Option.mapx.elasticGpuAssociationTime~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letelasticGpuAssociationTime=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"elasticGpuAssociationTime")inletelasticGpuAssociationState=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"elasticGpuAssociationState")inletelasticGpuAssociationId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"elasticGpuAssociationId")inletelasticGpuId=(Option.map~f:ElasticGpuId.of_xml)(Xml.childxml_arg0"elasticGpuId")inmake?elasticGpuAssociationTime?elasticGpuAssociationState?elasticGpuAssociationId?elasticGpuId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letelasticGpuAssociationTime=field_mapjson__"ElasticGpuAssociationTime"String_.of_jsoninletelasticGpuAssociationState=field_mapjson__"ElasticGpuAssociationState"String_.of_jsoninletelasticGpuAssociationId=field_mapjson__"ElasticGpuAssociationId"String_.of_jsoninletelasticGpuId=field_mapjson__"ElasticGpuId"ElasticGpuId.of_jsoninmake?elasticGpuAssociationTime?elasticGpuAssociationState?elasticGpuAssociationId?elasticGpuId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Amazon Elastic Graphics reached end of life on January 8, 2024. Describes the association between an instance and an Elastic Graphics accelerator."]moduleElasticInferenceAcceleratorAssociation=structtypenonrect={elasticInferenceAcceleratorArn:String_.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the elastic inference accelerator."];elasticInferenceAcceleratorAssociationId:String_.toption[@ocaml.doc"The ID of the association."];elasticInferenceAcceleratorAssociationState:String_.toption[@ocaml.doc"The state of the elastic inference accelerator."];elasticInferenceAcceleratorAssociationTime:DateTime.toption[@ocaml.doc"The time at which the elastic inference accelerator is associated with an instance."]}letmake?elasticInferenceAcceleratorArn=fun?elasticInferenceAcceleratorAssociationId->fun?elasticInferenceAcceleratorAssociationState->fun?elasticInferenceAcceleratorAssociationTime->fun()->{elasticInferenceAcceleratorArn;elasticInferenceAcceleratorAssociationId;elasticInferenceAcceleratorAssociationState;elasticInferenceAcceleratorAssociationTime}letto_valuex=structure_to_value[("elasticInferenceAcceleratorArn",(Option.mapx.elasticInferenceAcceleratorArn~f:String_.to_value));("elasticInferenceAcceleratorAssociationId",(Option.mapx.elasticInferenceAcceleratorAssociationId~f:String_.to_value));("elasticInferenceAcceleratorAssociationState",(Option.mapx.elasticInferenceAcceleratorAssociationState~f:String_.to_value));("elasticInferenceAcceleratorAssociationTime",(Option.mapx.elasticInferenceAcceleratorAssociationTime~f:DateTime.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letelasticInferenceAcceleratorAssociationTime=(Option.map~f:DateTime.of_xml)(Xml.childxml_arg0"elasticInferenceAcceleratorAssociationTime")inletelasticInferenceAcceleratorAssociationState=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"elasticInferenceAcceleratorAssociationState")inletelasticInferenceAcceleratorAssociationId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"elasticInferenceAcceleratorAssociationId")inletelasticInferenceAcceleratorArn=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"elasticInferenceAcceleratorArn")inmake?elasticInferenceAcceleratorAssociationTime?elasticInferenceAcceleratorAssociationState?elasticInferenceAcceleratorAssociationId?elasticInferenceAcceleratorArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letelasticInferenceAcceleratorAssociationTime=field_mapjson__"ElasticInferenceAcceleratorAssociationTime"DateTime.of_jsoninletelasticInferenceAcceleratorAssociationState=field_mapjson__"ElasticInferenceAcceleratorAssociationState"String_.of_jsoninletelasticInferenceAcceleratorAssociationId=field_mapjson__"ElasticInferenceAcceleratorAssociationId"String_.of_jsoninletelasticInferenceAcceleratorArn=field_mapjson__"ElasticInferenceAcceleratorArn"String_.of_jsoninmake?elasticInferenceAcceleratorAssociationTime?elasticInferenceAcceleratorAssociationState?elasticInferenceAcceleratorAssociationId?elasticInferenceAcceleratorArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Amazon Elastic Inference is no longer available. Describes the association between an instance and an elastic inference accelerator."]moduleInstanceBlockDeviceMapping=structtypenonrect={deviceName:String_.toption[@ocaml.doc"The device name."];ebs:EbsInstanceBlockDevice.toption[@ocaml.doc"Parameters used to automatically set up EBS volumes when the instance is launched."]}letmake?deviceName=fun?ebs->fun()->{deviceName;ebs}letto_valuex=structure_to_value[("deviceName",(Option.mapx.deviceName~f:String_.to_value));("ebs",(Option.mapx.ebs~f:EbsInstanceBlockDevice.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letebs=(Option.map~f:EbsInstanceBlockDevice.of_xml)(Xml.childxml_arg0"ebs")inletdeviceName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"deviceName")inmake?ebs?deviceName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letebs=field_mapjson__"Ebs"EbsInstanceBlockDevice.of_jsoninletdeviceName=field_mapjson__"DeviceName"String_.of_jsoninmake?ebs?deviceName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a block device mapping."]moduleInstanceAutoRecoveryState=structtypenonrect=|Disabled|Default|Non_static_idofstringletmakei=iletto_string=function|Disabled->"disabled"|Default->"default"|Non_static_ids->sletof_string=function|"disabled"->Disabled|"default"->Default|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 InstanceAutoRecoveryState"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"InstanceAutoRecoveryState"j)letto_json=simple_to_jsonto_valueendmoduleInstanceRebootMigrationState=structtypenonrect=|Disabled|Default|Non_static_idofstringletmakei=iletto_string=function|Disabled->"disabled"|Default->"default"|Non_static_ids->sletof_string=function|"disabled"->Disabled|"default"->Default|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 InstanceRebootMigrationState"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"InstanceRebootMigrationState"j)letto_json=simple_to_jsonto_valueendmoduleHttpTokensState=structtypenonrect=|Optional|Required|Non_static_idofstringletmakei=iletto_string=function|Optional->"optional"|Required->"required"|Non_static_ids->sletof_string=function|"optional"->Optional|"required"->Required|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 HttpTokensState"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"HttpTokensState"j)letto_json=simple_to_jsonto_valueendmoduleInstanceMetadataEndpointState=structtypenonrect=|Disabled|Enabled|Non_static_idofstringletmakei=iletto_string=function|Disabled->"disabled"|Enabled->"enabled"|Non_static_ids->sletof_string=function|"disabled"->Disabled|"enabled"->Enabled|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 InstanceMetadataEndpointState"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"InstanceMetadataEndpointState"j)letto_json=simple_to_jsonto_valueendmoduleInstanceMetadataOptionsState=structtypenonrect=|Pending|Applied|Non_static_idofstringletmakei=iletto_string=function|Pending->"pending"|Applied->"applied"|Non_static_ids->sletof_string=function|"pending"->Pending|"applied"->Applied|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 InstanceMetadataOptionsState"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"InstanceMetadataOptionsState"j)letto_json=simple_to_jsonto_valueendmoduleInstanceMetadataProtocolState=structtypenonrect=|Disabled|Enabled|Non_static_idofstringletmakei=iletto_string=function|Disabled->"disabled"|Enabled->"enabled"|Non_static_ids->sletof_string=function|"disabled"->Disabled|"enabled"->Enabled|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 InstanceMetadataProtocolState"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"InstanceMetadataProtocolState"j)letto_json=simple_to_jsonto_valueendmoduleInstanceMetadataTagsState=structtypenonrect=|Disabled|Enabled|Non_static_idofstringletmakei=iletto_string=function|Disabled->"disabled"|Enabled->"enabled"|Non_static_ids->sletof_string=function|"disabled"->Disabled|"enabled"->Enabled|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 InstanceMetadataTagsState"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"InstanceMetadataTagsState"j)letto_json=simple_to_jsonto_valueendmoduleInstanceNetworkInterface=structtypenonrect={association:InstanceNetworkInterfaceAssociation.toption[@ocaml.doc"The association information for an Elastic IPv4 associated with the network interface."];attachment:InstanceNetworkInterfaceAttachment.toption[@ocaml.doc"The network interface attachment."];description:String_.toption[@ocaml.doc"The description."];groups:GroupIdentifierList.toption[@ocaml.doc"The security groups."];ipv6Addresses:InstanceIpv6AddressList.toption[@ocaml.doc"The IPv6 addresses associated with the network interface."];macAddress:String_.toption[@ocaml.doc"The MAC address."];networkInterfaceId:String_.toption[@ocaml.doc"The ID of the network interface."];ownerId:String_.toption[@ocaml.doc"The ID of the Amazon Web Services account that created the network interface."];privateDnsName:String_.toption[@ocaml.doc"The private DNS name."];privateIpAddress:String_.toption[@ocaml.doc"The IPv4 address of the network interface within the subnet."];privateIpAddresses:InstancePrivateIpAddressList.toption[@ocaml.doc"The private IPv4 addresses associated with the network interface."];sourceDestCheck:Boolean.toption[@ocaml.doc"Indicates whether source/destination checking is enabled."];status:NetworkInterfaceStatus.toption[@ocaml.doc"The status of the network interface."];subnetId:String_.toption[@ocaml.doc"The ID of the subnet."];vpcId:String_.toption[@ocaml.doc"The ID of the VPC."];interfaceType:String_.toption[@ocaml.doc"The type of network interface. Valid values: interface | efa | efa-only | evs | trunk"];ipv4Prefixes:InstanceIpv4PrefixList.toption[@ocaml.doc"The IPv4 delegated prefixes that are assigned to the network interface."];ipv6Prefixes:InstanceIpv6PrefixList.toption[@ocaml.doc"The IPv6 delegated prefixes that are assigned to the network interface."];connectionTrackingConfiguration:ConnectionTrackingSpecificationResponse.toption[@ocaml.doc"A security group connection tracking configuration that enables you to set the timeout for connection tracking on an Elastic network interface. For more information, see Connection tracking timeouts in the Amazon EC2 User Guide."];operator:OperatorResponse.toption[@ocaml.doc"The service provider that manages the network interface."]}letmake?association=fun?attachment->fun?description->fun?groups->fun?ipv6Addresses->fun?macAddress->fun?networkInterfaceId->fun?ownerId->fun?privateDnsName->fun?privateIpAddress->fun?privateIpAddresses->fun?sourceDestCheck->fun?status->fun?subnetId->fun?vpcId->fun?interfaceType->fun?ipv4Prefixes->fun?ipv6Prefixes->fun?connectionTrackingConfiguration->fun?operator->fun()->{association;attachment;description;groups;ipv6Addresses;macAddress;networkInterfaceId;ownerId;privateDnsName;privateIpAddress;privateIpAddresses;sourceDestCheck;status;subnetId;vpcId;interfaceType;ipv4Prefixes;ipv6Prefixes;connectionTrackingConfiguration;operator}letto_valuex=structure_to_value[("association",(Option.mapx.association~f:InstanceNetworkInterfaceAssociation.to_value));("attachment",(Option.mapx.attachment~f:InstanceNetworkInterfaceAttachment.to_value));("description",(Option.mapx.description~f:String_.to_value));("groupSet",(Option.mapx.groups~f:GroupIdentifierList.to_value));("ipv6AddressesSet",(Option.mapx.ipv6Addresses~f:InstanceIpv6AddressList.to_value));("macAddress",(Option.mapx.macAddress~f:String_.to_value));("networkInterfaceId",(Option.mapx.networkInterfaceId~f:String_.to_value));("ownerId",(Option.mapx.ownerId~f:String_.to_value));("privateDnsName",(Option.mapx.privateDnsName~f:String_.to_value));("privateIpAddress",(Option.mapx.privateIpAddress~f:String_.to_value));("privateIpAddressesSet",(Option.mapx.privateIpAddresses~f:InstancePrivateIpAddressList.to_value));("sourceDestCheck",(Option.mapx.sourceDestCheck~f:Boolean.to_value));("status",(Option.mapx.status~f:NetworkInterfaceStatus.to_value));("subnetId",(Option.mapx.subnetId~f:String_.to_value));("vpcId",(Option.mapx.vpcId~f:String_.to_value));("interfaceType",(Option.mapx.interfaceType~f:String_.to_value));("ipv4PrefixSet",(Option.mapx.ipv4Prefixes~f:InstanceIpv4PrefixList.to_value));("ipv6PrefixSet",(Option.mapx.ipv6Prefixes~f:InstanceIpv6PrefixList.to_value));("connectionTrackingConfiguration",(Option.mapx.connectionTrackingConfiguration~f:ConnectionTrackingSpecificationResponse.to_value));("operator",(Option.mapx.operator~f:OperatorResponse.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letoperator=(Option.map~f:OperatorResponse.of_xml)(Xml.childxml_arg0"operator")inletconnectionTrackingConfiguration=(Option.map~f:ConnectionTrackingSpecificationResponse.of_xml)(Xml.childxml_arg0"connectionTrackingConfiguration")inletipv6Prefixes=(Option.map~f:InstanceIpv6PrefixList.of_xml)(Xml.childxml_arg0"ipv6PrefixSet")inletipv4Prefixes=(Option.map~f:InstanceIpv4PrefixList.of_xml)(Xml.childxml_arg0"ipv4PrefixSet")inletinterfaceType=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"interfaceType")inletvpcId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"vpcId")inletsubnetId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"subnetId")inletstatus=(Option.map~f:NetworkInterfaceStatus.of_xml)(Xml.childxml_arg0"status")inletsourceDestCheck=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"sourceDestCheck")inletprivateIpAddresses=(Option.map~f:InstancePrivateIpAddressList.of_xml)(Xml.childxml_arg0"privateIpAddressesSet")inletprivateIpAddress=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"privateIpAddress")inletprivateDnsName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"privateDnsName")inletownerId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ownerId")inletnetworkInterfaceId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"networkInterfaceId")inletmacAddress=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"macAddress")inletipv6Addresses=(Option.map~f:InstanceIpv6AddressList.of_xml)(Xml.childxml_arg0"ipv6AddressesSet")inletgroups=(Option.map~f:GroupIdentifierList.of_xml)(Xml.childxml_arg0"groupSet")inletdescription=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"description")inletattachment=(Option.map~f:InstanceNetworkInterfaceAttachment.of_xml)(Xml.childxml_arg0"attachment")inletassociation=(Option.map~f:InstanceNetworkInterfaceAssociation.of_xml)(Xml.childxml_arg0"association")inmake?operator?connectionTrackingConfiguration?ipv6Prefixes?ipv4Prefixes?interfaceType?vpcId?subnetId?status?sourceDestCheck?privateIpAddresses?privateIpAddress?privateDnsName?ownerId?networkInterfaceId?macAddress?ipv6Addresses?groups?description?attachment?association()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letoperator=field_mapjson__"Operator"OperatorResponse.of_jsoninletconnectionTrackingConfiguration=field_mapjson__"ConnectionTrackingConfiguration"ConnectionTrackingSpecificationResponse.of_jsoninletipv6Prefixes=field_mapjson__"Ipv6Prefixes"InstanceIpv6PrefixList.of_jsoninletipv4Prefixes=field_mapjson__"Ipv4Prefixes"InstanceIpv4PrefixList.of_jsoninletinterfaceType=field_mapjson__"InterfaceType"String_.of_jsoninletvpcId=field_mapjson__"VpcId"String_.of_jsoninletsubnetId=field_mapjson__"SubnetId"String_.of_jsoninletstatus=field_mapjson__"Status"NetworkInterfaceStatus.of_jsoninletsourceDestCheck=field_mapjson__"SourceDestCheck"Boolean.of_jsoninletprivateIpAddresses=field_mapjson__"PrivateIpAddresses"InstancePrivateIpAddressList.of_jsoninletprivateIpAddress=field_mapjson__"PrivateIpAddress"String_.of_jsoninletprivateDnsName=field_mapjson__"PrivateDnsName"String_.of_jsoninletownerId=field_mapjson__"OwnerId"String_.of_jsoninletnetworkInterfaceId=field_mapjson__"NetworkInterfaceId"String_.of_jsoninletmacAddress=field_mapjson__"MacAddress"String_.of_jsoninletipv6Addresses=field_mapjson__"Ipv6Addresses"InstanceIpv6AddressList.of_jsoninletgroups=field_mapjson__"Groups"GroupIdentifierList.of_jsoninletdescription=field_mapjson__"Description"String_.of_jsoninletattachment=field_mapjson__"Attachment"InstanceNetworkInterfaceAttachment.of_jsoninletassociation=field_mapjson__"Association"InstanceNetworkInterfaceAssociation.of_jsoninmake?operator?connectionTrackingConfiguration?ipv6Prefixes?ipv4Prefixes?interfaceType?vpcId?subnetId?status?sourceDestCheck?privateIpAddresses?privateIpAddress?privateDnsName?ownerId?networkInterfaceId?macAddress?ipv6Addresses?groups?description?attachment?association()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a network interface."]moduleInstanceBandwidthWeighting=structtypenonrect=|Default|Vpc_1|Ebs_1|Non_static_idofstringletmakei=iletto_string=function|Default->"default"|Vpc_1->"vpc-1"|Ebs_1->"ebs-1"|Non_static_ids->sletof_string=function|"default"->Default|"vpc-1"->Vpc_1|"ebs-1"->Ebs_1|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 InstanceBandwidthWeighting"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"InstanceBandwidthWeighting"j)letto_json=simple_to_jsonto_valueendmoduleInstanceSecondaryInterface=structtypenonrect={attachment:InstanceSecondaryInterfaceAttachment.toption[@ocaml.doc"The attachment information for the secondary interface."];macAddress:String_.toption[@ocaml.doc"The MAC address of the secondary interface."];secondaryInterfaceId:SecondaryInterfaceId.toption[@ocaml.doc"The ID of the secondary interface."];ownerId:String_.toption[@ocaml.doc"The Amazon Web Services account ID of the owner of the secondary interface."];privateIpAddresses:InstanceSecondaryInterfacePrivateIpAddressList.toption[@ocaml.doc"The private IPv4 addresses associated with the secondary interface."];sourceDestCheck:Boolean.toption[@ocaml.doc"Indicates whether source/destination checking is enabled."];status:SecondaryInterfaceStatus.toption[@ocaml.doc"The status of the secondary interface."];secondarySubnetId:SecondarySubnetId.toption[@ocaml.doc"The ID of the secondary subnet."];secondaryNetworkId:SecondaryNetworkId.toption[@ocaml.doc"The ID of the secondary network."];interfaceType:SecondaryInterfaceType.toption[@ocaml.doc"The type of secondary interface."]}letmake?attachment=fun?macAddress->fun?secondaryInterfaceId->fun?ownerId->fun?privateIpAddresses->fun?sourceDestCheck->fun?status->fun?secondarySubnetId->fun?secondaryNetworkId->fun?interfaceType->fun()->{attachment;macAddress;secondaryInterfaceId;ownerId;privateIpAddresses;sourceDestCheck;status;secondarySubnetId;secondaryNetworkId;interfaceType}letto_valuex=structure_to_value[("attachment",(Option.mapx.attachment~f:InstanceSecondaryInterfaceAttachment.to_value));("macAddress",(Option.mapx.macAddress~f:String_.to_value));("secondaryInterfaceId",(Option.mapx.secondaryInterfaceId~f:SecondaryInterfaceId.to_value));("ownerId",(Option.mapx.ownerId~f:String_.to_value));("privateIpAddressSet",(Option.mapx.privateIpAddresses~f:InstanceSecondaryInterfacePrivateIpAddressList.to_value));("sourceDestCheck",(Option.mapx.sourceDestCheck~f:Boolean.to_value));("status",(Option.mapx.status~f:SecondaryInterfaceStatus.to_value));("secondarySubnetId",(Option.mapx.secondarySubnetId~f:SecondarySubnetId.to_value));("secondaryNetworkId",(Option.mapx.secondaryNetworkId~f:SecondaryNetworkId.to_value));("interfaceType",(Option.mapx.interfaceType~f:SecondaryInterfaceType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letinterfaceType=(Option.map~f:SecondaryInterfaceType.of_xml)(Xml.childxml_arg0"interfaceType")inletsecondaryNetworkId=(Option.map~f:SecondaryNetworkId.of_xml)(Xml.childxml_arg0"secondaryNetworkId")inletsecondarySubnetId=(Option.map~f:SecondarySubnetId.of_xml)(Xml.childxml_arg0"secondarySubnetId")inletstatus=(Option.map~f:SecondaryInterfaceStatus.of_xml)(Xml.childxml_arg0"status")inletsourceDestCheck=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"sourceDestCheck")inletprivateIpAddresses=(Option.map~f:InstanceSecondaryInterfacePrivateIpAddressList.of_xml)(Xml.childxml_arg0"privateIpAddressSet")inletownerId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ownerId")inletsecondaryInterfaceId=(Option.map~f:SecondaryInterfaceId.of_xml)(Xml.childxml_arg0"secondaryInterfaceId")inletmacAddress=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"macAddress")inletattachment=(Option.map~f:InstanceSecondaryInterfaceAttachment.of_xml)(Xml.childxml_arg0"attachment")inmake?interfaceType?secondaryNetworkId?secondarySubnetId?status?sourceDestCheck?privateIpAddresses?ownerId?secondaryInterfaceId?macAddress?attachment()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letinterfaceType=field_mapjson__"InterfaceType"SecondaryInterfaceType.of_jsoninletsecondaryNetworkId=field_mapjson__"SecondaryNetworkId"SecondaryNetworkId.of_jsoninletsecondarySubnetId=field_mapjson__"SecondarySubnetId"SecondarySubnetId.of_jsoninletstatus=field_mapjson__"Status"SecondaryInterfaceStatus.of_jsoninletsourceDestCheck=field_mapjson__"SourceDestCheck"Boolean.of_jsoninletprivateIpAddresses=field_mapjson__"PrivateIpAddresses"InstanceSecondaryInterfacePrivateIpAddressList.of_jsoninletownerId=field_mapjson__"OwnerId"String_.of_jsoninletsecondaryInterfaceId=field_mapjson__"SecondaryInterfaceId"SecondaryInterfaceId.of_jsoninletmacAddress=field_mapjson__"MacAddress"String_.of_jsoninletattachment=field_mapjson__"Attachment"InstanceSecondaryInterfaceAttachment.of_jsoninmake?interfaceType?secondaryNetworkId?secondarySubnetId?status?sourceDestCheck?privateIpAddresses?ownerId?secondaryInterfaceId?macAddress?attachment()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a secondary interface attached to an instance."]moduleInstanceStateName=structtypenonrect=|Pending|Running|Shutting_down|Terminated|Stopping|Stopped|Non_static_idofstringletmakei=iletto_string=function|Pending->"pending"|Running->"running"|Shutting_down->"shutting-down"|Terminated->"terminated"|Stopping->"stopping"|Stopped->"stopped"|Non_static_ids->sletof_string=function|"pending"->Pending|"running"->Running|"shutting-down"->Shutting_down|"terminated"->Terminated|"stopping"->Stopping|"stopped"->Stopped|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 InstanceStateName"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"InstanceStateName"j)letto_json=simple_to_jsonto_valueendmoduleLicenseConfiguration=structtypenonrect={licenseConfigurationArn:String_.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the license configuration."]}letmake?licenseConfigurationArn=fun()->{licenseConfigurationArn}letto_valuex=structure_to_value[("licenseConfigurationArn",(Option.mapx.licenseConfigurationArn~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlicenseConfigurationArn=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"licenseConfigurationArn")inmake?licenseConfigurationArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlicenseConfigurationArn=field_mapjson__"LicenseConfigurationArn"String_.of_jsoninmake?licenseConfigurationArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a license configuration."]moduleMonitoringState=structtypenonrect=|Disabled|Disabling|Enabled|Pending|Non_static_idofstringletmakei=iletto_string=function|Disabled->"disabled"|Disabling->"disabling"|Enabled->"enabled"|Pending->"pending"|Non_static_ids->sletof_string=function|"disabled"->Disabled|"disabling"->Disabling|"enabled"->Enabled|"pending"->Pending|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 MonitoringState"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"MonitoringState"j)letto_json=simple_to_jsonto_valueendmoduleHostnameType=structtypenonrect=|Ip_name|Resource_name|Non_static_idofstringletmakei=iletto_string=function|Ip_name->"ip-name"|Resource_name->"resource-name"|Non_static_ids->sletof_string=function|"ip-name"->Ip_name|"resource-name"->Resource_name|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 HostnameType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"HostnameType"j)letto_json=simple_to_jsonto_valueendmoduleProductCode=structtypenonrect={productCodeId:String_.toption[@ocaml.doc"The product code."];productCodeType:ProductCodeValues.toption[@ocaml.doc"The type of product code."]}letmake?productCodeId=fun?productCodeType->fun()->{productCodeId;productCodeType}letto_valuex=structure_to_value[("productCode",(Option.mapx.productCodeId~f:String_.to_value));("type",(Option.mapx.productCodeType~f:ProductCodeValues.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letproductCodeType=(Option.map~f:ProductCodeValues.of_xml)(Xml.childxml_arg0"type")inletproductCodeId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"productCode")inmake?productCodeType?productCodeId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letproductCodeType=field_mapjson__"ProductCodeType"ProductCodeValues.of_jsoninletproductCodeId=field_mapjson__"ProductCodeId"String_.of_jsoninmake?productCodeType?productCodeId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a product code."]moduleBaselineBandwidthInMbps=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 BaselineBandwidthInMbps"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleBaselineIops=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 BaselineIops"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleBaselineThroughputInMBps=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_valueendmoduleEbsCardIndex=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 EbsCardIndex"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleMaximumBandwidthInMbps=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 MaximumBandwidthInMbps"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleMaximumIops=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 MaximumIops"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleMaximumThroughputInMBps=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_valueendmoduleFpgaDeviceCount=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 FpgaDeviceCount"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleFpgaDeviceManufacturerName=structtypenonrect=stringletcontext_="FpgaDeviceManufacturerName"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"FpgaDeviceManufacturerName"jletto_json=simple_to_jsonto_valueendmoduleFpgaDeviceMemoryInfo=structtypenonrect={sizeInMiB:FpgaDeviceMemorySize.toption[@ocaml.doc"The size of the memory available to the FPGA accelerator, in MiB."]}letmake?sizeInMiB=fun()->{sizeInMiB}letto_valuex=structure_to_value[("sizeInMiB",(Option.mapx.sizeInMiB~f:FpgaDeviceMemorySize.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsizeInMiB=(Option.map~f:FpgaDeviceMemorySize.of_xml)(Xml.childxml_arg0"sizeInMiB")inmake?sizeInMiB()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsizeInMiB=field_mapjson__"SizeInMiB"FpgaDeviceMemorySize.of_jsoninmake?sizeInMiB()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the memory for the FPGA accelerator for the instance type."]moduleFpgaDeviceName=structtypenonrect=stringletcontext_="FpgaDeviceName"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"FpgaDeviceName"jletto_json=simple_to_jsonto_valueendmoduleGpuDeviceCount=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 GpuDeviceCount"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleGpuDeviceManufacturerName=structtypenonrect=stringletcontext_="GpuDeviceManufacturerName"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"GpuDeviceManufacturerName"jletto_json=simple_to_jsonto_valueendmoduleGpuDeviceMemoryInfo=structtypenonrect={sizeInMiB:GpuDeviceMemorySize.toption[@ocaml.doc"The size of the memory available to the GPU accelerator, in MiB."]}letmake?sizeInMiB=fun()->{sizeInMiB}letto_valuex=structure_to_value[("sizeInMiB",(Option.mapx.sizeInMiB~f:GpuDeviceMemorySize.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsizeInMiB=(Option.map~f:GpuDeviceMemorySize.of_xml)(Xml.childxml_arg0"sizeInMiB")inmake?sizeInMiB()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsizeInMiB=field_mapjson__"SizeInMiB"GpuDeviceMemorySize.of_jsoninmake?sizeInMiB()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the memory available to the GPU accelerator."]moduleGpuDeviceName=structtypenonrect=stringletcontext_="GpuDeviceName"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"GpuDeviceName"jletto_json=simple_to_jsonto_valueendmoduleGpuPartitionSize=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_valueendmoduleLogicalGpuCount=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 LogicalGpuCount"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleWorkloadsList=structtypenonrect=Workload.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Workload.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:Workload.of_xml)letof_jsonj=list_of_json~kind:"WorkloadsList"~of_json:Workload.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleInferenceDeviceCount=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 InferenceDeviceCount"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleInferenceDeviceManufacturerName=structtypenonrect=stringletcontext_="InferenceDeviceManufacturerName"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"InferenceDeviceManufacturerName"jletto_json=simple_to_jsonto_valueendmoduleInferenceDeviceMemoryInfo=structtypenonrect={sizeInMiB:InferenceDeviceMemorySize.toption[@ocaml.doc"The size of the memory available to the inference accelerator, in MiB."]}letmake?sizeInMiB=fun()->{sizeInMiB}letto_valuex=structure_to_value[("sizeInMiB",(Option.mapx.sizeInMiB~f:InferenceDeviceMemorySize.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsizeInMiB=(Option.map~f:InferenceDeviceMemorySize.of_xml)(Xml.childxml_arg0"sizeInMiB")inmake?sizeInMiB()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsizeInMiB=field_mapjson__"SizeInMiB"InferenceDeviceMemorySize.of_jsoninmake?sizeInMiB()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Amazon Elastic Inference is no longer available. Describes the memory available to the inference accelerator."]moduleInferenceDeviceName=structtypenonrect=stringletcontext_="InferenceDeviceName"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"InferenceDeviceName"jletto_json=simple_to_jsonto_valueendmoduleDiskCount=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 DiskCount"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleDiskSize=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_valueendmoduleDiskType=structtypenonrect=|Hdd|Ssd|Non_static_idofstringletmakei=iletto_string=function|Hdd->"hdd"|Ssd->"ssd"|Non_static_ids->sletof_string=function|"hdd"->Hdd|"ssd"->Ssd|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 DiskType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"DiskType"j)letto_json=simple_to_jsonto_valueendmoduleMediaDeviceCount=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 MediaDeviceCount"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleMediaDeviceManufacturerName=structtypenonrect=stringletcontext_="MediaDeviceManufacturerName"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"MediaDeviceManufacturerName"jletto_json=simple_to_jsonto_valueendmoduleMediaDeviceMemoryInfo=structtypenonrect={sizeInMiB:MediaDeviceMemorySize.toption[@ocaml.doc"The size of the memory available to each media accelerator, in MiB."]}letmake?sizeInMiB=fun()->{sizeInMiB}letto_valuex=structure_to_value[("sizeInMiB",(Option.mapx.sizeInMiB~f:MediaDeviceMemorySize.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsizeInMiB=(Option.map~f:MediaDeviceMemorySize.of_xml)(Xml.childxml_arg0"sizeInMiB")inmake?sizeInMiB()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsizeInMiB=field_mapjson__"SizeInMiB"MediaDeviceMemorySize.of_jsoninmake?sizeInMiB()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the memory available to the media accelerator."]moduleMediaDeviceName=structtypenonrect=stringletcontext_="MediaDeviceName"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"MediaDeviceName"jletto_json=simple_to_jsonto_valueendmoduleAdditionalFlexibleNetworkInterfaces=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 AdditionalFlexibleNetworkInterfaces"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleBaselineBandwidthInGbps=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_valueendmoduleDefaultEnaQueueCountPerInterface=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 DefaultEnaQueueCountPerInterface"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleMaxNetworkInterfaces=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 MaxNetworkInterfaces"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleMaximumEnaQueueCount=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 MaximumEnaQueueCount"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleMaximumEnaQueueCountPerInterface=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 MaximumEnaQueueCountPerInterface"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleNetworkCardIndex=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 NetworkCardIndex"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleNetworkPerformance=structtypenonrect=stringletcontext_="NetworkPerformance"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"NetworkPerformance"jletto_json=simple_to_jsonto_valueendmodulePeakBandwidthInGbps=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_valueendmoduleNeuronDeviceCoreInfo=structtypenonrect={count:NeuronDeviceCoreCount.toption[@ocaml.doc"The number of cores available to the neuron accelerator."];version:NeuronDeviceCoreVersion.toption[@ocaml.doc"The version of the neuron accelerator."]}letmake?count=fun?version->fun()->{count;version}letto_valuex=structure_to_value[("count",(Option.mapx.count~f:NeuronDeviceCoreCount.to_value));("version",(Option.mapx.version~f:NeuronDeviceCoreVersion.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letversion=(Option.map~f:NeuronDeviceCoreVersion.of_xml)(Xml.childxml_arg0"version")inletcount=(Option.map~f:NeuronDeviceCoreCount.of_xml)(Xml.childxml_arg0"count")inmake?version?count()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letversion=field_mapjson__"Version"NeuronDeviceCoreVersion.of_jsoninletcount=field_mapjson__"Count"NeuronDeviceCoreCount.of_jsoninmake?version?count()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the cores available to the neuron accelerator."]moduleNeuronDeviceCount=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 NeuronDeviceCount"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleNeuronDeviceMemoryInfo=structtypenonrect={sizeInMiB:NeuronDeviceMemorySize.toption[@ocaml.doc"The size of the memory available to the neuron accelerator, in MiB."]}letmake?sizeInMiB=fun()->{sizeInMiB}letto_valuex=structure_to_value[("sizeInMiB",(Option.mapx.sizeInMiB~f:NeuronDeviceMemorySize.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsizeInMiB=(Option.map~f:NeuronDeviceMemorySize.of_xml)(Xml.childxml_arg0"sizeInMiB")inmake?sizeInMiB()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsizeInMiB=field_mapjson__"SizeInMiB"NeuronDeviceMemorySize.of_jsoninmake?sizeInMiB()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the memory available to the neuron accelerator."]moduleNeuronDeviceName=structtypenonrect=stringletcontext_="NeuronDeviceName"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"NeuronDeviceName"jletto_json=simple_to_jsonto_valueendmoduleStatusName=structtypenonrect=|Reachability|Non_static_idofstringletmakei=iletto_string=function|Reachability->"reachability"|Non_static_ids->sletof_string=function|"reachability"->Reachability|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 StatusName"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"StatusName"j)letto_json=simple_to_jsonto_valueendmoduleStatusType=structtypenonrect=|Passed|Failed|Insufficient_data|Initializing|Non_static_idofstringletmakei=iletto_string=function|Passed->"passed"|Failed->"failed"|Insufficient_data->"insufficient-data"|Initializing->"initializing"|Non_static_ids->sletof_string=function|"passed"->Passed|"failed"->Failed|"insufficient-data"->Insufficient_data|"initializing"->Initializing|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 StatusType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"StatusType"j)letto_json=simple_to_jsonto_valueendmoduleImageUsageResourceTypeOption=structtypenonrect={optionName:String_.toption[@ocaml.doc"The name of the option."];optionValues:ImageUsageResourceTypeOptionValuesList.toption[@ocaml.doc"The number of launch template versions to check."]}letmake?optionName=fun?optionValues->fun()->{optionName;optionValues}letto_valuex=structure_to_value[("optionName",(Option.mapx.optionName~f:String_.to_value));("optionValueSet",(Option.mapx.optionValues~f:ImageUsageResourceTypeOptionValuesList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letoptionValues=(Option.map~f:ImageUsageResourceTypeOptionValuesList.of_xml)(Xml.childxml_arg0"optionValueSet")inletoptionName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"optionName")inmake?optionValues?optionName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letoptionValues=field_mapjson__"OptionValues"ImageUsageResourceTypeOptionValuesList.of_jsoninletoptionName=field_mapjson__"OptionName"String_.of_jsoninmake?optionValues?optionName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The options that affect the scope of the report."]moduleResourceTypeOptionValue=structtypenonrect=stringletcontext_="ResourceTypeOptionValue"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ResourceTypeOptionValue"jletto_json=simple_to_jsonto_valueendmoduleFleetLaunchTemplateOverrides=structtypenonrect={instanceType:InstanceType.toption[@ocaml.doc"The instance type. mac1.metal is not supported as a launch template override. If you specify InstanceType, you can't specify InstanceRequirements."];maxPrice:String_.toption[@ocaml.doc"The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price. If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter. If you specify a maximum price, it must be more than USD $0.001. Specifying a value below USD $0.001 will result in an InvalidParameterValue error message."];subnetId:String_.toption[@ocaml.doc"The ID of the subnet in which to launch the instances."];availabilityZone:AvailabilityZoneName.toption[@ocaml.doc"The Availability Zone in which to launch the instances. For example, us-east-2a. Either AvailabilityZone or AvailabilityZoneId must be specified in the request, but not both."];weightedCapacity:Double.toption[@ocaml.doc"The number of units provided by the specified instance type. These are the same units that you chose to set the target capacity in terms of instances, or a performance characteristic such as vCPUs, memory, or I/O. If the target capacity divided by this value is not a whole number, Amazon EC2 rounds the number of instances to the next whole number. If this value is not specified, the default is 1. When specifying weights, the price used in the lowest-price and price-capacity-optimized allocation strategies is per unit hour (where the instance price is divided by the specified weight). However, if all the specified weights are above the requested TargetCapacity, resulting in only 1 instance being launched, the price used is per instance hour."];priority:Double.toption[@ocaml.doc"The priority for the launch template override. The highest priority is launched first. If the On-Demand AllocationStrategy is set to prioritized, EC2 Fleet uses priority to determine which launch template override to use first in fulfilling On-Demand capacity. If the Spot AllocationStrategy is set to capacity-optimized-prioritized, EC2 Fleet uses priority on a best-effort basis to determine which launch template override to use in fulfilling Spot capacity, but optimizes for capacity first. Valid values are whole numbers starting at 0. The lower the number, the higher the priority. If no number is set, the override has the lowest priority. You can set the same priority for different launch template overrides."];placement:PlacementResponse.toption[@ocaml.doc"The location where the instance launched, if applicable."];instanceRequirements:InstanceRequirements.toption[@ocaml.doc"The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with those attributes. If you specify InstanceRequirements, you can't specify InstanceType."];imageId:ImageId.toption[@ocaml.doc"The ID of the AMI in the format ami-17characters00000. Alternatively, you can specify a Systems Manager parameter, using one of the following formats. The Systems Manager parameter will resolve to an AMI ID on launch. To reference a public parameter: resolve:ssm:public-parameter To reference a parameter stored in the same account: resolve:ssm:parameter-name resolve:ssm:parameter-name:version-number resolve:ssm:parameter-name:label To reference a parameter shared from another Amazon Web Services account: resolve:ssm:parameter-ARN resolve:ssm:parameter-ARN:version-number resolve:ssm:parameter-ARN:label For more information, see Use a Systems Manager parameter instead of an AMI ID in the Amazon EC2 User Guide. This parameter is only available for fleets of type instant. For fleets of type maintain and request, you must specify the AMI ID in the launch template."];blockDeviceMappings:BlockDeviceMappingResponseList.toption[@ocaml.doc"The block device mappings, which define the EBS volumes and instance store volumes to attach to the instance at launch. Supported only for fleets of type instant. For more information, see Block device mappings for volumes on Amazon EC2 instances in the Amazon EC2 User Guide."];availabilityZoneId:AvailabilityZoneId.toption[@ocaml.doc"The ID of the Availability Zone in which to launch the instances. For example, use2-az1. Either AvailabilityZone or AvailabilityZoneId must be specified in the request, but not both."]}letmake?instanceType=fun?maxPrice->fun?subnetId->fun?availabilityZone->fun?weightedCapacity->fun?priority->fun?placement->fun?instanceRequirements->fun?imageId->fun?blockDeviceMappings->fun?availabilityZoneId->fun()->{instanceType;maxPrice;subnetId;availabilityZone;weightedCapacity;priority;placement;instanceRequirements;imageId;blockDeviceMappings;availabilityZoneId}letto_valuex=structure_to_value[("instanceType",(Option.mapx.instanceType~f:InstanceType.to_value));("maxPrice",(Option.mapx.maxPrice~f:String_.to_value));("subnetId",(Option.mapx.subnetId~f:String_.to_value));("availabilityZone",(Option.mapx.availabilityZone~f:AvailabilityZoneName.to_value));("weightedCapacity",(Option.mapx.weightedCapacity~f:Double.to_value));("priority",(Option.mapx.priority~f:Double.to_value));("placement",(Option.mapx.placement~f:PlacementResponse.to_value));("instanceRequirements",(Option.mapx.instanceRequirements~f:InstanceRequirements.to_value));("imageId",(Option.mapx.imageId~f:ImageId.to_value));("blockDeviceMappingSet",(Option.mapx.blockDeviceMappings~f:BlockDeviceMappingResponseList.to_value));("availabilityZoneId",(Option.mapx.availabilityZoneId~f:AvailabilityZoneId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letavailabilityZoneId=(Option.map~f:AvailabilityZoneId.of_xml)(Xml.childxml_arg0"availabilityZoneId")inletblockDeviceMappings=(Option.map~f:BlockDeviceMappingResponseList.of_xml)(Xml.childxml_arg0"blockDeviceMappingSet")inletimageId=(Option.map~f:ImageId.of_xml)(Xml.childxml_arg0"imageId")inletinstanceRequirements=(Option.map~f:InstanceRequirements.of_xml)(Xml.childxml_arg0"instanceRequirements")inletplacement=(Option.map~f:PlacementResponse.of_xml)(Xml.childxml_arg0"placement")inletpriority=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"priority")inletweightedCapacity=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"weightedCapacity")inletavailabilityZone=(Option.map~f:AvailabilityZoneName.of_xml)(Xml.childxml_arg0"availabilityZone")inletsubnetId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"subnetId")inletmaxPrice=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"maxPrice")inletinstanceType=(Option.map~f:InstanceType.of_xml)(Xml.childxml_arg0"instanceType")inmake?availabilityZoneId?blockDeviceMappings?imageId?instanceRequirements?placement?priority?weightedCapacity?availabilityZone?subnetId?maxPrice?instanceType()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letavailabilityZoneId=field_mapjson__"AvailabilityZoneId"AvailabilityZoneId.of_jsoninletblockDeviceMappings=field_mapjson__"BlockDeviceMappings"BlockDeviceMappingResponseList.of_jsoninletimageId=field_mapjson__"ImageId"ImageId.of_jsoninletinstanceRequirements=field_mapjson__"InstanceRequirements"InstanceRequirements.of_jsoninletplacement=field_mapjson__"Placement"PlacementResponse.of_jsoninletpriority=field_mapjson__"Priority"Double.of_jsoninletweightedCapacity=field_mapjson__"WeightedCapacity"Double.of_jsoninletavailabilityZone=field_mapjson__"AvailabilityZone"AvailabilityZoneName.of_jsoninletsubnetId=field_mapjson__"SubnetId"String_.of_jsoninletmaxPrice=field_mapjson__"MaxPrice"String_.of_jsoninletinstanceType=field_mapjson__"InstanceType"InstanceType.of_jsoninmake?availabilityZoneId?blockDeviceMappings?imageId?instanceRequirements?placement?priority?weightedCapacity?availabilityZone?subnetId?maxPrice?instanceType()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes overrides for a launch template."]moduleInstanceId=structtypenonrect=stringletcontext_="InstanceId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"InstanceId"jletto_json=simple_to_jsonto_valueendmoduleFleetReplacementStrategy=structtypenonrect=|Launch|Launch_before_terminate|Non_static_idofstringletmakei=iletto_string=function|Launch->"launch"|Launch_before_terminate->"launch-before-terminate"|Non_static_ids->sletof_string=function|"launch"->Launch|"launch-before-terminate"->Launch_before_terminate|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 FleetReplacementStrategy"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"FleetReplacementStrategy"j)letto_json=simple_to_jsonto_valueendmoduleAttributeValue=structtypenonrect={value:String_.toption[@ocaml.doc"The attribute value. The value is case-sensitive."]}letmake?value=fun()->{value}letto_valuex=structure_to_value[("value",(Option.mapx.value~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvalue=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"value")inmake?value()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvalue=field_mapjson__"Value"String_.of_jsoninmake?value()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a value for a resource attribute that is a String."]moduleDiskImageDescription=structtypenonrect={checksum:String_.toption[@ocaml.doc"The checksum computed for the disk image."];format:DiskImageFormat.toption[@ocaml.doc"The disk image format."];importManifestUrl:ImportManifestUrl.toption[@ocaml.doc"A presigned URL for the import manifest stored in Amazon S3. For information about creating a presigned URL for an Amazon S3 object, read the \"Query String Request Authentication Alternative\" section of the Authenticating REST Requests topic in the Amazon Simple Storage Service Developer Guide. For information about the import manifest referenced by this API action, see VM Import Manifest."];size:Long.toption[@ocaml.doc"The size of the disk image, in GiB."]}letmake?checksum=fun?format->fun?importManifestUrl->fun?size->fun()->{checksum;format;importManifestUrl;size}letto_valuex=structure_to_value[("checksum",(Option.mapx.checksum~f:String_.to_value));("format",(Option.mapx.format~f:DiskImageFormat.to_value));("importManifestUrl",(Option.mapx.importManifestUrl~f:ImportManifestUrl.to_value));("size",(Option.mapx.size~f:Long.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsize=(Option.map~f:Long.of_xml)(Xml.childxml_arg0"size")inletimportManifestUrl=(Option.map~f:ImportManifestUrl.of_xml)(Xml.childxml_arg0"importManifestUrl")inletformat=(Option.map~f:DiskImageFormat.of_xml)(Xml.childxml_arg0"format")inletchecksum=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"checksum")inmake?size?importManifestUrl?format?checksum()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsize=field_mapjson__"Size"Long.of_jsoninletimportManifestUrl=field_mapjson__"ImportManifestUrl"ImportManifestUrl.of_jsoninletformat=field_mapjson__"Format"DiskImageFormat.of_jsoninletchecksum=field_mapjson__"Checksum"String_.of_jsoninmake?size?importManifestUrl?format?checksum()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a disk image."]moduleDiskImageVolumeDescription=structtypenonrect={id:String_.toption[@ocaml.doc"The volume identifier."];size:Long.toption[@ocaml.doc"The size of the volume, in GiB."]}letmake?id=fun?size->fun()->{id;size}letto_valuex=structure_to_value[("id",(Option.mapx.id~f:String_.to_value));("size",(Option.mapx.size~f:Long.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsize=(Option.map~f:Long.of_xml)(Xml.childxml_arg0"size")inletid=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"id")inmake?size?id()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsize=field_mapjson__"Size"Long.of_jsoninletid=field_mapjson__"Id"String_.of_jsoninmake?size?id()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a disk image volume."]moduleCapacityAllocationMetadataEntry=structtypenonrect={key:String_.toption[@ocaml.doc"The key of the metadata entry."];value:String_.toption[@ocaml.doc"The value of the metadata entry."]}letmake?key=fun?value->fun()->{key;value}letto_valuex=structure_to_value[("key",(Option.mapx.key~f:String_.to_value));("value",(Option.mapx.value~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvalue=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"value")inletkey=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"key")inmake?value?key()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvalue=field_mapjson__"Value"String_.of_jsoninletkey=field_mapjson__"Key"String_.of_jsoninmake?value?key()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A key-value pair that provides additional metadata about a capacity allocation."]moduleCloudWatchLogGroupArn=structtypenonrect=stringletcontext_="CloudWatchLogGroupArn"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"CloudWatchLogGroupArn"jletto_json=simple_to_jsonto_valueendmoduleTransitGatewayAttachmentResourceType=structtypenonrect=|Vpc|Vpn|Vpn_concentrator|Direct_connect_gateway|Connect|Peering|Tgw_peering|Network_function|Client_vpn|Non_static_idofstringletmakei=iletto_string=function|Vpc->"vpc"|Vpn->"vpn"|Vpn_concentrator->"vpn-concentrator"|Direct_connect_gateway->"direct-connect-gateway"|Connect->"connect"|Peering->"peering"|Tgw_peering->"tgw-peering"|Network_function->"network-function"|Client_vpn->"client-vpn"|Non_static_ids->sletof_string=function|"vpc"->Vpc|"vpn"->Vpn|"vpn-concentrator"->Vpn_concentrator|"direct-connect-gateway"->Direct_connect_gateway|"connect"->Connect|"peering"->Peering|"tgw-peering"->Tgw_peering|"network-function"->Network_function|"client-vpn"->Client_vpn|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 TransitGatewayAttachmentResourceType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"TransitGatewayAttachmentResourceType"j)letto_json=simple_to_jsonto_valueendmoduleScheduledInstancesPrivateIpAddressConfig=structtypenonrect={primary:Boolean.toption[@ocaml.doc"Indicates whether this is a primary IPv4 address. Otherwise, this is a secondary IPv4 address."];privateIpAddress:String_.toption[@ocaml.doc"The IPv4 address."]}letmake?primary=fun?privateIpAddress->fun()->{primary;privateIpAddress}letto_valuex=structure_to_value[("Primary",(Option.mapx.primary~f:Boolean.to_value));("PrivateIpAddress",(Option.mapx.privateIpAddress~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letprivateIpAddress=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"PrivateIpAddress")inletprimary=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"Primary")inmake?privateIpAddress?primary()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letprivateIpAddress=field_mapjson__"PrivateIpAddress"String_.of_jsoninletprimary=field_mapjson__"Primary"Boolean.of_jsoninmake?privateIpAddress?primary()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a private IPv4 address for a Scheduled Instance."]moduleScheduledInstancesIpv6Address=structtypenonrect={ipv6Address:Ipv6Address.toption[@ocaml.doc"The IPv6 address."]}letmake?ipv6Address=fun()->{ipv6Address}letto_valuex=structure_to_value[("Ipv6Address",(Option.mapx.ipv6Address~f:Ipv6Address.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letipv6Address=(Option.map~f:Ipv6Address.of_xml)(Xml.childxml_arg0"Ipv6Address")inmake?ipv6Address()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letipv6Address=field_mapjson__"Ipv6Address"Ipv6Address.of_jsoninmake?ipv6Address()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an IPv6 address."]moduleIpamPrefixListResolverRuleConditionOperation=structtypenonrect=|Equals|Not_equals|Subnet_of|Non_static_idofstringletmakei=iletto_string=function|Equals->"equals"|Not_equals->"not-equals"|Subnet_of->"subnet-of"|Non_static_ids->sletof_string=function|"equals"->Equals|"not-equals"->Not_equals|"subnet-of"->Subnet_of|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 IpamPrefixListResolverRuleConditionOperation"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"IpamPrefixListResolverRuleConditionOperation"j)letto_json=simple_to_jsonto_valueendmoduleRequestIpamResourceTag=structtypenonrect={key:String_.toption[@ocaml.doc"The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value."];value:String_.toption[@ocaml.doc"The value for the tag."]}letmake?key=fun?value->fun()->{key;value}letto_valuex=structure_to_value[("Key",(Option.mapx.key~f:String_.to_value));("Value",(Option.mapx.value~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvalue=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Value")inletkey=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Key")inmake?value?key()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvalue=field_mapjson__"Value"String_.of_jsoninletkey=field_mapjson__"Key"String_.of_jsoninmake?value?key()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A tag on an IPAM resource."]moduleFleetBlockDeviceMappingRequestList=structtypenonrect=FleetBlockDeviceMappingRequest.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:FleetBlockDeviceMappingRequest.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:FleetBlockDeviceMappingRequest.of_xml)letof_jsonj=list_of_json~kind:"FleetBlockDeviceMappingRequestList"~of_json:FleetBlockDeviceMappingRequest.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleInstanceRequirementsRequest=structtypenonrect={vCpuCount:VCpuCountRangeRequest.t[@ocaml.doc"The minimum and maximum number of vCPUs."];memoryMiB:MemoryMiBRequest.t[@ocaml.doc"The minimum and maximum amount of memory, in MiB."];cpuManufacturers:CpuManufacturerSet.toption[@ocaml.doc"The CPU manufacturers to include. For instance types with Intel CPUs, specify intel. For instance types with AMD CPUs, specify amd. For instance types with Amazon Web Services CPUs, specify amazon-web-services. For instance types with Apple CPUs, specify apple. Don't confuse the CPU manufacturer with the CPU architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template. Default: Any manufacturer"];memoryGiBPerVCpu:MemoryGiBPerVCpuRequest.toption[@ocaml.doc"The minimum and maximum amount of memory per vCPU, in GiB. Default: No minimum or maximum limits"];excludedInstanceTypes:ExcludedInstanceTypeSet.toption[@ocaml.doc"The instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (*), to exclude an instance family, type, size, or generation. The following are examples: m5.8xlarge, c5*.*, m5a.*, r*, *3*. For example, if you specify c5*,Amazon EC2 will exclude the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, Amazon EC2 will exclude all the M5a instance types, but not the M5n instance types. If you specify ExcludedInstanceTypes, you can't specify AllowedInstanceTypes. Default: No excluded instance types"];instanceGenerations:InstanceGenerationSet.toption[@ocaml.doc"Indicates whether current or previous generation instance types are included. The current generation instance types are recommended for use. Current generation instance types are typically the latest two to three generations in each instance family. For more information, see Instance types in the Amazon EC2 User Guide. For current generation instance types, specify current. For previous generation instance types, specify previous. Default: Current and previous generation instance types"];spotMaxPricePercentageOverLowestPrice:Integer.toption[@ocaml.doc"\\[Price protection\\] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the Spot price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified Spot price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose Spot price exceeds your specified threshold. The parameter accepts an integer, which Amazon EC2 interprets as a percentage. If you set TargetCapacityUnitType to vcpu or memory-mib, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price. This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements. Only one of SpotMaxPricePercentageOverLowestPrice or MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as 999999. Default: 100"];onDemandMaxPricePercentageOverLowestPrice:Integer.toption[@ocaml.doc"\\[Price protection\\] The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold. The parameter accepts an integer, which Amazon EC2 interprets as a percentage. To indicate no price protection threshold, specify a high value, such as 999999. This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements. If you set TargetCapacityUnitType to vcpu or memory-mib, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price. Default: 20"];bareMetal:BareMetal.toption[@ocaml.doc"Indicates whether bare metal instance types must be included, excluded, or required. To include bare metal instance types, specify included. To require only bare metal instance types, specify required. To exclude bare metal instance types, specify excluded. Default: excluded"];burstablePerformance:BurstablePerformance.toption[@ocaml.doc"Indicates whether burstable performance T instance types are included, excluded, or required. For more information, see Burstable performance instances. To include burstable performance instance types, specify included. To require only burstable performance instance types, specify required. To exclude burstable performance instance types, specify excluded. Default: excluded"];requireHibernateSupport:Boolean.toption[@ocaml.doc"Indicates whether instance types must support hibernation for On-Demand Instances. This parameter is not supported for GetSpotPlacementScores. Default: false"];networkInterfaceCount:NetworkInterfaceCountRequest.toption[@ocaml.doc"The minimum and maximum number of network interfaces. Default: No minimum or maximum limits"];localStorage:LocalStorage.toption[@ocaml.doc"Indicates whether instance types with instance store volumes are included, excluded, or required. For more information, Amazon EC2 instance store in the Amazon EC2 User Guide. To include instance types with instance store volumes, specify included. To require only instance types with instance store volumes, specify required. To exclude instance types with instance store volumes, specify excluded. Default: included"];localStorageTypes:LocalStorageTypeSet.toption[@ocaml.doc"The type of local storage that is required. For instance types with hard disk drive (HDD) storage, specify hdd. For instance types with solid state drive (SSD) storage, specify ssd. Default: hdd and ssd"];totalLocalStorageGB:TotalLocalStorageGBRequest.toption[@ocaml.doc"The minimum and maximum amount of total local storage, in GB. Default: No minimum or maximum limits"];baselineEbsBandwidthMbps:BaselineEbsBandwidthMbpsRequest.toption[@ocaml.doc"The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see Amazon EBS\226\128\147optimized instances in the Amazon EC2 User Guide. Default: No minimum or maximum limits"];acceleratorTypes:AcceleratorTypeSet.toption[@ocaml.doc"The accelerator types that must be on the instance type. For instance types with FPGA accelerators, specify fpga. For instance types with GPU accelerators, specify gpu. For instance types with Inference accelerators, specify inference. For instance types with Media accelerators, specify media. Default: Any accelerator type"];acceleratorCount:AcceleratorCountRequest.toption[@ocaml.doc"The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web Services Inferentia chips) on an instance. To exclude accelerator-enabled instance types, set Max to 0. Default: No minimum or maximum limits"];acceleratorManufacturers:AcceleratorManufacturerSet.toption[@ocaml.doc"Indicates whether instance types must have accelerators by specific manufacturers. For instance types with Amazon Web Services devices, specify amazon-web-services. For instance types with AMD devices, specify amd. For instance types with Habana devices, specify habana. For instance types with NVIDIA devices, specify nvidia. For instance types with Xilinx devices, specify xilinx. Default: Any manufacturer"];acceleratorNames:AcceleratorNameSet.toption[@ocaml.doc"The accelerators that must be on the instance type. For instance types with NVIDIA A10G GPUs, specify a10g. For instance types with NVIDIA A100 GPUs, specify a100. For instance types with NVIDIA H100 GPUs, specify h100. For instance types with Amazon Web Services Inferentia chips, specify inferentia. For instance types with Amazon Web Services Inferentia2 chips, specify inferentia2. For instance types with Habana Gaudi HL-205 GPUs, specify gaudi-hl-205. For instance types with NVIDIA GRID K520 GPUs, specify k520. For instance types with NVIDIA K80 GPUs, specify k80. For instance types with NVIDIA L4 GPUs, specify l4. For instance types with NVIDIA L40S GPUs, specify l40s. For instance types with NVIDIA M60 GPUs, specify m60. For instance types with AMD Radeon Pro V520 GPUs, specify radeon-pro-v520. For instance types with Amazon Web Services Trainium chips, specify trainium. For instance types with Amazon Web Services Trainium2 chips, specify trainium2. For instance types with NVIDIA T4 GPUs, specify t4. For instance types with NVIDIA T4G GPUs, specify t4g. For instance types with Xilinx U30 cards, specify u30. For instance types with Xilinx VU9P FPGAs, specify vu9p. For instance types with NVIDIA V100 GPUs, specify v100. Default: Any accelerator"];acceleratorTotalMemoryMiB:AcceleratorTotalMemoryMiBRequest.toption[@ocaml.doc"The minimum and maximum amount of total accelerator memory, in MiB. Default: No minimum or maximum limits"];networkBandwidthGbps:NetworkBandwidthGbpsRequest.toption[@ocaml.doc"The minimum and maximum amount of baseline network bandwidth, in gigabits per second (Gbps). For more information, see Amazon EC2 instance network bandwidth in the Amazon EC2 User Guide. Default: No minimum or maximum limits"];allowedInstanceTypes:AllowedInstanceTypeSet.toption[@ocaml.doc"The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes. You can use strings with one or more wild cards, represented by an asterisk (*), to allow an instance type, size, or generation. The following are examples: m5.8xlarge, c5*.*, m5a.*, r*, *3*. For example, if you specify c5*,Amazon EC2 will allow the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, Amazon EC2 will allow all the M5a instance types, but not the M5n instance types. If you specify AllowedInstanceTypes, you can't specify ExcludedInstanceTypes. Default: All instance types"];maxSpotPriceAsPercentageOfOptimalOnDemandPrice:Integer.toption[@ocaml.doc"\\[Price protection\\] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold. The parameter accepts an integer, which Amazon EC2 interprets as a percentage. If you set TargetCapacityUnitType to vcpu or memory-mib, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price. Only one of SpotMaxPricePercentageOverLowestPrice or MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as 999999."];baselinePerformanceFactors:BaselinePerformanceFactorsRequest.toption[@ocaml.doc"The baseline performance to consider, using an instance family as a baseline reference. The instance family establishes the lowest acceptable level of performance. Amazon EC2 uses this baseline to guide instance type selection, but there is no guarantee that the selected instance types will always exceed the baseline for every application. Currently, this parameter only supports CPU performance as a baseline performance factor. For more information, see Performance protection in the Amazon EC2 User Guide."];requireEncryptionInTransit:Boolean.toption[@ocaml.doc"Specifies whether instance types must support encrypting in-transit traffic between instances. For more information, including the supported instance types, see Encryption in transit in the Amazon EC2 User Guide. Default: false"]}letcontext_="InstanceRequirementsRequest"letmake?cpuManufacturers=fun?memoryGiBPerVCpu->fun?excludedInstanceTypes->fun?instanceGenerations->fun?spotMaxPricePercentageOverLowestPrice->fun?onDemandMaxPricePercentageOverLowestPrice->fun?bareMetal->fun?burstablePerformance->fun?requireHibernateSupport->fun?networkInterfaceCount->fun?localStorage->fun?localStorageTypes->fun?totalLocalStorageGB->fun?baselineEbsBandwidthMbps->fun?acceleratorTypes->fun?acceleratorCount->fun?acceleratorManufacturers->fun?acceleratorNames->fun?acceleratorTotalMemoryMiB->fun?networkBandwidthGbps->fun?allowedInstanceTypes->fun?maxSpotPriceAsPercentageOfOptimalOnDemandPrice->fun?baselinePerformanceFactors->fun?requireEncryptionInTransit->fun~vCpuCount->fun~memoryMiB->fun()->{cpuManufacturers;memoryGiBPerVCpu;excludedInstanceTypes;instanceGenerations;spotMaxPricePercentageOverLowestPrice;onDemandMaxPricePercentageOverLowestPrice;bareMetal;burstablePerformance;requireHibernateSupport;networkInterfaceCount;localStorage;localStorageTypes;totalLocalStorageGB;baselineEbsBandwidthMbps;acceleratorTypes;acceleratorCount;acceleratorManufacturers;acceleratorNames;acceleratorTotalMemoryMiB;networkBandwidthGbps;allowedInstanceTypes;maxSpotPriceAsPercentageOfOptimalOnDemandPrice;baselinePerformanceFactors;requireEncryptionInTransit;vCpuCount;memoryMiB}letto_valuex=structure_to_value[("VCpuCount",(Some(VCpuCountRangeRequest.to_valuex.vCpuCount)));("MemoryMiB",(Some(MemoryMiBRequest.to_valuex.memoryMiB)));("CpuManufacturer",(Option.mapx.cpuManufacturers~f:CpuManufacturerSet.to_value));("MemoryGiBPerVCpu",(Option.mapx.memoryGiBPerVCpu~f:MemoryGiBPerVCpuRequest.to_value));("ExcludedInstanceType",(Option.mapx.excludedInstanceTypes~f:ExcludedInstanceTypeSet.to_value));("InstanceGeneration",(Option.mapx.instanceGenerations~f:InstanceGenerationSet.to_value));("SpotMaxPricePercentageOverLowestPrice",(Option.mapx.spotMaxPricePercentageOverLowestPrice~f:Integer.to_value));("OnDemandMaxPricePercentageOverLowestPrice",(Option.mapx.onDemandMaxPricePercentageOverLowestPrice~f:Integer.to_value));("BareMetal",(Option.mapx.bareMetal~f:BareMetal.to_value));("BurstablePerformance",(Option.mapx.burstablePerformance~f:BurstablePerformance.to_value));("RequireHibernateSupport",(Option.mapx.requireHibernateSupport~f:Boolean.to_value));("NetworkInterfaceCount",(Option.mapx.networkInterfaceCount~f:NetworkInterfaceCountRequest.to_value));("LocalStorage",(Option.mapx.localStorage~f:LocalStorage.to_value));("LocalStorageType",(Option.mapx.localStorageTypes~f:LocalStorageTypeSet.to_value));("TotalLocalStorageGB",(Option.mapx.totalLocalStorageGB~f:TotalLocalStorageGBRequest.to_value));("BaselineEbsBandwidthMbps",(Option.mapx.baselineEbsBandwidthMbps~f:BaselineEbsBandwidthMbpsRequest.to_value));("AcceleratorType",(Option.mapx.acceleratorTypes~f:AcceleratorTypeSet.to_value));("AcceleratorCount",(Option.mapx.acceleratorCount~f:AcceleratorCountRequest.to_value));("AcceleratorManufacturer",(Option.mapx.acceleratorManufacturers~f:AcceleratorManufacturerSet.to_value));("AcceleratorName",(Option.mapx.acceleratorNames~f:AcceleratorNameSet.to_value));("AcceleratorTotalMemoryMiB",(Option.mapx.acceleratorTotalMemoryMiB~f:AcceleratorTotalMemoryMiBRequest.to_value));("NetworkBandwidthGbps",(Option.mapx.networkBandwidthGbps~f:NetworkBandwidthGbpsRequest.to_value));("AllowedInstanceType",(Option.mapx.allowedInstanceTypes~f:AllowedInstanceTypeSet.to_value));("MaxSpotPriceAsPercentageOfOptimalOnDemandPrice",(Option.mapx.maxSpotPriceAsPercentageOfOptimalOnDemandPrice~f:Integer.to_value));("BaselinePerformanceFactors",(Option.mapx.baselinePerformanceFactors~f:BaselinePerformanceFactorsRequest.to_value));("RequireEncryptionInTransit",(Option.mapx.requireEncryptionInTransit~f:Boolean.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letrequireEncryptionInTransit=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"RequireEncryptionInTransit")inletbaselinePerformanceFactors=(Option.map~f:BaselinePerformanceFactorsRequest.of_xml)(Xml.childxml_arg0"BaselinePerformanceFactors")inletmaxSpotPriceAsPercentageOfOptimalOnDemandPrice=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"MaxSpotPriceAsPercentageOfOptimalOnDemandPrice")inletallowedInstanceTypes=(Option.map~f:AllowedInstanceTypeSet.of_xml)(Xml.childxml_arg0"AllowedInstanceType")inletnetworkBandwidthGbps=(Option.map~f:NetworkBandwidthGbpsRequest.of_xml)(Xml.childxml_arg0"NetworkBandwidthGbps")inletacceleratorTotalMemoryMiB=(Option.map~f:AcceleratorTotalMemoryMiBRequest.of_xml)(Xml.childxml_arg0"AcceleratorTotalMemoryMiB")inletacceleratorNames=(Option.map~f:AcceleratorNameSet.of_xml)(Xml.childxml_arg0"AcceleratorName")inletacceleratorManufacturers=(Option.map~f:AcceleratorManufacturerSet.of_xml)(Xml.childxml_arg0"AcceleratorManufacturer")inletacceleratorCount=(Option.map~f:AcceleratorCountRequest.of_xml)(Xml.childxml_arg0"AcceleratorCount")inletacceleratorTypes=(Option.map~f:AcceleratorTypeSet.of_xml)(Xml.childxml_arg0"AcceleratorType")inletbaselineEbsBandwidthMbps=(Option.map~f:BaselineEbsBandwidthMbpsRequest.of_xml)(Xml.childxml_arg0"BaselineEbsBandwidthMbps")inlettotalLocalStorageGB=(Option.map~f:TotalLocalStorageGBRequest.of_xml)(Xml.childxml_arg0"TotalLocalStorageGB")inletlocalStorageTypes=(Option.map~f:LocalStorageTypeSet.of_xml)(Xml.childxml_arg0"LocalStorageType")inletlocalStorage=(Option.map~f:LocalStorage.of_xml)(Xml.childxml_arg0"LocalStorage")inletnetworkInterfaceCount=(Option.map~f:NetworkInterfaceCountRequest.of_xml)(Xml.childxml_arg0"NetworkInterfaceCount")inletrequireHibernateSupport=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"RequireHibernateSupport")inletburstablePerformance=(Option.map~f:BurstablePerformance.of_xml)(Xml.childxml_arg0"BurstablePerformance")inletbareMetal=(Option.map~f:BareMetal.of_xml)(Xml.childxml_arg0"BareMetal")inletonDemandMaxPricePercentageOverLowestPrice=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"OnDemandMaxPricePercentageOverLowestPrice")inletspotMaxPricePercentageOverLowestPrice=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"SpotMaxPricePercentageOverLowestPrice")inletinstanceGenerations=(Option.map~f:InstanceGenerationSet.of_xml)(Xml.childxml_arg0"InstanceGeneration")inletexcludedInstanceTypes=(Option.map~f:ExcludedInstanceTypeSet.of_xml)(Xml.childxml_arg0"ExcludedInstanceType")inletmemoryGiBPerVCpu=(Option.map~f:MemoryGiBPerVCpuRequest.of_xml)(Xml.childxml_arg0"MemoryGiBPerVCpu")inletcpuManufacturers=(Option.map~f:CpuManufacturerSet.of_xml)(Xml.childxml_arg0"CpuManufacturer")inletmemoryMiB=MemoryMiBRequest.of_xml(Xml.child_exn~context:context_xml_arg0"MemoryMiB")inletvCpuCount=VCpuCountRangeRequest.of_xml(Xml.child_exn~context:context_xml_arg0"VCpuCount")inmake?requireEncryptionInTransit?baselinePerformanceFactors?maxSpotPriceAsPercentageOfOptimalOnDemandPrice?allowedInstanceTypes?networkBandwidthGbps?acceleratorTotalMemoryMiB?acceleratorNames?acceleratorManufacturers?acceleratorCount?acceleratorTypes?baselineEbsBandwidthMbps?totalLocalStorageGB?localStorageTypes?localStorage?networkInterfaceCount?requireHibernateSupport?burstablePerformance?bareMetal?onDemandMaxPricePercentageOverLowestPrice?spotMaxPricePercentageOverLowestPrice?instanceGenerations?excludedInstanceTypes?memoryGiBPerVCpu?cpuManufacturers~memoryMiB~vCpuCount()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letrequireEncryptionInTransit=field_mapjson__"RequireEncryptionInTransit"Boolean.of_jsoninletbaselinePerformanceFactors=field_mapjson__"BaselinePerformanceFactors"BaselinePerformanceFactorsRequest.of_jsoninletmaxSpotPriceAsPercentageOfOptimalOnDemandPrice=field_mapjson__"MaxSpotPriceAsPercentageOfOptimalOnDemandPrice"Integer.of_jsoninletallowedInstanceTypes=field_mapjson__"AllowedInstanceTypes"AllowedInstanceTypeSet.of_jsoninletnetworkBandwidthGbps=field_mapjson__"NetworkBandwidthGbps"NetworkBandwidthGbpsRequest.of_jsoninletacceleratorTotalMemoryMiB=field_mapjson__"AcceleratorTotalMemoryMiB"AcceleratorTotalMemoryMiBRequest.of_jsoninletacceleratorNames=field_mapjson__"AcceleratorNames"AcceleratorNameSet.of_jsoninletacceleratorManufacturers=field_mapjson__"AcceleratorManufacturers"AcceleratorManufacturerSet.of_jsoninletacceleratorCount=field_mapjson__"AcceleratorCount"AcceleratorCountRequest.of_jsoninletacceleratorTypes=field_mapjson__"AcceleratorTypes"AcceleratorTypeSet.of_jsoninletbaselineEbsBandwidthMbps=field_mapjson__"BaselineEbsBandwidthMbps"BaselineEbsBandwidthMbpsRequest.of_jsoninlettotalLocalStorageGB=field_mapjson__"TotalLocalStorageGB"TotalLocalStorageGBRequest.of_jsoninletlocalStorageTypes=field_mapjson__"LocalStorageTypes"LocalStorageTypeSet.of_jsoninletlocalStorage=field_mapjson__"LocalStorage"LocalStorage.of_jsoninletnetworkInterfaceCount=field_mapjson__"NetworkInterfaceCount"NetworkInterfaceCountRequest.of_jsoninletrequireHibernateSupport=field_mapjson__"RequireHibernateSupport"Boolean.of_jsoninletburstablePerformance=field_mapjson__"BurstablePerformance"BurstablePerformance.of_jsoninletbareMetal=field_mapjson__"BareMetal"BareMetal.of_jsoninletonDemandMaxPricePercentageOverLowestPrice=field_mapjson__"OnDemandMaxPricePercentageOverLowestPrice"Integer.of_jsoninletspotMaxPricePercentageOverLowestPrice=field_mapjson__"SpotMaxPricePercentageOverLowestPrice"Integer.of_jsoninletinstanceGenerations=field_mapjson__"InstanceGenerations"InstanceGenerationSet.of_jsoninletexcludedInstanceTypes=field_mapjson__"ExcludedInstanceTypes"ExcludedInstanceTypeSet.of_jsoninletmemoryGiBPerVCpu=field_mapjson__"MemoryGiBPerVCpu"MemoryGiBPerVCpuRequest.of_jsoninletcpuManufacturers=field_mapjson__"CpuManufacturers"CpuManufacturerSet.of_jsoninletmemoryMiB=field_map_exnjson__"MemoryMiB"MemoryMiBRequest.of_jsoninletvCpuCount=field_map_exnjson__"VCpuCount"VCpuCountRangeRequest.of_jsoninmake?requireEncryptionInTransit?baselinePerformanceFactors?maxSpotPriceAsPercentageOfOptimalOnDemandPrice?allowedInstanceTypes?networkBandwidthGbps?acceleratorTotalMemoryMiB?acceleratorNames?acceleratorManufacturers?acceleratorCount?acceleratorTypes?baselineEbsBandwidthMbps?totalLocalStorageGB?localStorageTypes?localStorage?networkInterfaceCount?requireHibernateSupport?burstablePerformance?bareMetal?onDemandMaxPricePercentageOverLowestPrice?spotMaxPricePercentageOverLowestPrice?instanceGenerations?excludedInstanceTypes?memoryGiBPerVCpu?cpuManufacturers~memoryMiB~vCpuCount()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes. You must specify VCpuCount and MemoryMiB. All other attributes are optional. Any unspecified optional attribute is set to its default. When you specify multiple attributes, you get instance types that satisfy all of the specified attributes. If you specify multiple values for an attribute, you get instance types that satisfy any of the specified values. To limit the list of instance types from which Amazon EC2 can identify matching instance types, you can use one of the following parameters, but not both in the same request: AllowedInstanceTypes - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes. ExcludedInstanceTypes - The instance types to exclude from the list, even if they match your specified attributes. If you specify InstanceRequirements, you can't specify InstanceType. Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the launch instance wizard, or with the RunInstances API or AWS::EC2::Instance Amazon Web Services CloudFormation resource, you can't specify InstanceRequirements. For more information, see Specify attributes for instance type selection for EC2 Fleet or Spot Fleet and Spot placement score in the Amazon EC2 User Guide."]modulePlacement=structtypenonrect={availabilityZoneId:AvailabilityZoneId.toption[@ocaml.doc"The ID of the Availability Zone of the instance. On input, you can specify AvailabilityZone or AvailabilityZoneId, but not both. If you specify neither one, Amazon EC2 automatically selects an Availability Zone for you. This parameter is not supported for CreateFleet."];affinity:String_.toption[@ocaml.doc"The affinity setting for the instance on the Dedicated Host. This parameter is not supported for CreateFleet or ImportInstance."];groupName:PlacementGroupName.toption[@ocaml.doc"The name of the placement group that the instance is in. On input, you can specify GroupId or GroupName, but not both."];partitionNumber:Integer.toption[@ocaml.doc"The number of the partition that the instance is in. Valid only if the placement group strategy is set to partition. This parameter is not supported for CreateFleet."];hostId:String_.toption[@ocaml.doc"The ID of the Dedicated Host on which the instance resides. This parameter is not supported for CreateFleet or ImportInstance."];tenancy:Tenancy.toption[@ocaml.doc"The tenancy of the instance. An instance with a tenancy of dedicated runs on single-tenant hardware. This parameter is not supported for CreateFleet. The host tenancy is not supported for ImportInstance or for T3 instances that are configured for the unlimited CPU credit option."];spreadDomain:String_.toption[@ocaml.doc"Reserved for future use."];hostResourceGroupArn:String_.toption[@ocaml.doc"The ARN of the host resource group in which to launch the instances. On input, if you specify this parameter, either omit the Tenancy parameter or set it to host. This parameter is not supported for CreateFleet."];groupId:PlacementGroupId.toption[@ocaml.doc"The ID of the placement group that the instance is in. On input, you can specify GroupId or GroupName, but not both."];availabilityZone:String_.toption[@ocaml.doc"The Availability Zone of the instance. On input, you can specify AvailabilityZone or AvailabilityZoneId, but not both. If you specify neither one, Amazon EC2 automatically selects an Availability Zone for you. This parameter is not supported for CreateFleet."]}letmake?availabilityZoneId=fun?affinity->fun?groupName->fun?partitionNumber->fun?hostId->fun?tenancy->fun?spreadDomain->fun?hostResourceGroupArn->fun?groupId->fun?availabilityZone->fun()->{availabilityZoneId;affinity;groupName;partitionNumber;hostId;tenancy;spreadDomain;hostResourceGroupArn;groupId;availabilityZone}letto_valuex=structure_to_value[("availabilityZoneId",(Option.mapx.availabilityZoneId~f:AvailabilityZoneId.to_value));("affinity",(Option.mapx.affinity~f:String_.to_value));("groupName",(Option.mapx.groupName~f:PlacementGroupName.to_value));("partitionNumber",(Option.mapx.partitionNumber~f:Integer.to_value));("hostId",(Option.mapx.hostId~f:String_.to_value));("tenancy",(Option.mapx.tenancy~f:Tenancy.to_value));("spreadDomain",(Option.mapx.spreadDomain~f:String_.to_value));("hostResourceGroupArn",(Option.mapx.hostResourceGroupArn~f:String_.to_value));("groupId",(Option.mapx.groupId~f:PlacementGroupId.to_value));("availabilityZone",(Option.mapx.availabilityZone~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letavailabilityZone=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"availabilityZone")inletgroupId=(Option.map~f:PlacementGroupId.of_xml)(Xml.childxml_arg0"groupId")inlethostResourceGroupArn=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"hostResourceGroupArn")inletspreadDomain=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"spreadDomain")inlettenancy=(Option.map~f:Tenancy.of_xml)(Xml.childxml_arg0"tenancy")inlethostId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"hostId")inletpartitionNumber=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"partitionNumber")inletgroupName=(Option.map~f:PlacementGroupName.of_xml)(Xml.childxml_arg0"groupName")inletaffinity=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"affinity")inletavailabilityZoneId=(Option.map~f:AvailabilityZoneId.of_xml)(Xml.childxml_arg0"availabilityZoneId")inmake?availabilityZone?groupId?hostResourceGroupArn?spreadDomain?tenancy?hostId?partitionNumber?groupName?affinity?availabilityZoneId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letavailabilityZone=field_mapjson__"AvailabilityZone"String_.of_jsoninletgroupId=field_mapjson__"GroupId"PlacementGroupId.of_jsoninlethostResourceGroupArn=field_mapjson__"HostResourceGroupArn"String_.of_jsoninletspreadDomain=field_mapjson__"SpreadDomain"String_.of_jsoninlettenancy=field_mapjson__"Tenancy"Tenancy.of_jsoninlethostId=field_mapjson__"HostId"String_.of_jsoninletpartitionNumber=field_mapjson__"PartitionNumber"Integer.of_jsoninletgroupName=field_mapjson__"GroupName"PlacementGroupName.of_jsoninletaffinity=field_mapjson__"Affinity"String_.of_jsoninletavailabilityZoneId=field_mapjson__"AvailabilityZoneId"AvailabilityZoneId.of_jsoninmake?availabilityZone?groupId?hostResourceGroupArn?spreadDomain?tenancy?hostId?partitionNumber?groupName?affinity?availabilityZoneId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the placement of an instance."]moduleRouteServerRouteInstallationStatus=structtypenonrect=|Installed|Rejected|Non_static_idofstringletmakei=iletto_string=function|Installed->"installed"|Rejected->"rejected"|Non_static_ids->sletof_string=function|"installed"->Installed|"rejected"->Rejected|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 RouteServerRouteInstallationStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"RouteServerRouteInstallationStatus"j)letto_json=simple_to_jsonto_valueendmoduleRouteTableId=structtypenonrect=stringletcontext_="RouteTableId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"RouteTableId"jletto_json=simple_to_jsonto_valueendmodulePacketHeaderStatement=structtypenonrect={sourceAddresses:ValueStringList.toption[@ocaml.doc"The source addresses."];destinationAddresses:ValueStringList.toption[@ocaml.doc"The destination addresses."];sourcePorts:ValueStringList.toption[@ocaml.doc"The source ports."];destinationPorts:ValueStringList.toption[@ocaml.doc"The destination ports."];sourcePrefixLists:ValueStringList.toption[@ocaml.doc"The source prefix lists."];destinationPrefixLists:ValueStringList.toption[@ocaml.doc"The destination prefix lists."];protocols:ProtocolList.toption[@ocaml.doc"The protocols."]}letmake?sourceAddresses=fun?destinationAddresses->fun?sourcePorts->fun?destinationPorts->fun?sourcePrefixLists->fun?destinationPrefixLists->fun?protocols->fun()->{sourceAddresses;destinationAddresses;sourcePorts;destinationPorts;sourcePrefixLists;destinationPrefixLists;protocols}letto_valuex=structure_to_value[("sourceAddressSet",(Option.mapx.sourceAddresses~f:ValueStringList.to_value));("destinationAddressSet",(Option.mapx.destinationAddresses~f:ValueStringList.to_value));("sourcePortSet",(Option.mapx.sourcePorts~f:ValueStringList.to_value));("destinationPortSet",(Option.mapx.destinationPorts~f:ValueStringList.to_value));("sourcePrefixListSet",(Option.mapx.sourcePrefixLists~f:ValueStringList.to_value));("destinationPrefixListSet",(Option.mapx.destinationPrefixLists~f:ValueStringList.to_value));("protocolSet",(Option.mapx.protocols~f:ProtocolList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letprotocols=(Option.map~f:ProtocolList.of_xml)(Xml.childxml_arg0"protocolSet")inletdestinationPrefixLists=(Option.map~f:ValueStringList.of_xml)(Xml.childxml_arg0"destinationPrefixListSet")inletsourcePrefixLists=(Option.map~f:ValueStringList.of_xml)(Xml.childxml_arg0"sourcePrefixListSet")inletdestinationPorts=(Option.map~f:ValueStringList.of_xml)(Xml.childxml_arg0"destinationPortSet")inletsourcePorts=(Option.map~f:ValueStringList.of_xml)(Xml.childxml_arg0"sourcePortSet")inletdestinationAddresses=(Option.map~f:ValueStringList.of_xml)(Xml.childxml_arg0"destinationAddressSet")inletsourceAddresses=(Option.map~f:ValueStringList.of_xml)(Xml.childxml_arg0"sourceAddressSet")inmake?protocols?destinationPrefixLists?sourcePrefixLists?destinationPorts?sourcePorts?destinationAddresses?sourceAddresses()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letprotocols=field_mapjson__"Protocols"ProtocolList.of_jsoninletdestinationPrefixLists=field_mapjson__"DestinationPrefixLists"ValueStringList.of_jsoninletsourcePrefixLists=field_mapjson__"SourcePrefixLists"ValueStringList.of_jsoninletdestinationPorts=field_mapjson__"DestinationPorts"ValueStringList.of_jsoninletsourcePorts=field_mapjson__"SourcePorts"ValueStringList.of_jsoninletdestinationAddresses=field_mapjson__"DestinationAddresses"ValueStringList.of_jsoninletsourceAddresses=field_mapjson__"SourceAddresses"ValueStringList.of_jsoninmake?protocols?destinationPrefixLists?sourcePrefixLists?destinationPorts?sourcePorts?destinationAddresses?sourceAddresses()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a packet header statement."]moduleThroughResourcesStatement=structtypenonrect={resourceStatement:ResourceStatement.toption[@ocaml.doc"The resource statement."]}letmake?resourceStatement=fun()->{resourceStatement}letto_valuex=structure_to_value[("resourceStatement",(Option.mapx.resourceStatement~f:ResourceStatement.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceStatement=(Option.map~f:ResourceStatement.of_xml)(Xml.childxml_arg0"resourceStatement")inmake?resourceStatement()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceStatement=field_mapjson__"ResourceStatement"ResourceStatement.of_jsoninmake?resourceStatement()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a through resource statement."]moduleAdditionalDetailList=structtypenonrect=AdditionalDetail.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:AdditionalDetail.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:AdditionalDetail.of_xml)letof_jsonj=list_of_json~kind:"AdditionalDetailList"~of_json:AdditionalDetail.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAnalysisPacketHeader=structtypenonrect={destinationAddresses:IpAddressList.toption[@ocaml.doc"The destination addresses."];destinationPortRanges:PortRangeList.toption[@ocaml.doc"The destination port ranges."];protocol:String_.toption[@ocaml.doc"The protocol."];sourceAddresses:IpAddressList.toption[@ocaml.doc"The source addresses."];sourcePortRanges:PortRangeList.toption[@ocaml.doc"The source port ranges."]}letmake?destinationAddresses=fun?destinationPortRanges->fun?protocol->fun?sourceAddresses->fun?sourcePortRanges->fun()->{destinationAddresses;destinationPortRanges;protocol;sourceAddresses;sourcePortRanges}letto_valuex=structure_to_value[("destinationAddressSet",(Option.mapx.destinationAddresses~f:IpAddressList.to_value));("destinationPortRangeSet",(Option.mapx.destinationPortRanges~f:PortRangeList.to_value));("protocol",(Option.mapx.protocol~f:String_.to_value));("sourceAddressSet",(Option.mapx.sourceAddresses~f:IpAddressList.to_value));("sourcePortRangeSet",(Option.mapx.sourcePortRanges~f:PortRangeList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsourcePortRanges=(Option.map~f:PortRangeList.of_xml)(Xml.childxml_arg0"sourcePortRangeSet")inletsourceAddresses=(Option.map~f:IpAddressList.of_xml)(Xml.childxml_arg0"sourceAddressSet")inletprotocol=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"protocol")inletdestinationPortRanges=(Option.map~f:PortRangeList.of_xml)(Xml.childxml_arg0"destinationPortRangeSet")inletdestinationAddresses=(Option.map~f:IpAddressList.of_xml)(Xml.childxml_arg0"destinationAddressSet")inmake?sourcePortRanges?sourceAddresses?protocol?destinationPortRanges?destinationAddresses()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsourcePortRanges=field_mapjson__"SourcePortRanges"PortRangeList.of_jsoninletsourceAddresses=field_mapjson__"SourceAddresses"IpAddressList.of_jsoninletprotocol=field_mapjson__"Protocol"String_.of_jsoninletdestinationPortRanges=field_mapjson__"DestinationPortRanges"PortRangeList.of_jsoninletdestinationAddresses=field_mapjson__"DestinationAddresses"IpAddressList.of_jsoninmake?sourcePortRanges?sourceAddresses?protocol?destinationPortRanges?destinationAddresses()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a header. Reflects any changes made by a component as traffic passes through. The fields of an inbound header are null except for the first component of a path."]moduleExplanationList=structtypenonrect=Explanation.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Explanation.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:Explanation.of_xml)letof_jsonj=list_of_json~kind:"ExplanationList"~of_json:Explanation.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleIpamResourceTag=structtypenonrect={key:String_.toption[@ocaml.doc"The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value."];value:String_.toption[@ocaml.doc"The value of the tag."]}letmake?key=fun?value->fun()->{key;value}letto_valuex=structure_to_value[("key",(Option.mapx.key~f:String_.to_value));("value",(Option.mapx.value~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvalue=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"value")inletkey=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"key")inmake?value?key()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvalue=field_mapjson__"Value"String_.of_jsoninletkey=field_mapjson__"Key"String_.of_jsoninmake?value?key()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value."]moduleIpamPoolId=structtypenonrect=stringletcontext_="IpamPoolId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"IpamPoolId"jletto_json=simple_to_jsonto_valueendmoduleIpamPublicAddressTag=structtypenonrect={key:String_.toption[@ocaml.doc"The tag's key."];value:String_.toption[@ocaml.doc"The tag's value."]}letmake?key=fun?value->fun()->{key;value}letto_valuex=structure_to_value[("key",(Option.mapx.key~f:String_.to_value));("value",(Option.mapx.value~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvalue=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"value")inletkey=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"key")inmake?value?key()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvalue=field_mapjson__"Value"String_.of_jsoninletkey=field_mapjson__"Key"String_.of_jsoninmake?value?key()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A tag for a public IP address discovered by IPAM."]moduleConditionValue=structtypenonrect=stringletcontext_="ConditionValue"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:300)>>=(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:"ConditionValue"jletto_json=simple_to_jsonto_valueendmoduleCapacityManagerTagDimension=structtypenonrect={key:String_.toption[@ocaml.doc"The tag key."];value:String_.toption[@ocaml.doc"The tag value."]}letmake?key=fun?value->fun()->{key;value}letto_valuex=structure_to_value[("key",(Option.mapx.key~f:String_.to_value));("value",(Option.mapx.value~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvalue=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"value")inletkey=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"key")inmake?value?key()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvalue=field_mapjson__"Value"String_.of_jsoninletkey=field_mapjson__"Key"String_.of_jsoninmake?value?key()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A key-value pair representing a tag associated with a capacity resource in Capacity Manager."]moduleMetric=structtypenonrect=|Reservation_total_capacity_hrs_vcpu|Reservation_total_capacity_hrs_inst|Reservation_max_size_vcpu|Reservation_max_size_inst|Reservation_min_size_vcpu|Reservation_min_size_inst|Reservation_unused_total_capacity_hrs_vcpu|Reservation_unused_total_capacity_hrs_inst|Reservation_unused_total_estimated_cost|Reservation_max_unused_size_vcpu|Reservation_max_unused_size_inst|Reservation_min_unused_size_vcpu|Reservation_min_unused_size_inst|Reservation_max_utilization|Reservation_min_utilization|Reservation_avg_utilization_vcpu|Reservation_avg_utilization_inst|Reservation_total_count|Reservation_total_estimated_cost|Reservation_avg_future_size_vcpu|Reservation_avg_future_size_inst|Reservation_min_future_size_vcpu|Reservation_min_future_size_inst|Reservation_max_future_size_vcpu|Reservation_max_future_size_inst|Reservation_avg_committed_size_vcpu|Reservation_avg_committed_size_inst|Reservation_max_committed_size_vcpu|Reservation_max_committed_size_inst|Reservation_min_committed_size_vcpu|Reservation_min_committed_size_inst|Reserved_total_usage_hrs_vcpu|Reserved_total_usage_hrs_inst|Reserved_total_estimated_cost|Unreserved_total_usage_hrs_vcpu|Unreserved_total_usage_hrs_inst|Unreserved_total_estimated_cost|Spot_total_usage_hrs_vcpu|Spot_total_usage_hrs_inst|Spot_total_estimated_cost|Spot_avg_run_time_before_interruption_inst|Spot_max_run_time_before_interruption_inst|Spot_min_run_time_before_interruption_inst|Spot_total_interruptions_inst|Spot_total_interruptions_vcpu|Spot_total_count_inst|Spot_total_count_vcpu|Spot_interruption_rate_inst|Spot_interruption_rate_vcpu|Non_static_idofstringletmakei=iletto_string=function|Reservation_total_capacity_hrs_vcpu->"reservation-total-capacity-hrs-vcpu"|Reservation_total_capacity_hrs_inst->"reservation-total-capacity-hrs-inst"|Reservation_max_size_vcpu->"reservation-max-size-vcpu"|Reservation_max_size_inst->"reservation-max-size-inst"|Reservation_min_size_vcpu->"reservation-min-size-vcpu"|Reservation_min_size_inst->"reservation-min-size-inst"|Reservation_unused_total_capacity_hrs_vcpu->"reservation-unused-total-capacity-hrs-vcpu"|Reservation_unused_total_capacity_hrs_inst->"reservation-unused-total-capacity-hrs-inst"|Reservation_unused_total_estimated_cost->"reservation-unused-total-estimated-cost"|Reservation_max_unused_size_vcpu->"reservation-max-unused-size-vcpu"|Reservation_max_unused_size_inst->"reservation-max-unused-size-inst"|Reservation_min_unused_size_vcpu->"reservation-min-unused-size-vcpu"|Reservation_min_unused_size_inst->"reservation-min-unused-size-inst"|Reservation_max_utilization->"reservation-max-utilization"|Reservation_min_utilization->"reservation-min-utilization"|Reservation_avg_utilization_vcpu->"reservation-avg-utilization-vcpu"|Reservation_avg_utilization_inst->"reservation-avg-utilization-inst"|Reservation_total_count->"reservation-total-count"|Reservation_total_estimated_cost->"reservation-total-estimated-cost"|Reservation_avg_future_size_vcpu->"reservation-avg-future-size-vcpu"|Reservation_avg_future_size_inst->"reservation-avg-future-size-inst"|Reservation_min_future_size_vcpu->"reservation-min-future-size-vcpu"|Reservation_min_future_size_inst->"reservation-min-future-size-inst"|Reservation_max_future_size_vcpu->"reservation-max-future-size-vcpu"|Reservation_max_future_size_inst->"reservation-max-future-size-inst"|Reservation_avg_committed_size_vcpu->"reservation-avg-committed-size-vcpu"|Reservation_avg_committed_size_inst->"reservation-avg-committed-size-inst"|Reservation_max_committed_size_vcpu->"reservation-max-committed-size-vcpu"|Reservation_max_committed_size_inst->"reservation-max-committed-size-inst"|Reservation_min_committed_size_vcpu->"reservation-min-committed-size-vcpu"|Reservation_min_committed_size_inst->"reservation-min-committed-size-inst"|Reserved_total_usage_hrs_vcpu->"reserved-total-usage-hrs-vcpu"|Reserved_total_usage_hrs_inst->"reserved-total-usage-hrs-inst"|Reserved_total_estimated_cost->"reserved-total-estimated-cost"|Unreserved_total_usage_hrs_vcpu->"unreserved-total-usage-hrs-vcpu"|Unreserved_total_usage_hrs_inst->"unreserved-total-usage-hrs-inst"|Unreserved_total_estimated_cost->"unreserved-total-estimated-cost"|Spot_total_usage_hrs_vcpu->"spot-total-usage-hrs-vcpu"|Spot_total_usage_hrs_inst->"spot-total-usage-hrs-inst"|Spot_total_estimated_cost->"spot-total-estimated-cost"|Spot_avg_run_time_before_interruption_inst->"spot-avg-run-time-before-interruption-inst"|Spot_max_run_time_before_interruption_inst->"spot-max-run-time-before-interruption-inst"|Spot_min_run_time_before_interruption_inst->"spot-min-run-time-before-interruption-inst"|Spot_total_interruptions_inst->"spot-total-interruptions-inst"|Spot_total_interruptions_vcpu->"spot-total-interruptions-vcpu"|Spot_total_count_inst->"spot-total-count-inst"|Spot_total_count_vcpu->"spot-total-count-vcpu"|Spot_interruption_rate_inst->"spot-interruption-rate-inst"|Spot_interruption_rate_vcpu->"spot-interruption-rate-vcpu"|Non_static_ids->sletof_string=function|"reservation-total-capacity-hrs-vcpu"->Reservation_total_capacity_hrs_vcpu|"reservation-total-capacity-hrs-inst"->Reservation_total_capacity_hrs_inst|"reservation-max-size-vcpu"->Reservation_max_size_vcpu|"reservation-max-size-inst"->Reservation_max_size_inst|"reservation-min-size-vcpu"->Reservation_min_size_vcpu|"reservation-min-size-inst"->Reservation_min_size_inst|"reservation-unused-total-capacity-hrs-vcpu"->Reservation_unused_total_capacity_hrs_vcpu|"reservation-unused-total-capacity-hrs-inst"->Reservation_unused_total_capacity_hrs_inst|"reservation-unused-total-estimated-cost"->Reservation_unused_total_estimated_cost|"reservation-max-unused-size-vcpu"->Reservation_max_unused_size_vcpu|"reservation-max-unused-size-inst"->Reservation_max_unused_size_inst|"reservation-min-unused-size-vcpu"->Reservation_min_unused_size_vcpu|"reservation-min-unused-size-inst"->Reservation_min_unused_size_inst|"reservation-max-utilization"->Reservation_max_utilization|"reservation-min-utilization"->Reservation_min_utilization|"reservation-avg-utilization-vcpu"->Reservation_avg_utilization_vcpu|"reservation-avg-utilization-inst"->Reservation_avg_utilization_inst|"reservation-total-count"->Reservation_total_count|"reservation-total-estimated-cost"->Reservation_total_estimated_cost|"reservation-avg-future-size-vcpu"->Reservation_avg_future_size_vcpu|"reservation-avg-future-size-inst"->Reservation_avg_future_size_inst|"reservation-min-future-size-vcpu"->Reservation_min_future_size_vcpu|"reservation-min-future-size-inst"->Reservation_min_future_size_inst|"reservation-max-future-size-vcpu"->Reservation_max_future_size_vcpu|"reservation-max-future-size-inst"->Reservation_max_future_size_inst|"reservation-avg-committed-size-vcpu"->Reservation_avg_committed_size_vcpu|"reservation-avg-committed-size-inst"->Reservation_avg_committed_size_inst|"reservation-max-committed-size-vcpu"->Reservation_max_committed_size_vcpu|"reservation-max-committed-size-inst"->Reservation_max_committed_size_inst|"reservation-min-committed-size-vcpu"->Reservation_min_committed_size_vcpu|"reservation-min-committed-size-inst"->Reservation_min_committed_size_inst|"reserved-total-usage-hrs-vcpu"->Reserved_total_usage_hrs_vcpu|"reserved-total-usage-hrs-inst"->Reserved_total_usage_hrs_inst|"reserved-total-estimated-cost"->Reserved_total_estimated_cost|"unreserved-total-usage-hrs-vcpu"->Unreserved_total_usage_hrs_vcpu|"unreserved-total-usage-hrs-inst"->Unreserved_total_usage_hrs_inst|"unreserved-total-estimated-cost"->Unreserved_total_estimated_cost|"spot-total-usage-hrs-vcpu"->Spot_total_usage_hrs_vcpu|"spot-total-usage-hrs-inst"->Spot_total_usage_hrs_inst|"spot-total-estimated-cost"->Spot_total_estimated_cost|"spot-avg-run-time-before-interruption-inst"->Spot_avg_run_time_before_interruption_inst|"spot-max-run-time-before-interruption-inst"->Spot_max_run_time_before_interruption_inst|"spot-min-run-time-before-interruption-inst"->Spot_min_run_time_before_interruption_inst|"spot-total-interruptions-inst"->Spot_total_interruptions_inst|"spot-total-interruptions-vcpu"->Spot_total_interruptions_vcpu|"spot-total-count-inst"->Spot_total_count_inst|"spot-total-count-vcpu"->Spot_total_count_vcpu|"spot-interruption-rate-inst"->Spot_interruption_rate_inst|"spot-interruption-rate-vcpu"->Spot_interruption_rate_vcpu|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 Metric"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"Metric"j)letto_json=simple_to_jsonto_valueendmoduleFloat_=structtypenonrect=floatletmakei=iletof_string=Float.of_stringletto_valuex=`Floatxletto_queryv=to_queryto_valuevletto_headerx=Stdlib.Float.to_stringxletof_xmlxml_arg0=Float.of_string(string_of_xml~kind:"a float"xml_arg0)letof_jsonj=float_of_json~kind:"a float"jletto_json=simple_to_jsonto_valueendmoduleEnableFastSnapshotRestoreStateError=structtypenonrect={code:String_.toption[@ocaml.doc"The error code."];message:String_.toption[@ocaml.doc"The error message."]}letmake?code=fun?message->fun()->{code;message}letto_valuex=structure_to_value[("code",(Option.mapx.code~f:String_.to_value));("message",(Option.mapx.message~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inletcode=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"code")inmake?message?code()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"Message"String_.of_jsoninletcode=field_mapjson__"Code"String_.of_jsoninmake?message?code()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an error that occurred when enabling fast snapshot restores."]moduleDisableFastSnapshotRestoreStateError=structtypenonrect={code:String_.toption[@ocaml.doc"The error code."];message:String_.toption[@ocaml.doc"The error message."]}letmake?code=fun?message->fun()->{code;message}letto_valuex=structure_to_value[("code",(Option.mapx.code~f:String_.to_value));("message",(Option.mapx.message~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inletcode=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"code")inmake?message?code()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"Message"String_.of_jsoninletcode=field_mapjson__"Code"String_.of_jsoninmake?message?code()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an error that occurred when disabling fast snapshot restores."]moduleTelemetryStatus=structtypenonrect=|UP|DOWN|Non_static_idofstringletmakei=iletto_string=function|UP->"UP"|DOWN->"DOWN"|Non_static_ids->sletof_string=function|"UP"->UP|"DOWN"->DOWN|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 TelemetryStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"TelemetryStatus"j)letto_json=simple_to_jsonto_valueendmoduleTunnelOption=structtypenonrect={outsideIpAddress:String_.toption[@ocaml.doc"The external IP address of the VPN tunnel."];tunnelInsideCidr:String_.toption[@ocaml.doc"The range of inside IPv4 addresses for the tunnel."];tunnelInsideIpv6Cidr:String_.toption[@ocaml.doc"The range of inside IPv6 addresses for the tunnel."];preSharedKey:PreSharedKey.toption[@ocaml.doc"The pre-shared key (PSK) to establish initial authentication between the virtual private gateway and the customer gateway."];phase1LifetimeSeconds:Integer.toption[@ocaml.doc"The lifetime for phase 1 of the IKE negotiation, in seconds."];phase2LifetimeSeconds:Integer.toption[@ocaml.doc"The lifetime for phase 2 of the IKE negotiation, in seconds."];rekeyMarginTimeSeconds:Integer.toption[@ocaml.doc"The margin time, in seconds, before the phase 2 lifetime expires, during which the Amazon Web Services side of the VPN connection performs an IKE rekey."];rekeyFuzzPercentage:Integer.toption[@ocaml.doc"The percentage of the rekey window determined by RekeyMarginTimeSeconds during which the rekey time is randomly selected."];replayWindowSize:Integer.toption[@ocaml.doc"The number of packets in an IKE replay window."];dpdTimeoutSeconds:Integer.toption[@ocaml.doc"The number of seconds after which a DPD timeout occurs."];dpdTimeoutAction:String_.toption[@ocaml.doc"The action to take after a DPD timeout occurs."];phase1EncryptionAlgorithms:Phase1EncryptionAlgorithmsList.toption[@ocaml.doc"The permitted encryption algorithms for the VPN tunnel for phase 1 IKE negotiations."];phase2EncryptionAlgorithms:Phase2EncryptionAlgorithmsList.toption[@ocaml.doc"The permitted encryption algorithms for the VPN tunnel for phase 2 IKE negotiations."];phase1IntegrityAlgorithms:Phase1IntegrityAlgorithmsList.toption[@ocaml.doc"The permitted integrity algorithms for the VPN tunnel for phase 1 IKE negotiations."];phase2IntegrityAlgorithms:Phase2IntegrityAlgorithmsList.toption[@ocaml.doc"The permitted integrity algorithms for the VPN tunnel for phase 2 IKE negotiations."];phase1DHGroupNumbers:Phase1DHGroupNumbersList.toption[@ocaml.doc"The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 1 IKE negotiations."];phase2DHGroupNumbers:Phase2DHGroupNumbersList.toption[@ocaml.doc"The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 2 IKE negotiations."];ikeVersions:IKEVersionsList.toption[@ocaml.doc"The IKE versions that are permitted for the VPN tunnel."];startupAction:String_.toption[@ocaml.doc"The action to take when the establishing the VPN tunnels for a VPN connection."];logOptions:VpnTunnelLogOptions.toption[@ocaml.doc"Options for logging VPN tunnel activity."];enableTunnelLifecycleControl:Boolean.toption[@ocaml.doc"Status of tunnel endpoint lifecycle control feature."]}letmake?outsideIpAddress=fun?tunnelInsideCidr->fun?tunnelInsideIpv6Cidr->fun?preSharedKey->fun?phase1LifetimeSeconds->fun?phase2LifetimeSeconds->fun?rekeyMarginTimeSeconds->fun?rekeyFuzzPercentage->fun?replayWindowSize->fun?dpdTimeoutSeconds->fun?dpdTimeoutAction->fun?phase1EncryptionAlgorithms->fun?phase2EncryptionAlgorithms->fun?phase1IntegrityAlgorithms->fun?phase2IntegrityAlgorithms->fun?phase1DHGroupNumbers->fun?phase2DHGroupNumbers->fun?ikeVersions->fun?startupAction->fun?logOptions->fun?enableTunnelLifecycleControl->fun()->{outsideIpAddress;tunnelInsideCidr;tunnelInsideIpv6Cidr;preSharedKey;phase1LifetimeSeconds;phase2LifetimeSeconds;rekeyMarginTimeSeconds;rekeyFuzzPercentage;replayWindowSize;dpdTimeoutSeconds;dpdTimeoutAction;phase1EncryptionAlgorithms;phase2EncryptionAlgorithms;phase1IntegrityAlgorithms;phase2IntegrityAlgorithms;phase1DHGroupNumbers;phase2DHGroupNumbers;ikeVersions;startupAction;logOptions;enableTunnelLifecycleControl}letto_valuex=structure_to_value[("outsideIpAddress",(Option.mapx.outsideIpAddress~f:String_.to_value));("tunnelInsideCidr",(Option.mapx.tunnelInsideCidr~f:String_.to_value));("tunnelInsideIpv6Cidr",(Option.mapx.tunnelInsideIpv6Cidr~f:String_.to_value));("preSharedKey",(Option.mapx.preSharedKey~f:PreSharedKey.to_value));("phase1LifetimeSeconds",(Option.mapx.phase1LifetimeSeconds~f:Integer.to_value));("phase2LifetimeSeconds",(Option.mapx.phase2LifetimeSeconds~f:Integer.to_value));("rekeyMarginTimeSeconds",(Option.mapx.rekeyMarginTimeSeconds~f:Integer.to_value));("rekeyFuzzPercentage",(Option.mapx.rekeyFuzzPercentage~f:Integer.to_value));("replayWindowSize",(Option.mapx.replayWindowSize~f:Integer.to_value));("dpdTimeoutSeconds",(Option.mapx.dpdTimeoutSeconds~f:Integer.to_value));("dpdTimeoutAction",(Option.mapx.dpdTimeoutAction~f:String_.to_value));("phase1EncryptionAlgorithmSet",(Option.mapx.phase1EncryptionAlgorithms~f:Phase1EncryptionAlgorithmsList.to_value));("phase2EncryptionAlgorithmSet",(Option.mapx.phase2EncryptionAlgorithms~f:Phase2EncryptionAlgorithmsList.to_value));("phase1IntegrityAlgorithmSet",(Option.mapx.phase1IntegrityAlgorithms~f:Phase1IntegrityAlgorithmsList.to_value));("phase2IntegrityAlgorithmSet",(Option.mapx.phase2IntegrityAlgorithms~f:Phase2IntegrityAlgorithmsList.to_value));("phase1DHGroupNumberSet",(Option.mapx.phase1DHGroupNumbers~f:Phase1DHGroupNumbersList.to_value));("phase2DHGroupNumberSet",(Option.mapx.phase2DHGroupNumbers~f:Phase2DHGroupNumbersList.to_value));("ikeVersionSet",(Option.mapx.ikeVersions~f:IKEVersionsList.to_value));("startupAction",(Option.mapx.startupAction~f:String_.to_value));("logOptions",(Option.mapx.logOptions~f:VpnTunnelLogOptions.to_value));("enableTunnelLifecycleControl",(Option.mapx.enableTunnelLifecycleControl~f:Boolean.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letenableTunnelLifecycleControl=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"enableTunnelLifecycleControl")inletlogOptions=(Option.map~f:VpnTunnelLogOptions.of_xml)(Xml.childxml_arg0"logOptions")inletstartupAction=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"startupAction")inletikeVersions=(Option.map~f:IKEVersionsList.of_xml)(Xml.childxml_arg0"ikeVersionSet")inletphase2DHGroupNumbers=(Option.map~f:Phase2DHGroupNumbersList.of_xml)(Xml.childxml_arg0"phase2DHGroupNumberSet")inletphase1DHGroupNumbers=(Option.map~f:Phase1DHGroupNumbersList.of_xml)(Xml.childxml_arg0"phase1DHGroupNumberSet")inletphase2IntegrityAlgorithms=(Option.map~f:Phase2IntegrityAlgorithmsList.of_xml)(Xml.childxml_arg0"phase2IntegrityAlgorithmSet")inletphase1IntegrityAlgorithms=(Option.map~f:Phase1IntegrityAlgorithmsList.of_xml)(Xml.childxml_arg0"phase1IntegrityAlgorithmSet")inletphase2EncryptionAlgorithms=(Option.map~f:Phase2EncryptionAlgorithmsList.of_xml)(Xml.childxml_arg0"phase2EncryptionAlgorithmSet")inletphase1EncryptionAlgorithms=(Option.map~f:Phase1EncryptionAlgorithmsList.of_xml)(Xml.childxml_arg0"phase1EncryptionAlgorithmSet")inletdpdTimeoutAction=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"dpdTimeoutAction")inletdpdTimeoutSeconds=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"dpdTimeoutSeconds")inletreplayWindowSize=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"replayWindowSize")inletrekeyFuzzPercentage=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"rekeyFuzzPercentage")inletrekeyMarginTimeSeconds=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"rekeyMarginTimeSeconds")inletphase2LifetimeSeconds=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"phase2LifetimeSeconds")inletphase1LifetimeSeconds=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"phase1LifetimeSeconds")inletpreSharedKey=(Option.map~f:PreSharedKey.of_xml)(Xml.childxml_arg0"preSharedKey")inlettunnelInsideIpv6Cidr=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"tunnelInsideIpv6Cidr")inlettunnelInsideCidr=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"tunnelInsideCidr")inletoutsideIpAddress=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"outsideIpAddress")inmake?enableTunnelLifecycleControl?logOptions?startupAction?ikeVersions?phase2DHGroupNumbers?phase1DHGroupNumbers?phase2IntegrityAlgorithms?phase1IntegrityAlgorithms?phase2EncryptionAlgorithms?phase1EncryptionAlgorithms?dpdTimeoutAction?dpdTimeoutSeconds?replayWindowSize?rekeyFuzzPercentage?rekeyMarginTimeSeconds?phase2LifetimeSeconds?phase1LifetimeSeconds?preSharedKey?tunnelInsideIpv6Cidr?tunnelInsideCidr?outsideIpAddress()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letenableTunnelLifecycleControl=field_mapjson__"EnableTunnelLifecycleControl"Boolean.of_jsoninletlogOptions=field_mapjson__"LogOptions"VpnTunnelLogOptions.of_jsoninletstartupAction=field_mapjson__"StartupAction"String_.of_jsoninletikeVersions=field_mapjson__"IkeVersions"IKEVersionsList.of_jsoninletphase2DHGroupNumbers=field_mapjson__"Phase2DHGroupNumbers"Phase2DHGroupNumbersList.of_jsoninletphase1DHGroupNumbers=field_mapjson__"Phase1DHGroupNumbers"Phase1DHGroupNumbersList.of_jsoninletphase2IntegrityAlgorithms=field_mapjson__"Phase2IntegrityAlgorithms"Phase2IntegrityAlgorithmsList.of_jsoninletphase1IntegrityAlgorithms=field_mapjson__"Phase1IntegrityAlgorithms"Phase1IntegrityAlgorithmsList.of_jsoninletphase2EncryptionAlgorithms=field_mapjson__"Phase2EncryptionAlgorithms"Phase2EncryptionAlgorithmsList.of_jsoninletphase1EncryptionAlgorithms=field_mapjson__"Phase1EncryptionAlgorithms"Phase1EncryptionAlgorithmsList.of_jsoninletdpdTimeoutAction=field_mapjson__"DpdTimeoutAction"String_.of_jsoninletdpdTimeoutSeconds=field_mapjson__"DpdTimeoutSeconds"Integer.of_jsoninletreplayWindowSize=field_mapjson__"ReplayWindowSize"Integer.of_jsoninletrekeyFuzzPercentage=field_mapjson__"RekeyFuzzPercentage"Integer.of_jsoninletrekeyMarginTimeSeconds=field_mapjson__"RekeyMarginTimeSeconds"Integer.of_jsoninletphase2LifetimeSeconds=field_mapjson__"Phase2LifetimeSeconds"Integer.of_jsoninletphase1LifetimeSeconds=field_mapjson__"Phase1LifetimeSeconds"Integer.of_jsoninletpreSharedKey=field_mapjson__"PreSharedKey"PreSharedKey.of_jsoninlettunnelInsideIpv6Cidr=field_mapjson__"TunnelInsideIpv6Cidr"String_.of_jsoninlettunnelInsideCidr=field_mapjson__"TunnelInsideCidr"String_.of_jsoninletoutsideIpAddress=field_mapjson__"OutsideIpAddress"String_.of_jsoninmake?enableTunnelLifecycleControl?logOptions?startupAction?ikeVersions?phase2DHGroupNumbers?phase1DHGroupNumbers?phase2IntegrityAlgorithms?phase1IntegrityAlgorithms?phase2EncryptionAlgorithms?phase1EncryptionAlgorithms?dpdTimeoutAction?dpdTimeoutSeconds?replayWindowSize?rekeyFuzzPercentage?rekeyMarginTimeSeconds?phase2LifetimeSeconds?phase1LifetimeSeconds?preSharedKey?tunnelInsideIpv6Cidr?tunnelInsideCidr?outsideIpAddress()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The VPN tunnel options."]moduleVpnState=structtypenonrect=|Pending|Available|Deleting|Deleted|Non_static_idofstringletmakei=iletto_string=function|Pending->"pending"|Available->"available"|Deleting->"deleting"|Deleted->"deleted"|Non_static_ids->sletof_string=function|"pending"->Pending|"available"->Available|"deleting"->Deleting|"deleted"->Deleted|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 VpnState"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"VpnState"j)letto_json=simple_to_jsonto_valueendmoduleVpnStaticRouteSource=structtypenonrect=|Static|Non_static_idofstringletmakei=iletto_string=function|Static->"Static"|Non_static_ids->sletof_string=function|"Static"->Static|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 VpnStaticRouteSource"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"VpnStaticRouteSource"j)letto_json=simple_to_jsonto_valueendmoduleVpcCidrBlockState=structtypenonrect={state:VpcCidrBlockStateCode.toption[@ocaml.doc"The state of the CIDR block."];statusMessage:String_.toption[@ocaml.doc"A message about the status of the CIDR block, if applicable."]}letmake?state=fun?statusMessage->fun()->{state;statusMessage}letto_valuex=structure_to_value[("state",(Option.mapx.state~f:VpcCidrBlockStateCode.to_value));("statusMessage",(Option.mapx.statusMessage~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstatusMessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"statusMessage")inletstate=(Option.map~f:VpcCidrBlockStateCode.of_xml)(Xml.childxml_arg0"state")inmake?statusMessage?state()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstatusMessage=field_mapjson__"StatusMessage"String_.of_jsoninletstate=field_mapjson__"State"VpcCidrBlockStateCode.of_jsoninmake?statusMessage?state()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the state of a CIDR block."]moduleVpcEncryptionControlExclusion=structtypenonrect={state:VpcEncryptionControlExclusionState.toption[@ocaml.doc"The current state of the exclusion configuration."];stateMessage:String_.toption[@ocaml.doc"A message providing additional information about the exclusion state."]}letmake?state=fun?stateMessage->fun()->{state;stateMessage}letto_valuex=structure_to_value[("state",(Option.mapx.state~f:VpcEncryptionControlExclusionState.to_value));("stateMessage",(Option.mapx.stateMessage~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstateMessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"stateMessage")inletstate=(Option.map~f:VpcEncryptionControlExclusionState.of_xml)(Xml.childxml_arg0"state")inmake?stateMessage?state()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstateMessage=field_mapjson__"StateMessage"String_.of_jsoninletstate=field_mapjson__"State"VpcEncryptionControlExclusionState.of_jsoninmake?stateMessage?state()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an exclusion configuration for VPC Encryption Control. For more information, see Enforce VPC encryption in transit in the Amazon VPC User Guide."]moduleIpSource=structtypenonrect=|Amazon|Byoip|None|Non_static_idofstringletmakei=iletto_string=function|Amazon->"amazon"|Byoip->"byoip"|None->"none"|Non_static_ids->sletof_string=function|"amazon"->Amazon|"byoip"->Byoip|"none"->None|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 IpSource"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"IpSource"j)letto_json=simple_to_jsonto_valueendmoduleIpv6AddressAttribute=structtypenonrect=|Public|Private|Non_static_idofstringletmakei=iletto_string=function|Public->"public"|Private->"private"|Non_static_ids->sletof_string=function|"public"->Public|"private"->Private|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 Ipv6AddressAttribute"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"Ipv6AddressAttribute"j)letto_json=simple_to_jsonto_valueendmoduleCidrBlock=structtypenonrect={cidrBlock:String_.toption[@ocaml.doc"The IPv4 CIDR block."]}letmake?cidrBlock=fun()->{cidrBlock}letto_valuex=structure_to_value[("cidrBlock",(Option.mapx.cidrBlock~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcidrBlock=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"cidrBlock")inmake?cidrBlock()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcidrBlock=field_mapjson__"CidrBlock"String_.of_jsoninmake?cidrBlock()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an IPv4 CIDR block."]moduleIpv6CidrBlock=structtypenonrect={ipv6CidrBlock:String_.toption[@ocaml.doc"The IPv6 CIDR block."]}letmake?ipv6CidrBlock=fun()->{ipv6CidrBlock}letto_valuex=structure_to_value[("ipv6CidrBlock",(Option.mapx.ipv6CidrBlock~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letipv6CidrBlock=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ipv6CidrBlock")inmake?ipv6CidrBlock()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letipv6CidrBlock=field_mapjson__"Ipv6CidrBlock"String_.of_jsoninmake?ipv6CidrBlock()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an IPv6 CIDR block."]moduleServiceType=structtypenonrect=|Interface|Gateway|GatewayLoadBalancer|Non_static_idofstringletmakei=iletto_string=function|Interface->"Interface"|Gateway->"Gateway"|GatewayLoadBalancer->"GatewayLoadBalancer"|Non_static_ids->sletof_string=function|"Interface"->Interface|"Gateway"->Gateway|"GatewayLoadBalancer"->GatewayLoadBalancer|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 ServiceType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ServiceType"j)letto_json=simple_to_jsonto_valueendmoduleVolumeAttachmentState=structtypenonrect=|Attaching|Attached|Detaching|Detached|Busy|Non_static_idofstringletmakei=iletto_string=function|Attaching->"attaching"|Attached->"attached"|Detaching->"detaching"|Detached->"detached"|Busy->"busy"|Non_static_ids->sletof_string=function|"attaching"->Attaching|"attached"->Attached|"detaching"->Detaching|"detached"->Detached|"busy"->Busy|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 VolumeAttachmentState"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"VolumeAttachmentState"j)letto_json=simple_to_jsonto_valueendmoduleVolumeStatusDetails=structtypenonrect={name:VolumeStatusName.toption[@ocaml.doc"The name of the volume status. io-enabled - Indicates the volume I/O status. For more information, see Amazon EBS volume status checks. io-performance - Indicates the volume performance status. For more information, see Amazon EBS volume status checks. initialization-state - Indicates the status of the volume initialization process. For more information, see Initialize Amazon EBS volumes."];status:String_.toption[@ocaml.doc"The intended status of the volume status."]}letmake?name=fun?status->fun()->{name;status}letto_valuex=structure_to_value[("name",(Option.mapx.name~f:VolumeStatusName.to_value));("status",(Option.mapx.status~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstatus=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"status")inletname=(Option.map~f:VolumeStatusName.of_xml)(Xml.childxml_arg0"name")inmake?status?name()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstatus=field_mapjson__"Status"String_.of_jsoninletname=field_mapjson__"Name"VolumeStatusName.of_jsoninmake?status?name()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a volume status."]moduleDeviceTrustProviderType=structtypenonrect=|Jamf|Crowdstrike|Jumpcloud|Non_static_idofstringletmakei=iletto_string=function|Jamf->"jamf"|Crowdstrike->"crowdstrike"|Jumpcloud->"jumpcloud"|Non_static_ids->sletof_string=function|"jamf"->Jamf|"crowdstrike"->Crowdstrike|"jumpcloud"->Jumpcloud|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 DeviceTrustProviderType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"DeviceTrustProviderType"j)letto_json=simple_to_jsonto_valueendmoduleTrustProviderType=structtypenonrect=|User|Device|Non_static_idofstringletmakei=iletto_string=function|User->"user"|Device->"device"|Non_static_ids->sletof_string=function|"user"->User|"device"->Device|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 TrustProviderType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"TrustProviderType"j)letto_json=simple_to_jsonto_valueendmoduleUserTrustProviderType=structtypenonrect=|Iam_identity_center|Oidc|Non_static_idofstringletmakei=iletto_string=function|Iam_identity_center->"iam-identity-center"|Oidc->"oidc"|Non_static_ids->sletof_string=function|"iam-identity-center"->Iam_identity_center|"oidc"->Oidc|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 UserTrustProviderType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"UserTrustProviderType"j)letto_json=simple_to_jsonto_valueendmoduleVerifiedAccessLogDeliveryStatus=structtypenonrect={code:VerifiedAccessLogDeliveryStatusCode.toption[@ocaml.doc"The status code."];message:String_.toption[@ocaml.doc"The status message."]}letmake?code=fun?message->fun()->{code;message}letto_valuex=structure_to_value[("code",(Option.mapx.code~f:VerifiedAccessLogDeliveryStatusCode.to_value));("message",(Option.mapx.message~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inletcode=(Option.map~f:VerifiedAccessLogDeliveryStatusCode.of_xml)(Xml.childxml_arg0"code")inmake?message?code()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"Message"String_.of_jsoninletcode=field_mapjson__"Code"VerifiedAccessLogDeliveryStatusCode.of_jsoninmake?message?code()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a log delivery status."]moduleVerifiedAccessEndpointPortRange=structtypenonrect={fromPort:VerifiedAccessEndpointPortNumber.toption[@ocaml.doc"The start of the port range."];toPort:VerifiedAccessEndpointPortNumber.toption[@ocaml.doc"The end of the port range."]}letmake?fromPort=fun?toPort->fun()->{fromPort;toPort}letto_valuex=structure_to_value[("fromPort",(Option.mapx.fromPort~f:VerifiedAccessEndpointPortNumber.to_value));("toPort",(Option.mapx.toPort~f:VerifiedAccessEndpointPortNumber.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettoPort=(Option.map~f:VerifiedAccessEndpointPortNumber.of_xml)(Xml.childxml_arg0"toPort")inletfromPort=(Option.map~f:VerifiedAccessEndpointPortNumber.of_xml)(Xml.childxml_arg0"fromPort")inmake?toPort?fromPort()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettoPort=field_mapjson__"ToPort"VerifiedAccessEndpointPortNumber.of_jsoninletfromPort=field_mapjson__"FromPort"VerifiedAccessEndpointPortNumber.of_jsoninmake?toPort?fromPort()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a port range."]moduleEncryptionStateValue=structtypenonrect=|Enabling|Enabled|Disabling|Disabled|Non_static_idofstringletmakei=iletto_string=function|Enabling->"enabling"|Enabled->"enabled"|Disabling->"disabling"|Disabled->"disabled"|Non_static_ids->sletof_string=function|"enabling"->Enabling|"enabled"->Enabled|"disabling"->Disabling|"disabled"->Disabled|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 EncryptionStateValue"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"EncryptionStateValue"j)letto_json=simple_to_jsonto_valueendmoduleTransitGatewayAttachmentBgpConfiguration=structtypenonrect={transitGatewayAsn:Long.toption[@ocaml.doc"The transit gateway Autonomous System Number (ASN)."];peerAsn:Long.toption[@ocaml.doc"The peer Autonomous System Number (ASN)."];transitGatewayAddress:String_.toption[@ocaml.doc"The interior BGP peer IP address for the transit gateway."];peerAddress:String_.toption[@ocaml.doc"The interior BGP peer IP address for the appliance."];bgpStatus:BgpStatus.toption[@ocaml.doc"The BGP status."]}letmake?transitGatewayAsn=fun?peerAsn->fun?transitGatewayAddress->fun?peerAddress->fun?bgpStatus->fun()->{transitGatewayAsn;peerAsn;transitGatewayAddress;peerAddress;bgpStatus}letto_valuex=structure_to_value[("transitGatewayAsn",(Option.mapx.transitGatewayAsn~f:Long.to_value));("peerAsn",(Option.mapx.peerAsn~f:Long.to_value));("transitGatewayAddress",(Option.mapx.transitGatewayAddress~f:String_.to_value));("peerAddress",(Option.mapx.peerAddress~f:String_.to_value));("bgpStatus",(Option.mapx.bgpStatus~f:BgpStatus.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letbgpStatus=(Option.map~f:BgpStatus.of_xml)(Xml.childxml_arg0"bgpStatus")inletpeerAddress=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"peerAddress")inlettransitGatewayAddress=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"transitGatewayAddress")inletpeerAsn=(Option.map~f:Long.of_xml)(Xml.childxml_arg0"peerAsn")inlettransitGatewayAsn=(Option.map~f:Long.of_xml)(Xml.childxml_arg0"transitGatewayAsn")inmake?bgpStatus?peerAddress?transitGatewayAddress?peerAsn?transitGatewayAsn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letbgpStatus=field_mapjson__"BgpStatus"BgpStatus.of_jsoninletpeerAddress=field_mapjson__"PeerAddress"String_.of_jsoninlettransitGatewayAddress=field_mapjson__"TransitGatewayAddress"String_.of_jsoninletpeerAsn=field_mapjson__"PeerAsn"Long.of_jsoninlettransitGatewayAsn=field_mapjson__"TransitGatewayAsn"Long.of_jsoninmake?bgpStatus?peerAddress?transitGatewayAddress?peerAsn?transitGatewayAsn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The BGP configuration information."]moduleTrafficDirection=structtypenonrect=|Ingress|Egress|Non_static_idofstringletmakei=iletto_string=function|Ingress->"ingress"|Egress->"egress"|Non_static_ids->sletof_string=function|"ingress"->Ingress|"egress"->Egress|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 TrafficDirection"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"TrafficDirection"j)letto_json=simple_to_jsonto_valueendmoduleTrafficMirrorPortRange=structtypenonrect={fromPort:Integer.toption[@ocaml.doc"The start of the Traffic Mirror port range. This applies to the TCP and UDP protocols."];toPort:Integer.toption[@ocaml.doc"The end of the Traffic Mirror port range. This applies to the TCP and UDP protocols."]}letmake?fromPort=fun?toPort->fun()->{fromPort;toPort}letto_valuex=structure_to_value[("fromPort",(Option.mapx.fromPort~f:Integer.to_value));("toPort",(Option.mapx.toPort~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettoPort=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"toPort")inletfromPort=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"fromPort")inmake?toPort?fromPort()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettoPort=field_mapjson__"ToPort"Integer.of_jsoninletfromPort=field_mapjson__"FromPort"Integer.of_jsoninmake?toPort?fromPort()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the Traffic Mirror port range."]moduleTrafficMirrorRuleAction=structtypenonrect=|Accept|Reject|Non_static_idofstringletmakei=iletto_string=function|Accept->"accept"|Reject->"reject"|Non_static_ids->sletof_string=function|"accept"->Accept|"reject"->Reject|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 TrafficMirrorRuleAction"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"TrafficMirrorRuleAction"j)letto_json=simple_to_jsonto_valueendmoduleSubnetCidrAssociationId=structtypenonrect=stringletcontext_="SubnetCidrAssociationId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"SubnetCidrAssociationId"jletto_json=simple_to_jsonto_valueendmoduleSubnetCidrBlockState=structtypenonrect={state:SubnetCidrBlockStateCode.toption[@ocaml.doc"The state of a CIDR block."];statusMessage:String_.toption[@ocaml.doc"A message about the status of the CIDR block, if applicable."]}letmake?state=fun?statusMessage->fun()->{state;statusMessage}letto_valuex=structure_to_value[("state",(Option.mapx.state~f:SubnetCidrBlockStateCode.to_value));("statusMessage",(Option.mapx.statusMessage~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstatusMessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"statusMessage")inletstate=(Option.map~f:SubnetCidrBlockStateCode.of_xml)(Xml.childxml_arg0"state")inmake?statusMessage?state()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstatusMessage=field_mapjson__"StatusMessage"String_.of_jsoninletstate=field_mapjson__"State"SubnetCidrBlockStateCode.of_jsoninmake?statusMessage?state()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the state of a CIDR block."]moduleIpRanges=structtypenonrect=String_.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:String_.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:String_.of_xml)letof_jsonj=list_of_json~kind:"IpRanges"~of_json:String_.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmodulePrefixListIdSet=structtypenonrect=String_.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:String_.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:String_.of_xml)letof_jsonj=list_of_json~kind:"PrefixListIdSet"~of_json:String_.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleUserIdGroupPairSet=structtypenonrect=UserIdGroupPair.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:UserIdGroupPair.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:UserIdGroupPair.of_xml)letof_jsonj=list_of_json~kind:"UserIdGroupPairSet"~of_json:UserIdGroupPair.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleSpotFleetLaunchSpecification=structtypenonrect={addressingType:String_.toption[@ocaml.doc"Deprecated."];blockDeviceMappings:BlockDeviceMappingList.toption[@ocaml.doc"One or more block devices that are mapped to the Spot Instances. You can't specify both a snapshot ID and an encryption value. This is because only blank volumes can be encrypted on creation. If a snapshot is the basis for a volume, it is not blank and its encryption status is used for the volume encryption status."];ebsOptimized:Boolean.toption[@ocaml.doc"Indicates whether the instances are optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance. Default: false"];iamInstanceProfile:IamInstanceProfileSpecification.toption[@ocaml.doc"The IAM instance profile."];imageId:ImageId.toption[@ocaml.doc"The ID of the AMI."];instanceType:InstanceType.toption[@ocaml.doc"The instance type."];kernelId:String_.toption[@ocaml.doc"The ID of the kernel."];keyName:KeyPairName.toption[@ocaml.doc"The name of the key pair."];monitoring:SpotFleetMonitoring.toption[@ocaml.doc"Enable or disable monitoring for the instances."];networkInterfaces:InstanceNetworkInterfaceSpecificationList.toption[@ocaml.doc"The network interfaces. SpotFleetLaunchSpecification does not support Elastic Fabric Adapter (EFA). You must use LaunchTemplateConfig instead."];placement:SpotPlacement.toption[@ocaml.doc"The placement information."];ramdiskId:String_.toption[@ocaml.doc"The ID of the RAM disk. Some kernels require additional drivers at launch. Check the kernel requirements for information about whether you need to specify a RAM disk. To find kernel requirements, refer to the Amazon Web Services Resource Center and search for the kernel ID."];spotPrice:String_.toption[@ocaml.doc"The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price. If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter."];subnetId:SubnetId.toption[@ocaml.doc"The IDs of the subnets in which to launch the instances. To specify multiple subnets, separate them using commas; for example, \"subnet-1234abcdeexample1, subnet-0987cdef6example2\". If you specify a network interface, you must specify any subnets as part of the network interface instead of using this parameter."];userData:SensitiveUserData.toption[@ocaml.doc"The base64-encoded user data that instances use when starting up. User data is limited to 16 KB."];weightedCapacity:Double.toption[@ocaml.doc"The number of units provided by the specified instance type. These are the same units that you chose to set the target capacity in terms of instances, or a performance characteristic such as vCPUs, memory, or I/O. If the target capacity divided by this value is not a whole number, Amazon EC2 rounds the number of instances to the next whole number. If this value is not specified, the default is 1. When specifying weights, the price used in the lowestPrice and priceCapacityOptimized allocation strategies is per unit hour (where the instance price is divided by the specified weight). However, if all the specified weights are above the requested TargetCapacity, resulting in only 1 instance being launched, the price used is per instance hour."];tagSpecifications:SpotFleetTagSpecificationList.toption[@ocaml.doc"The tags to apply during creation."];instanceRequirements:InstanceRequirements.toption[@ocaml.doc"The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with those attributes. If you specify InstanceRequirements, you can't specify InstanceType."];securityGroups:GroupIdentifierList.toption[@ocaml.doc"The security groups. If you specify a network interface, you must specify any security groups as part of the network interface instead of using this parameter."]}letmake?addressingType=fun?blockDeviceMappings->fun?ebsOptimized->fun?iamInstanceProfile->fun?imageId->fun?instanceType->fun?kernelId->fun?keyName->fun?monitoring->fun?networkInterfaces->fun?placement->fun?ramdiskId->fun?spotPrice->fun?subnetId->fun?userData->fun?weightedCapacity->fun?tagSpecifications->fun?instanceRequirements->fun?securityGroups->fun()->{addressingType;blockDeviceMappings;ebsOptimized;iamInstanceProfile;imageId;instanceType;kernelId;keyName;monitoring;networkInterfaces;placement;ramdiskId;spotPrice;subnetId;userData;weightedCapacity;tagSpecifications;instanceRequirements;securityGroups}letto_valuex=structure_to_value[("addressingType",(Option.mapx.addressingType~f:String_.to_value));("blockDeviceMapping",(Option.mapx.blockDeviceMappings~f:BlockDeviceMappingList.to_value));("ebsOptimized",(Option.mapx.ebsOptimized~f:Boolean.to_value));("iamInstanceProfile",(Option.mapx.iamInstanceProfile~f:IamInstanceProfileSpecification.to_value));("imageId",(Option.mapx.imageId~f:ImageId.to_value));("instanceType",(Option.mapx.instanceType~f:InstanceType.to_value));("kernelId",(Option.mapx.kernelId~f:String_.to_value));("keyName",(Option.mapx.keyName~f:KeyPairName.to_value));("monitoring",(Option.mapx.monitoring~f:SpotFleetMonitoring.to_value));("networkInterfaceSet",(Option.mapx.networkInterfaces~f:InstanceNetworkInterfaceSpecificationList.to_value));("placement",(Option.mapx.placement~f:SpotPlacement.to_value));("ramdiskId",(Option.mapx.ramdiskId~f:String_.to_value));("spotPrice",(Option.mapx.spotPrice~f:String_.to_value));("subnetId",(Option.mapx.subnetId~f:SubnetId.to_value));("userData",(Option.mapx.userData~f:SensitiveUserData.to_value));("weightedCapacity",(Option.mapx.weightedCapacity~f:Double.to_value));("tagSpecificationSet",(Option.mapx.tagSpecifications~f:SpotFleetTagSpecificationList.to_value));("instanceRequirements",(Option.mapx.instanceRequirements~f:InstanceRequirements.to_value));("groupSet",(Option.mapx.securityGroups~f:GroupIdentifierList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsecurityGroups=(Option.map~f:GroupIdentifierList.of_xml)(Xml.childxml_arg0"groupSet")inletinstanceRequirements=(Option.map~f:InstanceRequirements.of_xml)(Xml.childxml_arg0"instanceRequirements")inlettagSpecifications=(Option.map~f:SpotFleetTagSpecificationList.of_xml)(Xml.childxml_arg0"tagSpecificationSet")inletweightedCapacity=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"weightedCapacity")inletuserData=(Option.map~f:SensitiveUserData.of_xml)(Xml.childxml_arg0"userData")inletsubnetId=(Option.map~f:SubnetId.of_xml)(Xml.childxml_arg0"subnetId")inletspotPrice=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"spotPrice")inletramdiskId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ramdiskId")inletplacement=(Option.map~f:SpotPlacement.of_xml)(Xml.childxml_arg0"placement")inletnetworkInterfaces=(Option.map~f:InstanceNetworkInterfaceSpecificationList.of_xml)(Xml.childxml_arg0"networkInterfaceSet")inletmonitoring=(Option.map~f:SpotFleetMonitoring.of_xml)(Xml.childxml_arg0"monitoring")inletkeyName=(Option.map~f:KeyPairName.of_xml)(Xml.childxml_arg0"keyName")inletkernelId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"kernelId")inletinstanceType=(Option.map~f:InstanceType.of_xml)(Xml.childxml_arg0"instanceType")inletimageId=(Option.map~f:ImageId.of_xml)(Xml.childxml_arg0"imageId")inletiamInstanceProfile=(Option.map~f:IamInstanceProfileSpecification.of_xml)(Xml.childxml_arg0"iamInstanceProfile")inletebsOptimized=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"ebsOptimized")inletblockDeviceMappings=(Option.map~f:BlockDeviceMappingList.of_xml)(Xml.childxml_arg0"blockDeviceMapping")inletaddressingType=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"addressingType")inmake?securityGroups?instanceRequirements?tagSpecifications?weightedCapacity?userData?subnetId?spotPrice?ramdiskId?placement?networkInterfaces?monitoring?keyName?kernelId?instanceType?imageId?iamInstanceProfile?ebsOptimized?blockDeviceMappings?addressingType()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsecurityGroups=field_mapjson__"SecurityGroups"GroupIdentifierList.of_jsoninletinstanceRequirements=field_mapjson__"InstanceRequirements"InstanceRequirements.of_jsoninlettagSpecifications=field_mapjson__"TagSpecifications"SpotFleetTagSpecificationList.of_jsoninletweightedCapacity=field_mapjson__"WeightedCapacity"Double.of_jsoninletuserData=field_mapjson__"UserData"SensitiveUserData.of_jsoninletsubnetId=field_mapjson__"SubnetId"SubnetId.of_jsoninletspotPrice=field_mapjson__"SpotPrice"String_.of_jsoninletramdiskId=field_mapjson__"RamdiskId"String_.of_jsoninletplacement=field_mapjson__"Placement"SpotPlacement.of_jsoninletnetworkInterfaces=field_mapjson__"NetworkInterfaces"InstanceNetworkInterfaceSpecificationList.of_jsoninletmonitoring=field_mapjson__"Monitoring"SpotFleetMonitoring.of_jsoninletkeyName=field_mapjson__"KeyName"KeyPairName.of_jsoninletkernelId=field_mapjson__"KernelId"String_.of_jsoninletinstanceType=field_mapjson__"InstanceType"InstanceType.of_jsoninletimageId=field_mapjson__"ImageId"ImageId.of_jsoninletiamInstanceProfile=field_mapjson__"IamInstanceProfile"IamInstanceProfileSpecification.of_jsoninletebsOptimized=field_mapjson__"EbsOptimized"Boolean.of_jsoninletblockDeviceMappings=field_mapjson__"BlockDeviceMappings"BlockDeviceMappingList.of_jsoninletaddressingType=field_mapjson__"AddressingType"String_.of_jsoninmake?securityGroups?instanceRequirements?tagSpecifications?weightedCapacity?userData?subnetId?spotPrice?ramdiskId?placement?networkInterfaces?monitoring?keyName?kernelId?instanceType?imageId?iamInstanceProfile?ebsOptimized?blockDeviceMappings?addressingType()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the launch specification for one or more Spot Instances. If you include On-Demand capacity in your fleet request or want to specify an EFA network device, you can't use SpotFleetLaunchSpecification; you must use LaunchTemplateConfig."]moduleLaunchTemplateConfig=structtypenonrect={launchTemplateSpecification:FleetLaunchTemplateSpecification.toption[@ocaml.doc"The launch template to use. Make sure that the launch template does not contain the NetworkInterfaceId parameter because you can't specify a network interface ID in a Spot Fleet."];overrides:LaunchTemplateOverridesList.toption[@ocaml.doc"Any parameters that you specify override the same parameters in the launch template."]}letmake?launchTemplateSpecification=fun?overrides->fun()->{launchTemplateSpecification;overrides}letto_valuex=structure_to_value[("launchTemplateSpecification",(Option.mapx.launchTemplateSpecification~f:FleetLaunchTemplateSpecification.to_value));("overrides",(Option.mapx.overrides~f:LaunchTemplateOverridesList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letoverrides=(Option.map~f:LaunchTemplateOverridesList.of_xml)(Xml.childxml_arg0"overrides")inletlaunchTemplateSpecification=(Option.map~f:FleetLaunchTemplateSpecification.of_xml)(Xml.childxml_arg0"launchTemplateSpecification")inmake?overrides?launchTemplateSpecification()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letoverrides=field_mapjson__"Overrides"LaunchTemplateOverridesList.of_jsoninletlaunchTemplateSpecification=field_mapjson__"LaunchTemplateSpecification"FleetLaunchTemplateSpecification.of_jsoninmake?overrides?launchTemplateSpecification()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a launch template and overrides."]moduleClassicLoadBalancersConfig=structtypenonrect={classicLoadBalancers:ClassicLoadBalancers.toption[@ocaml.doc"One or more Classic Load Balancers."]}letmake?classicLoadBalancers=fun()->{classicLoadBalancers}letto_valuex=structure_to_value[("classicLoadBalancers",(Option.mapx.classicLoadBalancers~f:ClassicLoadBalancers.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letclassicLoadBalancers=(Option.map~f:ClassicLoadBalancers.of_xml)(Xml.childxml_arg0"classicLoadBalancers")inmake?classicLoadBalancers()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letclassicLoadBalancers=field_mapjson__"ClassicLoadBalancers"ClassicLoadBalancers.of_jsoninmake?classicLoadBalancers()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the Classic Load Balancers to attach to a Spot Fleet. Spot Fleet registers the running Spot Instances with these Classic Load Balancers."]moduleTargetGroupsConfig=structtypenonrect={targetGroups:TargetGroups.toption[@ocaml.doc"One or more target groups."]}letmake?targetGroups=fun()->{targetGroups}letto_valuex=structure_to_value[("targetGroups",(Option.mapx.targetGroups~f:TargetGroups.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettargetGroups=(Option.map~f:TargetGroups.of_xml)(Xml.childxml_arg0"targetGroups")inmake?targetGroups()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettargetGroups=field_mapjson__"TargetGroups"TargetGroups.of_jsoninmake?targetGroups()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the target groups to attach to a Spot Fleet. Spot Fleet registers the running Spot Instances with these target groups."]moduleSpotCapacityRebalance=structtypenonrect={replacementStrategy:ReplacementStrategy.toption[@ocaml.doc"The replacement strategy to use. Only available for fleets of type maintain. launch - Spot Fleet launches a new replacement Spot Instance when a rebalance notification is emitted for an existing Spot Instance in the fleet. Spot Fleet does not terminate the instances that receive a rebalance notification. You can terminate the old instances, or you can leave them running. You are charged for all instances while they are running. launch-before-terminate - Spot Fleet launches a new replacement Spot Instance when a rebalance notification is emitted for an existing Spot Instance in the fleet, and then, after a delay that you specify (in TerminationDelay), terminates the instances that received a rebalance notification."];terminationDelay:Integer.toption[@ocaml.doc"The amount of time (in seconds) that Amazon EC2 waits before terminating the old Spot Instance after launching a new replacement Spot Instance. Required when ReplacementStrategy is set to launch-before-terminate. Not valid when ReplacementStrategy is set to launch. Valid values: Minimum value of 120 seconds. Maximum value of 7200 seconds."]}letmake?replacementStrategy=fun?terminationDelay->fun()->{replacementStrategy;terminationDelay}letto_valuex=structure_to_value[("replacementStrategy",(Option.mapx.replacementStrategy~f:ReplacementStrategy.to_value));("terminationDelay",(Option.mapx.terminationDelay~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letterminationDelay=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"terminationDelay")inletreplacementStrategy=(Option.map~f:ReplacementStrategy.of_xml)(Xml.childxml_arg0"replacementStrategy")inmake?terminationDelay?replacementStrategy()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letterminationDelay=field_mapjson__"TerminationDelay"Integer.of_jsoninletreplacementStrategy=field_mapjson__"ReplacementStrategy"ReplacementStrategy.of_jsoninmake?terminationDelay?replacementStrategy()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The Spot Instance replacement strategy to use when Amazon EC2 emits a signal that your Spot Instance is at an elevated risk of being interrupted. For more information, see Capacity rebalancing in the Amazon EC2 User Guide."]moduleTagSpecification=structtypenonrect={resourceType:ResourceType.toption[@ocaml.doc"The type of resource to tag on creation."];tags:TagList.toption[@ocaml.doc"The tags to apply to the resource."]}letmake?resourceType=fun?tags->fun()->{resourceType;tags}letto_valuex=structure_to_value[("resourceType",(Option.mapx.resourceType~f:ResourceType.to_value));("Tag",(Option.mapx.tags~f:TagList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:TagList.of_xml)(Xml.childxml_arg0"Tag")inletresourceType=(Option.map~f:ResourceType.of_xml)(Xml.childxml_arg0"resourceType")inmake?tags?resourceType()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"Tags"TagList.of_jsoninletresourceType=field_mapjson__"ResourceType"ResourceType.of_jsoninmake?tags?resourceType()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The tags to apply to a resource when the resource is being created. When you specify a tag, you must specify the resource type to tag, otherwise the request will fail. The Valid Values lists all the resource types that can be tagged. However, the action you're using might not support tagging all of these resource types. If you try to tag a resource type that is unsupported for the action you're using, you'll get an error."]moduleIpRangeList=structtypenonrect=IpRange.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:IpRange.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:IpRange.of_xml)letof_jsonj=list_of_json~kind:"IpRangeList"~of_json:IpRange.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleIpv6RangeList=structtypenonrect=Ipv6Range.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Ipv6Range.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:Ipv6Range.of_xml)letof_jsonj=list_of_json~kind:"Ipv6RangeList"~of_json:Ipv6Range.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmodulePrefixListIdList=structtypenonrect=PrefixListId.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:PrefixListId.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:PrefixListId.of_xml)letof_jsonj=list_of_json~kind:"PrefixListIdList"~of_json:PrefixListId.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleUserIdGroupPairList=structtypenonrect=UserIdGroupPair.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:UserIdGroupPair.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:UserIdGroupPair.of_xml)letof_jsonj=list_of_json~kind:"UserIdGroupPairList"~of_json:UserIdGroupPair.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleSecondarySubnetCidrAssociationId=structtypenonrect=stringletcontext_="SecondarySubnetCidrAssociationId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"SecondarySubnetCidrAssociationId"jletto_json=simple_to_jsonto_valueendmoduleSecondarySubnetCidrBlockAssociationState=structtypenonrect=|Associating|Associated|Association_failed|Disassociating|Disassociated|Disassociation_failed|Non_static_idofstringletmakei=iletto_string=function|Associating->"associating"|Associated->"associated"|Association_failed->"association-failed"|Disassociating->"disassociating"|Disassociated->"disassociated"|Disassociation_failed->"disassociation-failed"|Non_static_ids->sletof_string=function|"associating"->Associating|"associated"->Associated|"association-failed"->Association_failed|"disassociating"->Disassociating|"disassociated"->Disassociated|"disassociation-failed"->Disassociation_failed|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 SecondarySubnetCidrBlockAssociationState"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"SecondarySubnetCidrBlockAssociationState"j)letto_json=simple_to_jsonto_valueendmoduleSecondaryNetworkCidrAssociationId=structtypenonrect=stringletcontext_="SecondaryNetworkCidrAssociationId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"SecondaryNetworkCidrAssociationId"jletto_json=simple_to_jsonto_valueendmoduleSecondaryNetworkCidrBlockAssociationState=structtypenonrect=|Associating|Associated|Association_failed|Disassociating|Disassociated|Disassociation_failed|Non_static_idofstringletmakei=iletto_string=function|Associating->"associating"|Associated->"associated"|Association_failed->"association-failed"|Disassociating->"disassociating"|Disassociated->"disassociated"|Disassociation_failed->"disassociation-failed"|Non_static_ids->sletof_string=function|"associating"->Associating|"associated"->Associated|"association-failed"->Association_failed|"disassociating"->Disassociating|"disassociated"->Disassociated|"disassociation-failed"->Disassociation_failed|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 SecondaryNetworkCidrBlockAssociationState"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"SecondaryNetworkCidrBlockAssociationState"j)letto_json=simple_to_jsonto_valueendmoduleCarrierGatewayId=structtypenonrect=stringletcontext_="CarrierGatewayId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"CarrierGatewayId"jletto_json=simple_to_jsonto_valueendmoduleCoreNetworkArn=structtypenonrect=stringletcontext_="CoreNetworkArn"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"CoreNetworkArn"jletto_json=simple_to_jsonto_valueendmoduleOdbNetworkArn=structtypenonrect=stringletcontext_="OdbNetworkArn"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"OdbNetworkArn"jletto_json=simple_to_jsonto_valueendmoduleRouteOrigin=structtypenonrect=|CreateRouteTable|CreateRoute|EnableVgwRoutePropagation|Advertisement|Non_static_idofstringletmakei=iletto_string=function|CreateRouteTable->"CreateRouteTable"|CreateRoute->"CreateRoute"|EnableVgwRoutePropagation->"EnableVgwRoutePropagation"|Advertisement->"Advertisement"|Non_static_ids->sletof_string=function|"CreateRouteTable"->CreateRouteTable|"CreateRoute"->CreateRoute|"EnableVgwRoutePropagation"->EnableVgwRoutePropagation|"Advertisement"->Advertisement|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 RouteOrigin"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"RouteOrigin"j)letto_json=simple_to_jsonto_valueendmoduleRouteState=structtypenonrect=|Active|Blackhole|Filtered|Non_static_idofstringletmakei=iletto_string=function|Active->"active"|Blackhole->"blackhole"|Filtered->"filtered"|Non_static_ids->sletof_string=function|"active"->Active|"blackhole"->Blackhole|"filtered"->Filtered|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 RouteState"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"RouteState"j)letto_json=simple_to_jsonto_valueendmoduleRouteTableAssociationState=structtypenonrect={state:RouteTableAssociationStateCode.toption[@ocaml.doc"The state of the association."];statusMessage:String_.toption[@ocaml.doc"The status message, if applicable."]}letmake?state=fun?statusMessage->fun()->{state;statusMessage}letto_valuex=structure_to_value[("state",(Option.mapx.state~f:RouteTableAssociationStateCode.to_value));("statusMessage",(Option.mapx.statusMessage~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstatusMessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"statusMessage")inletstate=(Option.map~f:RouteTableAssociationStateCode.of_xml)(Xml.childxml_arg0"state")inmake?statusMessage?state()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstatusMessage=field_mapjson__"StatusMessage"String_.of_jsoninletstate=field_mapjson__"State"RouteTableAssociationStateCode.of_jsoninmake?statusMessage?state()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the state of an association between a route table and a subnet or gateway."]moduleRecurringChargeFrequency=structtypenonrect=|Hourly|Non_static_idofstringletmakei=iletto_string=function|Hourly->"Hourly"|Non_static_ids->sletof_string=function|"Hourly"->Hourly|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 RecurringChargeFrequency"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"RecurringChargeFrequency"j)letto_json=simple_to_jsonto_valueendmoduleReservedInstancesConfiguration=structtypenonrect={availabilityZone:String_.toption[@ocaml.doc"The Availability Zone for the modified Reserved Instances."];instanceCount:Integer.toption[@ocaml.doc"The number of modified Reserved Instances. This is a required field for a request."];instanceType:InstanceType.toption[@ocaml.doc"The instance type for the modified Reserved Instances."];platform:String_.toption[@ocaml.doc"The network platform of the modified Reserved Instances."];scope:Scope.toption[@ocaml.doc"Whether the Reserved Instance is applied to instances in a Region or instances in a specific Availability Zone."];availabilityZoneId:String_.toption[@ocaml.doc"The ID of the Availability Zone."]}letmake?availabilityZone=fun?instanceCount->fun?instanceType->fun?platform->fun?scope->fun?availabilityZoneId->fun()->{availabilityZone;instanceCount;instanceType;platform;scope;availabilityZoneId}letto_valuex=structure_to_value[("availabilityZone",(Option.mapx.availabilityZone~f:String_.to_value));("instanceCount",(Option.mapx.instanceCount~f:Integer.to_value));("instanceType",(Option.mapx.instanceType~f:InstanceType.to_value));("platform",(Option.mapx.platform~f:String_.to_value));("scope",(Option.mapx.scope~f:Scope.to_value));("availabilityZoneId",(Option.mapx.availabilityZoneId~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letavailabilityZoneId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"availabilityZoneId")inletscope=(Option.map~f:Scope.of_xml)(Xml.childxml_arg0"scope")inletplatform=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"platform")inletinstanceType=(Option.map~f:InstanceType.of_xml)(Xml.childxml_arg0"instanceType")inletinstanceCount=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"instanceCount")inletavailabilityZone=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"availabilityZone")inmake?availabilityZoneId?scope?platform?instanceType?instanceCount?availabilityZone()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letavailabilityZoneId=field_mapjson__"AvailabilityZoneId"String_.of_jsoninletscope=field_mapjson__"Scope"Scope.of_jsoninletplatform=field_mapjson__"Platform"String_.of_jsoninletinstanceType=field_mapjson__"InstanceType"InstanceType.of_jsoninletinstanceCount=field_mapjson__"InstanceCount"Integer.of_jsoninletavailabilityZone=field_mapjson__"AvailabilityZone"String_.of_jsoninmake?availabilityZoneId?scope?platform?instanceType?instanceCount?availabilityZone()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the configuration settings for the modified Reserved Instances."]moduleListingState=structtypenonrect=|Available|Sold|Cancelled|Pending|Non_static_idofstringletmakei=iletto_string=function|Available->"available"|Sold->"sold"|Cancelled->"cancelled"|Pending->"pending"|Non_static_ids->sletof_string=function|"available"->Available|"sold"->Sold|"cancelled"->Cancelled|"pending"->Pending|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 ListingState"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ListingState"j)letto_json=simple_to_jsonto_valueendmoduleCurrencyCodeValues=structtypenonrect=|USD|Non_static_idofstringletmakei=iletto_string=function|USD->"USD"|Non_static_ids->sletof_string=function|"USD"->USD|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 CurrencyCodeValues"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"CurrencyCodeValues"j)letto_json=simple_to_jsonto_valueendmoduleAttachmentEnaSrdUdpSpecification=structtypenonrect={enaSrdUdpEnabled:Boolean.toption[@ocaml.doc"Indicates whether UDP traffic to and from the instance uses ENA Express. To specify this setting, you must first enable ENA Express."]}letmake?enaSrdUdpEnabled=fun()->{enaSrdUdpEnabled}letto_valuex=structure_to_value[("enaSrdUdpEnabled",(Option.mapx.enaSrdUdpEnabled~f:Boolean.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letenaSrdUdpEnabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"enaSrdUdpEnabled")inmake?enaSrdUdpEnabled()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letenaSrdUdpEnabled=field_mapjson__"EnaSrdUdpEnabled"Boolean.of_jsoninmake?enaSrdUdpEnabled()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"ENA Express is compatible with both TCP and UDP transport protocols. When it's enabled, TCP traffic automatically uses it. However, some UDP-based applications are designed to handle network packets that are out of order, without a need for retransmission, such as live video broadcasting or other near-real-time applications. For UDP traffic, you can specify whether to use ENA Express, based on your application environment needs."]moduleNetworkInterfaceAssociation=structtypenonrect={allocationId:String_.toption[@ocaml.doc"The allocation ID."];associationId:String_.toption[@ocaml.doc"The association ID."];ipOwnerId:String_.toption[@ocaml.doc"The ID of the Elastic IP address owner."];publicDnsName:String_.toption[@ocaml.doc"The public DNS name."];publicIp:String_.toption[@ocaml.doc"The address of the Elastic IP address bound to the network interface."];customerOwnedIp:String_.toption[@ocaml.doc"The customer-owned IP address associated with the network interface."];carrierIp:String_.toption[@ocaml.doc"The carrier IP address associated with the network interface. This option is only available when the network interface is in a subnet which is associated with a Wavelength Zone."]}letmake?allocationId=fun?associationId->fun?ipOwnerId->fun?publicDnsName->fun?publicIp->fun?customerOwnedIp->fun?carrierIp->fun()->{allocationId;associationId;ipOwnerId;publicDnsName;publicIp;customerOwnedIp;carrierIp}letto_valuex=structure_to_value[("allocationId",(Option.mapx.allocationId~f:String_.to_value));("associationId",(Option.mapx.associationId~f:String_.to_value));("ipOwnerId",(Option.mapx.ipOwnerId~f:String_.to_value));("publicDnsName",(Option.mapx.publicDnsName~f:String_.to_value));("publicIp",(Option.mapx.publicIp~f:String_.to_value));("customerOwnedIp",(Option.mapx.customerOwnedIp~f:String_.to_value));("carrierIp",(Option.mapx.carrierIp~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcarrierIp=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"carrierIp")inletcustomerOwnedIp=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"customerOwnedIp")inletpublicIp=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"publicIp")inletpublicDnsName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"publicDnsName")inletipOwnerId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ipOwnerId")inletassociationId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"associationId")inletallocationId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"allocationId")inmake?carrierIp?customerOwnedIp?publicIp?publicDnsName?ipOwnerId?associationId?allocationId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcarrierIp=field_mapjson__"CarrierIp"String_.of_jsoninletcustomerOwnedIp=field_mapjson__"CustomerOwnedIp"String_.of_jsoninletpublicIp=field_mapjson__"PublicIp"String_.of_jsoninletpublicDnsName=field_mapjson__"PublicDnsName"String_.of_jsoninletipOwnerId=field_mapjson__"IpOwnerId"String_.of_jsoninletassociationId=field_mapjson__"AssociationId"String_.of_jsoninletallocationId=field_mapjson__"AllocationId"String_.of_jsoninmake?carrierIp?customerOwnedIp?publicIp?publicDnsName?ipOwnerId?associationId?allocationId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes association information for an Elastic IP address (IPv4 only), or a Carrier IP address (for a network interface which resides in a subnet in a Wavelength Zone)."]moduleIcmpTypeCode=structtypenonrect={code:Integer.toption[@ocaml.doc"The ICMP code. A value of -1 means all codes for the specified ICMP type."];type_:Integer.toption[@ocaml.doc"The ICMP type. A value of -1 means all types."]}letmake?code=fun?type_->fun()->{code;type_}letto_valuex=structure_to_value[("code",(Option.mapx.code~f:Integer.to_value));("type",(Option.mapx.type_~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettype_=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"type")inletcode=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"code")inmake?type_?code()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettype_=field_mapjson__"Type"Integer.of_jsoninletcode=field_mapjson__"Code"Integer.of_jsoninmake?type_?code()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the ICMP type and code."]moduleRuleAction=structtypenonrect=|Allow|Deny|Non_static_idofstringletmakei=iletto_string=function|Allow->"allow"|Deny->"deny"|Non_static_ids->sletof_string=function|"allow"->Allow|"deny"->Deny|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 RuleAction"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"RuleAction"j)letto_json=simple_to_jsonto_valueendmoduleNatGatewayAddressStatus=structtypenonrect=|Assigning|Unassigning|Associating|Disassociating|Succeeded|Failed|Non_static_idofstringletmakei=iletto_string=function|Assigning->"assigning"|Unassigning->"unassigning"|Associating->"associating"|Disassociating->"disassociating"|Succeeded->"succeeded"|Failed->"failed"|Non_static_ids->sletof_string=function|"assigning"->Assigning|"unassigning"->Unassigning|"associating"->Associating|"disassociating"->Disassociating|"succeeded"->Succeeded|"failed"->Failed|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 NatGatewayAddressStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"NatGatewayAddressStatus"j)letto_json=simple_to_jsonto_valueendmoduleNatGatewayApplianceModifyState=structtypenonrect=|Modifying|Completed|Failed|Non_static_idofstringletmakei=iletto_string=function|Modifying->"modifying"|Completed->"completed"|Failed->"failed"|Non_static_ids->sletof_string=function|"modifying"->Modifying|"completed"->Completed|"failed"->Failed|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 NatGatewayApplianceModifyState"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"NatGatewayApplianceModifyState"j)letto_json=simple_to_jsonto_valueendmoduleNatGatewayApplianceState=structtypenonrect=|Attaching|Attached|Detaching|Detached|Attach_failed|Detach_failed|Non_static_idofstringletmakei=iletto_string=function|Attaching->"attaching"|Attached->"attached"|Detaching->"detaching"|Detached->"detached"|Attach_failed->"attach-failed"|Detach_failed->"detach-failed"|Non_static_ids->sletof_string=function|"attaching"->Attaching|"attached"->Attached|"detaching"->Detaching|"detached"->Detached|"attach-failed"->Attach_failed|"detach-failed"->Detach_failed|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 NatGatewayApplianceState"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"NatGatewayApplianceState"j)letto_json=simple_to_jsonto_valueendmoduleNatGatewayApplianceType=structtypenonrect=|Network_firewall_proxy|Non_static_idofstringletmakei=iletto_string=function|Network_firewall_proxy->"network-firewall-proxy"|Non_static_ids->sletof_string=function|"network-firewall-proxy"->Network_firewall_proxy|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 NatGatewayApplianceType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"NatGatewayApplianceType"j)letto_json=simple_to_jsonto_valueendmoduleElasticGpuSpecificationResponse=structtypenonrect={type_:String_.toption[@ocaml.doc"Deprecated. Amazon Elastic Graphics reached end of life on January 8, 2024."]}letmake?type_=fun()->{type_}letto_valuex=structure_to_value[("type",(Option.mapx.type_~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettype_=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"type")inmake?type_()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettype_=field_mapjson__"Type"String_.of_jsoninmake?type_()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deprecated. Amazon Elastic Graphics reached end of life on January 8, 2024."]moduleLaunchTemplateBlockDeviceMapping=structtypenonrect={deviceName:String_.toption[@ocaml.doc"The device name."];virtualName:String_.toption[@ocaml.doc"The virtual device name (ephemeralN)."];ebs:LaunchTemplateEbsBlockDevice.toption[@ocaml.doc"Information about the block device for an EBS volume."];noDevice:String_.toption[@ocaml.doc"To omit the device from the block device mapping, specify an empty string."]}letmake?deviceName=fun?virtualName->fun?ebs->fun?noDevice->fun()->{deviceName;virtualName;ebs;noDevice}letto_valuex=structure_to_value[("deviceName",(Option.mapx.deviceName~f:String_.to_value));("virtualName",(Option.mapx.virtualName~f:String_.to_value));("ebs",(Option.mapx.ebs~f:LaunchTemplateEbsBlockDevice.to_value));("noDevice",(Option.mapx.noDevice~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnoDevice=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"noDevice")inletebs=(Option.map~f:LaunchTemplateEbsBlockDevice.of_xml)(Xml.childxml_arg0"ebs")inletvirtualName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"virtualName")inletdeviceName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"deviceName")inmake?noDevice?ebs?virtualName?deviceName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnoDevice=field_mapjson__"NoDevice"String_.of_jsoninletebs=field_mapjson__"Ebs"LaunchTemplateEbsBlockDevice.of_jsoninletvirtualName=field_mapjson__"VirtualName"String_.of_jsoninletdeviceName=field_mapjson__"DeviceName"String_.of_jsoninmake?noDevice?ebs?virtualName?deviceName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a block device mapping."]moduleLaunchTemplateElasticInferenceAcceleratorResponse=structtypenonrect={type_:String_.toption[@ocaml.doc"The type of elastic inference accelerator. The possible values are eia1.medium, eia1.large, and eia1.xlarge."];count:Integer.toption[@ocaml.doc"The number of elastic inference accelerators to attach to the instance."]}letmake?type_=fun?count->fun()->{type_;count}letto_valuex=structure_to_value[("type",(Option.mapx.type_~f:String_.to_value));("count",(Option.mapx.count~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcount=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"count")inlettype_=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"type")inmake?count?type_()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcount=field_mapjson__"Count"Integer.of_jsoninlettype_=field_mapjson__"Type"String_.of_jsoninmake?count?type_()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Amazon Elastic Inference is no longer available. Describes an elastic inference accelerator."]moduleLaunchTemplateAutoRecoveryState=structtypenonrect=|Default|Disabled|Non_static_idofstringletmakei=iletto_string=function|Default->"default"|Disabled->"disabled"|Non_static_ids->sletof_string=function|"default"->Default|"disabled"->Disabled|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 LaunchTemplateAutoRecoveryState"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"LaunchTemplateAutoRecoveryState"j)letto_json=simple_to_jsonto_valueendmoduleLaunchTemplateSpotMarketOptions=structtypenonrect={maxPrice:String_.toption[@ocaml.doc"The maximum hourly price you're willing to pay for a Spot Instance. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price. If you do specify this parameter, it must be more than USD $0.001. Specifying a value below USD $0.001 will result in an InvalidParameterValue error message when the launch template is used to launch an instance."];spotInstanceType:SpotInstanceType.toption[@ocaml.doc"The Spot Instance request type."];blockDurationMinutes:Integer.toption[@ocaml.doc"The required duration for the Spot Instances (also known as Spot blocks), in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360)."];validUntil:DateTime.toption[@ocaml.doc"The end date of the request. For a one-time request, the request remains active until all instances launch, the request is canceled, or this date is reached. If the request is persistent, it remains active until it is canceled or this date and time is reached."];instanceInterruptionBehavior:InstanceInterruptionBehavior.toption[@ocaml.doc"The behavior when a Spot Instance is interrupted."]}letmake?maxPrice=fun?spotInstanceType->fun?blockDurationMinutes->fun?validUntil->fun?instanceInterruptionBehavior->fun()->{maxPrice;spotInstanceType;blockDurationMinutes;validUntil;instanceInterruptionBehavior}letto_valuex=structure_to_value[("maxPrice",(Option.mapx.maxPrice~f:String_.to_value));("spotInstanceType",(Option.mapx.spotInstanceType~f:SpotInstanceType.to_value));("blockDurationMinutes",(Option.mapx.blockDurationMinutes~f:Integer.to_value));("validUntil",(Option.mapx.validUntil~f:DateTime.to_value));("instanceInterruptionBehavior",(Option.mapx.instanceInterruptionBehavior~f:InstanceInterruptionBehavior.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letinstanceInterruptionBehavior=(Option.map~f:InstanceInterruptionBehavior.of_xml)(Xml.childxml_arg0"instanceInterruptionBehavior")inletvalidUntil=(Option.map~f:DateTime.of_xml)(Xml.childxml_arg0"validUntil")inletblockDurationMinutes=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"blockDurationMinutes")inletspotInstanceType=(Option.map~f:SpotInstanceType.of_xml)(Xml.childxml_arg0"spotInstanceType")inletmaxPrice=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"maxPrice")inmake?instanceInterruptionBehavior?validUntil?blockDurationMinutes?spotInstanceType?maxPrice()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letinstanceInterruptionBehavior=field_mapjson__"InstanceInterruptionBehavior"InstanceInterruptionBehavior.of_jsoninletvalidUntil=field_mapjson__"ValidUntil"DateTime.of_jsoninletblockDurationMinutes=field_mapjson__"BlockDurationMinutes"Integer.of_jsoninletspotInstanceType=field_mapjson__"SpotInstanceType"SpotInstanceType.of_jsoninletmaxPrice=field_mapjson__"MaxPrice"String_.of_jsoninmake?instanceInterruptionBehavior?validUntil?blockDurationMinutes?spotInstanceType?maxPrice()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The options for Spot Instances."]moduleMarketType=structtypenonrect=|Spot|Capacity_block|Interruptible_capacity_reservation|Non_static_idofstringletmakei=iletto_string=function|Spot->"spot"|Capacity_block->"capacity-block"|Interruptible_capacity_reservation->"interruptible-capacity-reservation"|Non_static_ids->sletof_string=function|"spot"->Spot|"capacity-block"->Capacity_block|"interruptible-capacity-reservation"->Interruptible_capacity_reservation|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 MarketType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"MarketType"j)letto_json=simple_to_jsonto_valueendmoduleLaunchTemplateHttpTokensState=structtypenonrect=|Optional|Required|Non_static_idofstringletmakei=iletto_string=function|Optional->"optional"|Required->"required"|Non_static_ids->sletof_string=function|"optional"->Optional|"required"->Required|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 LaunchTemplateHttpTokensState"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"LaunchTemplateHttpTokensState"j)letto_json=simple_to_jsonto_valueendmoduleLaunchTemplateInstanceMetadataEndpointState=structtypenonrect=|Disabled|Enabled|Non_static_idofstringletmakei=iletto_string=function|Disabled->"disabled"|Enabled->"enabled"|Non_static_ids->sletof_string=function|"disabled"->Disabled|"enabled"->Enabled|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 LaunchTemplateInstanceMetadataEndpointState"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"LaunchTemplateInstanceMetadataEndpointState"j)letto_json=simple_to_jsonto_valueendmoduleLaunchTemplateInstanceMetadataOptionsState=structtypenonrect=|Pending|Applied|Non_static_idofstringletmakei=iletto_string=function|Pending->"pending"|Applied->"applied"|Non_static_ids->sletof_string=function|"pending"->Pending|"applied"->Applied|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 LaunchTemplateInstanceMetadataOptionsState"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"LaunchTemplateInstanceMetadataOptionsState"j)letto_json=simple_to_jsonto_valueendmoduleLaunchTemplateInstanceMetadataProtocolIpv6=structtypenonrect=|Disabled|Enabled|Non_static_idofstringletmakei=iletto_string=function|Disabled->"disabled"|Enabled->"enabled"|Non_static_ids->sletof_string=function|"disabled"->Disabled|"enabled"->Enabled|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 LaunchTemplateInstanceMetadataProtocolIpv6"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"LaunchTemplateInstanceMetadataProtocolIpv6"j)letto_json=simple_to_jsonto_valueendmoduleLaunchTemplateInstanceMetadataTagsState=structtypenonrect=|Disabled|Enabled|Non_static_idofstringletmakei=iletto_string=function|Disabled->"disabled"|Enabled->"enabled"|Non_static_ids->sletof_string=function|"disabled"->Disabled|"enabled"->Enabled|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 LaunchTemplateInstanceMetadataTagsState"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"LaunchTemplateInstanceMetadataTagsState"j)letto_json=simple_to_jsonto_valueendmoduleLaunchTemplateInstanceNetworkInterfaceSpecification=structtypenonrect={associateCarrierIpAddress:Boolean.toption[@ocaml.doc"Indicates whether to associate a Carrier IP address with eth0 for a new network interface. Use this option when you launch an instance in a Wavelength Zone and want to associate a Carrier IP address with the network interface. For more information about Carrier IP addresses, see Carrier IP address in the Wavelength Developer Guide."];associatePublicIpAddress:Boolean.toption[@ocaml.doc"Indicates whether to associate a public IPv4 address with eth0 for a new network interface. Amazon Web Services charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the Public IPv4 Address tab on the Amazon VPC pricing page."];deleteOnTermination:Boolean.toption[@ocaml.doc"Indicates whether the network interface is deleted when the instance is terminated."];description:String_.toption[@ocaml.doc"A description for the network interface."];deviceIndex:Integer.toption[@ocaml.doc"The device index for the network interface attachment."];groups:GroupIdStringList.toption[@ocaml.doc"The IDs of one or more security groups."];interfaceType:String_.toption[@ocaml.doc"The type of network interface."];ipv6AddressCount:Integer.toption[@ocaml.doc"The number of IPv6 addresses for the network interface."];ipv6Addresses:InstanceIpv6AddressList.toption[@ocaml.doc"The IPv6 addresses for the network interface."];networkInterfaceId:NetworkInterfaceId.toption[@ocaml.doc"The ID of the network interface."];privateIpAddress:String_.toption[@ocaml.doc"The primary private IPv4 address of the network interface."];privateIpAddresses:PrivateIpAddressSpecificationList.toption[@ocaml.doc"One or more private IPv4 addresses."];secondaryPrivateIpAddressCount:Integer.toption[@ocaml.doc"The number of secondary private IPv4 addresses for the network interface."];subnetId:SubnetId.toption[@ocaml.doc"The ID of the subnet for the network interface."];networkCardIndex:Integer.toption[@ocaml.doc"The index of the network card."];ipv4Prefixes:Ipv4PrefixListResponse.toption[@ocaml.doc"One or more IPv4 prefixes assigned to the network interface."];ipv4PrefixCount:Integer.toption[@ocaml.doc"The number of IPv4 prefixes that Amazon Web Services automatically assigned to the network interface."];ipv6Prefixes:Ipv6PrefixListResponse.toption[@ocaml.doc"One or more IPv6 prefixes assigned to the network interface."];ipv6PrefixCount:Integer.toption[@ocaml.doc"The number of IPv6 prefixes that Amazon Web Services automatically assigned to the network interface."];primaryIpv6:Boolean.toption[@ocaml.doc"The primary IPv6 address of the network interface. When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the instance is terminated or the network interface is detached. For more information about primary IPv6 addresses, see RunInstances."];enaSrdSpecification:LaunchTemplateEnaSrdSpecification.toption[@ocaml.doc"Contains the ENA Express settings for instances launched from your launch template."];connectionTrackingSpecification:ConnectionTrackingSpecification.toption[@ocaml.doc"A security group connection tracking specification that enables you to set the timeout for connection tracking on an Elastic network interface. For more information, see Idle connection tracking timeout in the Amazon EC2 User Guide."];enaQueueCount:Integer.toption[@ocaml.doc"The number of ENA queues created with the instance."]}letmake?associateCarrierIpAddress=fun?associatePublicIpAddress->fun?deleteOnTermination->fun?description->fun?deviceIndex->fun?groups->fun?interfaceType->fun?ipv6AddressCount->fun?ipv6Addresses->fun?networkInterfaceId->fun?privateIpAddress->fun?privateIpAddresses->fun?secondaryPrivateIpAddressCount->fun?subnetId->fun?networkCardIndex->fun?ipv4Prefixes->fun?ipv4PrefixCount->fun?ipv6Prefixes->fun?ipv6PrefixCount->fun?primaryIpv6->fun?enaSrdSpecification->fun?connectionTrackingSpecification->fun?enaQueueCount->fun()->{associateCarrierIpAddress;associatePublicIpAddress;deleteOnTermination;description;deviceIndex;groups;interfaceType;ipv6AddressCount;ipv6Addresses;networkInterfaceId;privateIpAddress;privateIpAddresses;secondaryPrivateIpAddressCount;subnetId;networkCardIndex;ipv4Prefixes;ipv4PrefixCount;ipv6Prefixes;ipv6PrefixCount;primaryIpv6;enaSrdSpecification;connectionTrackingSpecification;enaQueueCount}letto_valuex=structure_to_value[("associateCarrierIpAddress",(Option.mapx.associateCarrierIpAddress~f:Boolean.to_value));("associatePublicIpAddress",(Option.mapx.associatePublicIpAddress~f:Boolean.to_value));("deleteOnTermination",(Option.mapx.deleteOnTermination~f:Boolean.to_value));("description",(Option.mapx.description~f:String_.to_value));("deviceIndex",(Option.mapx.deviceIndex~f:Integer.to_value));("groupSet",(Option.mapx.groups~f:GroupIdStringList.to_value));("interfaceType",(Option.mapx.interfaceType~f:String_.to_value));("ipv6AddressCount",(Option.mapx.ipv6AddressCount~f:Integer.to_value));("ipv6AddressesSet",(Option.mapx.ipv6Addresses~f:InstanceIpv6AddressList.to_value));("networkInterfaceId",(Option.mapx.networkInterfaceId~f:NetworkInterfaceId.to_value));("privateIpAddress",(Option.mapx.privateIpAddress~f:String_.to_value));("privateIpAddressesSet",(Option.mapx.privateIpAddresses~f:PrivateIpAddressSpecificationList.to_value));("secondaryPrivateIpAddressCount",(Option.mapx.secondaryPrivateIpAddressCount~f:Integer.to_value));("subnetId",(Option.mapx.subnetId~f:SubnetId.to_value));("networkCardIndex",(Option.mapx.networkCardIndex~f:Integer.to_value));("ipv4PrefixSet",(Option.mapx.ipv4Prefixes~f:Ipv4PrefixListResponse.to_value));("ipv4PrefixCount",(Option.mapx.ipv4PrefixCount~f:Integer.to_value));("ipv6PrefixSet",(Option.mapx.ipv6Prefixes~f:Ipv6PrefixListResponse.to_value));("ipv6PrefixCount",(Option.mapx.ipv6PrefixCount~f:Integer.to_value));("primaryIpv6",(Option.mapx.primaryIpv6~f:Boolean.to_value));("enaSrdSpecification",(Option.mapx.enaSrdSpecification~f:LaunchTemplateEnaSrdSpecification.to_value));("connectionTrackingSpecification",(Option.mapx.connectionTrackingSpecification~f:ConnectionTrackingSpecification.to_value));("enaQueueCount",(Option.mapx.enaQueueCount~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letenaQueueCount=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"enaQueueCount")inletconnectionTrackingSpecification=(Option.map~f:ConnectionTrackingSpecification.of_xml)(Xml.childxml_arg0"connectionTrackingSpecification")inletenaSrdSpecification=(Option.map~f:LaunchTemplateEnaSrdSpecification.of_xml)(Xml.childxml_arg0"enaSrdSpecification")inletprimaryIpv6=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"primaryIpv6")inletipv6PrefixCount=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"ipv6PrefixCount")inletipv6Prefixes=(Option.map~f:Ipv6PrefixListResponse.of_xml)(Xml.childxml_arg0"ipv6PrefixSet")inletipv4PrefixCount=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"ipv4PrefixCount")inletipv4Prefixes=(Option.map~f:Ipv4PrefixListResponse.of_xml)(Xml.childxml_arg0"ipv4PrefixSet")inletnetworkCardIndex=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"networkCardIndex")inletsubnetId=(Option.map~f:SubnetId.of_xml)(Xml.childxml_arg0"subnetId")inletsecondaryPrivateIpAddressCount=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"secondaryPrivateIpAddressCount")inletprivateIpAddresses=(Option.map~f:PrivateIpAddressSpecificationList.of_xml)(Xml.childxml_arg0"privateIpAddressesSet")inletprivateIpAddress=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"privateIpAddress")inletnetworkInterfaceId=(Option.map~f:NetworkInterfaceId.of_xml)(Xml.childxml_arg0"networkInterfaceId")inletipv6Addresses=(Option.map~f:InstanceIpv6AddressList.of_xml)(Xml.childxml_arg0"ipv6AddressesSet")inletipv6AddressCount=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"ipv6AddressCount")inletinterfaceType=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"interfaceType")inletgroups=(Option.map~f:GroupIdStringList.of_xml)(Xml.childxml_arg0"groupSet")inletdeviceIndex=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"deviceIndex")inletdescription=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"description")inletdeleteOnTermination=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"deleteOnTermination")inletassociatePublicIpAddress=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"associatePublicIpAddress")inletassociateCarrierIpAddress=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"associateCarrierIpAddress")inmake?enaQueueCount?connectionTrackingSpecification?enaSrdSpecification?primaryIpv6?ipv6PrefixCount?ipv6Prefixes?ipv4PrefixCount?ipv4Prefixes?networkCardIndex?subnetId?secondaryPrivateIpAddressCount?privateIpAddresses?privateIpAddress?networkInterfaceId?ipv6Addresses?ipv6AddressCount?interfaceType?groups?deviceIndex?description?deleteOnTermination?associatePublicIpAddress?associateCarrierIpAddress()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letenaQueueCount=field_mapjson__"EnaQueueCount"Integer.of_jsoninletconnectionTrackingSpecification=field_mapjson__"ConnectionTrackingSpecification"ConnectionTrackingSpecification.of_jsoninletenaSrdSpecification=field_mapjson__"EnaSrdSpecification"LaunchTemplateEnaSrdSpecification.of_jsoninletprimaryIpv6=field_mapjson__"PrimaryIpv6"Boolean.of_jsoninletipv6PrefixCount=field_mapjson__"Ipv6PrefixCount"Integer.of_jsoninletipv6Prefixes=field_mapjson__"Ipv6Prefixes"Ipv6PrefixListResponse.of_jsoninletipv4PrefixCount=field_mapjson__"Ipv4PrefixCount"Integer.of_jsoninletipv4Prefixes=field_mapjson__"Ipv4Prefixes"Ipv4PrefixListResponse.of_jsoninletnetworkCardIndex=field_mapjson__"NetworkCardIndex"Integer.of_jsoninletsubnetId=field_mapjson__"SubnetId"SubnetId.of_jsoninletsecondaryPrivateIpAddressCount=field_mapjson__"SecondaryPrivateIpAddressCount"Integer.of_jsoninletprivateIpAddresses=field_mapjson__"PrivateIpAddresses"PrivateIpAddressSpecificationList.of_jsoninletprivateIpAddress=field_mapjson__"PrivateIpAddress"String_.of_jsoninletnetworkInterfaceId=field_mapjson__"NetworkInterfaceId"NetworkInterfaceId.of_jsoninletipv6Addresses=field_mapjson__"Ipv6Addresses"InstanceIpv6AddressList.of_jsoninletipv6AddressCount=field_mapjson__"Ipv6AddressCount"Integer.of_jsoninletinterfaceType=field_mapjson__"InterfaceType"String_.of_jsoninletgroups=field_mapjson__"Groups"GroupIdStringList.of_jsoninletdeviceIndex=field_mapjson__"DeviceIndex"Integer.of_jsoninletdescription=field_mapjson__"Description"String_.of_jsoninletdeleteOnTermination=field_mapjson__"DeleteOnTermination"Boolean.of_jsoninletassociatePublicIpAddress=field_mapjson__"AssociatePublicIpAddress"Boolean.of_jsoninletassociateCarrierIpAddress=field_mapjson__"AssociateCarrierIpAddress"Boolean.of_jsoninmake?enaQueueCount?connectionTrackingSpecification?enaSrdSpecification?primaryIpv6?ipv6PrefixCount?ipv6Prefixes?ipv4PrefixCount?ipv4Prefixes?networkCardIndex?subnetId?secondaryPrivateIpAddressCount?privateIpAddresses?privateIpAddress?networkInterfaceId?ipv6Addresses?ipv6AddressCount?interfaceType?groups?deviceIndex?description?deleteOnTermination?associatePublicIpAddress?associateCarrierIpAddress()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a network interface."]moduleLaunchTemplateInstanceSecondaryInterfaceSpecification=structtypenonrect={deleteOnTermination:Boolean.toption[@ocaml.doc"Indicates whether the secondary interface is deleted when the instance is terminated. The only supported value for this field is true."];deviceIndex:Integer.toption[@ocaml.doc"The device index for the secondary interface attachment."];privateIpAddresses:SecondaryInterfacePrivateIpAddressSpecificationList.toption[@ocaml.doc"The private IPv4 addresses to assign to the secondary interface. If you specify privateIpAddresses you cannot specify privateIpAddressCount"];privateIpAddressCount:Integer.toption[@ocaml.doc"The number of private IPv4 addresses to assign to the secondary interface. If you specify privateIpAddressCount you cannot specify privateIpAddresses"];secondarySubnetId:SecondarySubnetId.toption[@ocaml.doc"The ID of the secondary subnet."];interfaceType:SecondaryInterfaceType.toption[@ocaml.doc"The type of secondary interface."];networkCardIndex:Integer.toption[@ocaml.doc"The index of the network card."]}letmake?deleteOnTermination=fun?deviceIndex->fun?privateIpAddresses->fun?privateIpAddressCount->fun?secondarySubnetId->fun?interfaceType->fun?networkCardIndex->fun()->{deleteOnTermination;deviceIndex;privateIpAddresses;privateIpAddressCount;secondarySubnetId;interfaceType;networkCardIndex}letto_valuex=structure_to_value[("deleteOnTermination",(Option.mapx.deleteOnTermination~f:Boolean.to_value));("deviceIndex",(Option.mapx.deviceIndex~f:Integer.to_value));("privateIpAddressesSet",(Option.mapx.privateIpAddresses~f:SecondaryInterfacePrivateIpAddressSpecificationList.to_value));("privateIpAddressCount",(Option.mapx.privateIpAddressCount~f:Integer.to_value));("secondarySubnetId",(Option.mapx.secondarySubnetId~f:SecondarySubnetId.to_value));("interfaceType",(Option.mapx.interfaceType~f:SecondaryInterfaceType.to_value));("networkCardIndex",(Option.mapx.networkCardIndex~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnetworkCardIndex=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"networkCardIndex")inletinterfaceType=(Option.map~f:SecondaryInterfaceType.of_xml)(Xml.childxml_arg0"interfaceType")inletsecondarySubnetId=(Option.map~f:SecondarySubnetId.of_xml)(Xml.childxml_arg0"secondarySubnetId")inletprivateIpAddressCount=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"privateIpAddressCount")inletprivateIpAddresses=(Option.map~f:SecondaryInterfacePrivateIpAddressSpecificationList.of_xml)(Xml.childxml_arg0"privateIpAddressesSet")inletdeviceIndex=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"deviceIndex")inletdeleteOnTermination=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"deleteOnTermination")inmake?networkCardIndex?interfaceType?secondarySubnetId?privateIpAddressCount?privateIpAddresses?deviceIndex?deleteOnTermination()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnetworkCardIndex=field_mapjson__"NetworkCardIndex"Integer.of_jsoninletinterfaceType=field_mapjson__"InterfaceType"SecondaryInterfaceType.of_jsoninletsecondarySubnetId=field_mapjson__"SecondarySubnetId"SecondarySubnetId.of_jsoninletprivateIpAddressCount=field_mapjson__"PrivateIpAddressCount"Integer.of_jsoninletprivateIpAddresses=field_mapjson__"PrivateIpAddresses"SecondaryInterfacePrivateIpAddressSpecificationList.of_jsoninletdeviceIndex=field_mapjson__"DeviceIndex"Integer.of_jsoninletdeleteOnTermination=field_mapjson__"DeleteOnTermination"Boolean.of_jsoninmake?networkCardIndex?interfaceType?secondarySubnetId?privateIpAddressCount?privateIpAddresses?deviceIndex?deleteOnTermination()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a secondary interface specification in a launch template."]moduleLaunchTemplateLicenseConfiguration=structtypenonrect={licenseConfigurationArn:String_.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the license configuration."]}letmake?licenseConfigurationArn=fun()->{licenseConfigurationArn}letto_valuex=structure_to_value[("licenseConfigurationArn",(Option.mapx.licenseConfigurationArn~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlicenseConfigurationArn=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"licenseConfigurationArn")inmake?licenseConfigurationArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlicenseConfigurationArn=field_mapjson__"LicenseConfigurationArn"String_.of_jsoninmake?licenseConfigurationArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a license configuration."]moduleLaunchTemplateTagSpecification=structtypenonrect={resourceType:ResourceType.toption[@ocaml.doc"The type of resource to tag."];tags:TagList.toption[@ocaml.doc"The tags for the resource."]}letmake?resourceType=fun?tags->fun()->{resourceType;tags}letto_valuex=structure_to_value[("resourceType",(Option.mapx.resourceType~f:ResourceType.to_value));("tagSet",(Option.mapx.tags~f:TagList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:TagList.of_xml)(Xml.childxml_arg0"tagSet")inletresourceType=(Option.map~f:ResourceType.of_xml)(Xml.childxml_arg0"resourceType")inmake?tags?resourceType()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"Tags"TagList.of_jsoninletresourceType=field_mapjson__"ResourceType"ResourceType.of_jsoninmake?tags?resourceType()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The tags specification for the launch template."]moduleArchitectureValues=structtypenonrect=|I386|X86_64|Arm64|X86_64_mac|Arm64_mac|Non_static_idofstringletmakei=iletto_string=function|I386->"i386"|X86_64->"x86_64"|Arm64->"arm64"|X86_64_mac->"x86_64_mac"|Arm64_mac->"arm64_mac"|Non_static_ids->sletof_string=function|"i386"->I386|"x86_64"->X86_64|"arm64"->Arm64|"x86_64_mac"->X86_64_mac|"arm64_mac"->Arm64_mac|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 ArchitectureValues"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ArchitectureValues"j)letto_json=simple_to_jsonto_valueendmoduleBootModeValues=structtypenonrect=|Legacy_bios|Uefi|Uefi_preferred|Non_static_idofstringletmakei=iletto_string=function|Legacy_bios->"legacy-bios"|Uefi->"uefi"|Uefi_preferred->"uefi-preferred"|Non_static_ids->sletof_string=function|"legacy-bios"->Legacy_bios|"uefi"->Uefi|"uefi-preferred"->Uefi_preferred|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 BootModeValues"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"BootModeValues"j)letto_json=simple_to_jsonto_valueendmoduleCapacityReservationSpecificationResponse=structtypenonrect={capacityReservationPreference:CapacityReservationPreference.toption[@ocaml.doc"Describes the instance's Capacity Reservation preferences. Possible preferences include: open - The instance can run in any open Capacity Reservation that has matching attributes (instance type, platform, Availability Zone). none - The instance avoids running in a Capacity Reservation even if one is available. The instance runs in On-Demand capacity."];capacityReservationTarget:CapacityReservationTargetResponse.toption[@ocaml.doc"Information about the targeted Capacity Reservation or Capacity Reservation group."]}letmake?capacityReservationPreference=fun?capacityReservationTarget->fun()->{capacityReservationPreference;capacityReservationTarget}letto_valuex=structure_to_value[("capacityReservationPreference",(Option.mapx.capacityReservationPreference~f:CapacityReservationPreference.to_value));("capacityReservationTarget",(Option.mapx.capacityReservationTarget~f:CapacityReservationTargetResponse.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcapacityReservationTarget=(Option.map~f:CapacityReservationTargetResponse.of_xml)(Xml.childxml_arg0"capacityReservationTarget")inletcapacityReservationPreference=(Option.map~f:CapacityReservationPreference.of_xml)(Xml.childxml_arg0"capacityReservationPreference")inmake?capacityReservationTarget?capacityReservationPreference()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcapacityReservationTarget=field_mapjson__"CapacityReservationTarget"CapacityReservationTargetResponse.of_jsoninletcapacityReservationPreference=field_mapjson__"CapacityReservationPreference"CapacityReservationPreference.of_jsoninmake?capacityReservationTarget?capacityReservationPreference()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the instance's Capacity Reservation targeting preferences. The action returns the capacityReservationPreference response element if the instance is configured to run in On-Demand capacity, or if it is configured in run in any open Capacity Reservation that has matching attributes (instance type, platform, Availability Zone). The action returns the capacityReservationTarget response element if the instance explicily targets a specific Capacity Reservation or Capacity Reservation group."]moduleCpuOptions=structtypenonrect={coreCount:Integer.toption[@ocaml.doc"The number of CPU cores for the instance."];threadsPerCore:Integer.toption[@ocaml.doc"The number of threads per CPU core."];amdSevSnp:AmdSevSnpSpecification.toption[@ocaml.doc"Indicates whether the instance is enabled for AMD SEV-SNP. For more information, see AMD SEV-SNP."];nestedVirtualization:NestedVirtualizationSpecification.toption[@ocaml.doc"Indicates whether the instance is enabled for nested virtualization."]}letmake?coreCount=fun?threadsPerCore->fun?amdSevSnp->fun?nestedVirtualization->fun()->{coreCount;threadsPerCore;amdSevSnp;nestedVirtualization}letto_valuex=structure_to_value[("coreCount",(Option.mapx.coreCount~f:Integer.to_value));("threadsPerCore",(Option.mapx.threadsPerCore~f:Integer.to_value));("amdSevSnp",(Option.mapx.amdSevSnp~f:AmdSevSnpSpecification.to_value));("nestedVirtualization",(Option.mapx.nestedVirtualization~f:NestedVirtualizationSpecification.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnestedVirtualization=(Option.map~f:NestedVirtualizationSpecification.of_xml)(Xml.childxml_arg0"nestedVirtualization")inletamdSevSnp=(Option.map~f:AmdSevSnpSpecification.of_xml)(Xml.childxml_arg0"amdSevSnp")inletthreadsPerCore=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"threadsPerCore")inletcoreCount=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"coreCount")inmake?nestedVirtualization?amdSevSnp?threadsPerCore?coreCount()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnestedVirtualization=field_mapjson__"NestedVirtualization"NestedVirtualizationSpecification.of_jsoninletamdSevSnp=field_mapjson__"AmdSevSnp"AmdSevSnpSpecification.of_jsoninletthreadsPerCore=field_mapjson__"ThreadsPerCore"Integer.of_jsoninletcoreCount=field_mapjson__"CoreCount"Integer.of_jsoninmake?nestedVirtualization?amdSevSnp?threadsPerCore?coreCount()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The CPU options for the instance."]moduleDeviceType=structtypenonrect=|Ebs|Instance_store|Non_static_idofstringletmakei=iletto_string=function|Ebs->"ebs"|Instance_store->"instance-store"|Non_static_ids->sletof_string=function|"ebs"->Ebs|"instance-store"->Instance_store|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 DeviceType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"DeviceType"j)letto_json=simple_to_jsonto_valueendmoduleElasticGpuAssociationList=structtypenonrect=ElasticGpuAssociation.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ElasticGpuAssociation.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:ElasticGpuAssociation.of_xml)letof_jsonj=list_of_json~kind:"ElasticGpuAssociationList"~of_json:ElasticGpuAssociation.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleElasticInferenceAcceleratorAssociationList=structtypenonrect=ElasticInferenceAcceleratorAssociation.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ElasticInferenceAcceleratorAssociation.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:ElasticInferenceAcceleratorAssociation.of_xml)letof_jsonj=list_of_json~kind:"ElasticInferenceAcceleratorAssociationList"~of_json:ElasticInferenceAcceleratorAssociation.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleEnclaveOptions=structtypenonrect={enabled:Boolean.toption[@ocaml.doc"If this parameter is set to true, the instance is enabled for Amazon Web Services Nitro Enclaves; otherwise, it is not enabled for Amazon Web Services Nitro Enclaves."]}letmake?enabled=fun()->{enabled}letto_valuex=structure_to_value[("enabled",(Option.mapx.enabled~f:Boolean.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letenabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"enabled")inmake?enabled()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letenabled=field_mapjson__"Enabled"Boolean.of_jsoninmake?enabled()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Indicates whether the instance is enabled for Amazon Web Services Nitro Enclaves."]moduleHibernationOptions=structtypenonrect={configured:Boolean.toption[@ocaml.doc"If true, your instance is enabled for hibernation; otherwise, it is not enabled for hibernation."]}letmake?configured=fun()->{configured}letto_valuex=structure_to_value[("configured",(Option.mapx.configured~f:Boolean.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letconfigured=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"configured")inmake?configured()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letconfigured=field_mapjson__"Configured"Boolean.of_jsoninmake?configured()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Indicates whether your instance is configured for hibernation. This parameter is valid only if the instance meets the hibernation prerequisites. For more information, see Hibernate your Amazon EC2 instance in the Amazon EC2 User Guide."]moduleHypervisorType=structtypenonrect=|Ovm|Xen|Non_static_idofstringletmakei=iletto_string=function|Ovm->"ovm"|Xen->"xen"|Non_static_ids->sletof_string=function|"ovm"->Ovm|"xen"->Xen|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 HypervisorType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"HypervisorType"j)letto_json=simple_to_jsonto_valueendmoduleIamInstanceProfile=structtypenonrect={arn:String_.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the instance profile."];id:String_.toption[@ocaml.doc"The ID of the instance profile."]}letmake?arn=fun?id->fun()->{arn;id}letto_valuex=structure_to_value[("arn",(Option.mapx.arn~f:String_.to_value));("id",(Option.mapx.id~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letid=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"id")inletarn=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"arn")inmake?id?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letid=field_mapjson__"Id"String_.of_jsoninletarn=field_mapjson__"Arn"String_.of_jsoninmake?id?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an IAM instance profile."]moduleInstanceBlockDeviceMappingList=structtypenonrect=InstanceBlockDeviceMapping.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:InstanceBlockDeviceMapping.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:InstanceBlockDeviceMapping.of_xml)letof_jsonj=list_of_json~kind:"InstanceBlockDeviceMappingList"~of_json:InstanceBlockDeviceMapping.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleInstanceBootModeValues=structtypenonrect=|Legacy_bios|Uefi|Non_static_idofstringletmakei=iletto_string=function|Legacy_bios->"legacy-bios"|Uefi->"uefi"|Non_static_ids->sletof_string=function|"legacy-bios"->Legacy_bios|"uefi"->Uefi|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 InstanceBootModeValues"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"InstanceBootModeValues"j)letto_json=simple_to_jsonto_valueendmoduleInstanceLifecycleType=structtypenonrect=|Spot|Scheduled|Capacity_block|Interruptible_capacity_reservation|Non_static_idofstringletmakei=iletto_string=function|Spot->"spot"|Scheduled->"scheduled"|Capacity_block->"capacity-block"|Interruptible_capacity_reservation->"interruptible-capacity-reservation"|Non_static_ids->sletof_string=function|"spot"->Spot|"scheduled"->Scheduled|"capacity-block"->Capacity_block|"interruptible-capacity-reservation"->Interruptible_capacity_reservation|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 InstanceLifecycleType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"InstanceLifecycleType"j)letto_json=simple_to_jsonto_valueendmoduleInstanceMaintenanceOptions=structtypenonrect={autoRecovery:InstanceAutoRecoveryState.toption[@ocaml.doc"Provides information on the current automatic recovery behavior of your instance."];rebootMigration:InstanceRebootMigrationState.toption[@ocaml.doc"Specifies whether to attempt reboot migration during a user-initiated reboot of an instance that has a scheduled system-reboot event: default - Amazon EC2 attempts to migrate the instance to new hardware (reboot migration). If successful, the system-reboot event is cleared. If unsuccessful, an in-place reboot occurs and the event remains scheduled. disabled - Amazon EC2 keeps the instance on the same hardware (in-place reboot). The system-reboot event remains scheduled. This setting only applies to supported instances that have a scheduled reboot event. For more information, see Enable or disable reboot migration in the Amazon EC2 User Guide."]}letmake?autoRecovery=fun?rebootMigration->fun()->{autoRecovery;rebootMigration}letto_valuex=structure_to_value[("autoRecovery",(Option.mapx.autoRecovery~f:InstanceAutoRecoveryState.to_value));("rebootMigration",(Option.mapx.rebootMigration~f:InstanceRebootMigrationState.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letrebootMigration=(Option.map~f:InstanceRebootMigrationState.of_xml)(Xml.childxml_arg0"rebootMigration")inletautoRecovery=(Option.map~f:InstanceAutoRecoveryState.of_xml)(Xml.childxml_arg0"autoRecovery")inmake?rebootMigration?autoRecovery()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letrebootMigration=field_mapjson__"RebootMigration"InstanceRebootMigrationState.of_jsoninletautoRecovery=field_mapjson__"AutoRecovery"InstanceAutoRecoveryState.of_jsoninmake?rebootMigration?autoRecovery()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The maintenance options for the instance."]moduleInstanceMetadataOptionsResponse=structtypenonrect={state:InstanceMetadataOptionsState.toption[@ocaml.doc"The state of the metadata option changes. pending - The metadata options are being updated and the instance is not ready to process metadata traffic with the new selection. applied - The metadata options have been successfully applied on the instance."];httpTokens:HttpTokensState.toption[@ocaml.doc"Indicates whether IMDSv2 is required. optional - IMDSv2 is optional, which means that you can use either IMDSv2 or IMDSv1. required - IMDSv2 is required, which means that IMDSv1 is disabled, and you must use IMDSv2."];httpPutResponseHopLimit:Integer.toption[@ocaml.doc"The maximum number of hops that the metadata token can travel. Possible values: Integers from 1 to 64"];httpEndpoint:InstanceMetadataEndpointState.toption[@ocaml.doc"Indicates whether the HTTP metadata endpoint on your instances is enabled or disabled. If the value is disabled, you cannot access your instance metadata."];httpProtocolIpv6:InstanceMetadataProtocolState.toption[@ocaml.doc"Indicates whether the IPv6 endpoint for the instance metadata service is enabled or disabled. Default: disabled"];instanceMetadataTags:InstanceMetadataTagsState.toption[@ocaml.doc"Indicates whether access to instance tags from the instance metadata is enabled or disabled. For more information, see View tags for your EC2 instances using instance metadata."]}letmake?state=fun?httpTokens->fun?httpPutResponseHopLimit->fun?httpEndpoint->fun?httpProtocolIpv6->fun?instanceMetadataTags->fun()->{state;httpTokens;httpPutResponseHopLimit;httpEndpoint;httpProtocolIpv6;instanceMetadataTags}letto_valuex=structure_to_value[("state",(Option.mapx.state~f:InstanceMetadataOptionsState.to_value));("httpTokens",(Option.mapx.httpTokens~f:HttpTokensState.to_value));("httpPutResponseHopLimit",(Option.mapx.httpPutResponseHopLimit~f:Integer.to_value));("httpEndpoint",(Option.mapx.httpEndpoint~f:InstanceMetadataEndpointState.to_value));("httpProtocolIpv6",(Option.mapx.httpProtocolIpv6~f:InstanceMetadataProtocolState.to_value));("instanceMetadataTags",(Option.mapx.instanceMetadataTags~f:InstanceMetadataTagsState.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letinstanceMetadataTags=(Option.map~f:InstanceMetadataTagsState.of_xml)(Xml.childxml_arg0"instanceMetadataTags")inlethttpProtocolIpv6=(Option.map~f:InstanceMetadataProtocolState.of_xml)(Xml.childxml_arg0"httpProtocolIpv6")inlethttpEndpoint=(Option.map~f:InstanceMetadataEndpointState.of_xml)(Xml.childxml_arg0"httpEndpoint")inlethttpPutResponseHopLimit=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"httpPutResponseHopLimit")inlethttpTokens=(Option.map~f:HttpTokensState.of_xml)(Xml.childxml_arg0"httpTokens")inletstate=(Option.map~f:InstanceMetadataOptionsState.of_xml)(Xml.childxml_arg0"state")inmake?instanceMetadataTags?httpProtocolIpv6?httpEndpoint?httpPutResponseHopLimit?httpTokens?state()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letinstanceMetadataTags=field_mapjson__"InstanceMetadataTags"InstanceMetadataTagsState.of_jsoninlethttpProtocolIpv6=field_mapjson__"HttpProtocolIpv6"InstanceMetadataProtocolState.of_jsoninlethttpEndpoint=field_mapjson__"HttpEndpoint"InstanceMetadataEndpointState.of_jsoninlethttpPutResponseHopLimit=field_mapjson__"HttpPutResponseHopLimit"Integer.of_jsoninlethttpTokens=field_mapjson__"HttpTokens"HttpTokensState.of_jsoninletstate=field_mapjson__"State"InstanceMetadataOptionsState.of_jsoninmake?instanceMetadataTags?httpProtocolIpv6?httpEndpoint?httpPutResponseHopLimit?httpTokens?state()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The metadata options for the instance."]moduleInstanceNetworkInterfaceList=structtypenonrect=InstanceNetworkInterface.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:InstanceNetworkInterface.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:InstanceNetworkInterface.of_xml)letof_jsonj=list_of_json~kind:"InstanceNetworkInterfaceList"~of_json:InstanceNetworkInterface.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleInstanceNetworkPerformanceOptions=structtypenonrect={bandwidthWeighting:InstanceBandwidthWeighting.toption[@ocaml.doc"When you configure network bandwidth weighting, you can boost your baseline bandwidth for either networking or EBS by up to 25%. The total available baseline bandwidth for your instance remains the same. The default option uses the standard bandwidth configuration for your instance type."]}letmake?bandwidthWeighting=fun()->{bandwidthWeighting}letto_valuex=structure_to_value[("bandwidthWeighting",(Option.mapx.bandwidthWeighting~f:InstanceBandwidthWeighting.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letbandwidthWeighting=(Option.map~f:InstanceBandwidthWeighting.of_xml)(Xml.childxml_arg0"bandwidthWeighting")inmake?bandwidthWeighting()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letbandwidthWeighting=field_mapjson__"BandwidthWeighting"InstanceBandwidthWeighting.of_jsoninmake?bandwidthWeighting()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"With network performance options, you can adjust your bandwidth preferences to meet the needs of the workload that runs on your instance."]moduleInstanceSecondaryInterfaceList=structtypenonrect=InstanceSecondaryInterface.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:InstanceSecondaryInterface.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:InstanceSecondaryInterface.of_xml)letof_jsonj=list_of_json~kind:"InstanceSecondaryInterfaceList"~of_json:InstanceSecondaryInterface.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleInstanceState=structtypenonrect={code:Integer.toption[@ocaml.doc"The state of the instance as a 16-bit unsigned integer. The high byte is all of the bits between 2^8 and (2^16)-1, which equals decimal values between 256 and 65,535. These numerical values are used for internal purposes and should be ignored. The low byte is all of the bits between 2^0 and (2^8)-1, which equals decimal values between 0 and 255. The valid values for instance-state-code will all be in the range of the low byte and they are: 0 : pending 16 : running 32 : shutting-down 48 : terminated 64 : stopping 80 : stopped You can ignore the high byte value by zeroing out all of the bits above 2^8 or 256 in decimal."];name:InstanceStateName.toption[@ocaml.doc"The current state of the instance."]}letmake?code=fun?name->fun()->{code;name}letto_valuex=structure_to_value[("code",(Option.mapx.code~f:Integer.to_value));("name",(Option.mapx.name~f:InstanceStateName.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letname=(Option.map~f:InstanceStateName.of_xml)(Xml.childxml_arg0"name")inletcode=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"code")inmake?name?code()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letname=field_mapjson__"Name"InstanceStateName.of_jsoninletcode=field_mapjson__"Code"Integer.of_jsoninmake?name?code()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the current state of an instance."]moduleLicenseList=structtypenonrect=LicenseConfiguration.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:LicenseConfiguration.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:LicenseConfiguration.of_xml)letof_jsonj=list_of_json~kind:"LicenseList"~of_json:LicenseConfiguration.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleMonitoring=structtypenonrect={state:MonitoringState.toption[@ocaml.doc"Indicates whether detailed monitoring is enabled. Otherwise, basic monitoring is enabled."]}letmake?state=fun()->{state}letto_valuex=structure_to_value[("state",(Option.mapx.state~f:MonitoringState.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstate=(Option.map~f:MonitoringState.of_xml)(Xml.childxml_arg0"state")inmake?state()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstate=field_mapjson__"State"MonitoringState.of_jsoninmake?state()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the monitoring of an instance."]modulePlatformValues=structtypenonrect=|Windows|Non_static_idofstringletmakei=iletto_string=function|Windows->"Windows"|Non_static_ids->sletof_string=function|"Windows"->Windows|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 PlatformValues"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"PlatformValues"j)letto_json=simple_to_jsonto_valueendmodulePrivateDnsNameOptionsResponse=structtypenonrect={hostnameType:HostnameType.toption[@ocaml.doc"The type of hostname to assign to an instance."];enableResourceNameDnsARecord:Boolean.toption[@ocaml.doc"Indicates whether to respond to DNS queries for instance hostnames with DNS A records."];enableResourceNameDnsAAAARecord:Boolean.toption[@ocaml.doc"Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records."]}letmake?hostnameType=fun?enableResourceNameDnsARecord->fun?enableResourceNameDnsAAAARecord->fun()->{hostnameType;enableResourceNameDnsARecord;enableResourceNameDnsAAAARecord}letto_valuex=structure_to_value[("hostnameType",(Option.mapx.hostnameType~f:HostnameType.to_value));("enableResourceNameDnsARecord",(Option.mapx.enableResourceNameDnsARecord~f:Boolean.to_value));("enableResourceNameDnsAAAARecord",(Option.mapx.enableResourceNameDnsAAAARecord~f:Boolean.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letenableResourceNameDnsAAAARecord=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"enableResourceNameDnsAAAARecord")inletenableResourceNameDnsARecord=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"enableResourceNameDnsARecord")inlethostnameType=(Option.map~f:HostnameType.of_xml)(Xml.childxml_arg0"hostnameType")inmake?enableResourceNameDnsAAAARecord?enableResourceNameDnsARecord?hostnameType()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letenableResourceNameDnsAAAARecord=field_mapjson__"EnableResourceNameDnsAAAARecord"Boolean.of_jsoninletenableResourceNameDnsARecord=field_mapjson__"EnableResourceNameDnsARecord"Boolean.of_jsoninlethostnameType=field_mapjson__"HostnameType"HostnameType.of_jsoninmake?enableResourceNameDnsAAAARecord?enableResourceNameDnsARecord?hostnameType()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the options for instance hostnames."]moduleProductCodeList=structtypenonrect=ProductCode.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ProductCode.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:ProductCode.of_xml)letof_jsonj=list_of_json~kind:"ProductCodeList"~of_json:ProductCode.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleStateReason=structtypenonrect={code:String_.toption[@ocaml.doc"The reason code for the state change."];message:String_.toption[@ocaml.doc"The message for the state change. Server.InsufficientInstanceCapacity: There was insufficient capacity available to satisfy the launch request. Server.InternalError: An internal error caused the instance to terminate during launch. Server.ScheduledStop: The instance was stopped due to a scheduled retirement. Server.SpotInstanceShutdown: The instance was stopped because the number of Spot requests with a maximum price equal to or higher than the Spot price exceeded available capacity or because of an increase in the Spot price. Server.SpotInstanceTermination: The instance was terminated because the number of Spot requests with a maximum price equal to or higher than the Spot price exceeded available capacity or because of an increase in the Spot price. Client.InstanceInitiatedShutdown: The instance was shut down from the operating system of the instance. Client.InstanceTerminated: The instance was terminated or rebooted during AMI creation. Client.InternalError: A client error caused the instance to terminate during launch. Client.InvalidSnapshot.NotFound: The specified snapshot was not found. Client.UserInitiatedHibernate: Hibernation was initiated on the instance. Client.UserInitiatedShutdown: The instance was shut down using the Amazon EC2 API. Client.VolumeLimitExceeded: The limit on the number of EBS volumes or total storage was exceeded. Decrease usage or request an increase in your account limits."]}letmake?code=fun?message->fun()->{code;message}letto_valuex=structure_to_value[("code",(Option.mapx.code~f:String_.to_value));("message",(Option.mapx.message~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inletcode=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"code")inmake?message?code()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"Message"String_.of_jsoninletcode=field_mapjson__"Code"String_.of_jsoninmake?message?code()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a state change."]moduleVirtualizationType=structtypenonrect=|Hvm|Paravirtual|Non_static_idofstringletmakei=iletto_string=function|Hvm->"hvm"|Paravirtual->"paravirtual"|Non_static_ids->sletof_string=function|"hvm"->Hvm|"paravirtual"->Paravirtual|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 VirtualizationType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"VirtualizationType"j)letto_json=simple_to_jsonto_valueendmoduleEbsCardInfo=structtypenonrect={ebsCardIndex:EbsCardIndex.toption[@ocaml.doc"The index of the EBS card."];baselineBandwidthInMbps:BaselineBandwidthInMbps.toption[@ocaml.doc"The baseline bandwidth performance for the EBS card, in Mbps."];baselineThroughputInMBps:BaselineThroughputInMBps.toption[@ocaml.doc"The baseline throughput performance for the EBS card, in MBps."];baselineIops:BaselineIops.toption[@ocaml.doc"The baseline IOPS performance for the EBS card."];maximumBandwidthInMbps:MaximumBandwidthInMbps.toption[@ocaml.doc"The maximum bandwidth performance for the EBS card, in Mbps."];maximumThroughputInMBps:MaximumThroughputInMBps.toption[@ocaml.doc"The maximum throughput performance for the EBS card, in MBps."];maximumIops:MaximumIops.toption[@ocaml.doc"The maximum IOPS performance for the EBS card."]}letmake?ebsCardIndex=fun?baselineBandwidthInMbps->fun?baselineThroughputInMBps->fun?baselineIops->fun?maximumBandwidthInMbps->fun?maximumThroughputInMBps->fun?maximumIops->fun()->{ebsCardIndex;baselineBandwidthInMbps;baselineThroughputInMBps;baselineIops;maximumBandwidthInMbps;maximumThroughputInMBps;maximumIops}letto_valuex=structure_to_value[("ebsCardIndex",(Option.mapx.ebsCardIndex~f:EbsCardIndex.to_value));("baselineBandwidthInMbps",(Option.mapx.baselineBandwidthInMbps~f:BaselineBandwidthInMbps.to_value));("baselineThroughputInMBps",(Option.mapx.baselineThroughputInMBps~f:BaselineThroughputInMBps.to_value));("baselineIops",(Option.mapx.baselineIops~f:BaselineIops.to_value));("maximumBandwidthInMbps",(Option.mapx.maximumBandwidthInMbps~f:MaximumBandwidthInMbps.to_value));("maximumThroughputInMBps",(Option.mapx.maximumThroughputInMBps~f:MaximumThroughputInMBps.to_value));("maximumIops",(Option.mapx.maximumIops~f:MaximumIops.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmaximumIops=(Option.map~f:MaximumIops.of_xml)(Xml.childxml_arg0"maximumIops")inletmaximumThroughputInMBps=(Option.map~f:MaximumThroughputInMBps.of_xml)(Xml.childxml_arg0"maximumThroughputInMBps")inletmaximumBandwidthInMbps=(Option.map~f:MaximumBandwidthInMbps.of_xml)(Xml.childxml_arg0"maximumBandwidthInMbps")inletbaselineIops=(Option.map~f:BaselineIops.of_xml)(Xml.childxml_arg0"baselineIops")inletbaselineThroughputInMBps=(Option.map~f:BaselineThroughputInMBps.of_xml)(Xml.childxml_arg0"baselineThroughputInMBps")inletbaselineBandwidthInMbps=(Option.map~f:BaselineBandwidthInMbps.of_xml)(Xml.childxml_arg0"baselineBandwidthInMbps")inletebsCardIndex=(Option.map~f:EbsCardIndex.of_xml)(Xml.childxml_arg0"ebsCardIndex")inmake?maximumIops?maximumThroughputInMBps?maximumBandwidthInMbps?baselineIops?baselineThroughputInMBps?baselineBandwidthInMbps?ebsCardIndex()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmaximumIops=field_mapjson__"MaximumIops"MaximumIops.of_jsoninletmaximumThroughputInMBps=field_mapjson__"MaximumThroughputInMBps"MaximumThroughputInMBps.of_jsoninletmaximumBandwidthInMbps=field_mapjson__"MaximumBandwidthInMbps"MaximumBandwidthInMbps.of_jsoninletbaselineIops=field_mapjson__"BaselineIops"BaselineIops.of_jsoninletbaselineThroughputInMBps=field_mapjson__"BaselineThroughputInMBps"BaselineThroughputInMBps.of_jsoninletbaselineBandwidthInMbps=field_mapjson__"BaselineBandwidthInMbps"BaselineBandwidthInMbps.of_jsoninletebsCardIndex=field_mapjson__"EbsCardIndex"EbsCardIndex.of_jsoninmake?maximumIops?maximumThroughputInMBps?maximumBandwidthInMbps?baselineIops?baselineThroughputInMBps?baselineBandwidthInMbps?ebsCardIndex()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the performance characteristics of an EBS card on the instance type."]moduleFpgaDeviceInfo=structtypenonrect={name:FpgaDeviceName.toption[@ocaml.doc"The name of the FPGA accelerator."];manufacturer:FpgaDeviceManufacturerName.toption[@ocaml.doc"The manufacturer of the FPGA accelerator."];count:FpgaDeviceCount.toption[@ocaml.doc"The count of FPGA accelerators for the instance type."];memoryInfo:FpgaDeviceMemoryInfo.toption[@ocaml.doc"Describes the memory for the FPGA accelerator for the instance type."]}letmake?name=fun?manufacturer->fun?count->fun?memoryInfo->fun()->{name;manufacturer;count;memoryInfo}letto_valuex=structure_to_value[("name",(Option.mapx.name~f:FpgaDeviceName.to_value));("manufacturer",(Option.mapx.manufacturer~f:FpgaDeviceManufacturerName.to_value));("count",(Option.mapx.count~f:FpgaDeviceCount.to_value));("memoryInfo",(Option.mapx.memoryInfo~f:FpgaDeviceMemoryInfo.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmemoryInfo=(Option.map~f:FpgaDeviceMemoryInfo.of_xml)(Xml.childxml_arg0"memoryInfo")inletcount=(Option.map~f:FpgaDeviceCount.of_xml)(Xml.childxml_arg0"count")inletmanufacturer=(Option.map~f:FpgaDeviceManufacturerName.of_xml)(Xml.childxml_arg0"manufacturer")inletname=(Option.map~f:FpgaDeviceName.of_xml)(Xml.childxml_arg0"name")inmake?memoryInfo?count?manufacturer?name()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmemoryInfo=field_mapjson__"MemoryInfo"FpgaDeviceMemoryInfo.of_jsoninletcount=field_mapjson__"Count"FpgaDeviceCount.of_jsoninletmanufacturer=field_mapjson__"Manufacturer"FpgaDeviceManufacturerName.of_jsoninletname=field_mapjson__"Name"FpgaDeviceName.of_jsoninmake?memoryInfo?count?manufacturer?name()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the FPGA accelerator for the instance type."]moduleGpuDeviceInfo=structtypenonrect={name:GpuDeviceName.toption[@ocaml.doc"The name of the GPU accelerator."];manufacturer:GpuDeviceManufacturerName.toption[@ocaml.doc"The manufacturer of the GPU accelerator."];count:GpuDeviceCount.toption[@ocaml.doc"The number of GPUs for the instance type."];logicalGpuCount:LogicalGpuCount.toption[@ocaml.doc"Total number of GPU devices of this type."];gpuPartitionSize:GpuPartitionSize.toption[@ocaml.doc"The size of each GPU as a fraction of a full GPU, between 0 (excluded) and 1 (included)."];workloads:WorkloadsList.toption[@ocaml.doc"A list of workload types this GPU supports."];memoryInfo:GpuDeviceMemoryInfo.toption[@ocaml.doc"Describes the memory available to the GPU accelerator."]}letmake?name=fun?manufacturer->fun?count->fun?logicalGpuCount->fun?gpuPartitionSize->fun?workloads->fun?memoryInfo->fun()->{name;manufacturer;count;logicalGpuCount;gpuPartitionSize;workloads;memoryInfo}letto_valuex=structure_to_value[("name",(Option.mapx.name~f:GpuDeviceName.to_value));("manufacturer",(Option.mapx.manufacturer~f:GpuDeviceManufacturerName.to_value));("count",(Option.mapx.count~f:GpuDeviceCount.to_value));("logicalGpuCount",(Option.mapx.logicalGpuCount~f:LogicalGpuCount.to_value));("gpuPartitionSize",(Option.mapx.gpuPartitionSize~f:GpuPartitionSize.to_value));("workloadSet",(Option.mapx.workloads~f:WorkloadsList.to_value));("memoryInfo",(Option.mapx.memoryInfo~f:GpuDeviceMemoryInfo.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmemoryInfo=(Option.map~f:GpuDeviceMemoryInfo.of_xml)(Xml.childxml_arg0"memoryInfo")inletworkloads=(Option.map~f:WorkloadsList.of_xml)(Xml.childxml_arg0"workloadSet")inletgpuPartitionSize=(Option.map~f:GpuPartitionSize.of_xml)(Xml.childxml_arg0"gpuPartitionSize")inletlogicalGpuCount=(Option.map~f:LogicalGpuCount.of_xml)(Xml.childxml_arg0"logicalGpuCount")inletcount=(Option.map~f:GpuDeviceCount.of_xml)(Xml.childxml_arg0"count")inletmanufacturer=(Option.map~f:GpuDeviceManufacturerName.of_xml)(Xml.childxml_arg0"manufacturer")inletname=(Option.map~f:GpuDeviceName.of_xml)(Xml.childxml_arg0"name")inmake?memoryInfo?workloads?gpuPartitionSize?logicalGpuCount?count?manufacturer?name()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmemoryInfo=field_mapjson__"MemoryInfo"GpuDeviceMemoryInfo.of_jsoninletworkloads=field_mapjson__"Workloads"WorkloadsList.of_jsoninletgpuPartitionSize=field_mapjson__"GpuPartitionSize"GpuPartitionSize.of_jsoninletlogicalGpuCount=field_mapjson__"LogicalGpuCount"LogicalGpuCount.of_jsoninletcount=field_mapjson__"Count"GpuDeviceCount.of_jsoninletmanufacturer=field_mapjson__"Manufacturer"GpuDeviceManufacturerName.of_jsoninletname=field_mapjson__"Name"GpuDeviceName.of_jsoninmake?memoryInfo?workloads?gpuPartitionSize?logicalGpuCount?count?manufacturer?name()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the GPU accelerators for the instance type."]moduleInferenceDeviceInfo=structtypenonrect={count:InferenceDeviceCount.toption[@ocaml.doc"The number of Inference accelerators for the instance type."];name:InferenceDeviceName.toption[@ocaml.doc"The name of the Inference accelerator."];manufacturer:InferenceDeviceManufacturerName.toption[@ocaml.doc"The manufacturer of the Inference accelerator."];memoryInfo:InferenceDeviceMemoryInfo.toption[@ocaml.doc"Describes the memory available to the inference accelerator."]}letmake?count=fun?name->fun?manufacturer->fun?memoryInfo->fun()->{count;name;manufacturer;memoryInfo}letto_valuex=structure_to_value[("count",(Option.mapx.count~f:InferenceDeviceCount.to_value));("name",(Option.mapx.name~f:InferenceDeviceName.to_value));("manufacturer",(Option.mapx.manufacturer~f:InferenceDeviceManufacturerName.to_value));("memoryInfo",(Option.mapx.memoryInfo~f:InferenceDeviceMemoryInfo.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmemoryInfo=(Option.map~f:InferenceDeviceMemoryInfo.of_xml)(Xml.childxml_arg0"memoryInfo")inletmanufacturer=(Option.map~f:InferenceDeviceManufacturerName.of_xml)(Xml.childxml_arg0"manufacturer")inletname=(Option.map~f:InferenceDeviceName.of_xml)(Xml.childxml_arg0"name")inletcount=(Option.map~f:InferenceDeviceCount.of_xml)(Xml.childxml_arg0"count")inmake?memoryInfo?manufacturer?name?count()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmemoryInfo=field_mapjson__"MemoryInfo"InferenceDeviceMemoryInfo.of_jsoninletmanufacturer=field_mapjson__"Manufacturer"InferenceDeviceManufacturerName.of_jsoninletname=field_mapjson__"Name"InferenceDeviceName.of_jsoninletcount=field_mapjson__"Count"InferenceDeviceCount.of_jsoninmake?memoryInfo?manufacturer?name?count()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Amazon Elastic Inference is no longer available. Describes the Inference accelerators for the instance type."]moduleDiskInfo=structtypenonrect={sizeInGB:DiskSize.toption[@ocaml.doc"The size of the disk in GB."];count:DiskCount.toption[@ocaml.doc"The number of disks with this configuration."];type_:DiskType.toption[@ocaml.doc"The type of disk."]}letmake?sizeInGB=fun?count->fun?type_->fun()->{sizeInGB;count;type_}letto_valuex=structure_to_value[("sizeInGB",(Option.mapx.sizeInGB~f:DiskSize.to_value));("count",(Option.mapx.count~f:DiskCount.to_value));("type",(Option.mapx.type_~f:DiskType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettype_=(Option.map~f:DiskType.of_xml)(Xml.childxml_arg0"type")inletcount=(Option.map~f:DiskCount.of_xml)(Xml.childxml_arg0"count")inletsizeInGB=(Option.map~f:DiskSize.of_xml)(Xml.childxml_arg0"sizeInGB")inmake?type_?count?sizeInGB()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettype_=field_mapjson__"Type"DiskType.of_jsoninletcount=field_mapjson__"Count"DiskCount.of_jsoninletsizeInGB=field_mapjson__"SizeInGB"DiskSize.of_jsoninmake?type_?count?sizeInGB()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a disk."]moduleMediaDeviceInfo=structtypenonrect={count:MediaDeviceCount.toption[@ocaml.doc"The number of media accelerators for the instance type."];name:MediaDeviceName.toption[@ocaml.doc"The name of the media accelerator."];manufacturer:MediaDeviceManufacturerName.toption[@ocaml.doc"The manufacturer of the media accelerator."];memoryInfo:MediaDeviceMemoryInfo.toption[@ocaml.doc"Describes the memory available to the media accelerator."]}letmake?count=fun?name->fun?manufacturer->fun?memoryInfo->fun()->{count;name;manufacturer;memoryInfo}letto_valuex=structure_to_value[("count",(Option.mapx.count~f:MediaDeviceCount.to_value));("name",(Option.mapx.name~f:MediaDeviceName.to_value));("manufacturer",(Option.mapx.manufacturer~f:MediaDeviceManufacturerName.to_value));("memoryInfo",(Option.mapx.memoryInfo~f:MediaDeviceMemoryInfo.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmemoryInfo=(Option.map~f:MediaDeviceMemoryInfo.of_xml)(Xml.childxml_arg0"memoryInfo")inletmanufacturer=(Option.map~f:MediaDeviceManufacturerName.of_xml)(Xml.childxml_arg0"manufacturer")inletname=(Option.map~f:MediaDeviceName.of_xml)(Xml.childxml_arg0"name")inletcount=(Option.map~f:MediaDeviceCount.of_xml)(Xml.childxml_arg0"count")inmake?memoryInfo?manufacturer?name?count()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmemoryInfo=field_mapjson__"MemoryInfo"MediaDeviceMemoryInfo.of_jsoninletmanufacturer=field_mapjson__"Manufacturer"MediaDeviceManufacturerName.of_jsoninletname=field_mapjson__"Name"MediaDeviceName.of_jsoninletcount=field_mapjson__"Count"MediaDeviceCount.of_jsoninmake?memoryInfo?manufacturer?name?count()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the media accelerators for the instance type."]moduleBandwidthWeightingType=structtypenonrect=|Default|Vpc_1|Ebs_1|Non_static_idofstringletmakei=iletto_string=function|Default->"default"|Vpc_1->"vpc-1"|Ebs_1->"ebs-1"|Non_static_ids->sletof_string=function|"default"->Default|"vpc-1"->Vpc_1|"ebs-1"->Ebs_1|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 BandwidthWeightingType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"BandwidthWeightingType"j)letto_json=simple_to_jsonto_valueendmoduleDefaultTcpEstablishedTimeout=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 DefaultTcpEstablishedTimeout"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleDefaultUdpStreamTimeout=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 DefaultUdpStreamTimeout"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleDefaultUdpTimeout=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 DefaultUdpTimeout"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleMaximumEfaInterfaces=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 MaximumEfaInterfaces"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleNetworkCardInfo=structtypenonrect={networkCardIndex:NetworkCardIndex.toption[@ocaml.doc"The index of the network card."];networkPerformance:NetworkPerformance.toption[@ocaml.doc"The network performance of the network card."];maximumNetworkInterfaces:MaxNetworkInterfaces.toption[@ocaml.doc"The maximum number of network interfaces for the network card."];additionalFlexibleNetworkInterfaces:AdditionalFlexibleNetworkInterfaces.toption[@ocaml.doc"The number of additional network interfaces that can be attached to an instance when using flexible Elastic Network Adapter (ENA) queues. This number is in addition to the base number specified by maximumNetworkInterfaces."];baselineBandwidthInGbps:BaselineBandwidthInGbps.toption[@ocaml.doc"The baseline network performance of the network card, in Gbps."];peakBandwidthInGbps:PeakBandwidthInGbps.toption[@ocaml.doc"The peak (burst) network performance of the network card, in Gbps."];defaultEnaQueueCountPerInterface:DefaultEnaQueueCountPerInterface.toption[@ocaml.doc"The default number of the ENA queues for each interface."];maximumEnaQueueCount:MaximumEnaQueueCount.toption[@ocaml.doc"The maximum number of the ENA queues."];maximumEnaQueueCountPerInterface:MaximumEnaQueueCountPerInterface.toption[@ocaml.doc"The maximum number of the ENA queues for each interface."]}letmake?networkCardIndex=fun?networkPerformance->fun?maximumNetworkInterfaces->fun?additionalFlexibleNetworkInterfaces->fun?baselineBandwidthInGbps->fun?peakBandwidthInGbps->fun?defaultEnaQueueCountPerInterface->fun?maximumEnaQueueCount->fun?maximumEnaQueueCountPerInterface->fun()->{networkCardIndex;networkPerformance;maximumNetworkInterfaces;additionalFlexibleNetworkInterfaces;baselineBandwidthInGbps;peakBandwidthInGbps;defaultEnaQueueCountPerInterface;maximumEnaQueueCount;maximumEnaQueueCountPerInterface}letto_valuex=structure_to_value[("networkCardIndex",(Option.mapx.networkCardIndex~f:NetworkCardIndex.to_value));("networkPerformance",(Option.mapx.networkPerformance~f:NetworkPerformance.to_value));("maximumNetworkInterfaces",(Option.mapx.maximumNetworkInterfaces~f:MaxNetworkInterfaces.to_value));("additionalFlexibleNetworkInterfaces",(Option.mapx.additionalFlexibleNetworkInterfaces~f:AdditionalFlexibleNetworkInterfaces.to_value));("baselineBandwidthInGbps",(Option.mapx.baselineBandwidthInGbps~f:BaselineBandwidthInGbps.to_value));("peakBandwidthInGbps",(Option.mapx.peakBandwidthInGbps~f:PeakBandwidthInGbps.to_value));("defaultEnaQueueCountPerInterface",(Option.mapx.defaultEnaQueueCountPerInterface~f:DefaultEnaQueueCountPerInterface.to_value));("maximumEnaQueueCount",(Option.mapx.maximumEnaQueueCount~f:MaximumEnaQueueCount.to_value));("maximumEnaQueueCountPerInterface",(Option.mapx.maximumEnaQueueCountPerInterface~f:MaximumEnaQueueCountPerInterface.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmaximumEnaQueueCountPerInterface=(Option.map~f:MaximumEnaQueueCountPerInterface.of_xml)(Xml.childxml_arg0"maximumEnaQueueCountPerInterface")inletmaximumEnaQueueCount=(Option.map~f:MaximumEnaQueueCount.of_xml)(Xml.childxml_arg0"maximumEnaQueueCount")inletdefaultEnaQueueCountPerInterface=(Option.map~f:DefaultEnaQueueCountPerInterface.of_xml)(Xml.childxml_arg0"defaultEnaQueueCountPerInterface")inletpeakBandwidthInGbps=(Option.map~f:PeakBandwidthInGbps.of_xml)(Xml.childxml_arg0"peakBandwidthInGbps")inletbaselineBandwidthInGbps=(Option.map~f:BaselineBandwidthInGbps.of_xml)(Xml.childxml_arg0"baselineBandwidthInGbps")inletadditionalFlexibleNetworkInterfaces=(Option.map~f:AdditionalFlexibleNetworkInterfaces.of_xml)(Xml.childxml_arg0"additionalFlexibleNetworkInterfaces")inletmaximumNetworkInterfaces=(Option.map~f:MaxNetworkInterfaces.of_xml)(Xml.childxml_arg0"maximumNetworkInterfaces")inletnetworkPerformance=(Option.map~f:NetworkPerformance.of_xml)(Xml.childxml_arg0"networkPerformance")inletnetworkCardIndex=(Option.map~f:NetworkCardIndex.of_xml)(Xml.childxml_arg0"networkCardIndex")inmake?maximumEnaQueueCountPerInterface?maximumEnaQueueCount?defaultEnaQueueCountPerInterface?peakBandwidthInGbps?baselineBandwidthInGbps?additionalFlexibleNetworkInterfaces?maximumNetworkInterfaces?networkPerformance?networkCardIndex()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmaximumEnaQueueCountPerInterface=field_mapjson__"MaximumEnaQueueCountPerInterface"MaximumEnaQueueCountPerInterface.of_jsoninletmaximumEnaQueueCount=field_mapjson__"MaximumEnaQueueCount"MaximumEnaQueueCount.of_jsoninletdefaultEnaQueueCountPerInterface=field_mapjson__"DefaultEnaQueueCountPerInterface"DefaultEnaQueueCountPerInterface.of_jsoninletpeakBandwidthInGbps=field_mapjson__"PeakBandwidthInGbps"PeakBandwidthInGbps.of_jsoninletbaselineBandwidthInGbps=field_mapjson__"BaselineBandwidthInGbps"BaselineBandwidthInGbps.of_jsoninletadditionalFlexibleNetworkInterfaces=field_mapjson__"AdditionalFlexibleNetworkInterfaces"AdditionalFlexibleNetworkInterfaces.of_jsoninletmaximumNetworkInterfaces=field_mapjson__"MaximumNetworkInterfaces"MaxNetworkInterfaces.of_jsoninletnetworkPerformance=field_mapjson__"NetworkPerformance"NetworkPerformance.of_jsoninletnetworkCardIndex=field_mapjson__"NetworkCardIndex"NetworkCardIndex.of_jsoninmake?maximumEnaQueueCountPerInterface?maximumEnaQueueCount?defaultEnaQueueCountPerInterface?peakBandwidthInGbps?baselineBandwidthInGbps?additionalFlexibleNetworkInterfaces?maximumNetworkInterfaces?networkPerformance?networkCardIndex()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the network card support of the instance type."]moduleNeuronDeviceInfo=structtypenonrect={count:NeuronDeviceCount.toption[@ocaml.doc"The number of neuron accelerators for the instance type."];name:NeuronDeviceName.toption[@ocaml.doc"The name of the neuron accelerator."];coreInfo:NeuronDeviceCoreInfo.toption[@ocaml.doc"Describes the cores available to each neuron accelerator."];memoryInfo:NeuronDeviceMemoryInfo.toption[@ocaml.doc"Describes the memory available to each neuron accelerator."]}letmake?count=fun?name->fun?coreInfo->fun?memoryInfo->fun()->{count;name;coreInfo;memoryInfo}letto_valuex=structure_to_value[("count",(Option.mapx.count~f:NeuronDeviceCount.to_value));("name",(Option.mapx.name~f:NeuronDeviceName.to_value));("coreInfo",(Option.mapx.coreInfo~f:NeuronDeviceCoreInfo.to_value));("memoryInfo",(Option.mapx.memoryInfo~f:NeuronDeviceMemoryInfo.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmemoryInfo=(Option.map~f:NeuronDeviceMemoryInfo.of_xml)(Xml.childxml_arg0"memoryInfo")inletcoreInfo=(Option.map~f:NeuronDeviceCoreInfo.of_xml)(Xml.childxml_arg0"coreInfo")inletname=(Option.map~f:NeuronDeviceName.of_xml)(Xml.childxml_arg0"name")inletcount=(Option.map~f:NeuronDeviceCount.of_xml)(Xml.childxml_arg0"count")inmake?memoryInfo?coreInfo?name?count()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmemoryInfo=field_mapjson__"MemoryInfo"NeuronDeviceMemoryInfo.of_jsoninletcoreInfo=field_mapjson__"CoreInfo"NeuronDeviceCoreInfo.of_jsoninletname=field_mapjson__"Name"NeuronDeviceName.of_jsoninletcount=field_mapjson__"Count"NeuronDeviceCount.of_jsoninmake?memoryInfo?coreInfo?name?count()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the neuron accelerators for the instance type."]moduleNitroTpmSupportedVersionType=structtypenonrect=stringletcontext_="NitroTpmSupportedVersionType"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"NitroTpmSupportedVersionType"jletto_json=simple_to_jsonto_valueendmodulePlacementGroupStrategy=structtypenonrect=|Cluster|Partition|Spread|Non_static_idofstringletmakei=iletto_string=function|Cluster->"cluster"|Partition->"partition"|Spread->"spread"|Non_static_ids->sletof_string=function|"cluster"->Cluster|"partition"->Partition|"spread"->Spread|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 PlacementGroupStrategy"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"PlacementGroupStrategy"j)letto_json=simple_to_jsonto_valueendmoduleArchitectureType=structtypenonrect=|I386|X86_64|Arm64|X86_64_mac|Arm64_mac|Non_static_idofstringletmakei=iletto_string=function|I386->"i386"|X86_64->"x86_64"|Arm64->"arm64"|X86_64_mac->"x86_64_mac"|Arm64_mac->"arm64_mac"|Non_static_ids->sletof_string=function|"i386"->I386|"x86_64"->X86_64|"arm64"->Arm64|"x86_64_mac"->X86_64_mac|"arm64_mac"->Arm64_mac|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 ArchitectureType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ArchitectureType"j)letto_json=simple_to_jsonto_valueendmoduleSupportedAdditionalProcessorFeature=structtypenonrect=|Amd_sev_snp|Nested_virtualization|Non_static_idofstringletmakei=iletto_string=function|Amd_sev_snp->"amd-sev-snp"|Nested_virtualization->"nested-virtualization"|Non_static_ids->sletof_string=function|"amd-sev-snp"->Amd_sev_snp|"nested-virtualization"->Nested_virtualization|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 SupportedAdditionalProcessorFeature"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"SupportedAdditionalProcessorFeature"j)letto_json=simple_to_jsonto_valueendmoduleCoreCount=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 CoreCount"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleThreadsPerCore=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 ThreadsPerCore"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleEbsStatusDetails=structtypenonrect={impairedSince:MillisecondDateTime.toption[@ocaml.doc"The date and time when the attached EBS status check failed."];name:StatusName.toption[@ocaml.doc"The name of the attached EBS status check."];status:StatusType.toption[@ocaml.doc"The result of the attached EBS status check."]}letmake?impairedSince=fun?name->fun?status->fun()->{impairedSince;name;status}letto_valuex=structure_to_value[("impairedSince",(Option.mapx.impairedSince~f:MillisecondDateTime.to_value));("name",(Option.mapx.name~f:StatusName.to_value));("status",(Option.mapx.status~f:StatusType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstatus=(Option.map~f:StatusType.of_xml)(Xml.childxml_arg0"status")inletname=(Option.map~f:StatusName.of_xml)(Xml.childxml_arg0"name")inletimpairedSince=(Option.map~f:MillisecondDateTime.of_xml)(Xml.childxml_arg0"impairedSince")inmake?status?name?impairedSince()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstatus=field_mapjson__"Status"StatusType.of_jsoninletname=field_mapjson__"Name"StatusName.of_jsoninletimpairedSince=field_mapjson__"ImpairedSince"MillisecondDateTime.of_jsoninmake?status?name?impairedSince()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the attached EBS status check for an instance."]moduleEventCode=structtypenonrect=|Instance_reboot|System_reboot|System_maintenance|Instance_retirement|Instance_stop|Non_static_idofstringletmakei=iletto_string=function|Instance_reboot->"instance-reboot"|System_reboot->"system-reboot"|System_maintenance->"system-maintenance"|Instance_retirement->"instance-retirement"|Instance_stop->"instance-stop"|Non_static_ids->sletof_string=function|"instance-reboot"->Instance_reboot|"system-reboot"->System_reboot|"system-maintenance"->System_maintenance|"instance-retirement"->Instance_retirement|"instance-stop"->Instance_stop|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 EventCode"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"EventCode"j)letto_json=simple_to_jsonto_valueendmoduleInstanceEventId=structtypenonrect=stringletcontext_="InstanceEventId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"InstanceEventId"jletto_json=simple_to_jsonto_valueendmoduleInstanceStatusDetails=structtypenonrect={impairedSince:DateTime.toption[@ocaml.doc"The time when a status check failed. For an instance that was launched and impaired, this is the time when the instance was launched."];name:StatusName.toption[@ocaml.doc"The type of instance status."];status:StatusType.toption[@ocaml.doc"The status."]}letmake?impairedSince=fun?name->fun?status->fun()->{impairedSince;name;status}letto_valuex=structure_to_value[("impairedSince",(Option.mapx.impairedSince~f:DateTime.to_value));("name",(Option.mapx.name~f:StatusName.to_value));("status",(Option.mapx.status~f:StatusType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstatus=(Option.map~f:StatusType.of_xml)(Xml.childxml_arg0"status")inletname=(Option.map~f:StatusName.of_xml)(Xml.childxml_arg0"name")inletimpairedSince=(Option.map~f:DateTime.of_xml)(Xml.childxml_arg0"impairedSince")inmake?status?name?impairedSince()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstatus=field_mapjson__"Status"StatusType.of_jsoninletname=field_mapjson__"Name"StatusName.of_jsoninletimpairedSince=field_mapjson__"ImpairedSince"DateTime.of_jsoninmake?status?name?impairedSince()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the instance status."]moduleDedicatedHostId=structtypenonrect=stringletcontext_="DedicatedHostId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"DedicatedHostId"jletto_json=simple_to_jsonto_valueendmoduleHour=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:23)>>=(fun()->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 Hour"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleWeekDay=structtypenonrect=|Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Non_static_idofstringletmakei=iletto_string=function|Sunday->"sunday"|Monday->"monday"|Tuesday->"tuesday"|Wednesday->"wednesday"|Thursday->"thursday"|Friday->"friday"|Saturday->"saturday"|Non_static_ids->sletof_string=function|"sunday"->Sunday|"monday"->Monday|"tuesday"->Tuesday|"wednesday"->Wednesday|"thursday"->Thursday|"friday"->Friday|"saturday"->Saturday|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 WeekDay"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"WeekDay"j)letto_json=simple_to_jsonto_valueendmoduleSensitiveUrl=structtypenonrect=stringletcontext_="SensitiveUrl"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"SensitiveUrl"jletto_json=simple_to_jsonto_valueendmoduleUserBucketDetails=structtypenonrect={s3Bucket:String_.toption[@ocaml.doc"The Amazon S3 bucket from which the disk image was created."];s3Key:String_.toption[@ocaml.doc"The file name of the disk image."]}letmake?s3Bucket=fun?s3Key->fun()->{s3Bucket;s3Key}letto_valuex=structure_to_value[("s3Bucket",(Option.mapx.s3Bucket~f:String_.to_value));("s3Key",(Option.mapx.s3Key~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lets3Key=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"s3Key")inlets3Bucket=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"s3Bucket")inmake?s3Key?s3Bucket()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lets3Key=field_mapjson__"S3Key"String_.of_jsoninlets3Bucket=field_mapjson__"S3Bucket"String_.of_jsoninmake?s3Key?s3Bucket()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the Amazon S3 bucket for the disk image."]moduleImageUsageResourceTypeName=structtypenonrect=stringletcontext_="ImageUsageResourceTypeName"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ImageUsageResourceTypeName"jletto_json=simple_to_jsonto_valueendmoduleImageUsageResourceTypeOptionList=structtypenonrect=ImageUsageResourceTypeOption.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ImageUsageResourceTypeOption.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:ImageUsageResourceTypeOption.of_xml)letof_jsonj=list_of_json~kind:"ImageUsageResourceTypeOptionList"~of_json:ImageUsageResourceTypeOption.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleImageReferenceOptionName=structtypenonrect=|State_name|Version_depth|Non_static_idofstringletmakei=iletto_string=function|State_name->"state-name"|Version_depth->"version-depth"|Non_static_ids->sletof_string=function|"state-name"->State_name|"version-depth"->Version_depth|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 ImageReferenceOptionName"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ImageReferenceOptionName"j)letto_json=simple_to_jsonto_valueendmoduleResourceTypeOptionValuesList=structtypenonrect=ResourceTypeOptionValue.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ResourceTypeOptionValue.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:ResourceTypeOptionValue.of_xml)letof_jsonj=list_of_json~kind:"ResourceTypeOptionValuesList"~of_json:ResourceTypeOptionValue.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleInstanceCapacity=structtypenonrect={availableCapacity:Integer.toption[@ocaml.doc"The number of instances that can be launched onto the Dedicated Host based on the host's available capacity."];instanceType:String_.toption[@ocaml.doc"The instance type supported by the Dedicated Host."];totalCapacity:Integer.toption[@ocaml.doc"The total number of instances that can be launched onto the Dedicated Host if there are no instances running on it."]}letmake?availableCapacity=fun?instanceType->fun?totalCapacity->fun()->{availableCapacity;instanceType;totalCapacity}letto_valuex=structure_to_value[("availableCapacity",(Option.mapx.availableCapacity~f:Integer.to_value));("instanceType",(Option.mapx.instanceType~f:String_.to_value));("totalCapacity",(Option.mapx.totalCapacity~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettotalCapacity=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"totalCapacity")inletinstanceType=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"instanceType")inletavailableCapacity=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"availableCapacity")inmake?totalCapacity?instanceType?availableCapacity()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettotalCapacity=field_mapjson__"TotalCapacity"Integer.of_jsoninletinstanceType=field_mapjson__"InstanceType"String_.of_jsoninletavailableCapacity=field_mapjson__"AvailableCapacity"Integer.of_jsoninmake?totalCapacity?instanceType?availableCapacity()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Information about the number of instances that can be launched onto the Dedicated Host."]moduleInstanceLifecycle=structtypenonrect=|Spot|On_demand|Interruptible_capacity_reservation|Non_static_idofstringletmakei=iletto_string=function|Spot->"spot"|On_demand->"on-demand"|Interruptible_capacity_reservation->"interruptible-capacity-reservation"|Non_static_ids->sletof_string=function|"spot"->Spot|"on-demand"->On_demand|"interruptible-capacity-reservation"->Interruptible_capacity_reservation|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 InstanceLifecycle"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"InstanceLifecycle"j)letto_json=simple_to_jsonto_valueendmoduleLaunchTemplateAndOverridesResponse=structtypenonrect={launchTemplateSpecification:FleetLaunchTemplateSpecification.toption[@ocaml.doc"The launch template."];overrides:FleetLaunchTemplateOverrides.toption[@ocaml.doc"Any parameters that you specify override the same parameters in the launch template."]}letmake?launchTemplateSpecification=fun?overrides->fun()->{launchTemplateSpecification;overrides}letto_valuex=structure_to_value[("launchTemplateSpecification",(Option.mapx.launchTemplateSpecification~f:FleetLaunchTemplateSpecification.to_value));("overrides",(Option.mapx.overrides~f:FleetLaunchTemplateOverrides.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letoverrides=(Option.map~f:FleetLaunchTemplateOverrides.of_xml)(Xml.childxml_arg0"overrides")inletlaunchTemplateSpecification=(Option.map~f:FleetLaunchTemplateSpecification.of_xml)(Xml.childxml_arg0"launchTemplateSpecification")inmake?overrides?launchTemplateSpecification()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letoverrides=field_mapjson__"Overrides"FleetLaunchTemplateOverrides.of_jsoninletlaunchTemplateSpecification=field_mapjson__"LaunchTemplateSpecification"FleetLaunchTemplateSpecification.of_jsoninmake?overrides?launchTemplateSpecification()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a launch template and overrides."]moduleInstanceIdsSet=structtypenonrect=InstanceId.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:InstanceId.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:InstanceId.of_xml)letof_jsonj=list_of_json~kind:"InstanceIdsSet"~of_json:InstanceId.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleFleetLaunchTemplateOverridesList=structtypenonrect=FleetLaunchTemplateOverrides.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:FleetLaunchTemplateOverrides.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:FleetLaunchTemplateOverrides.of_xml)letof_jsonj=list_of_json~kind:"FleetLaunchTemplateOverridesList"~of_json:FleetLaunchTemplateOverrides.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleFleetCapacityReservationUsageStrategy=structtypenonrect=|Use_capacity_reservations_first|Non_static_idofstringletmakei=iletto_string=function|Use_capacity_reservations_first->"use-capacity-reservations-first"|Non_static_ids->sletof_string=function|"use-capacity-reservations-first"->Use_capacity_reservations_first|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 FleetCapacityReservationUsageStrategy"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"FleetCapacityReservationUsageStrategy"j)letto_json=simple_to_jsonto_valueendmoduleFleetReservationType=structtypenonrect=|Interruptible_capacity_reservation|Non_static_idofstringletmakei=iletto_string=function|Interruptible_capacity_reservation->"interruptible-capacity-reservation"|Non_static_ids->sletof_string=function|"interruptible-capacity-reservation"->Interruptible_capacity_reservation|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 FleetReservationType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"FleetReservationType"j)letto_json=simple_to_jsonto_valueendmoduleFleetSpotCapacityRebalance=structtypenonrect={replacementStrategy:FleetReplacementStrategy.toption[@ocaml.doc"The replacement strategy to use. Only available for fleets of type maintain. launch - EC2 Fleet launches a new replacement Spot Instance when a rebalance notification is emitted for an existing Spot Instance in the fleet. EC2 Fleet does not terminate the instances that receive a rebalance notification. You can terminate the old instances, or you can leave them running. You are charged for all instances while they are running. launch-before-terminate - EC2 Fleet launches a new replacement Spot Instance when a rebalance notification is emitted for an existing Spot Instance in the fleet, and then, after a delay that you specify (in TerminationDelay), terminates the instances that received a rebalance notification."];terminationDelay:Integer.toption[@ocaml.doc"The amount of time (in seconds) that Amazon EC2 waits before terminating the old Spot Instance after launching a new replacement Spot Instance. Required when ReplacementStrategy is set to launch-before-terminate. Not valid when ReplacementStrategy is set to launch. Valid values: Minimum value of 120 seconds. Maximum value of 7200 seconds."]}letmake?replacementStrategy=fun?terminationDelay->fun()->{replacementStrategy;terminationDelay}letto_valuex=structure_to_value[("replacementStrategy",(Option.mapx.replacementStrategy~f:FleetReplacementStrategy.to_value));("terminationDelay",(Option.mapx.terminationDelay~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letterminationDelay=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"terminationDelay")inletreplacementStrategy=(Option.map~f:FleetReplacementStrategy.of_xml)(Xml.childxml_arg0"replacementStrategy")inmake?terminationDelay?replacementStrategy()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letterminationDelay=field_mapjson__"TerminationDelay"Integer.of_jsoninletreplacementStrategy=field_mapjson__"ReplacementStrategy"FleetReplacementStrategy.of_jsoninmake?terminationDelay?replacementStrategy()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The strategy to use when Amazon EC2 emits a signal that your Spot Instance is at an elevated risk of being interrupted."]moduleDhcpConfigurationValueList=structtypenonrect=AttributeValue.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:AttributeValue.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:AttributeValue.of_xml)letof_jsonj=list_of_json~kind:"DhcpConfigurationValueList"~of_json:AttributeValue.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleImportInstanceVolumeDetailItem=structtypenonrect={availabilityZone:String_.toption[@ocaml.doc"The Availability Zone where the resulting instance will reside."];availabilityZoneId:String_.toption[@ocaml.doc"The ID of the Availability Zone where the resulting instance will reside."];bytesConverted:Long.toption[@ocaml.doc"The number of bytes converted so far."];description:String_.toption[@ocaml.doc"A description of the task."];image:DiskImageDescription.toption[@ocaml.doc"The image."];status:String_.toption[@ocaml.doc"The status of the import of this particular disk image."];statusMessage:String_.toption[@ocaml.doc"The status information or errors related to the disk image."];volume:DiskImageVolumeDescription.toption[@ocaml.doc"The volume."]}letmake?availabilityZone=fun?availabilityZoneId->fun?bytesConverted->fun?description->fun?image->fun?status->fun?statusMessage->fun?volume->fun()->{availabilityZone;availabilityZoneId;bytesConverted;description;image;status;statusMessage;volume}letto_valuex=structure_to_value[("availabilityZone",(Option.mapx.availabilityZone~f:String_.to_value));("availabilityZoneId",(Option.mapx.availabilityZoneId~f:String_.to_value));("bytesConverted",(Option.mapx.bytesConverted~f:Long.to_value));("description",(Option.mapx.description~f:String_.to_value));("image",(Option.mapx.image~f:DiskImageDescription.to_value));("status",(Option.mapx.status~f:String_.to_value));("statusMessage",(Option.mapx.statusMessage~f:String_.to_value));("volume",(Option.mapx.volume~f:DiskImageVolumeDescription.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvolume=(Option.map~f:DiskImageVolumeDescription.of_xml)(Xml.childxml_arg0"volume")inletstatusMessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"statusMessage")inletstatus=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"status")inletimage=(Option.map~f:DiskImageDescription.of_xml)(Xml.childxml_arg0"image")inletdescription=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"description")inletbytesConverted=(Option.map~f:Long.of_xml)(Xml.childxml_arg0"bytesConverted")inletavailabilityZoneId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"availabilityZoneId")inletavailabilityZone=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"availabilityZone")inmake?volume?statusMessage?status?image?description?bytesConverted?availabilityZoneId?availabilityZone()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvolume=field_mapjson__"Volume"DiskImageVolumeDescription.of_jsoninletstatusMessage=field_mapjson__"StatusMessage"String_.of_jsoninletstatus=field_mapjson__"Status"String_.of_jsoninletimage=field_mapjson__"Image"DiskImageDescription.of_jsoninletdescription=field_mapjson__"Description"String_.of_jsoninletbytesConverted=field_mapjson__"BytesConverted"Long.of_jsoninletavailabilityZoneId=field_mapjson__"AvailabilityZoneId"String_.of_jsoninletavailabilityZone=field_mapjson__"AvailabilityZone"String_.of_jsoninmake?volume?statusMessage?status?image?description?bytesConverted?availabilityZoneId?availabilityZone()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an import volume task."]moduleAssociatedNetworkType=structtypenonrect=|Vpc|Non_static_idofstringletmakei=iletto_string=function|Vpc->"vpc"|Non_static_ids->sletof_string=function|"vpc"->Vpc|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 AssociatedNetworkType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"AssociatedNetworkType"j)letto_json=simple_to_jsonto_valueendmoduleClientVpnEndpointAttributeStatusCode=structtypenonrect=|Applying|Applied|Non_static_idofstringletmakei=iletto_string=function|Applying->"applying"|Applied->"applied"|Non_static_ids->sletof_string=function|"applying"->Applying|"applied"->Applied|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 ClientVpnEndpointAttributeStatusCode"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ClientVpnEndpointAttributeStatusCode"j)letto_json=simple_to_jsonto_valueendmoduleCertificateAuthentication=structtypenonrect={clientRootCertificateChain:String_.toption[@ocaml.doc"The ARN of the client certificate."]}letmake?clientRootCertificateChain=fun()->{clientRootCertificateChain}letto_valuex=structure_to_value[("clientRootCertificateChain",(Option.mapx.clientRootCertificateChain~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letclientRootCertificateChain=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"clientRootCertificateChain")inmake?clientRootCertificateChain()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letclientRootCertificateChain=field_mapjson__"ClientRootCertificateChain"String_.of_jsoninmake?clientRootCertificateChain()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Information about the client certificate used for authentication."]moduleClientVpnAuthenticationType=structtypenonrect=|Certificate_authentication|Directory_service_authentication|Federated_authentication|Non_static_idofstringletmakei=iletto_string=function|Certificate_authentication->"certificate-authentication"|Directory_service_authentication->"directory-service-authentication"|Federated_authentication->"federated-authentication"|Non_static_ids->sletof_string=function|"certificate-authentication"->Certificate_authentication|"directory-service-authentication"->Directory_service_authentication|"federated-authentication"->Federated_authentication|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 ClientVpnAuthenticationType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ClientVpnAuthenticationType"j)letto_json=simple_to_jsonto_valueendmoduleDirectoryServiceAuthentication=structtypenonrect={directoryId:String_.toption[@ocaml.doc"The ID of the Active Directory used for authentication."]}letmake?directoryId=fun()->{directoryId}letto_valuex=structure_to_value[("directoryId",(Option.mapx.directoryId~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letdirectoryId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"directoryId")inmake?directoryId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letdirectoryId=field_mapjson__"DirectoryId"String_.of_jsoninmake?directoryId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an Active Directory."]moduleFederatedAuthentication=structtypenonrect={samlProviderArn:String_.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the IAM SAML identity provider."];selfServiceSamlProviderArn:String_.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the IAM SAML identity provider for the self-service portal."]}letmake?samlProviderArn=fun?selfServiceSamlProviderArn->fun()->{samlProviderArn;selfServiceSamlProviderArn}letto_valuex=structure_to_value[("samlProviderArn",(Option.mapx.samlProviderArn~f:String_.to_value));("selfServiceSamlProviderArn",(Option.mapx.selfServiceSamlProviderArn~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letselfServiceSamlProviderArn=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"selfServiceSamlProviderArn")inletsamlProviderArn=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"samlProviderArn")inmake?selfServiceSamlProviderArn?samlProviderArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letselfServiceSamlProviderArn=field_mapjson__"SelfServiceSamlProviderArn"String_.of_jsoninletsamlProviderArn=field_mapjson__"SamlProviderArn"String_.of_jsoninmake?selfServiceSamlProviderArn?samlProviderArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the IAM SAML identity providers used for federated authentication."]moduleAllocationType=structtypenonrect=|Used|Future|Non_static_idofstringletmakei=iletto_string=function|Used->"used"|Future->"future"|Non_static_ids->sletof_string=function|"used"->Used|"future"->Future|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 AllocationType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"AllocationType"j)letto_json=simple_to_jsonto_valueendmoduleCapacityAllocationMetadataList=structtypenonrect=CapacityAllocationMetadataEntry.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:CapacityAllocationMetadataEntry.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:CapacityAllocationMetadataEntry.of_xml)letof_jsonj=list_of_json~kind:"CapacityAllocationMetadataList"~of_json:CapacityAllocationMetadataEntry.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleCapacityReservationId=structtypenonrect=stringletcontext_="CapacityReservationId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"CapacityReservationId"jletto_json=simple_to_jsonto_valueendmoduleCapacityReservationInstancePlatform=structtypenonrect=|Linux_UNIX|Red_Hat_Enterprise_Linux|SUSE_Linux|Windows|Windows_with_SQL_Server|Windows_with_SQL_Server_Enterprise|Windows_with_SQL_Server_Standard|Windows_with_SQL_Server_Web|Linux_with_SQL_Server_Standard|Linux_with_SQL_Server_Web|Linux_with_SQL_Server_Enterprise|RHEL_with_SQL_Server_Standard|RHEL_with_SQL_Server_Enterprise|RHEL_with_SQL_Server_Web|RHEL_with_HA|RHEL_with_HA_and_SQL_Server_Standard|RHEL_with_HA_and_SQL_Server_Enterprise|Ubuntu_Pro|Non_static_idofstringletmakei=iletto_string=function|Linux_UNIX->"Linux/UNIX"|Red_Hat_Enterprise_Linux->"Red Hat Enterprise Linux"|SUSE_Linux->"SUSE Linux"|Windows->"Windows"|Windows_with_SQL_Server->"Windows with SQL Server"|Windows_with_SQL_Server_Enterprise->"Windows with SQL Server Enterprise"|Windows_with_SQL_Server_Standard->"Windows with SQL Server Standard"|Windows_with_SQL_Server_Web->"Windows with SQL Server Web"|Linux_with_SQL_Server_Standard->"Linux with SQL Server Standard"|Linux_with_SQL_Server_Web->"Linux with SQL Server Web"|Linux_with_SQL_Server_Enterprise->"Linux with SQL Server Enterprise"|RHEL_with_SQL_Server_Standard->"RHEL with SQL Server Standard"|RHEL_with_SQL_Server_Enterprise->"RHEL with SQL Server Enterprise"|RHEL_with_SQL_Server_Web->"RHEL with SQL Server Web"|RHEL_with_HA->"RHEL with HA"|RHEL_with_HA_and_SQL_Server_Standard->"RHEL with HA and SQL Server Standard"|RHEL_with_HA_and_SQL_Server_Enterprise->"RHEL with HA and SQL Server Enterprise"|Ubuntu_Pro->"Ubuntu Pro"|Non_static_ids->sletof_string=function|"Linux/UNIX"->Linux_UNIX|"Red Hat Enterprise Linux"->Red_Hat_Enterprise_Linux|"SUSE Linux"->SUSE_Linux|"Windows"->Windows|"Windows with SQL Server"->Windows_with_SQL_Server|"Windows with SQL Server Enterprise"->Windows_with_SQL_Server_Enterprise|"Windows with SQL Server Standard"->Windows_with_SQL_Server_Standard|"Windows with SQL Server Web"->Windows_with_SQL_Server_Web|"Linux with SQL Server Standard"->Linux_with_SQL_Server_Standard|"Linux with SQL Server Web"->Linux_with_SQL_Server_Web|"Linux with SQL Server Enterprise"->Linux_with_SQL_Server_Enterprise|"RHEL with SQL Server Standard"->RHEL_with_SQL_Server_Standard|"RHEL with SQL Server Enterprise"->RHEL_with_SQL_Server_Enterprise|"RHEL with SQL Server Web"->RHEL_with_SQL_Server_Web|"RHEL with HA"->RHEL_with_HA|"RHEL with HA and SQL Server Standard"->RHEL_with_HA_and_SQL_Server_Standard|"RHEL with HA and SQL Server Enterprise"->RHEL_with_HA_and_SQL_Server_Enterprise|"Ubuntu Pro"->Ubuntu_Pro|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 CapacityReservationInstancePlatform"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"CapacityReservationInstancePlatform"j)letto_json=simple_to_jsonto_valueendmoduleDoubleWithConstraints=structtypenonrect=floatletmakei=letopenResultinok_or_failwith((check_float_mini~min:99.999)>>=(fun()->check_float_mini~min:0.001));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_valueendmoduleIntegerWithConstraints=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 IntegerWithConstraints"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleAsnAssociationState=structtypenonrect=|Disassociated|Failed_disassociation|Failed_association|Pending_disassociation|Pending_association|Associated|Non_static_idofstringletmakei=iletto_string=function|Disassociated->"disassociated"|Failed_disassociation->"failed-disassociation"|Failed_association->"failed-association"|Pending_disassociation->"pending-disassociation"|Pending_association->"pending-association"|Associated->"associated"|Non_static_ids->sletof_string=function|"disassociated"->Disassociated|"failed-disassociation"->Failed_disassociation|"failed-association"->Failed_association|"pending-disassociation"->Pending_disassociation|"pending-association"->Pending_association|"associated"->Associated|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 AsnAssociationState"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"AsnAssociationState"j)letto_json=simple_to_jsonto_valueendmoduleBlob=structtypenonrect=stringletmakei=iletof_stringx=xletto_valuex=`Blobxletto_queryv=to_queryto_valuevletto_headerx=xletof_xmlxml_arg0=string_of_xml~kind:"a blob"xml_arg0letof_jsonj=string_of_json~kind:"a blob"jletto_json=simple_to_jsonto_valueendmoduleS3StorageUploadPolicySignature=structtypenonrect=stringletcontext_="S3StorageUploadPolicySignature"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"S3StorageUploadPolicySignature"jletto_json=simple_to_jsonto_valueendmoduleIKEVersionsRequestListValue=structtypenonrect={value:String_.toption[@ocaml.doc"The IKE version."]}letmake?value=fun()->{value}letto_valuex=structure_to_value[("Value",(Option.mapx.value~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvalue=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Value")inmake?value()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvalue=field_mapjson__"Value"String_.of_jsoninmake?value()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The IKE version that is permitted for the VPN tunnel."]modulePhase1DHGroupNumbersRequestListValue=structtypenonrect={value:Integer.toption[@ocaml.doc"The Diffie-Hellmann group number."]}letmake?value=fun()->{value}letto_valuex=structure_to_value[("Value",(Option.mapx.value~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvalue=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"Value")inmake?value()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvalue=field_mapjson__"Value"Integer.of_jsoninmake?value()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Specifies a Diffie-Hellman group number for the VPN tunnel for phase 1 IKE negotiations."]modulePhase1EncryptionAlgorithmsRequestListValue=structtypenonrect={value:String_.toption[@ocaml.doc"The value for the encryption algorithm."]}letmake?value=fun()->{value}letto_valuex=structure_to_value[("Value",(Option.mapx.value~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvalue=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Value")inmake?value()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvalue=field_mapjson__"Value"String_.of_jsoninmake?value()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Specifies the encryption algorithm for the VPN tunnel for phase 1 IKE negotiations."]modulePhase1IntegrityAlgorithmsRequestListValue=structtypenonrect={value:String_.toption[@ocaml.doc"The value for the integrity algorithm."]}letmake?value=fun()->{value}letto_valuex=structure_to_value[("Value",(Option.mapx.value~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvalue=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Value")inmake?value()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvalue=field_mapjson__"Value"String_.of_jsoninmake?value()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Specifies the integrity algorithm for the VPN tunnel for phase 1 IKE negotiations."]modulePhase2DHGroupNumbersRequestListValue=structtypenonrect={value:Integer.toption[@ocaml.doc"The Diffie-Hellmann group number."]}letmake?value=fun()->{value}letto_valuex=structure_to_value[("Value",(Option.mapx.value~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvalue=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"Value")inmake?value()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvalue=field_mapjson__"Value"Integer.of_jsoninmake?value()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Specifies a Diffie-Hellman group number for the VPN tunnel for phase 2 IKE negotiations."]modulePhase2EncryptionAlgorithmsRequestListValue=structtypenonrect={value:String_.toption[@ocaml.doc"The encryption algorithm."]}letmake?value=fun()->{value}letto_valuex=structure_to_value[("Value",(Option.mapx.value~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvalue=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Value")inmake?value()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvalue=field_mapjson__"Value"String_.of_jsoninmake?value()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Specifies the encryption algorithm for the VPN tunnel for phase 2 IKE negotiations."]modulePhase2IntegrityAlgorithmsRequestListValue=structtypenonrect={value:String_.toption[@ocaml.doc"The integrity algorithm."]}letmake?value=fun()->{value}letto_valuex=structure_to_value[("Value",(Option.mapx.value~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvalue=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Value")inmake?value()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvalue=field_mapjson__"Value"String_.of_jsoninmake?value()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Specifies the integrity algorithm for the VPN tunnel for phase 2 IKE negotiations."]moduleCloudWatchLogOptionsSpecification=structtypenonrect={logEnabled:Boolean.toption[@ocaml.doc"Enable or disable VPN tunnel logging feature. Default value is False. Valid values: True | False"];logGroupArn:CloudWatchLogGroupArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the CloudWatch log group to send logs to."];logOutputFormat:String_.toption[@ocaml.doc"Set log format. Default format is json. Valid values: json | text"];bgpLogEnabled:Boolean.toption[@ocaml.doc"Specifies whether to enable BGP logging for the VPN connection. Default value is False. Valid values: True | False"];bgpLogGroupArn:CloudWatchLogGroupArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the CloudWatch log group where BGP logs will be sent."];bgpLogOutputFormat:String_.toption[@ocaml.doc"The desired output format for BGP logs to be sent to CloudWatch. Default format is json. Valid values: json | text"]}letmake?logEnabled=fun?logGroupArn->fun?logOutputFormat->fun?bgpLogEnabled->fun?bgpLogGroupArn->fun?bgpLogOutputFormat->fun()->{logEnabled;logGroupArn;logOutputFormat;bgpLogEnabled;bgpLogGroupArn;bgpLogOutputFormat}letto_valuex=structure_to_value[("LogEnabled",(Option.mapx.logEnabled~f:Boolean.to_value));("LogGroupArn",(Option.mapx.logGroupArn~f:CloudWatchLogGroupArn.to_value));("LogOutputFormat",(Option.mapx.logOutputFormat~f:String_.to_value));("BgpLogEnabled",(Option.mapx.bgpLogEnabled~f:Boolean.to_value));("BgpLogGroupArn",(Option.mapx.bgpLogGroupArn~f:CloudWatchLogGroupArn.to_value));("BgpLogOutputFormat",(Option.mapx.bgpLogOutputFormat~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letbgpLogOutputFormat=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"BgpLogOutputFormat")inletbgpLogGroupArn=(Option.map~f:CloudWatchLogGroupArn.of_xml)(Xml.childxml_arg0"BgpLogGroupArn")inletbgpLogEnabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"BgpLogEnabled")inletlogOutputFormat=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"LogOutputFormat")inletlogGroupArn=(Option.map~f:CloudWatchLogGroupArn.of_xml)(Xml.childxml_arg0"LogGroupArn")inletlogEnabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"LogEnabled")inmake?bgpLogOutputFormat?bgpLogGroupArn?bgpLogEnabled?logOutputFormat?logGroupArn?logEnabled()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letbgpLogOutputFormat=field_mapjson__"BgpLogOutputFormat"String_.of_jsoninletbgpLogGroupArn=field_mapjson__"BgpLogGroupArn"CloudWatchLogGroupArn.of_jsoninletbgpLogEnabled=field_mapjson__"BgpLogEnabled"Boolean.of_jsoninletlogOutputFormat=field_mapjson__"LogOutputFormat"String_.of_jsoninletlogGroupArn=field_mapjson__"LogGroupArn"CloudWatchLogGroupArn.of_jsoninletlogEnabled=field_mapjson__"LogEnabled"Boolean.of_jsoninmake?bgpLogOutputFormat?bgpLogGroupArn?bgpLogEnabled?logOutputFormat?logGroupArn?logEnabled()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Options for sending VPN tunnel logs to CloudWatch."]moduleResourceStatementRequest=structtypenonrect={resources:ValueStringList.toption[@ocaml.doc"The resources."];resourceTypes:ValueStringList.toption[@ocaml.doc"The resource types."]}letmake?resources=fun?resourceTypes->fun()->{resources;resourceTypes}letto_valuex=structure_to_value[("Resource",(Option.mapx.resources~f:ValueStringList.to_value));("ResourceType",(Option.mapx.resourceTypes~f:ValueStringList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceTypes=(Option.map~f:ValueStringList.of_xml)(Xml.childxml_arg0"ResourceType")inletresources=(Option.map~f:ValueStringList.of_xml)(Xml.childxml_arg0"Resource")inmake?resourceTypes?resources()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceTypes=field_mapjson__"ResourceTypes"ValueStringList.of_jsoninletresources=field_mapjson__"Resources"ValueStringList.of_jsoninmake?resourceTypes?resources()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a resource statement."]moduleInstanceIpv6AddressRequest=structtypenonrect={ipv6Address:String_.toption[@ocaml.doc"The IPv6 address."]}letmake?ipv6Address=fun()->{ipv6Address}letto_valuex=structure_to_value[("Ipv6Address",(Option.mapx.ipv6Address~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letipv6Address=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Ipv6Address")inmake?ipv6Address()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letipv6Address=field_mapjson__"Ipv6Address"String_.of_jsoninmake?ipv6Address()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an IPv6 address."]moduleSecondaryInterfacePrivateIpAddressSpecificationRequest=structtypenonrect={privateIpAddress:String_.toption[@ocaml.doc"The private IPv4 address."]}letmake?privateIpAddress=fun()->{privateIpAddress}letto_valuex=structure_to_value[("PrivateIpAddress",(Option.mapx.privateIpAddress~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letprivateIpAddress=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"PrivateIpAddress")inmake?privateIpAddress()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letprivateIpAddress=field_mapjson__"PrivateIpAddress"String_.of_jsoninmake?privateIpAddress()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a private IPv4 address specification for a secondary interface request."]moduleClientVpnConnectionStatusCode=structtypenonrect=|Active|Failed_to_terminate|Terminating|Terminated|Non_static_idofstringletmakei=iletto_string=function|Active->"active"|Failed_to_terminate->"failed-to-terminate"|Terminating->"terminating"|Terminated->"terminated"|Non_static_ids->sletof_string=function|"active"->Active|"failed-to-terminate"->Failed_to_terminate|"terminating"->Terminating|"terminated"->Terminated|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 ClientVpnConnectionStatusCode"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ClientVpnConnectionStatusCode"j)letto_json=simple_to_jsonto_valueendmoduleTransitGatewayRouteAttachment=structtypenonrect={resourceId:String_.toption[@ocaml.doc"The ID of the resource."];transitGatewayAttachmentId:String_.toption[@ocaml.doc"The ID of the attachment."];resourceType:TransitGatewayAttachmentResourceType.toption[@ocaml.doc"The resource type. Note that the tgw-peering resource type has been deprecated."]}letmake?resourceId=fun?transitGatewayAttachmentId->fun?resourceType->fun()->{resourceId;transitGatewayAttachmentId;resourceType}letto_valuex=structure_to_value[("resourceId",(Option.mapx.resourceId~f:String_.to_value));("transitGatewayAttachmentId",(Option.mapx.transitGatewayAttachmentId~f:String_.to_value));("resourceType",(Option.mapx.resourceType~f:TransitGatewayAttachmentResourceType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceType=(Option.map~f:TransitGatewayAttachmentResourceType.of_xml)(Xml.childxml_arg0"resourceType")inlettransitGatewayAttachmentId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"transitGatewayAttachmentId")inletresourceId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"resourceId")inmake?resourceType?transitGatewayAttachmentId?resourceId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceType=field_mapjson__"ResourceType"TransitGatewayAttachmentResourceType.of_jsoninlettransitGatewayAttachmentId=field_mapjson__"TransitGatewayAttachmentId"String_.of_jsoninletresourceId=field_mapjson__"ResourceId"String_.of_jsoninmake?resourceType?transitGatewayAttachmentId?resourceId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a route attachment."]moduleScheduledInstancesEbs=structtypenonrect={deleteOnTermination:Boolean.toption[@ocaml.doc"Indicates whether the volume is deleted on instance termination."];encrypted:Boolean.toption[@ocaml.doc"Indicates whether the volume is encrypted. You can attached encrypted volumes only to instances that support them."];iops:Integer.toption[@ocaml.doc"The number of I/O operations per second (IOPS) to provision for a gp3, io1, or io2 volume."];snapshotId:SnapshotId.toption[@ocaml.doc"The ID of the snapshot."];volumeSize:Integer.toption[@ocaml.doc"The size of the volume, in GiB. Default: If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size."];volumeType:String_.toption[@ocaml.doc"The volume type. Default: gp2"]}letmake?deleteOnTermination=fun?encrypted->fun?iops->fun?snapshotId->fun?volumeSize->fun?volumeType->fun()->{deleteOnTermination;encrypted;iops;snapshotId;volumeSize;volumeType}letto_valuex=structure_to_value[("DeleteOnTermination",(Option.mapx.deleteOnTermination~f:Boolean.to_value));("Encrypted",(Option.mapx.encrypted~f:Boolean.to_value));("Iops",(Option.mapx.iops~f:Integer.to_value));("SnapshotId",(Option.mapx.snapshotId~f:SnapshotId.to_value));("VolumeSize",(Option.mapx.volumeSize~f:Integer.to_value));("VolumeType",(Option.mapx.volumeType~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvolumeType=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"VolumeType")inletvolumeSize=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"VolumeSize")inletsnapshotId=(Option.map~f:SnapshotId.of_xml)(Xml.childxml_arg0"SnapshotId")inletiops=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"Iops")inletencrypted=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"Encrypted")inletdeleteOnTermination=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"DeleteOnTermination")inmake?volumeType?volumeSize?snapshotId?iops?encrypted?deleteOnTermination()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvolumeType=field_mapjson__"VolumeType"String_.of_jsoninletvolumeSize=field_mapjson__"VolumeSize"Integer.of_jsoninletsnapshotId=field_mapjson__"SnapshotId"SnapshotId.of_jsoninletiops=field_mapjson__"Iops"Integer.of_jsoninletencrypted=field_mapjson__"Encrypted"Boolean.of_jsoninletdeleteOnTermination=field_mapjson__"DeleteOnTermination"Boolean.of_jsoninmake?volumeType?volumeSize?snapshotId?iops?encrypted?deleteOnTermination()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an EBS volume for a Scheduled Instance."]modulePrivateIpAddressConfigSet=structtypenonrect=ScheduledInstancesPrivateIpAddressConfig.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ScheduledInstancesPrivateIpAddressConfig.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:ScheduledInstancesPrivateIpAddressConfig.of_xml)letof_jsonj=list_of_json~kind:"PrivateIpAddressConfigSet"~of_json:ScheduledInstancesPrivateIpAddressConfig.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleScheduledInstancesIpv6AddressList=structtypenonrect=ScheduledInstancesIpv6Address.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ScheduledInstancesIpv6Address.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:ScheduledInstancesIpv6Address.of_xml)letof_jsonj=list_of_json~kind:"ScheduledInstancesIpv6AddressList"~of_json:ScheduledInstancesIpv6Address.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleScheduledInstancesSecurityGroupIdSet=structtypenonrect=SecurityGroupId.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:SecurityGroupId.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:SecurityGroupId.of_xml)letof_jsonj=list_of_json~kind:"ScheduledInstancesSecurityGroupIdSet"~of_json:SecurityGroupId.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleInstanceSecondaryInterfacePrivateIpAddressRequest=structtypenonrect={privateIpAddress:String_.t[@ocaml.doc"The private IPv4 address."]}letcontext_="InstanceSecondaryInterfacePrivateIpAddressRequest"letmake~privateIpAddress=fun()->{privateIpAddress}letto_valuex=structure_to_value[("PrivateIpAddress",(Some(String_.to_valuex.privateIpAddress)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letprivateIpAddress=String_.of_xml(Xml.child_exn~context:context_xml_arg0"PrivateIpAddress")inmake~privateIpAddress()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letprivateIpAddress=field_map_exnjson__"PrivateIpAddress"String_.of_jsoninmake~privateIpAddress()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a private IPv4 address for a secondary interface request."]moduleRunInstancesMonitoringEnabled=structtypenonrect={enabled:Boolean.t[@ocaml.doc"Indicates whether detailed monitoring is enabled. Otherwise, basic monitoring is enabled."]}letcontext_="RunInstancesMonitoringEnabled"letmake~enabled=fun()->{enabled}letto_valuex=structure_to_value[("enabled",(Some(Boolean.to_valuex.enabled)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letenabled=Boolean.of_xml(Xml.child_exn~context:context_xml_arg0"enabled")inmake~enabled()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letenabled=field_map_exnjson__"Enabled"Boolean.of_jsoninmake~enabled()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the monitoring of an instance."]moduleMaximumDaysSinceCreatedValue=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:2147483647)>>=(fun()->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 MaximumDaysSinceCreatedValue"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleMaximumDaysSinceDeprecatedValue=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:2147483647)>>=(fun()->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 MaximumDaysSinceDeprecatedValue"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleImageNameCriteriaRequest=structtypenonrect=stringletcontext_="ImageNameCriteriaRequest"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:128)>>=(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:"ImageNameCriteriaRequest"jletto_json=simple_to_jsonto_valueendmoduleImageProviderRequest=structtypenonrect=stringletcontext_="ImageProviderRequest"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ImageProviderRequest"jletto_json=simple_to_jsonto_valueendmoduleMarketplaceProductCodeRequest=structtypenonrect=stringletcontext_="MarketplaceProductCodeRequest"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"MarketplaceProductCodeRequest"jletto_json=simple_to_jsonto_valueendmoduleTransitGatewayMulitcastDomainAssociationState=structtypenonrect=|PendingAcceptance|Associating|Associated|Disassociating|Disassociated|Rejected|Failed|Non_static_idofstringletmakei=iletto_string=function|PendingAcceptance->"pendingAcceptance"|Associating->"associating"|Associated->"associated"|Disassociating->"disassociating"|Disassociated->"disassociated"|Rejected->"rejected"|Failed->"failed"|Non_static_ids->sletof_string=function|"pendingAcceptance"->PendingAcceptance|"associating"->Associating|"associated"->Associated|"disassociating"->Disassociating|"disassociated"->Disassociated|"rejected"->Rejected|"failed"->Failed|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 TransitGatewayMulitcastDomainAssociationState"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"TransitGatewayMulitcastDomainAssociationState"j)letto_json=simple_to_jsonto_valueendmoduleOccurrenceDaySet=structtypenonrect=Integer.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Integer.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:Integer.of_xml)letof_jsonj=list_of_json~kind:"OccurrenceDaySet"~of_json:Integer.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmodulePermissionGroup=structtypenonrect=|All|Non_static_idofstringletmakei=iletto_string=function|All->"all"|Non_static_ids->sletof_string=function|"all"->All|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 PermissionGroup"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"PermissionGroup"j)letto_json=simple_to_jsonto_valueendmodulePrefixListResourceId=structtypenonrect=stringletcontext_="PrefixListResourceId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"PrefixListResourceId"jletto_json=simple_to_jsonto_valueendmoduleIpamPrefixListResolverRuleConditionRequest=structtypenonrect={operation:IpamPrefixListResolverRuleConditionOperation.t[@ocaml.doc"The operation to perform when evaluating this condition."];ipamPoolId:String_.toption[@ocaml.doc"The ID of the IPAM pool to match against. This condition selects CIDRs that belong to the specified IPAM pool."];resourceId:String_.toption[@ocaml.doc"The ID of the Amazon Web Services resource to match against. This condition selects CIDRs associated with the specified resource."];resourceOwner:String_.toption[@ocaml.doc"The Amazon Web Services account ID that owns the resources to match against. This condition selects CIDRs from resources owned by the specified account."];resourceRegion:String_.toption[@ocaml.doc"The Amazon Web Services Region where the resources are located. This condition selects CIDRs from resources in the specified Region."];resourceTag:RequestIpamResourceTag.toption[@ocaml.doc"A tag key-value pair to match against. This condition selects CIDRs from resources that have the specified tag."];cidr:String_.toption[@ocaml.doc"A CIDR block to match against. This condition selects CIDRs that fall within or match the specified CIDR range."]}letcontext_="IpamPrefixListResolverRuleConditionRequest"letmake?ipamPoolId=fun?resourceId->fun?resourceOwner->fun?resourceRegion->fun?resourceTag->fun?cidr->fun~operation->fun()->{ipamPoolId;resourceId;resourceOwner;resourceRegion;resourceTag;cidr;operation}letto_valuex=structure_to_value[("Operation",(Some(IpamPrefixListResolverRuleConditionOperation.to_valuex.operation)));("IpamPoolId",(Option.mapx.ipamPoolId~f:String_.to_value));("ResourceId",(Option.mapx.resourceId~f:String_.to_value));("ResourceOwner",(Option.mapx.resourceOwner~f:String_.to_value));("ResourceRegion",(Option.mapx.resourceRegion~f:String_.to_value));("ResourceTag",(Option.mapx.resourceTag~f:RequestIpamResourceTag.to_value));("Cidr",(Option.mapx.cidr~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcidr=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Cidr")inletresourceTag=(Option.map~f:RequestIpamResourceTag.of_xml)(Xml.childxml_arg0"ResourceTag")inletresourceRegion=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ResourceRegion")inletresourceOwner=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ResourceOwner")inletresourceId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ResourceId")inletipamPoolId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"IpamPoolId")inletoperation=IpamPrefixListResolverRuleConditionOperation.of_xml(Xml.child_exn~context:context_xml_arg0"Operation")inmake?cidr?resourceTag?resourceRegion?resourceOwner?resourceId?ipamPoolId~operation()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcidr=field_mapjson__"Cidr"String_.of_jsoninletresourceTag=field_mapjson__"ResourceTag"RequestIpamResourceTag.of_jsoninletresourceRegion=field_mapjson__"ResourceRegion"String_.of_jsoninletresourceOwner=field_mapjson__"ResourceOwner"String_.of_jsoninletresourceId=field_mapjson__"ResourceId"String_.of_jsoninletipamPoolId=field_mapjson__"IpamPoolId"String_.of_jsoninletoperation=field_map_exnjson__"Operation"IpamPrefixListResolverRuleConditionOperation.of_jsoninmake?cidr?resourceTag?resourceRegion?resourceOwner?resourceId?ipamPoolId~operation()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a condition used when creating or modifying resolver rules. CIDR selection rules define the business logic for selecting CIDRs from IPAM. If a CIDR matches any of the rules, it will be included. If a rule has multiple conditions, the CIDR has to match every condition of that rule. You can create a prefix list resolver without any CIDR selection rules, but it will generate empty versions (containing no CIDRs) until you add rules. There are three rule types. Only 2 of the 3 rule types support conditions - IPAM pool CIDR and Scope resource CIDR. Static CIDR rules cannot have conditions. Static CIDR: A fixed list of CIDRs that do not change (like a manual list replicated across Regions) IPAM pool CIDR: CIDRs from specific IPAM pools (like all CIDRs from your IPAM production pool) If you choose this option, choose the following: IPAM scope: Select the IPAM scope to search for resources Conditions: Property IPAM pool ID: Select an IPAM pool that contains the resources CIDR (like 10.24.34.0/23) Operation: Equals/Not equals Value: The value on which to match the condition Scope resource CIDR: CIDRs from Amazon Web Services resources like VPCs, subnets, EIPs within an IPAM scope If you choose this option, choose the following: IPAM scope: Select the IPAM scope to search for resources Resource type: Select a resource, like a VPC or subnet. Conditions: Property: Resource ID: The unique ID of a resource (like vpc-1234567890abcdef0) Resource owner (like 111122223333) Resource region (like us-east-1) Resource tag (like key: name, value: dev-vpc-1) CIDR (like 10.24.34.0/23) Operation: Equals/Not equals Value: The value on which to match the condition"]moduleUnsuccessfulInstanceCreditSpecificationErrorCode=structtypenonrect=|InvalidInstanceID_Malformed|InvalidInstanceID_NotFound|IncorrectInstanceState|InstanceCreditSpecification_NotSupported|Non_static_idofstringletmakei=iletto_string=function|InvalidInstanceID_Malformed->"InvalidInstanceID.Malformed"|InvalidInstanceID_NotFound->"InvalidInstanceID.NotFound"|IncorrectInstanceState->"IncorrectInstanceState"|InstanceCreditSpecification_NotSupported->"InstanceCreditSpecification.NotSupported"|Non_static_ids->sletof_string=function|"InvalidInstanceID.Malformed"->InvalidInstanceID_Malformed|"InvalidInstanceID.NotFound"->InvalidInstanceID_NotFound|"IncorrectInstanceState"->IncorrectInstanceState|"InstanceCreditSpecification.NotSupported"->InstanceCreditSpecification_NotSupported|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 UnsuccessfulInstanceCreditSpecificationErrorCode"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"UnsuccessfulInstanceCreditSpecificationErrorCode"j)letto_json=simple_to_jsonto_valueendmoduleVolumeId=structtypenonrect=stringletcontext_="VolumeId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"VolumeId"jletto_json=simple_to_jsonto_valueendmoduleFleetLaunchTemplateOverridesRequest=structtypenonrect={instanceType:InstanceType.toption[@ocaml.doc"The instance type. mac1.metal is not supported as a launch template override. If you specify InstanceType, you can't specify InstanceRequirements."];maxPrice:String_.toption[@ocaml.doc"The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price. If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter. If you specify a maximum price, it must be more than USD $0.001. Specifying a value below USD $0.001 will result in an InvalidParameterValue error message."];subnetId:SubnetId.toption[@ocaml.doc"The IDs of the subnets in which to launch the instances. Separate multiple subnet IDs using commas (for example, subnet-1234abcdeexample1, subnet-0987cdef6example2). A request of type instant can have only one subnet ID."];availabilityZone:AvailabilityZoneName.toption[@ocaml.doc"The Availability Zone in which to launch the instances. For example, us-east-2a. Either AvailabilityZone or AvailabilityZoneId must be specified in the request, but not both."];weightedCapacity:Double.toption[@ocaml.doc"The number of units provided by the specified instance type. These are the same units that you chose to set the target capacity in terms of instances, or a performance characteristic such as vCPUs, memory, or I/O. If the target capacity divided by this value is not a whole number, Amazon EC2 rounds the number of instances to the next whole number. If this value is not specified, the default is 1. When specifying weights, the price used in the lowest-price and price-capacity-optimized allocation strategies is per unit hour (where the instance price is divided by the specified weight). However, if all the specified weights are above the requested TargetCapacity, resulting in only 1 instance being launched, the price used is per instance hour."];priority:Double.toption[@ocaml.doc"The priority for the launch template override. The highest priority is launched first. If the On-Demand AllocationStrategy is set to prioritized, EC2 Fleet uses priority to determine which launch template override to use first in fulfilling On-Demand capacity. If the Spot AllocationStrategy is set to capacity-optimized-prioritized, EC2 Fleet uses priority on a best-effort basis to determine which launch template override to use in fulfilling Spot capacity, but optimizes for capacity first. Valid values are whole numbers starting at 0. The lower the number, the higher the priority. If no number is set, the launch template override has the lowest priority. You can set the same priority for different launch template overrides."];placement:Placement.toption[@ocaml.doc"The location where the instance launched, if applicable."];blockDeviceMappings:FleetBlockDeviceMappingRequestList.toption[@ocaml.doc"The block device mappings, which define the EBS volumes and instance store volumes to attach to the instance at launch. Supported only for fleets of type instant. For more information, see Block device mappings for volumes on Amazon EC2 instances in the Amazon EC2 User Guide."];instanceRequirements:InstanceRequirementsRequest.toption[@ocaml.doc"The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with those attributes. If you specify InstanceRequirements, you can't specify InstanceType."];imageId:String_.toption[@ocaml.doc"The ID of the AMI in the format ami-17characters00000. Alternatively, you can specify a Systems Manager parameter, using one of the following formats. The Systems Manager parameter will resolve to an AMI ID on launch. To reference a public parameter: resolve:ssm:public-parameter To reference a parameter stored in the same account: resolve:ssm:parameter-name resolve:ssm:parameter-name:version-number resolve:ssm:parameter-name:label To reference a parameter shared from another Amazon Web Services account: resolve:ssm:parameter-ARN resolve:ssm:parameter-ARN:version-number resolve:ssm:parameter-ARN:label For more information, see Use a Systems Manager parameter instead of an AMI ID in the Amazon EC2 User Guide. This parameter is only available for fleets of type instant. For fleets of type maintain and request, you must specify the AMI ID in the launch template."];availabilityZoneId:AvailabilityZoneId.toption[@ocaml.doc"The ID of the Availability Zone in which to launch the instances. For example, use2-az1. Either AvailabilityZone or AvailabilityZoneId must be specified in the request, but not both."]}letmake?instanceType=fun?maxPrice->fun?subnetId->fun?availabilityZone->fun?weightedCapacity->fun?priority->fun?placement->fun?blockDeviceMappings->fun?instanceRequirements->fun?imageId->fun?availabilityZoneId->fun()->{instanceType;maxPrice;subnetId;availabilityZone;weightedCapacity;priority;placement;blockDeviceMappings;instanceRequirements;imageId;availabilityZoneId}letto_valuex=structure_to_value[("InstanceType",(Option.mapx.instanceType~f:InstanceType.to_value));("MaxPrice",(Option.mapx.maxPrice~f:String_.to_value));("SubnetId",(Option.mapx.subnetId~f:SubnetId.to_value));("AvailabilityZone",(Option.mapx.availabilityZone~f:AvailabilityZoneName.to_value));("WeightedCapacity",(Option.mapx.weightedCapacity~f:Double.to_value));("Priority",(Option.mapx.priority~f:Double.to_value));("Placement",(Option.mapx.placement~f:Placement.to_value));("BlockDeviceMapping",(Option.mapx.blockDeviceMappings~f:FleetBlockDeviceMappingRequestList.to_value));("InstanceRequirements",(Option.mapx.instanceRequirements~f:InstanceRequirementsRequest.to_value));("ImageId",(Option.mapx.imageId~f:String_.to_value));("AvailabilityZoneId",(Option.mapx.availabilityZoneId~f:AvailabilityZoneId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letavailabilityZoneId=(Option.map~f:AvailabilityZoneId.of_xml)(Xml.childxml_arg0"AvailabilityZoneId")inletimageId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ImageId")inletinstanceRequirements=(Option.map~f:InstanceRequirementsRequest.of_xml)(Xml.childxml_arg0"InstanceRequirements")inletblockDeviceMappings=(Option.map~f:FleetBlockDeviceMappingRequestList.of_xml)(Xml.childxml_arg0"BlockDeviceMapping")inletplacement=(Option.map~f:Placement.of_xml)(Xml.childxml_arg0"Placement")inletpriority=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"Priority")inletweightedCapacity=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"WeightedCapacity")inletavailabilityZone=(Option.map~f:AvailabilityZoneName.of_xml)(Xml.childxml_arg0"AvailabilityZone")inletsubnetId=(Option.map~f:SubnetId.of_xml)(Xml.childxml_arg0"SubnetId")inletmaxPrice=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"MaxPrice")inletinstanceType=(Option.map~f:InstanceType.of_xml)(Xml.childxml_arg0"InstanceType")inmake?availabilityZoneId?imageId?instanceRequirements?blockDeviceMappings?placement?priority?weightedCapacity?availabilityZone?subnetId?maxPrice?instanceType()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letavailabilityZoneId=field_mapjson__"AvailabilityZoneId"AvailabilityZoneId.of_jsoninletimageId=field_mapjson__"ImageId"String_.of_jsoninletinstanceRequirements=field_mapjson__"InstanceRequirements"InstanceRequirementsRequest.of_jsoninletblockDeviceMappings=field_mapjson__"BlockDeviceMappings"FleetBlockDeviceMappingRequestList.of_jsoninletplacement=field_mapjson__"Placement"Placement.of_jsoninletpriority=field_mapjson__"Priority"Double.of_jsoninletweightedCapacity=field_mapjson__"WeightedCapacity"Double.of_jsoninletavailabilityZone=field_mapjson__"AvailabilityZone"AvailabilityZoneName.of_jsoninletsubnetId=field_mapjson__"SubnetId"SubnetId.of_jsoninletmaxPrice=field_mapjson__"MaxPrice"String_.of_jsoninletinstanceType=field_mapjson__"InstanceType"InstanceType.of_jsoninmake?availabilityZoneId?imageId?instanceRequirements?blockDeviceMappings?placement?priority?weightedCapacity?availabilityZone?subnetId?maxPrice?instanceType()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes overrides for a launch template."]moduleLaunchTemplateId=structtypenonrect=stringletcontext_="LaunchTemplateId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"LaunchTemplateId"jletto_json=simple_to_jsonto_valueendmoduleTransitGatewayAttachmentId=structtypenonrect=stringletcontext_="TransitGatewayAttachmentId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"TransitGatewayAttachmentId"jletto_json=simple_to_jsonto_valueendmoduleTransitGatewayPolicyRuleMetaData=structtypenonrect={metaDataKey:String_.toption[@ocaml.doc"The key name for the transit gateway policy rule meta data tag."];metaDataValue:String_.toption[@ocaml.doc"The value of the key for the transit gateway policy rule meta data tag."]}letmake?metaDataKey=fun?metaDataValue->fun()->{metaDataKey;metaDataValue}letto_valuex=structure_to_value[("metaDataKey",(Option.mapx.metaDataKey~f:String_.to_value));("metaDataValue",(Option.mapx.metaDataValue~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmetaDataValue=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"metaDataValue")inletmetaDataKey=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"metaDataKey")inmake?metaDataValue?metaDataKey()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmetaDataValue=field_mapjson__"MetaDataValue"String_.of_jsoninletmetaDataKey=field_mapjson__"MetaDataKey"String_.of_jsoninmake?metaDataValue?metaDataKey()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the meta data tags associated with a transit gateway policy rule."]moduleRouteServerRouteInstallationDetail=structtypenonrect={routeTableId:RouteTableId.toption[@ocaml.doc"The ID of the route table where the route is being installed."];routeInstallationStatus:RouteServerRouteInstallationStatus.toption[@ocaml.doc"The current installation status of the route in the route table."];routeInstallationStatusReason:String_.toption[@ocaml.doc"The reason for the current installation status of the route."]}letmake?routeTableId=fun?routeInstallationStatus->fun?routeInstallationStatusReason->fun()->{routeTableId;routeInstallationStatus;routeInstallationStatusReason}letto_valuex=structure_to_value[("routeTableId",(Option.mapx.routeTableId~f:RouteTableId.to_value));("routeInstallationStatus",(Option.mapx.routeInstallationStatus~f:RouteServerRouteInstallationStatus.to_value));("routeInstallationStatusReason",(Option.mapx.routeInstallationStatusReason~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letrouteInstallationStatusReason=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"routeInstallationStatusReason")inletrouteInstallationStatus=(Option.map~f:RouteServerRouteInstallationStatus.of_xml)(Xml.childxml_arg0"routeInstallationStatus")inletrouteTableId=(Option.map~f:RouteTableId.of_xml)(Xml.childxml_arg0"routeTableId")inmake?routeInstallationStatusReason?routeInstallationStatus?routeTableId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letrouteInstallationStatusReason=field_mapjson__"RouteInstallationStatusReason"String_.of_jsoninletrouteInstallationStatus=field_mapjson__"RouteInstallationStatus"RouteServerRouteInstallationStatus.of_jsoninletrouteTableId=field_mapjson__"RouteTableId"RouteTableId.of_jsoninmake?routeInstallationStatusReason?routeInstallationStatus?routeTableId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the installation status of a route in a route table."]modulePathStatement=structtypenonrect={packetHeaderStatement:PacketHeaderStatement.toption[@ocaml.doc"The packet header statement."];resourceStatement:ResourceStatement.toption[@ocaml.doc"The resource statement."]}letmake?packetHeaderStatement=fun?resourceStatement->fun()->{packetHeaderStatement;resourceStatement}letto_valuex=structure_to_value[("packetHeaderStatement",(Option.mapx.packetHeaderStatement~f:PacketHeaderStatement.to_value));("resourceStatement",(Option.mapx.resourceStatement~f:ResourceStatement.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceStatement=(Option.map~f:ResourceStatement.of_xml)(Xml.childxml_arg0"resourceStatement")inletpacketHeaderStatement=(Option.map~f:PacketHeaderStatement.of_xml)(Xml.childxml_arg0"packetHeaderStatement")inmake?resourceStatement?packetHeaderStatement()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceStatement=field_mapjson__"ResourceStatement"ResourceStatement.of_jsoninletpacketHeaderStatement=field_mapjson__"PacketHeaderStatement"PacketHeaderStatement.of_jsoninmake?resourceStatement?packetHeaderStatement()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a path statement."]moduleThroughResourcesStatementList=structtypenonrect=ThroughResourcesStatement.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ThroughResourcesStatement.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:ThroughResourcesStatement.of_xml)letof_jsonj=list_of_json~kind:"ThroughResourcesStatementList"~of_json:ThroughResourcesStatement.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmodulePathComponent=structtypenonrect={sequenceNumber:Integer.toption[@ocaml.doc"The sequence number."];aclRule:AnalysisAclRule.toption[@ocaml.doc"The network ACL rule."];attachedTo:AnalysisComponent.toption[@ocaml.doc"The resource to which the path component is attached."];component:AnalysisComponent.toption[@ocaml.doc"The component."];destinationVpc:AnalysisComponent.toption[@ocaml.doc"The destination VPC."];outboundHeader:AnalysisPacketHeader.toption[@ocaml.doc"The outbound header."];inboundHeader:AnalysisPacketHeader.toption[@ocaml.doc"The inbound header."];routeTableRoute:AnalysisRouteTableRoute.toption[@ocaml.doc"The route table route."];securityGroupRule:AnalysisSecurityGroupRule.toption[@ocaml.doc"The security group rule."];sourceVpc:AnalysisComponent.toption[@ocaml.doc"The source VPC."];subnet:AnalysisComponent.toption[@ocaml.doc"The subnet."];vpc:AnalysisComponent.toption[@ocaml.doc"The component VPC."];additionalDetails:AdditionalDetailList.toption[@ocaml.doc"The additional details."];transitGateway:AnalysisComponent.toption[@ocaml.doc"The transit gateway."];transitGatewayRouteTableRoute:TransitGatewayRouteTableRoute.toption[@ocaml.doc"The route in a transit gateway route table."];explanations:ExplanationList.toption[@ocaml.doc"The explanation codes."];elasticLoadBalancerListener:AnalysisComponent.toption[@ocaml.doc"The load balancer listener."];firewallStatelessRule:FirewallStatelessRule.toption[@ocaml.doc"The Network Firewall stateless rule."];firewallStatefulRule:FirewallStatefulRule.toption[@ocaml.doc"The Network Firewall stateful rule."];serviceName:String_.toption[@ocaml.doc"The name of the VPC endpoint service."]}letmake?sequenceNumber=fun?aclRule->fun?attachedTo->fun?component->fun?destinationVpc->fun?outboundHeader->fun?inboundHeader->fun?routeTableRoute->fun?securityGroupRule->fun?sourceVpc->fun?subnet->fun?vpc->fun?additionalDetails->fun?transitGateway->fun?transitGatewayRouteTableRoute->fun?explanations->fun?elasticLoadBalancerListener->fun?firewallStatelessRule->fun?firewallStatefulRule->fun?serviceName->fun()->{sequenceNumber;aclRule;attachedTo;component;destinationVpc;outboundHeader;inboundHeader;routeTableRoute;securityGroupRule;sourceVpc;subnet;vpc;additionalDetails;transitGateway;transitGatewayRouteTableRoute;explanations;elasticLoadBalancerListener;firewallStatelessRule;firewallStatefulRule;serviceName}letto_valuex=structure_to_value[("sequenceNumber",(Option.mapx.sequenceNumber~f:Integer.to_value));("aclRule",(Option.mapx.aclRule~f:AnalysisAclRule.to_value));("attachedTo",(Option.mapx.attachedTo~f:AnalysisComponent.to_value));("component",(Option.mapx.component~f:AnalysisComponent.to_value));("destinationVpc",(Option.mapx.destinationVpc~f:AnalysisComponent.to_value));("outboundHeader",(Option.mapx.outboundHeader~f:AnalysisPacketHeader.to_value));("inboundHeader",(Option.mapx.inboundHeader~f:AnalysisPacketHeader.to_value));("routeTableRoute",(Option.mapx.routeTableRoute~f:AnalysisRouteTableRoute.to_value));("securityGroupRule",(Option.mapx.securityGroupRule~f:AnalysisSecurityGroupRule.to_value));("sourceVpc",(Option.mapx.sourceVpc~f:AnalysisComponent.to_value));("subnet",(Option.mapx.subnet~f:AnalysisComponent.to_value));("vpc",(Option.mapx.vpc~f:AnalysisComponent.to_value));("additionalDetailSet",(Option.mapx.additionalDetails~f:AdditionalDetailList.to_value));("transitGateway",(Option.mapx.transitGateway~f:AnalysisComponent.to_value));("transitGatewayRouteTableRoute",(Option.mapx.transitGatewayRouteTableRoute~f:TransitGatewayRouteTableRoute.to_value));("explanationSet",(Option.mapx.explanations~f:ExplanationList.to_value));("elasticLoadBalancerListener",(Option.mapx.elasticLoadBalancerListener~f:AnalysisComponent.to_value));("firewallStatelessRule",(Option.mapx.firewallStatelessRule~f:FirewallStatelessRule.to_value));("firewallStatefulRule",(Option.mapx.firewallStatefulRule~f:FirewallStatefulRule.to_value));("serviceName",(Option.mapx.serviceName~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letserviceName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"serviceName")inletfirewallStatefulRule=(Option.map~f:FirewallStatefulRule.of_xml)(Xml.childxml_arg0"firewallStatefulRule")inletfirewallStatelessRule=(Option.map~f:FirewallStatelessRule.of_xml)(Xml.childxml_arg0"firewallStatelessRule")inletelasticLoadBalancerListener=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"elasticLoadBalancerListener")inletexplanations=(Option.map~f:ExplanationList.of_xml)(Xml.childxml_arg0"explanationSet")inlettransitGatewayRouteTableRoute=(Option.map~f:TransitGatewayRouteTableRoute.of_xml)(Xml.childxml_arg0"transitGatewayRouteTableRoute")inlettransitGateway=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"transitGateway")inletadditionalDetails=(Option.map~f:AdditionalDetailList.of_xml)(Xml.childxml_arg0"additionalDetailSet")inletvpc=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"vpc")inletsubnet=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"subnet")inletsourceVpc=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"sourceVpc")inletsecurityGroupRule=(Option.map~f:AnalysisSecurityGroupRule.of_xml)(Xml.childxml_arg0"securityGroupRule")inletrouteTableRoute=(Option.map~f:AnalysisRouteTableRoute.of_xml)(Xml.childxml_arg0"routeTableRoute")inletinboundHeader=(Option.map~f:AnalysisPacketHeader.of_xml)(Xml.childxml_arg0"inboundHeader")inletoutboundHeader=(Option.map~f:AnalysisPacketHeader.of_xml)(Xml.childxml_arg0"outboundHeader")inletdestinationVpc=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"destinationVpc")inletcomponent=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"component")inletattachedTo=(Option.map~f:AnalysisComponent.of_xml)(Xml.childxml_arg0"attachedTo")inletaclRule=(Option.map~f:AnalysisAclRule.of_xml)(Xml.childxml_arg0"aclRule")inletsequenceNumber=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"sequenceNumber")inmake?serviceName?firewallStatefulRule?firewallStatelessRule?elasticLoadBalancerListener?explanations?transitGatewayRouteTableRoute?transitGateway?additionalDetails?vpc?subnet?sourceVpc?securityGroupRule?routeTableRoute?inboundHeader?outboundHeader?destinationVpc?component?attachedTo?aclRule?sequenceNumber()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letserviceName=field_mapjson__"ServiceName"String_.of_jsoninletfirewallStatefulRule=field_mapjson__"FirewallStatefulRule"FirewallStatefulRule.of_jsoninletfirewallStatelessRule=field_mapjson__"FirewallStatelessRule"FirewallStatelessRule.of_jsoninletelasticLoadBalancerListener=field_mapjson__"ElasticLoadBalancerListener"AnalysisComponent.of_jsoninletexplanations=field_mapjson__"Explanations"ExplanationList.of_jsoninlettransitGatewayRouteTableRoute=field_mapjson__"TransitGatewayRouteTableRoute"TransitGatewayRouteTableRoute.of_jsoninlettransitGateway=field_mapjson__"TransitGateway"AnalysisComponent.of_jsoninletadditionalDetails=field_mapjson__"AdditionalDetails"AdditionalDetailList.of_jsoninletvpc=field_mapjson__"Vpc"AnalysisComponent.of_jsoninletsubnet=field_mapjson__"Subnet"AnalysisComponent.of_jsoninletsourceVpc=field_mapjson__"SourceVpc"AnalysisComponent.of_jsoninletsecurityGroupRule=field_mapjson__"SecurityGroupRule"AnalysisSecurityGroupRule.of_jsoninletrouteTableRoute=field_mapjson__"RouteTableRoute"AnalysisRouteTableRoute.of_jsoninletinboundHeader=field_mapjson__"InboundHeader"AnalysisPacketHeader.of_jsoninletoutboundHeader=field_mapjson__"OutboundHeader"AnalysisPacketHeader.of_jsoninletdestinationVpc=field_mapjson__"DestinationVpc"AnalysisComponent.of_jsoninletcomponent=field_mapjson__"Component"AnalysisComponent.of_jsoninletattachedTo=field_mapjson__"AttachedTo"AnalysisComponent.of_jsoninletaclRule=field_mapjson__"AclRule"AnalysisAclRule.of_jsoninletsequenceNumber=field_mapjson__"SequenceNumber"Integer.of_jsoninmake?serviceName?firewallStatefulRule?firewallStatelessRule?elasticLoadBalancerListener?explanations?transitGatewayRouteTableRoute?transitGateway?additionalDetails?vpc?subnet?sourceVpc?securityGroupRule?routeTableRoute?inboundHeader?outboundHeader?destinationVpc?component?attachedTo?aclRule?sequenceNumber()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a path component."]moduleIpamPrefixListResolverRuleCondition=structtypenonrect={operation:IpamPrefixListResolverRuleConditionOperation.toption[@ocaml.doc"The operation to perform when evaluating this condition. Valid values include equals, not-equals, contains, and not-contains."];ipamPoolId:String_.toption[@ocaml.doc"The ID of the IPAM pool to match against. This condition selects CIDRs that belong to the specified IPAM pool."];resourceId:String_.toption[@ocaml.doc"The ID of the Amazon Web Services resource to match against. This condition selects CIDRs associated with the specified resource."];resourceOwner:String_.toption[@ocaml.doc"The Amazon Web Services account ID that owns the resources to match against. This condition selects CIDRs from resources owned by the specified account."];resourceRegion:String_.toption[@ocaml.doc"The Amazon Web Services Region where the resources are located. This condition selects CIDRs from resources in the specified Region."];resourceTag:IpamResourceTag.toption[@ocaml.doc"A tag key-value pair to match against. This condition selects CIDRs from resources that have the specified tag."];cidr:String_.toption[@ocaml.doc"A CIDR block to match against. This condition selects CIDRs that fall within or match the specified CIDR range."]}letmake?operation=fun?ipamPoolId->fun?resourceId->fun?resourceOwner->fun?resourceRegion->fun?resourceTag->fun?cidr->fun()->{operation;ipamPoolId;resourceId;resourceOwner;resourceRegion;resourceTag;cidr}letto_valuex=structure_to_value[("operation",(Option.mapx.operation~f:IpamPrefixListResolverRuleConditionOperation.to_value));("ipamPoolId",(Option.mapx.ipamPoolId~f:String_.to_value));("resourceId",(Option.mapx.resourceId~f:String_.to_value));("resourceOwner",(Option.mapx.resourceOwner~f:String_.to_value));("resourceRegion",(Option.mapx.resourceRegion~f:String_.to_value));("resourceTag",(Option.mapx.resourceTag~f:IpamResourceTag.to_value));("cidr",(Option.mapx.cidr~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcidr=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"cidr")inletresourceTag=(Option.map~f:IpamResourceTag.of_xml)(Xml.childxml_arg0"resourceTag")inletresourceRegion=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"resourceRegion")inletresourceOwner=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"resourceOwner")inletresourceId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"resourceId")inletipamPoolId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ipamPoolId")inletoperation=(Option.map~f:IpamPrefixListResolverRuleConditionOperation.of_xml)(Xml.childxml_arg0"operation")inmake?cidr?resourceTag?resourceRegion?resourceOwner?resourceId?ipamPoolId?operation()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcidr=field_mapjson__"Cidr"String_.of_jsoninletresourceTag=field_mapjson__"ResourceTag"IpamResourceTag.of_jsoninletresourceRegion=field_mapjson__"ResourceRegion"String_.of_jsoninletresourceOwner=field_mapjson__"ResourceOwner"String_.of_jsoninletresourceId=field_mapjson__"ResourceId"String_.of_jsoninletipamPoolId=field_mapjson__"IpamPoolId"String_.of_jsoninletoperation=field_mapjson__"Operation"IpamPrefixListResolverRuleConditionOperation.of_jsoninmake?cidr?resourceTag?resourceRegion?resourceOwner?resourceId?ipamPoolId?operation()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a condition within a CIDR selection rule. Conditions define the criteria for selecting CIDRs from IPAM's database based on resource attributes. CIDR selection rules define the business logic for selecting CIDRs from IPAM. If a CIDR matches any of the rules, it will be included. If a rule has multiple conditions, the CIDR has to match every condition of that rule. You can create a prefix list resolver without any CIDR selection rules, but it will generate empty versions (containing no CIDRs) until you add rules. There are three rule types. Only 2 of the 3 rule types support conditions - IPAM pool CIDR and Scope resource CIDR. Static CIDR rules cannot have conditions. Static CIDR: A fixed list of CIDRs that do not change (like a manual list replicated across Regions) IPAM pool CIDR: CIDRs from specific IPAM pools (like all CIDRs from your IPAM production pool) If you choose this option, choose the following: IPAM scope: Select the IPAM scope to search for resources Conditions: Property IPAM pool ID: Select an IPAM pool that contains the resources CIDR (like 10.24.34.0/23) Operation: Equals/Not equals Value: The value on which to match the condition Scope resource CIDR: CIDRs from Amazon Web Services resources like VPCs, subnets, EIPs within an IPAM scope If you choose this option, choose the following: IPAM scope: Select the IPAM scope to search for resources Resource type: Select a resource, like a VPC or subnet. Conditions: Property: Resource ID: The unique ID of a resource (like vpc-1234567890abcdef0) Resource owner (like 111122223333) Resource region (like us-east-1) Resource tag (like key: name, value: dev-vpc-1) CIDR (like 10.24.34.0/23) Operation: Equals/Not equals Value: The value on which to match the condition"]moduleIpamPoolCidrFailureCode=structtypenonrect=|Cidr_not_available|Limit_exceeded|Non_static_idofstringletmakei=iletto_string=function|Cidr_not_available->"cidr-not-available"|Limit_exceeded->"limit-exceeded"|Non_static_ids->sletof_string=function|"cidr-not-available"->Cidr_not_available|"limit-exceeded"->Limit_exceeded|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 IpamPoolCidrFailureCode"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"IpamPoolCidrFailureCode"j)letto_json=simple_to_jsonto_valueendmoduleIpamPolicyAllocationRule=structtypenonrect={sourceIpamPoolId:IpamPoolId.toption[@ocaml.doc"The ID of the source IPAM pool for the allocation rule. An IPAM pool is a collection of IP addresses in IPAM that can be allocated to Amazon Web Services resources."]}letmake?sourceIpamPoolId=fun()->{sourceIpamPoolId}letto_valuex=structure_to_value[("sourceIpamPoolId",(Option.mapx.sourceIpamPoolId~f:IpamPoolId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsourceIpamPoolId=(Option.map~f:IpamPoolId.of_xml)(Xml.childxml_arg0"sourceIpamPoolId")inmake?sourceIpamPoolId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsourceIpamPoolId=field_mapjson__"SourceIpamPoolId"IpamPoolId.of_jsoninmake?sourceIpamPoolId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Information about an IPAM policy allocation rule. Allocation rules are optional configurations within an IPAM policy that map Amazon Web Services resource types to specific IPAM pools. If no rules are defined, the resource types default to using Amazon-provided IP addresses."]moduleIpamPublicAddressSecurityGroup=structtypenonrect={groupName:String_.toption[@ocaml.doc"The security group's name."];groupId:String_.toption[@ocaml.doc"The security group's ID."]}letmake?groupName=fun?groupId->fun()->{groupName;groupId}letto_valuex=structure_to_value[("groupName",(Option.mapx.groupName~f:String_.to_value));("groupId",(Option.mapx.groupId~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgroupId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"groupId")inletgroupName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"groupName")inmake?groupId?groupName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgroupId=field_mapjson__"GroupId"String_.of_jsoninletgroupName=field_mapjson__"GroupName"String_.of_jsoninmake?groupId?groupName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The security group that the resource with the public IP address is in."]moduleIpamPublicAddressTagList=structtypenonrect=IpamPublicAddressTag.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:IpamPublicAddressTag.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:IpamPublicAddressTag.of_xml)letof_jsonj=list_of_json~kind:"IpamPublicAddressTagList"~of_json:IpamPublicAddressTag.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleIpamDiscoveryFailureCode=structtypenonrect=|Assume_role_failure|Throttling_failure|Unauthorized_failure|Non_static_idofstringletmakei=iletto_string=function|Assume_role_failure->"assume-role-failure"|Throttling_failure->"throttling-failure"|Unauthorized_failure->"unauthorized-failure"|Non_static_ids->sletof_string=function|"assume-role-failure"->Assume_role_failure|"throttling-failure"->Throttling_failure|"unauthorized-failure"->Unauthorized_failure|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 IpamDiscoveryFailureCode"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"IpamDiscoveryFailureCode"j)letto_json=simple_to_jsonto_valueendmodulePartitionLoadFrequency=structtypenonrect=|None|Daily|Weekly|Monthly|Non_static_idofstringletmakei=iletto_string=function|None->"none"|Daily->"daily"|Weekly->"weekly"|Monthly->"monthly"|Non_static_ids->sletof_string=function|"none"->None|"daily"->Daily|"weekly"->Weekly|"monthly"->Monthly|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 PartitionLoadFrequency"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"PartitionLoadFrequency"j)letto_json=simple_to_jsonto_valueendmoduleRegionalSummary=structtypenonrect={regionName:String_.toption[@ocaml.doc"The Amazon Web Services Region."];numberOfMatchedAccounts:Integer.toption[@ocaml.doc"The number of accounts in the Region with the same configuration value for the attribute that is most frequently observed."];numberOfUnmatchedAccounts:Integer.toption[@ocaml.doc"The number of accounts in the Region with a configuration value different from the most frequently observed value for the attribute."]}letmake?regionName=fun?numberOfMatchedAccounts->fun?numberOfUnmatchedAccounts->fun()->{regionName;numberOfMatchedAccounts;numberOfUnmatchedAccounts}letto_valuex=structure_to_value[("regionName",(Option.mapx.regionName~f:String_.to_value));("numberOfMatchedAccounts",(Option.mapx.numberOfMatchedAccounts~f:Integer.to_value));("numberOfUnmatchedAccounts",(Option.mapx.numberOfUnmatchedAccounts~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnumberOfUnmatchedAccounts=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"numberOfUnmatchedAccounts")inletnumberOfMatchedAccounts=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"numberOfMatchedAccounts")inletregionName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"regionName")inmake?numberOfUnmatchedAccounts?numberOfMatchedAccounts?regionName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnumberOfUnmatchedAccounts=field_mapjson__"NumberOfUnmatchedAccounts"Integer.of_jsoninletnumberOfMatchedAccounts=field_mapjson__"NumberOfMatchedAccounts"Integer.of_jsoninletregionName=field_mapjson__"RegionName"String_.of_jsoninmake?numberOfUnmatchedAccounts?numberOfMatchedAccounts?regionName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A summary report for the attribute for a Region."]moduleComparison=structtypenonrect=|Equals|In|Non_static_idofstringletmakei=iletto_string=function|Equals->"equals"|In->"in"|Non_static_ids->sletof_string=function|"equals"->Equals|"in"->In|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 Comparison"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"Comparison"j)letto_json=simple_to_jsonto_valueendmoduleConditionValueList=structtypenonrect=ConditionValue.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:ConditionValue.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:ConditionValue.of_xml)letof_jsonj=list_of_json~kind:"ConditionValueList"~of_json:ConditionValue.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleFilterByDimension=structtypenonrect=|Resource_region|Availability_zone_id|Account_id|Account_name|Instance_family|Instance_type|Instance_platform|Reservation_arn|Reservation_id|Reservation_type|Reservation_create_timestamp|Reservation_start_timestamp|Reservation_end_timestamp|Reservation_end_date_type|Tenancy|Reservation_state|Reservation_instance_match_criteria|Reservation_unused_financial_owner|Non_static_idofstringletmakei=iletto_string=function|Resource_region->"resource-region"|Availability_zone_id->"availability-zone-id"|Account_id->"account-id"|Account_name->"account-name"|Instance_family->"instance-family"|Instance_type->"instance-type"|Instance_platform->"instance-platform"|Reservation_arn->"reservation-arn"|Reservation_id->"reservation-id"|Reservation_type->"reservation-type"|Reservation_create_timestamp->"reservation-create-timestamp"|Reservation_start_timestamp->"reservation-start-timestamp"|Reservation_end_timestamp->"reservation-end-timestamp"|Reservation_end_date_type->"reservation-end-date-type"|Tenancy->"tenancy"|Reservation_state->"reservation-state"|Reservation_instance_match_criteria->"reservation-instance-match-criteria"|Reservation_unused_financial_owner->"reservation-unused-financial-owner"|Non_static_ids->sletof_string=function|"resource-region"->Resource_region|"availability-zone-id"->Availability_zone_id|"account-id"->Account_id|"account-name"->Account_name|"instance-family"->Instance_family|"instance-type"->Instance_type|"instance-platform"->Instance_platform|"reservation-arn"->Reservation_arn|"reservation-id"->Reservation_id|"reservation-type"->Reservation_type|"reservation-create-timestamp"->Reservation_create_timestamp|"reservation-start-timestamp"->Reservation_start_timestamp|"reservation-end-timestamp"->Reservation_end_timestamp|"reservation-end-date-type"->Reservation_end_date_type|"tenancy"->Tenancy|"reservation-state"->Reservation_state|"reservation-instance-match-criteria"->Reservation_instance_match_criteria|"reservation-unused-financial-owner"->Reservation_unused_financial_owner|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 FilterByDimension"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"FilterByDimension"j)letto_json=simple_to_jsonto_valueendmoduleCapacityManagerTagDimensionSet=structtypenonrect=CapacityManagerTagDimension.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:CapacityManagerTagDimension.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:CapacityManagerTagDimension.of_xml)letof_jsonj=list_of_json~kind:"CapacityManagerTagDimensionSet"~of_json:CapacityManagerTagDimension.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleCapacityTenancy=structtypenonrect=|Default|Dedicated|Non_static_idofstringletmakei=iletto_string=function|Default->"default"|Dedicated->"dedicated"|Non_static_ids->sletof_string=function|"default"->Default|"dedicated"->Dedicated|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 CapacityTenancy"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"CapacityTenancy"j)letto_json=simple_to_jsonto_valueendmoduleReservationEndDateType=structtypenonrect=|Limited|Unlimited|Non_static_idofstringletmakei=iletto_string=function|Limited->"limited"|Unlimited->"unlimited"|Non_static_ids->sletof_string=function|"limited"->Limited|"unlimited"->Unlimited|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 ReservationEndDateType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ReservationEndDateType"j)letto_json=simple_to_jsonto_valueendmoduleReservationState=structtypenonrect=|Active|Expired|Cancelled|Scheduled|Pending|Failed|Delayed|Unsupported|Payment_pending|Payment_failed|Retired|Non_static_idofstringletmakei=iletto_string=function|Active->"active"|Expired->"expired"|Cancelled->"cancelled"|Scheduled->"scheduled"|Pending->"pending"|Failed->"failed"|Delayed->"delayed"|Unsupported->"unsupported"|Payment_pending->"payment-pending"|Payment_failed->"payment-failed"|Retired->"retired"|Non_static_ids->sletof_string=function|"active"->Active|"expired"->Expired|"cancelled"->Cancelled|"scheduled"->Scheduled|"pending"->Pending|"failed"->Failed|"delayed"->Delayed|"unsupported"->Unsupported|"payment-pending"->Payment_pending|"payment-failed"->Payment_failed|"retired"->Retired|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 ReservationState"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ReservationState"j)letto_json=simple_to_jsonto_valueendmoduleReservationType=structtypenonrect=|Capacity_block|Odcr|Non_static_idofstringletmakei=iletto_string=function|Capacity_block->"capacity-block"|Odcr->"odcr"|Non_static_ids->sletof_string=function|"capacity-block"->Capacity_block|"odcr"->Odcr|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 ReservationType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ReservationType"j)letto_json=simple_to_jsonto_valueendmoduleMetricValue=structtypenonrect={metric:Metric.toption[@ocaml.doc"The name of the metric."];value:Double.toption[@ocaml.doc"The numerical value of the metric for the specified statistic and time period."]}letmake?metric=fun?value->fun()->{metric;value}letto_valuex=structure_to_value[("metric",(Option.mapx.metric~f:Metric.to_value));("value",(Option.mapx.value~f:Double.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvalue=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"value")inletmetric=(Option.map~f:Metric.of_xml)(Xml.childxml_arg0"metric")inmake?value?metric()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvalue=field_mapjson__"Value"Double.of_jsoninletmetric=field_mapjson__"Metric"Metric.of_jsoninmake?value?metric()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Represents a single metric value with its associated statistic, such as the sum or average of unused capacity hours."]moduleMetricPoint=structtypenonrect={startDate:MillisecondDateTime.toption[@ocaml.doc"The start date for the metric point. The starting date for the metric point. The starting time must be formatted as yyyy-mm-ddThh:mm:ss. For example, 2022-06-10T12:00:00.000Z."];endDate:MillisecondDateTime.toption[@ocaml.doc"The end date for the metric point. The ending time must be formatted as yyyy-mm-ddThh:mm:ss. For example, 2022-06-12T12:00:00.000Z."];value:Float_.toption;status:String_.toption[@ocaml.doc"The status of the metric point."]}letmake?startDate=fun?endDate->fun?value->fun?status->fun()->{startDate;endDate;value;status}letto_valuex=structure_to_value[("startDate",(Option.mapx.startDate~f:MillisecondDateTime.to_value));("endDate",(Option.mapx.endDate~f:MillisecondDateTime.to_value));("value",(Option.mapx.value~f:Float_.to_value));("status",(Option.mapx.status~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstatus=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"status")inletvalue=(Option.map~f:Float_.of_xml)(Xml.childxml_arg0"value")inletendDate=(Option.map~f:MillisecondDateTime.of_xml)(Xml.childxml_arg0"endDate")inletstartDate=(Option.map~f:MillisecondDateTime.of_xml)(Xml.childxml_arg0"startDate")inmake?status?value?endDate?startDate()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstatus=field_mapjson__"Status"String_.of_jsoninletvalue=field_mapjson__"Value"Float_.of_jsoninletendDate=field_mapjson__"EndDate"MillisecondDateTime.of_jsoninletstartDate=field_mapjson__"StartDate"MillisecondDateTime.of_jsoninmake?status?value?endDate?startDate()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Indicates whether the network was healthy or degraded at a particular point. The value is aggregated from the startDate to the endDate. Currently only five_minutes is supported."]moduleImageName=structtypenonrect=stringletcontext_="ImageName"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ImageName"jletto_json=simple_to_jsonto_valueendmoduleImageProvider=structtypenonrect=stringletcontext_="ImageProvider"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ImageProvider"jletto_json=simple_to_jsonto_valueendmoduleMarketplaceProductCode=structtypenonrect=stringletcontext_="MarketplaceProductCode"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"MarketplaceProductCode"jletto_json=simple_to_jsonto_valueendmoduleVerifiedAccessInstanceOpenVpnClientConfigurationRoute=structtypenonrect={cidr:String_.toption[@ocaml.doc"The CIDR block."]}letmake?cidr=fun()->{cidr}letto_valuex=structure_to_value[("cidr",(Option.mapx.cidr~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcidr=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"cidr")inmake?cidr()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcidr=field_mapjson__"Cidr"String_.of_jsoninmake?cidr()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a route."]moduleEnableFastSnapshotRestoreStateErrorItem=structtypenonrect={availabilityZone:String_.toption[@ocaml.doc"The Availability Zone."];availabilityZoneId:String_.toption[@ocaml.doc"The ID of the Availability Zone."];error:EnableFastSnapshotRestoreStateError.toption[@ocaml.doc"The error."]}letmake?availabilityZone=fun?availabilityZoneId->fun?error->fun()->{availabilityZone;availabilityZoneId;error}letto_valuex=structure_to_value[("availabilityZone",(Option.mapx.availabilityZone~f:String_.to_value));("availabilityZoneId",(Option.mapx.availabilityZoneId~f:String_.to_value));("error",(Option.mapx.error~f:EnableFastSnapshotRestoreStateError.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=leterror=(Option.map~f:EnableFastSnapshotRestoreStateError.of_xml)(Xml.childxml_arg0"error")inletavailabilityZoneId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"availabilityZoneId")inletavailabilityZone=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"availabilityZone")inmake?error?availabilityZoneId?availabilityZone()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=leterror=field_mapjson__"Error"EnableFastSnapshotRestoreStateError.of_jsoninletavailabilityZoneId=field_mapjson__"AvailabilityZoneId"String_.of_jsoninletavailabilityZone=field_mapjson__"AvailabilityZone"String_.of_jsoninmake?error?availabilityZoneId?availabilityZone()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains information about an error that occurred when enabling fast snapshot restores."]moduleDisableFastSnapshotRestoreStateErrorItem=structtypenonrect={availabilityZone:String_.toption[@ocaml.doc"The Availability Zone."];availabilityZoneId:String_.toption[@ocaml.doc"The ID of the Availability Zone."];error:DisableFastSnapshotRestoreStateError.toption[@ocaml.doc"The error."]}letmake?availabilityZone=fun?availabilityZoneId->fun?error->fun()->{availabilityZone;availabilityZoneId;error}letto_valuex=structure_to_value[("availabilityZone",(Option.mapx.availabilityZone~f:String_.to_value));("availabilityZoneId",(Option.mapx.availabilityZoneId~f:String_.to_value));("error",(Option.mapx.error~f:DisableFastSnapshotRestoreStateError.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=leterror=(Option.map~f:DisableFastSnapshotRestoreStateError.of_xml)(Xml.childxml_arg0"error")inletavailabilityZoneId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"availabilityZoneId")inletavailabilityZone=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"availabilityZone")inmake?error?availabilityZoneId?availabilityZone()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=leterror=field_mapjson__"Error"DisableFastSnapshotRestoreStateError.of_jsoninletavailabilityZoneId=field_mapjson__"AvailabilityZoneId"String_.of_jsoninletavailabilityZone=field_mapjson__"AvailabilityZone"String_.of_jsoninmake?error?availabilityZoneId?availabilityZone()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains information about an error that occurred when disabling fast snapshot restores."]moduleVpcAttachment=structtypenonrect={vpcId:String_.toption[@ocaml.doc"The ID of the VPC."];state:AttachmentStatus.toption[@ocaml.doc"The current state of the attachment."]}letmake?vpcId=fun?state->fun()->{vpcId;state}letto_valuex=structure_to_value[("vpcId",(Option.mapx.vpcId~f:String_.to_value));("state",(Option.mapx.state~f:AttachmentStatus.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstate=(Option.map~f:AttachmentStatus.of_xml)(Xml.childxml_arg0"state")inletvpcId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"vpcId")inmake?state?vpcId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstate=field_mapjson__"State"AttachmentStatus.of_jsoninletvpcId=field_mapjson__"VpcId"String_.of_jsoninmake?state?vpcId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an attachment between a virtual private gateway and a VPC."]moduleVgwTelemetry=structtypenonrect={acceptedRouteCount:Integer.toption[@ocaml.doc"The number of accepted routes."];lastStatusChange:DateTime.toption[@ocaml.doc"The date and time of the last change in status. This field is updated when changes in IKE (Phase 1), IPSec (Phase 2), or BGP status are detected."];outsideIpAddress:String_.toption[@ocaml.doc"The Internet-routable IP address of the virtual private gateway's outside interface."];status:TelemetryStatus.toption[@ocaml.doc"The status of the VPN tunnel."];statusMessage:String_.toption[@ocaml.doc"If an error occurs, a description of the error."];certificateArn:String_.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the VPN tunnel endpoint certificate."]}letmake?acceptedRouteCount=fun?lastStatusChange->fun?outsideIpAddress->fun?status->fun?statusMessage->fun?certificateArn->fun()->{acceptedRouteCount;lastStatusChange;outsideIpAddress;status;statusMessage;certificateArn}letto_valuex=structure_to_value[("acceptedRouteCount",(Option.mapx.acceptedRouteCount~f:Integer.to_value));("lastStatusChange",(Option.mapx.lastStatusChange~f:DateTime.to_value));("outsideIpAddress",(Option.mapx.outsideIpAddress~f:String_.to_value));("status",(Option.mapx.status~f:TelemetryStatus.to_value));("statusMessage",(Option.mapx.statusMessage~f:String_.to_value));("certificateArn",(Option.mapx.certificateArn~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcertificateArn=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"certificateArn")inletstatusMessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"statusMessage")inletstatus=(Option.map~f:TelemetryStatus.of_xml)(Xml.childxml_arg0"status")inletoutsideIpAddress=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"outsideIpAddress")inletlastStatusChange=(Option.map~f:DateTime.of_xml)(Xml.childxml_arg0"lastStatusChange")inletacceptedRouteCount=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"acceptedRouteCount")inmake?certificateArn?statusMessage?status?outsideIpAddress?lastStatusChange?acceptedRouteCount()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcertificateArn=field_mapjson__"CertificateArn"String_.of_jsoninletstatusMessage=field_mapjson__"StatusMessage"String_.of_jsoninletstatus=field_mapjson__"Status"TelemetryStatus.of_jsoninletoutsideIpAddress=field_mapjson__"OutsideIpAddress"String_.of_jsoninletlastStatusChange=field_mapjson__"LastStatusChange"DateTime.of_jsoninletacceptedRouteCount=field_mapjson__"AcceptedRouteCount"Integer.of_jsoninmake?certificateArn?statusMessage?status?outsideIpAddress?lastStatusChange?acceptedRouteCount()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes telemetry for a VPN tunnel."]moduleTunnelInsideIpVersion=structtypenonrect=|Ipv4|Ipv6|Non_static_idofstringletmakei=iletto_string=function|Ipv4->"ipv4"|Ipv6->"ipv6"|Non_static_ids->sletof_string=function|"ipv4"->Ipv4|"ipv6"->Ipv6|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 TunnelInsideIpVersion"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"TunnelInsideIpVersion"j)letto_json=simple_to_jsonto_valueendmoduleTunnelOptionsList=structtypenonrect=TunnelOption.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:TunnelOption.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:TunnelOption.of_xml)letof_jsonj=list_of_json~kind:"TunnelOptionsList"~of_json:TunnelOption.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleVpnTunnelBandwidth=structtypenonrect=|Standard|Large|Non_static_idofstringletmakei=iletto_string=function|Standard->"standard"|Large->"large"|Non_static_ids->sletof_string=function|"standard"->Standard|"large"->Large|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 VpnTunnelBandwidth"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"VpnTunnelBandwidth"j)letto_json=simple_to_jsonto_valueendmoduleVpnStaticRoute=structtypenonrect={destinationCidrBlock:String_.toption[@ocaml.doc"The CIDR block associated with the local subnet of the customer data center."];source:VpnStaticRouteSource.toption[@ocaml.doc"Indicates how the routes were provided."];state:VpnState.toption[@ocaml.doc"The current state of the static route."]}letmake?destinationCidrBlock=fun?source->fun?state->fun()->{destinationCidrBlock;source;state}letto_valuex=structure_to_value[("destinationCidrBlock",(Option.mapx.destinationCidrBlock~f:String_.to_value));("source",(Option.mapx.source~f:VpnStaticRouteSource.to_value));("state",(Option.mapx.state~f:VpnState.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstate=(Option.map~f:VpnState.of_xml)(Xml.childxml_arg0"state")inletsource=(Option.map~f:VpnStaticRouteSource.of_xml)(Xml.childxml_arg0"source")inletdestinationCidrBlock=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"destinationCidrBlock")inmake?state?source?destinationCidrBlock()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstate=field_mapjson__"State"VpnState.of_jsoninletsource=field_mapjson__"Source"VpnStaticRouteSource.of_jsoninletdestinationCidrBlock=field_mapjson__"DestinationCidrBlock"String_.of_jsoninmake?state?source?destinationCidrBlock()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a static route for a VPN connection."]moduleBlockPublicAccessMode=structtypenonrect=|Off|Block_bidirectional|Block_ingress|Non_static_idofstringletmakei=iletto_string=function|Off->"off"|Block_bidirectional->"block-bidirectional"|Block_ingress->"block-ingress"|Non_static_ids->sletof_string=function|"off"->Off|"block-bidirectional"->Block_bidirectional|"block-ingress"->Block_ingress|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 BlockPublicAccessMode"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"BlockPublicAccessMode"j)letto_json=simple_to_jsonto_valueendmoduleVpcCidrBlockAssociation=structtypenonrect={associationId:String_.toption[@ocaml.doc"The association ID for the IPv4 CIDR block."];cidrBlock:String_.toption[@ocaml.doc"The IPv4 CIDR block."];cidrBlockState:VpcCidrBlockState.toption[@ocaml.doc"Information about the state of the CIDR block."]}letmake?associationId=fun?cidrBlock->fun?cidrBlockState->fun()->{associationId;cidrBlock;cidrBlockState}letto_valuex=structure_to_value[("associationId",(Option.mapx.associationId~f:String_.to_value));("cidrBlock",(Option.mapx.cidrBlock~f:String_.to_value));("cidrBlockState",(Option.mapx.cidrBlockState~f:VpcCidrBlockState.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcidrBlockState=(Option.map~f:VpcCidrBlockState.of_xml)(Xml.childxml_arg0"cidrBlockState")inletcidrBlock=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"cidrBlock")inletassociationId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"associationId")inmake?cidrBlockState?cidrBlock?associationId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcidrBlockState=field_mapjson__"CidrBlockState"VpcCidrBlockState.of_jsoninletcidrBlock=field_mapjson__"CidrBlock"String_.of_jsoninletassociationId=field_mapjson__"AssociationId"String_.of_jsoninmake?cidrBlockState?cidrBlock?associationId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an IPv4 CIDR block associated with a VPC."]moduleVpcEncryptionControlExclusions=structtypenonrect={internetGateway:VpcEncryptionControlExclusion.toption[@ocaml.doc"The exclusion configuration for internet gateway traffic."];egressOnlyInternetGateway:VpcEncryptionControlExclusion.toption[@ocaml.doc"The exclusion configuration for egress-only internet gateway traffic."];natGateway:VpcEncryptionControlExclusion.toption[@ocaml.doc"The exclusion configuration for NAT gateway traffic."];virtualPrivateGateway:VpcEncryptionControlExclusion.toption[@ocaml.doc"The exclusion configuration for virtual private gateway traffic."];vpcPeering:VpcEncryptionControlExclusion.toption[@ocaml.doc"The exclusion configuration for VPC peering connection traffic."];lambda:VpcEncryptionControlExclusion.toption[@ocaml.doc"The exclusion configuration for Lambda function traffic."];vpcLattice:VpcEncryptionControlExclusion.toption[@ocaml.doc"The exclusion configuration for VPC Lattice traffic."];elasticFileSystem:VpcEncryptionControlExclusion.toption[@ocaml.doc"The exclusion configuration for Elastic File System traffic."]}letmake?internetGateway=fun?egressOnlyInternetGateway->fun?natGateway->fun?virtualPrivateGateway->fun?vpcPeering->fun?lambda->fun?vpcLattice->fun?elasticFileSystem->fun()->{internetGateway;egressOnlyInternetGateway;natGateway;virtualPrivateGateway;vpcPeering;lambda;vpcLattice;elasticFileSystem}letto_valuex=structure_to_value[("internetGateway",(Option.mapx.internetGateway~f:VpcEncryptionControlExclusion.to_value));("egressOnlyInternetGateway",(Option.mapx.egressOnlyInternetGateway~f:VpcEncryptionControlExclusion.to_value));("natGateway",(Option.mapx.natGateway~f:VpcEncryptionControlExclusion.to_value));("virtualPrivateGateway",(Option.mapx.virtualPrivateGateway~f:VpcEncryptionControlExclusion.to_value));("vpcPeering",(Option.mapx.vpcPeering~f:VpcEncryptionControlExclusion.to_value));("lambda",(Option.mapx.lambda~f:VpcEncryptionControlExclusion.to_value));("vpcLattice",(Option.mapx.vpcLattice~f:VpcEncryptionControlExclusion.to_value));("elasticFileSystem",(Option.mapx.elasticFileSystem~f:VpcEncryptionControlExclusion.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letelasticFileSystem=(Option.map~f:VpcEncryptionControlExclusion.of_xml)(Xml.childxml_arg0"elasticFileSystem")inletvpcLattice=(Option.map~f:VpcEncryptionControlExclusion.of_xml)(Xml.childxml_arg0"vpcLattice")inletlambda=(Option.map~f:VpcEncryptionControlExclusion.of_xml)(Xml.childxml_arg0"lambda")inletvpcPeering=(Option.map~f:VpcEncryptionControlExclusion.of_xml)(Xml.childxml_arg0"vpcPeering")inletvirtualPrivateGateway=(Option.map~f:VpcEncryptionControlExclusion.of_xml)(Xml.childxml_arg0"virtualPrivateGateway")inletnatGateway=(Option.map~f:VpcEncryptionControlExclusion.of_xml)(Xml.childxml_arg0"natGateway")inletegressOnlyInternetGateway=(Option.map~f:VpcEncryptionControlExclusion.of_xml)(Xml.childxml_arg0"egressOnlyInternetGateway")inletinternetGateway=(Option.map~f:VpcEncryptionControlExclusion.of_xml)(Xml.childxml_arg0"internetGateway")inmake?elasticFileSystem?vpcLattice?lambda?vpcPeering?virtualPrivateGateway?natGateway?egressOnlyInternetGateway?internetGateway()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letelasticFileSystem=field_mapjson__"ElasticFileSystem"VpcEncryptionControlExclusion.of_jsoninletvpcLattice=field_mapjson__"VpcLattice"VpcEncryptionControlExclusion.of_jsoninletlambda=field_mapjson__"Lambda"VpcEncryptionControlExclusion.of_jsoninletvpcPeering=field_mapjson__"VpcPeering"VpcEncryptionControlExclusion.of_jsoninletvirtualPrivateGateway=field_mapjson__"VirtualPrivateGateway"VpcEncryptionControlExclusion.of_jsoninletnatGateway=field_mapjson__"NatGateway"VpcEncryptionControlExclusion.of_jsoninletegressOnlyInternetGateway=field_mapjson__"EgressOnlyInternetGateway"VpcEncryptionControlExclusion.of_jsoninletinternetGateway=field_mapjson__"InternetGateway"VpcEncryptionControlExclusion.of_jsoninmake?elasticFileSystem?vpcLattice?lambda?vpcPeering?virtualPrivateGateway?natGateway?egressOnlyInternetGateway?internetGateway()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the exclusion configurations for various resource types in VPC Encryption Control. For more information, see Enforce VPC encryption in transit in the Amazon VPC User Guide."]moduleVpcEncryptionControlId=structtypenonrect=stringletcontext_="VpcEncryptionControlId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"VpcEncryptionControlId"jletto_json=simple_to_jsonto_valueendmoduleVpcEncryptionControlMode=structtypenonrect=|Monitor|Enforce|Non_static_idofstringletmakei=iletto_string=function|Monitor->"monitor"|Enforce->"enforce"|Non_static_ids->sletof_string=function|"monitor"->Monitor|"enforce"->Enforce|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 VpcEncryptionControlMode"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"VpcEncryptionControlMode"j)letto_json=simple_to_jsonto_valueendmoduleVpcEncryptionControlState=structtypenonrect=|Enforce_in_progress|Monitor_in_progress|Enforce_failed|Monitor_failed|Deleting|Deleted|Available|Creating|Delete_failed|Non_static_idofstringletmakei=iletto_string=function|Enforce_in_progress->"enforce-in-progress"|Monitor_in_progress->"monitor-in-progress"|Enforce_failed->"enforce-failed"|Monitor_failed->"monitor-failed"|Deleting->"deleting"|Deleted->"deleted"|Available->"available"|Creating->"creating"|Delete_failed->"delete-failed"|Non_static_ids->sletof_string=function|"enforce-in-progress"->Enforce_in_progress|"monitor-in-progress"->Monitor_in_progress|"enforce-failed"->Enforce_failed|"monitor-failed"->Monitor_failed|"deleting"->Deleting|"deleted"->Deleted|"available"->Available|"creating"->Creating|"delete-failed"->Delete_failed|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 VpcEncryptionControlState"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"VpcEncryptionControlState"j)letto_json=simple_to_jsonto_valueendmoduleVpcId=structtypenonrect=stringletcontext_="VpcId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"VpcId"jletto_json=simple_to_jsonto_valueendmoduleVpcIpv6CidrBlockAssociation=structtypenonrect={associationId:String_.toption[@ocaml.doc"The association ID for the IPv6 CIDR block."];ipv6CidrBlock:String_.toption[@ocaml.doc"The IPv6 CIDR block."];ipv6CidrBlockState:VpcCidrBlockState.toption[@ocaml.doc"Information about the state of the CIDR block."];networkBorderGroup:String_.toption[@ocaml.doc"The name of the unique set of Availability Zones, Local Zones, or Wavelength Zones from which Amazon Web Services advertises IP addresses, for example, us-east-1-wl1-bos-wlz-1."];ipv6Pool:String_.toption[@ocaml.doc"The ID of the IPv6 address pool from which the IPv6 CIDR block is allocated."];ipv6AddressAttribute:Ipv6AddressAttribute.toption[@ocaml.doc"Public IPv6 addresses are those advertised on the internet from Amazon Web Services. Private IP addresses are not and cannot be advertised on the internet from Amazon Web Services."];ipSource:IpSource.toption[@ocaml.doc"The source that allocated the IP address space. byoip or amazon indicates public IP address space allocated by Amazon or space that you have allocated with Bring your own IP (BYOIP). none indicates private space."]}letmake?associationId=fun?ipv6CidrBlock->fun?ipv6CidrBlockState->fun?networkBorderGroup->fun?ipv6Pool->fun?ipv6AddressAttribute->fun?ipSource->fun()->{associationId;ipv6CidrBlock;ipv6CidrBlockState;networkBorderGroup;ipv6Pool;ipv6AddressAttribute;ipSource}letto_valuex=structure_to_value[("associationId",(Option.mapx.associationId~f:String_.to_value));("ipv6CidrBlock",(Option.mapx.ipv6CidrBlock~f:String_.to_value));("ipv6CidrBlockState",(Option.mapx.ipv6CidrBlockState~f:VpcCidrBlockState.to_value));("networkBorderGroup",(Option.mapx.networkBorderGroup~f:String_.to_value));("ipv6Pool",(Option.mapx.ipv6Pool~f:String_.to_value));("ipv6AddressAttribute",(Option.mapx.ipv6AddressAttribute~f:Ipv6AddressAttribute.to_value));("ipSource",(Option.mapx.ipSource~f:IpSource.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letipSource=(Option.map~f:IpSource.of_xml)(Xml.childxml_arg0"ipSource")inletipv6AddressAttribute=(Option.map~f:Ipv6AddressAttribute.of_xml)(Xml.childxml_arg0"ipv6AddressAttribute")inletipv6Pool=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ipv6Pool")inletnetworkBorderGroup=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"networkBorderGroup")inletipv6CidrBlockState=(Option.map~f:VpcCidrBlockState.of_xml)(Xml.childxml_arg0"ipv6CidrBlockState")inletipv6CidrBlock=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ipv6CidrBlock")inletassociationId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"associationId")inmake?ipSource?ipv6AddressAttribute?ipv6Pool?networkBorderGroup?ipv6CidrBlockState?ipv6CidrBlock?associationId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letipSource=field_mapjson__"IpSource"IpSource.of_jsoninletipv6AddressAttribute=field_mapjson__"Ipv6AddressAttribute"Ipv6AddressAttribute.of_jsoninletipv6Pool=field_mapjson__"Ipv6Pool"String_.of_jsoninletnetworkBorderGroup=field_mapjson__"NetworkBorderGroup"String_.of_jsoninletipv6CidrBlockState=field_mapjson__"Ipv6CidrBlockState"VpcCidrBlockState.of_jsoninletipv6CidrBlock=field_mapjson__"Ipv6CidrBlock"String_.of_jsoninletassociationId=field_mapjson__"AssociationId"String_.of_jsoninmake?ipSource?ipv6AddressAttribute?ipv6Pool?networkBorderGroup?ipv6CidrBlockState?ipv6CidrBlock?associationId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an IPv6 CIDR block associated with a VPC."]moduleVpcPeeringConnectionStateReasonCode=structtypenonrect=|Initiating_request|Pending_acceptance|Active|Deleted|Rejected|Failed|Expired|Provisioning|Deleting|Non_static_idofstringletmakei=iletto_string=function|Initiating_request->"initiating-request"|Pending_acceptance->"pending-acceptance"|Active->"active"|Deleted->"deleted"|Rejected->"rejected"|Failed->"failed"|Expired->"expired"|Provisioning->"provisioning"|Deleting->"deleting"|Non_static_ids->sletof_string=function|"initiating-request"->Initiating_request|"pending-acceptance"->Pending_acceptance|"active"->Active|"deleted"->Deleted|"rejected"->Rejected|"failed"->Failed|"expired"->Expired|"provisioning"->Provisioning|"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 VpcPeeringConnectionStateReasonCode"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"VpcPeeringConnectionStateReasonCode"j)letto_json=simple_to_jsonto_valueendmoduleCidrBlockSet=structtypenonrect=CidrBlock.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:CidrBlock.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:CidrBlock.of_xml)letof_jsonj=list_of_json~kind:"CidrBlockSet"~of_json:CidrBlock.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleIpv6CidrBlockSet=structtypenonrect=Ipv6CidrBlock.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Ipv6CidrBlock.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:Ipv6CidrBlock.of_xml)letof_jsonj=list_of_json~kind:"Ipv6CidrBlockSet"~of_json:Ipv6CidrBlock.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleVpcPeeringConnectionOptionsDescription=structtypenonrect={allowDnsResolutionFromRemoteVpc:Boolean.toption[@ocaml.doc"Indicates whether a local VPC can resolve public DNS hostnames to private IP addresses when queried from instances in a peer VPC."];allowEgressFromLocalClassicLinkToRemoteVpc:Boolean.toption[@ocaml.doc"Deprecated."];allowEgressFromLocalVpcToRemoteClassicLink:Boolean.toption[@ocaml.doc"Deprecated."]}letmake?allowDnsResolutionFromRemoteVpc=fun?allowEgressFromLocalClassicLinkToRemoteVpc->fun?allowEgressFromLocalVpcToRemoteClassicLink->fun()->{allowDnsResolutionFromRemoteVpc;allowEgressFromLocalClassicLinkToRemoteVpc;allowEgressFromLocalVpcToRemoteClassicLink}letto_valuex=structure_to_value[("allowDnsResolutionFromRemoteVpc",(Option.mapx.allowDnsResolutionFromRemoteVpc~f:Boolean.to_value));("allowEgressFromLocalClassicLinkToRemoteVpc",(Option.mapx.allowEgressFromLocalClassicLinkToRemoteVpc~f:Boolean.to_value));("allowEgressFromLocalVpcToRemoteClassicLink",(Option.mapx.allowEgressFromLocalVpcToRemoteClassicLink~f:Boolean.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letallowEgressFromLocalVpcToRemoteClassicLink=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"allowEgressFromLocalVpcToRemoteClassicLink")inletallowEgressFromLocalClassicLinkToRemoteVpc=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"allowEgressFromLocalClassicLinkToRemoteVpc")inletallowDnsResolutionFromRemoteVpc=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"allowDnsResolutionFromRemoteVpc")inmake?allowEgressFromLocalVpcToRemoteClassicLink?allowEgressFromLocalClassicLinkToRemoteVpc?allowDnsResolutionFromRemoteVpc()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letallowEgressFromLocalVpcToRemoteClassicLink=field_mapjson__"AllowEgressFromLocalVpcToRemoteClassicLink"Boolean.of_jsoninletallowEgressFromLocalClassicLinkToRemoteVpc=field_mapjson__"AllowEgressFromLocalClassicLinkToRemoteVpc"Boolean.of_jsoninletallowDnsResolutionFromRemoteVpc=field_mapjson__"AllowDnsResolutionFromRemoteVpc"Boolean.of_jsoninmake?allowEgressFromLocalVpcToRemoteClassicLink?allowEgressFromLocalClassicLinkToRemoteVpc?allowDnsResolutionFromRemoteVpc()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the VPC peering connection options."]moduleDnsEntry=structtypenonrect={dnsName:String_.toption[@ocaml.doc"The DNS name."];hostedZoneId:String_.toption[@ocaml.doc"The ID of the private hosted zone."]}letmake?dnsName=fun?hostedZoneId->fun()->{dnsName;hostedZoneId}letto_valuex=structure_to_value[("dnsName",(Option.mapx.dnsName~f:String_.to_value));("hostedZoneId",(Option.mapx.hostedZoneId~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lethostedZoneId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"hostedZoneId")inletdnsName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"dnsName")inmake?hostedZoneId?dnsName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lethostedZoneId=field_mapjson__"HostedZoneId"String_.of_jsoninletdnsName=field_mapjson__"DnsName"String_.of_jsoninmake?hostedZoneId?dnsName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a DNS entry."]moduleDnsRecordIpType=structtypenonrect=|Ipv4|Dualstack|Ipv6|Service_defined|Non_static_idofstringletmakei=iletto_string=function|Ipv4->"ipv4"|Dualstack->"dualstack"|Ipv6->"ipv6"|Service_defined->"service-defined"|Non_static_ids->sletof_string=function|"ipv4"->Ipv4|"dualstack"->Dualstack|"ipv6"->Ipv6|"service-defined"->Service_defined|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 DnsRecordIpType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"DnsRecordIpType"j)letto_json=simple_to_jsonto_valueendmodulePrivateDnsSpecifiedDomainSet=structtypenonrect=String_.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:String_.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:String_.of_xml)letof_jsonj=list_of_json~kind:"PrivateDnsSpecifiedDomainSet"~of_json:String_.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleSecurityGroupIdentifier=structtypenonrect={groupId:String_.toption[@ocaml.doc"The ID of the security group."];groupName:String_.toption[@ocaml.doc"The name of the security group."]}letmake?groupId=fun?groupName->fun()->{groupId;groupName}letto_valuex=structure_to_value[("groupId",(Option.mapx.groupId~f:String_.to_value));("groupName",(Option.mapx.groupName~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgroupName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"groupName")inletgroupId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"groupId")inmake?groupName?groupId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgroupName=field_mapjson__"GroupName"String_.of_jsoninletgroupId=field_mapjson__"GroupId"String_.of_jsoninmake?groupName?groupId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a security group."]moduleSubnetIpPrefixes=structtypenonrect={subnetId:String_.toption[@ocaml.doc"ID of the subnet."];ipPrefixes:ValueStringList.toption[@ocaml.doc"Array of SubnetIpPrefixes objects."]}letmake?subnetId=fun?ipPrefixes->fun()->{subnetId;ipPrefixes}letto_valuex=structure_to_value[("subnetId",(Option.mapx.subnetId~f:String_.to_value));("ipPrefixSet",(Option.mapx.ipPrefixes~f:ValueStringList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letipPrefixes=(Option.map~f:ValueStringList.of_xml)(Xml.childxml_arg0"ipPrefixSet")inletsubnetId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"subnetId")inmake?ipPrefixes?subnetId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letipPrefixes=field_mapjson__"IpPrefixes"ValueStringList.of_jsoninletsubnetId=field_mapjson__"SubnetId"String_.of_jsoninmake?ipPrefixes?subnetId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Prefixes of the subnet IP."]modulePrivateDnsDetails=structtypenonrect={privateDnsName:String_.toption[@ocaml.doc"The private DNS name assigned to the VPC endpoint service."]}letmake?privateDnsName=fun()->{privateDnsName}letto_valuex=structure_to_value[("privateDnsName",(Option.mapx.privateDnsName~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letprivateDnsName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"privateDnsName")inmake?privateDnsName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letprivateDnsName=field_mapjson__"PrivateDnsName"String_.of_jsoninmake?privateDnsName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Information about the Private DNS name for interface endpoints."]moduleServiceTypeDetail=structtypenonrect={serviceType:ServiceType.toption[@ocaml.doc"The type of service."]}letmake?serviceType=fun()->{serviceType}letto_valuex=structure_to_value[("serviceType",(Option.mapx.serviceType~f:ServiceType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letserviceType=(Option.map~f:ServiceType.of_xml)(Xml.childxml_arg0"serviceType")inmake?serviceType()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letserviceType=field_mapjson__"ServiceType"ServiceType.of_jsoninmake?serviceType()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the type of service for a VPC endpoint."]moduleServiceConnectivityType=structtypenonrect=|Ipv4|Ipv6|Non_static_idofstringletmakei=iletto_string=function|Ipv4->"ipv4"|Ipv6->"ipv6"|Non_static_ids->sletof_string=function|"ipv4"->Ipv4|"ipv6"->Ipv6|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 ServiceConnectivityType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ServiceConnectivityType"j)letto_json=simple_to_jsonto_valueendmoduleDnsNameState=structtypenonrect=|PendingVerification|Verified|Failed|Non_static_idofstringletmakei=iletto_string=function|PendingVerification->"pendingVerification"|Verified->"verified"|Failed->"failed"|Non_static_ids->sletof_string=function|"pendingVerification"->PendingVerification|"verified"->Verified|"failed"->Failed|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 DnsNameState"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"DnsNameState"j)letto_json=simple_to_jsonto_valueendmoduleSupportedRegionDetail=structtypenonrect={region:String_.toption[@ocaml.doc"The Region code."];serviceState:String_.toption[@ocaml.doc"The service state. The possible values are Pending, Available, Deleting, Deleted, Failed, and Closed."]}letmake?region=fun?serviceState->fun()->{region;serviceState}letto_valuex=structure_to_value[("region",(Option.mapx.region~f:String_.to_value));("serviceState",(Option.mapx.serviceState~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letserviceState=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"serviceState")inletregion=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"region")inmake?serviceState?region()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letserviceState=field_mapjson__"ServiceState"String_.of_jsoninletregion=field_mapjson__"Region"String_.of_jsoninmake?serviceState?region()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a supported Region."]moduleVolumeAttachment=structtypenonrect={deleteOnTermination:Boolean.toption[@ocaml.doc"Indicates whether the EBS volume is deleted on instance termination."];associatedResource:String_.toption[@ocaml.doc"The ARN of the Amazon Web Services-managed resource to which the volume is attached."];instanceOwningService:String_.toption[@ocaml.doc"The service principal of the Amazon Web Services service that owns the underlying resource to which the volume is attached. This parameter is returned only for volumes that are attached to Amazon Web Services-managed resources."];ebsCardIndex:Integer.toption[@ocaml.doc"The index of the EBS card. Some instance types support multiple EBS cards. The default EBS card index is 0."];volumeId:String_.toption[@ocaml.doc"The ID of the volume."];instanceId:String_.toption[@ocaml.doc"The ID of the instance. If the volume is attached to an Amazon Web Services-managed resource, this parameter returns null."];device:String_.toption[@ocaml.doc"The device name. If the volume is attached to an Amazon Web Services-managed resource, this parameter returns null."];state:VolumeAttachmentState.toption[@ocaml.doc"The attachment state of the volume."];attachTime:DateTime.toption[@ocaml.doc"The time stamp when the attachment initiated."]}typenonrecerror=[`Unknown_operation_errorof(string*stringoption)]letmake?deleteOnTermination=fun?associatedResource->fun?instanceOwningService->fun?ebsCardIndex->fun?volumeId->fun?instanceId->fun?device->fun?state->fun?attachTime->fun()->{deleteOnTermination;associatedResource;instanceOwningService;ebsCardIndex;volumeId;instanceId;device;state;attachTime}leterror_of_jsonnamejson=matchnamewith|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("deleteOnTermination",(Option.mapx.deleteOnTermination~f:Boolean.to_value));("associatedResource",(Option.mapx.associatedResource~f:String_.to_value));("instanceOwningService",(Option.mapx.instanceOwningService~f:String_.to_value));("ebsCardIndex",(Option.mapx.ebsCardIndex~f:Integer.to_value));("volumeId",(Option.mapx.volumeId~f:String_.to_value));("instanceId",(Option.mapx.instanceId~f:String_.to_value));("device",(Option.mapx.device~f:String_.to_value));("status",(Option.mapx.state~f:VolumeAttachmentState.to_value));("attachTime",(Option.mapx.attachTime~f:DateTime.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letattachTime=(Option.map~f:DateTime.of_xml)(Xml.childxml_arg0"attachTime")inletstate=(Option.map~f:VolumeAttachmentState.of_xml)(Xml.childxml_arg0"status")inletdevice=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"device")inletinstanceId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"instanceId")inletvolumeId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"volumeId")inletebsCardIndex=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"ebsCardIndex")inletinstanceOwningService=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"instanceOwningService")inletassociatedResource=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"associatedResource")inletdeleteOnTermination=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"deleteOnTermination")inmake?attachTime?state?device?instanceId?volumeId?ebsCardIndex?instanceOwningService?associatedResource?deleteOnTermination()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letattachTime=field_mapjson__"AttachTime"DateTime.of_jsoninletstate=field_mapjson__"State"VolumeAttachmentState.of_jsoninletdevice=field_mapjson__"Device"String_.of_jsoninletinstanceId=field_mapjson__"InstanceId"String_.of_jsoninletvolumeId=field_mapjson__"VolumeId"String_.of_jsoninletebsCardIndex=field_mapjson__"EbsCardIndex"Integer.of_jsoninletinstanceOwningService=field_mapjson__"InstanceOwningService"String_.of_jsoninletassociatedResource=field_mapjson__"AssociatedResource"String_.of_jsoninletdeleteOnTermination=field_mapjson__"DeleteOnTermination"Boolean.of_jsoninmake?attachTime?state?device?instanceId?volumeId?ebsCardIndex?instanceOwningService?associatedResource?deleteOnTermination()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes volume attachment details."]moduleInitializationType=structtypenonrect=|Default|Provisioned_rate|Volume_copy|Non_static_idofstringletmakei=iletto_string=function|Default->"default"|Provisioned_rate->"provisioned-rate"|Volume_copy->"volume-copy"|Non_static_ids->sletof_string=function|"default"->Default|"provisioned-rate"->Provisioned_rate|"volume-copy"->Volume_copy|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 InitializationType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"InitializationType"j)letto_json=simple_to_jsonto_valueendmoduleVolumeStatusAction=structtypenonrect={code:String_.toption[@ocaml.doc"The code identifying the operation, for example, enable-volume-io."];description:String_.toption[@ocaml.doc"A description of the operation."];eventId:String_.toption[@ocaml.doc"The ID of the event associated with this operation."];eventType:String_.toption[@ocaml.doc"The event type associated with this operation."]}letmake?code=fun?description->fun?eventId->fun?eventType->fun()->{code;description;eventId;eventType}letto_valuex=structure_to_value[("code",(Option.mapx.code~f:String_.to_value));("description",(Option.mapx.description~f:String_.to_value));("eventId",(Option.mapx.eventId~f:String_.to_value));("eventType",(Option.mapx.eventType~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=leteventType=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"eventType")inleteventId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"eventId")inletdescription=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"description")inletcode=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"code")inmake?eventType?eventId?description?code()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=leteventType=field_mapjson__"EventType"String_.of_jsoninleteventId=field_mapjson__"EventId"String_.of_jsoninletdescription=field_mapjson__"Description"String_.of_jsoninletcode=field_mapjson__"Code"String_.of_jsoninmake?eventType?eventId?description?code()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a volume status operation code."]moduleVolumeStatusAttachmentStatus=structtypenonrect={ioPerformance:String_.toption[@ocaml.doc"The maximum IOPS supported by the attached instance."];instanceId:String_.toption[@ocaml.doc"The ID of the attached instance."]}letmake?ioPerformance=fun?instanceId->fun()->{ioPerformance;instanceId}letto_valuex=structure_to_value[("ioPerformance",(Option.mapx.ioPerformance~f:String_.to_value));("instanceId",(Option.mapx.instanceId~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letinstanceId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"instanceId")inletioPerformance=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ioPerformance")inmake?instanceId?ioPerformance()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letinstanceId=field_mapjson__"InstanceId"String_.of_jsoninletioPerformance=field_mapjson__"IoPerformance"String_.of_jsoninmake?instanceId?ioPerformance()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Information about the instances to which the volume is attached."]moduleVolumeStatusEvent=structtypenonrect={description:String_.toption[@ocaml.doc"A description of the event."];eventId:String_.toption[@ocaml.doc"The ID of this event."];eventType:String_.toption[@ocaml.doc"The type of this event."];notAfter:MillisecondDateTime.toption[@ocaml.doc"The latest end time of the event."];notBefore:MillisecondDateTime.toption[@ocaml.doc"The earliest start time of the event."];instanceId:String_.toption[@ocaml.doc"The ID of the instance associated with the event."]}letmake?description=fun?eventId->fun?eventType->fun?notAfter->fun?notBefore->fun?instanceId->fun()->{description;eventId;eventType;notAfter;notBefore;instanceId}letto_valuex=structure_to_value[("description",(Option.mapx.description~f:String_.to_value));("eventId",(Option.mapx.eventId~f:String_.to_value));("eventType",(Option.mapx.eventType~f:String_.to_value));("notAfter",(Option.mapx.notAfter~f:MillisecondDateTime.to_value));("notBefore",(Option.mapx.notBefore~f:MillisecondDateTime.to_value));("instanceId",(Option.mapx.instanceId~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letinstanceId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"instanceId")inletnotBefore=(Option.map~f:MillisecondDateTime.of_xml)(Xml.childxml_arg0"notBefore")inletnotAfter=(Option.map~f:MillisecondDateTime.of_xml)(Xml.childxml_arg0"notAfter")inleteventType=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"eventType")inleteventId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"eventId")inletdescription=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"description")inmake?instanceId?notBefore?notAfter?eventType?eventId?description()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letinstanceId=field_mapjson__"InstanceId"String_.of_jsoninletnotBefore=field_mapjson__"NotBefore"MillisecondDateTime.of_jsoninletnotAfter=field_mapjson__"NotAfter"MillisecondDateTime.of_jsoninleteventType=field_mapjson__"EventType"String_.of_jsoninleteventId=field_mapjson__"EventId"String_.of_jsoninletdescription=field_mapjson__"Description"String_.of_jsoninmake?instanceId?notBefore?notAfter?eventType?eventId?description()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a volume status event."]moduleVolumeStatusDetailsList=structtypenonrect=VolumeStatusDetails.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:VolumeStatusDetails.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:VolumeStatusDetails.of_xml)letof_jsonj=list_of_json~kind:"VolumeStatusDetailsList"~of_json:VolumeStatusDetails.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleVolumeStatusInfoStatus=structtypenonrect=|Ok|Impaired|Insufficient_data|Warning|Non_static_idofstringletmakei=iletto_string=function|Ok->"ok"|Impaired->"impaired"|Insufficient_data->"insufficient-data"|Warning->"warning"|Non_static_ids->sletof_string=function|"ok"->Ok|"impaired"->Impaired|"insufficient-data"->Insufficient_data|"warning"->Warning|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 VolumeStatusInfoStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"VolumeStatusInfoStatus"j)letto_json=simple_to_jsonto_valueendmoduleClientSecretType=structtypenonrect=stringletcontext_="ClientSecretType"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ClientSecretType"jletto_json=simple_to_jsonto_valueendmoduleKmsKeyArn=structtypenonrect=stringletcontext_="KmsKeyArn"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"KmsKeyArn"jletto_json=simple_to_jsonto_valueendmoduleVerifiedAccessTrustProviderCondensed=structtypenonrect={verifiedAccessTrustProviderId:String_.toption[@ocaml.doc"The ID of the trust provider."];description:String_.toption[@ocaml.doc"The description of trust provider."];trustProviderType:TrustProviderType.toption[@ocaml.doc"The type of trust provider (user- or device-based)."];userTrustProviderType:UserTrustProviderType.toption[@ocaml.doc"The type of user-based trust provider."];deviceTrustProviderType:DeviceTrustProviderType.toption[@ocaml.doc"The type of device-based trust provider."]}letmake?verifiedAccessTrustProviderId=fun?description->fun?trustProviderType->fun?userTrustProviderType->fun?deviceTrustProviderType->fun()->{verifiedAccessTrustProviderId;description;trustProviderType;userTrustProviderType;deviceTrustProviderType}letto_valuex=structure_to_value[("verifiedAccessTrustProviderId",(Option.mapx.verifiedAccessTrustProviderId~f:String_.to_value));("description",(Option.mapx.description~f:String_.to_value));("trustProviderType",(Option.mapx.trustProviderType~f:TrustProviderType.to_value));("userTrustProviderType",(Option.mapx.userTrustProviderType~f:UserTrustProviderType.to_value));("deviceTrustProviderType",(Option.mapx.deviceTrustProviderType~f:DeviceTrustProviderType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letdeviceTrustProviderType=(Option.map~f:DeviceTrustProviderType.of_xml)(Xml.childxml_arg0"deviceTrustProviderType")inletuserTrustProviderType=(Option.map~f:UserTrustProviderType.of_xml)(Xml.childxml_arg0"userTrustProviderType")inlettrustProviderType=(Option.map~f:TrustProviderType.of_xml)(Xml.childxml_arg0"trustProviderType")inletdescription=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"description")inletverifiedAccessTrustProviderId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"verifiedAccessTrustProviderId")inmake?deviceTrustProviderType?userTrustProviderType?trustProviderType?description?verifiedAccessTrustProviderId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letdeviceTrustProviderType=field_mapjson__"DeviceTrustProviderType"DeviceTrustProviderType.of_jsoninletuserTrustProviderType=field_mapjson__"UserTrustProviderType"UserTrustProviderType.of_jsoninlettrustProviderType=field_mapjson__"TrustProviderType"TrustProviderType.of_jsoninletdescription=field_mapjson__"Description"String_.of_jsoninletverifiedAccessTrustProviderId=field_mapjson__"VerifiedAccessTrustProviderId"String_.of_jsoninmake?deviceTrustProviderType?userTrustProviderType?trustProviderType?description?verifiedAccessTrustProviderId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Condensed information about a trust provider."]moduleVerifiedAccessLogCloudWatchLogsDestination=structtypenonrect={enabled:Boolean.toption[@ocaml.doc"Indicates whether logging is enabled."];deliveryStatus:VerifiedAccessLogDeliveryStatus.toption[@ocaml.doc"The delivery status for access logs."];logGroup:String_.toption[@ocaml.doc"The ID of the CloudWatch Logs log group."]}letmake?enabled=fun?deliveryStatus->fun?logGroup->fun()->{enabled;deliveryStatus;logGroup}letto_valuex=structure_to_value[("enabled",(Option.mapx.enabled~f:Boolean.to_value));("deliveryStatus",(Option.mapx.deliveryStatus~f:VerifiedAccessLogDeliveryStatus.to_value));("logGroup",(Option.mapx.logGroup~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlogGroup=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"logGroup")inletdeliveryStatus=(Option.map~f:VerifiedAccessLogDeliveryStatus.of_xml)(Xml.childxml_arg0"deliveryStatus")inletenabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"enabled")inmake?logGroup?deliveryStatus?enabled()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlogGroup=field_mapjson__"LogGroup"String_.of_jsoninletdeliveryStatus=field_mapjson__"DeliveryStatus"VerifiedAccessLogDeliveryStatus.of_jsoninletenabled=field_mapjson__"Enabled"Boolean.of_jsoninmake?logGroup?deliveryStatus?enabled()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Options for CloudWatch Logs as a logging destination."]moduleVerifiedAccessLogKinesisDataFirehoseDestination=structtypenonrect={enabled:Boolean.toption[@ocaml.doc"Indicates whether logging is enabled."];deliveryStatus:VerifiedAccessLogDeliveryStatus.toption[@ocaml.doc"The delivery status."];deliveryStream:String_.toption[@ocaml.doc"The ID of the delivery stream."]}letmake?enabled=fun?deliveryStatus->fun?deliveryStream->fun()->{enabled;deliveryStatus;deliveryStream}letto_valuex=structure_to_value[("enabled",(Option.mapx.enabled~f:Boolean.to_value));("deliveryStatus",(Option.mapx.deliveryStatus~f:VerifiedAccessLogDeliveryStatus.to_value));("deliveryStream",(Option.mapx.deliveryStream~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letdeliveryStream=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"deliveryStream")inletdeliveryStatus=(Option.map~f:VerifiedAccessLogDeliveryStatus.of_xml)(Xml.childxml_arg0"deliveryStatus")inletenabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"enabled")inmake?deliveryStream?deliveryStatus?enabled()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letdeliveryStream=field_mapjson__"DeliveryStream"String_.of_jsoninletdeliveryStatus=field_mapjson__"DeliveryStatus"VerifiedAccessLogDeliveryStatus.of_jsoninletenabled=field_mapjson__"Enabled"Boolean.of_jsoninmake?deliveryStream?deliveryStatus?enabled()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Options for Kinesis as a logging destination."]moduleVerifiedAccessLogS3Destination=structtypenonrect={enabled:Boolean.toption[@ocaml.doc"Indicates whether logging is enabled."];deliveryStatus:VerifiedAccessLogDeliveryStatus.toption[@ocaml.doc"The delivery status."];bucketName:String_.toption[@ocaml.doc"The bucket name."];prefix:String_.toption[@ocaml.doc"The bucket prefix."];bucketOwner:String_.toption[@ocaml.doc"The Amazon Web Services account number that owns the bucket."]}letmake?enabled=fun?deliveryStatus->fun?bucketName->fun?prefix->fun?bucketOwner->fun()->{enabled;deliveryStatus;bucketName;prefix;bucketOwner}letto_valuex=structure_to_value[("enabled",(Option.mapx.enabled~f:Boolean.to_value));("deliveryStatus",(Option.mapx.deliveryStatus~f:VerifiedAccessLogDeliveryStatus.to_value));("bucketName",(Option.mapx.bucketName~f:String_.to_value));("prefix",(Option.mapx.prefix~f:String_.to_value));("bucketOwner",(Option.mapx.bucketOwner~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letbucketOwner=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"bucketOwner")inletprefix=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"prefix")inletbucketName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"bucketName")inletdeliveryStatus=(Option.map~f:VerifiedAccessLogDeliveryStatus.of_xml)(Xml.childxml_arg0"deliveryStatus")inletenabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"enabled")inmake?bucketOwner?prefix?bucketName?deliveryStatus?enabled()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letbucketOwner=field_mapjson__"BucketOwner"String_.of_jsoninletprefix=field_mapjson__"Prefix"String_.of_jsoninletbucketName=field_mapjson__"BucketName"String_.of_jsoninletdeliveryStatus=field_mapjson__"DeliveryStatus"VerifiedAccessLogDeliveryStatus.of_jsoninletenabled=field_mapjson__"Enabled"Boolean.of_jsoninmake?bucketOwner?prefix?bucketName?deliveryStatus?enabled()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Options for Amazon S3 as a logging destination."]moduleVerifiedAccessEndpointPortRangeList=structtypenonrect=VerifiedAccessEndpointPortRange.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:VerifiedAccessEndpointPortRange.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:VerifiedAccessEndpointPortRange.of_xml)letof_jsonj=list_of_json~kind:"VerifiedAccessEndpointPortRangeList"~of_json:VerifiedAccessEndpointPortRange.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleVerifiedAccessEndpointProtocol=structtypenonrect=|Http|Https|Tcp|Non_static_idofstringletmakei=iletto_string=function|Http->"http"|Https->"https"|Tcp->"tcp"|Non_static_ids->sletof_string=function|"http"->Http|"https"->Https|"tcp"->Tcp|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 VerifiedAccessEndpointProtocol"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"VerifiedAccessEndpointProtocol"j)letto_json=simple_to_jsonto_valueendmoduleVerifiedAccessEndpointSubnetIdList=structtypenonrect=SubnetId.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:SubnetId.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:SubnetId.of_xml)letof_jsonj=list_of_json~kind:"VerifiedAccessEndpointSubnetIdList"~of_json:SubnetId.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleVerifiedAccessEndpointStatusCode=structtypenonrect=|Pending|Active|Updating|Deleting|Deleted|Non_static_idofstringletmakei=iletto_string=function|Pending->"pending"|Active->"active"|Updating->"updating"|Deleting->"deleting"|Deleted->"deleted"|Non_static_ids->sletof_string=function|"pending"->Pending|"active"->Active|"updating"->Updating|"deleting"->Deleting|"deleted"->Deleted|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 VerifiedAccessEndpointStatusCode"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"VerifiedAccessEndpointStatusCode"j)letto_json=simple_to_jsonto_valueendmoduleAutoAcceptSharedAttachmentsValue=structtypenonrect=|Enable|Disable|Non_static_idofstringletmakei=iletto_string=function|Enable->"enable"|Disable->"disable"|Non_static_ids->sletof_string=function|"enable"->Enable|"disable"->Disable|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 AutoAcceptSharedAttachmentsValue"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"AutoAcceptSharedAttachmentsValue"j)letto_json=simple_to_jsonto_valueendmoduleDefaultRouteTableAssociationValue=structtypenonrect=|Enable|Disable|Non_static_idofstringletmakei=iletto_string=function|Enable->"enable"|Disable->"disable"|Non_static_ids->sletof_string=function|"enable"->Enable|"disable"->Disable|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 DefaultRouteTableAssociationValue"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"DefaultRouteTableAssociationValue"j)letto_json=simple_to_jsonto_valueendmoduleDefaultRouteTablePropagationValue=structtypenonrect=|Enable|Disable|Non_static_idofstringletmakei=iletto_string=function|Enable->"enable"|Disable->"disable"|Non_static_ids->sletof_string=function|"enable"->Enable|"disable"->Disable|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 DefaultRouteTablePropagationValue"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"DefaultRouteTablePropagationValue"j)letto_json=simple_to_jsonto_valueendmoduleDnsSupportValue=structtypenonrect=|Enable|Disable|Non_static_idofstringletmakei=iletto_string=function|Enable->"enable"|Disable->"disable"|Non_static_ids->sletof_string=function|"enable"->Enable|"disable"->Disable|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 DnsSupportValue"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"DnsSupportValue"j)letto_json=simple_to_jsonto_valueendmoduleEncryptionSupport=structtypenonrect={encryptionState:EncryptionStateValue.toption[@ocaml.doc"The current encryption state of the resource."];stateMessage:String_.toption[@ocaml.doc"A message describing the encryption state."]}letmake?encryptionState=fun?stateMessage->fun()->{encryptionState;stateMessage}letto_valuex=structure_to_value[("encryptionState",(Option.mapx.encryptionState~f:EncryptionStateValue.to_value));("stateMessage",(Option.mapx.stateMessage~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstateMessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"stateMessage")inletencryptionState=(Option.map~f:EncryptionStateValue.of_xml)(Xml.childxml_arg0"encryptionState")inmake?stateMessage?encryptionState()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstateMessage=field_mapjson__"StateMessage"String_.of_jsoninletencryptionState=field_mapjson__"EncryptionState"EncryptionStateValue.of_jsoninmake?stateMessage?encryptionState()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the encryption support status for a transit gateway."]moduleMulticastSupportValue=structtypenonrect=|Enable|Disable|Non_static_idofstringletmakei=iletto_string=function|Enable->"enable"|Disable->"disable"|Non_static_ids->sletof_string=function|"enable"->Enable|"disable"->Disable|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 MulticastSupportValue"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"MulticastSupportValue"j)letto_json=simple_to_jsonto_valueendmoduleSecurityGroupReferencingSupportValue=structtypenonrect=|Enable|Disable|Non_static_idofstringletmakei=iletto_string=function|Enable->"enable"|Disable->"disable"|Non_static_ids->sletof_string=function|"enable"->Enable|"disable"->Disable|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 SecurityGroupReferencingSupportValue"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"SecurityGroupReferencingSupportValue"j)letto_json=simple_to_jsonto_valueendmoduleVpnEcmpSupportValue=structtypenonrect=|Enable|Disable|Non_static_idofstringletmakei=iletto_string=function|Enable->"enable"|Disable->"disable"|Non_static_ids->sletof_string=function|"enable"->Enable|"disable"->Disable|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 VpnEcmpSupportValue"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"VpnEcmpSupportValue"j)letto_json=simple_to_jsonto_valueendmoduleApplianceModeSupportValue=structtypenonrect=|Enable|Disable|Non_static_idofstringletmakei=iletto_string=function|Enable->"enable"|Disable->"disable"|Non_static_ids->sletof_string=function|"enable"->Enable|"disable"->Disable|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 ApplianceModeSupportValue"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ApplianceModeSupportValue"j)letto_json=simple_to_jsonto_valueendmoduleIpv6SupportValue=structtypenonrect=|Enable|Disable|Non_static_idofstringletmakei=iletto_string=function|Enable->"enable"|Disable->"disable"|Non_static_ids->sletof_string=function|"enable"->Enable|"disable"->Disable|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 Ipv6SupportValue"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"Ipv6SupportValue"j)letto_json=simple_to_jsonto_valueendmoduleDynamicRoutingValue=structtypenonrect=|Enable|Disable|Non_static_idofstringletmakei=iletto_string=function|Enable->"enable"|Disable->"disable"|Non_static_ids->sletof_string=function|"enable"->Enable|"disable"->Disable|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 DynamicRoutingValue"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"DynamicRoutingValue"j)letto_json=simple_to_jsonto_valueendmoduleAutoAcceptSharedAssociationsValue=structtypenonrect=|Enable|Disable|Non_static_idofstringletmakei=iletto_string=function|Enable->"enable"|Disable->"disable"|Non_static_ids->sletof_string=function|"enable"->Enable|"disable"->Disable|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 AutoAcceptSharedAssociationsValue"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"AutoAcceptSharedAssociationsValue"j)letto_json=simple_to_jsonto_valueendmoduleIgmpv2SupportValue=structtypenonrect=|Enable|Disable|Non_static_idofstringletmakei=iletto_string=function|Enable->"enable"|Disable->"disable"|Non_static_ids->sletof_string=function|"enable"->Enable|"disable"->Disable|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 Igmpv2SupportValue"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"Igmpv2SupportValue"j)letto_json=simple_to_jsonto_valueendmoduleStaticSourcesSupportValue=structtypenonrect=|Enable|Disable|Non_static_idofstringletmakei=iletto_string=function|Enable->"enable"|Disable->"disable"|Non_static_ids->sletof_string=function|"enable"->Enable|"disable"->Disable|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 StaticSourcesSupportValue"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"StaticSourcesSupportValue"j)letto_json=simple_to_jsonto_valueendmoduleProtocolValue=structtypenonrect=|Gre|Non_static_idofstringletmakei=iletto_string=function|Gre->"gre"|Non_static_ids->sletof_string=function|"gre"->Gre|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 ProtocolValue"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ProtocolValue"j)letto_json=simple_to_jsonto_valueendmoduleInsideCidrBlocksStringList=structtypenonrect=String_.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:String_.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:String_.of_xml)letof_jsonj=list_of_json~kind:"InsideCidrBlocksStringList"~of_json:String_.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleTransitGatewayAttachmentBgpConfigurationList=structtypenonrect=TransitGatewayAttachmentBgpConfiguration.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:TransitGatewayAttachmentBgpConfiguration.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:TransitGatewayAttachmentBgpConfiguration.of_xml)letof_jsonj=list_of_json~kind:"TransitGatewayAttachmentBgpConfigurationList"~of_json:TransitGatewayAttachmentBgpConfiguration.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleTransitGatewayAssociationState=structtypenonrect=|Associating|Associated|Disassociating|Disassociated|Non_static_idofstringletmakei=iletto_string=function|Associating->"associating"|Associated->"associated"|Disassociating->"disassociating"|Disassociated->"disassociated"|Non_static_ids->sletof_string=function|"associating"->Associating|"associated"->Associated|"disassociating"->Disassociating|"disassociated"->Disassociated|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 TransitGatewayAssociationState"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"TransitGatewayAssociationState"j)letto_json=simple_to_jsonto_valueendmoduleTrafficMirrorFilterRule=structtypenonrect={trafficMirrorFilterRuleId:String_.toption[@ocaml.doc"The ID of the Traffic Mirror rule."];trafficMirrorFilterId:String_.toption[@ocaml.doc"The ID of the Traffic Mirror filter that the rule is associated with."];trafficDirection:TrafficDirection.toption[@ocaml.doc"The traffic direction assigned to the Traffic Mirror rule."];ruleNumber:Integer.toption[@ocaml.doc"The rule number of the Traffic Mirror rule."];ruleAction:TrafficMirrorRuleAction.toption[@ocaml.doc"The action assigned to the Traffic Mirror rule."];protocol:Integer.toption[@ocaml.doc"The protocol assigned to the Traffic Mirror rule."];destinationPortRange:TrafficMirrorPortRange.toption[@ocaml.doc"The destination port range assigned to the Traffic Mirror rule."];sourcePortRange:TrafficMirrorPortRange.toption[@ocaml.doc"The source port range assigned to the Traffic Mirror rule."];destinationCidrBlock:String_.toption[@ocaml.doc"The destination CIDR block assigned to the Traffic Mirror rule."];sourceCidrBlock:String_.toption[@ocaml.doc"The source CIDR block assigned to the Traffic Mirror rule."];description:String_.toption[@ocaml.doc"The description of the Traffic Mirror rule."];tags:TagList.toption[@ocaml.doc"Tags on Traffic Mirroring filter rules."]}letmake?trafficMirrorFilterRuleId=fun?trafficMirrorFilterId->fun?trafficDirection->fun?ruleNumber->fun?ruleAction->fun?protocol->fun?destinationPortRange->fun?sourcePortRange->fun?destinationCidrBlock->fun?sourceCidrBlock->fun?description->fun?tags->fun()->{trafficMirrorFilterRuleId;trafficMirrorFilterId;trafficDirection;ruleNumber;ruleAction;protocol;destinationPortRange;sourcePortRange;destinationCidrBlock;sourceCidrBlock;description;tags}letto_valuex=structure_to_value[("trafficMirrorFilterRuleId",(Option.mapx.trafficMirrorFilterRuleId~f:String_.to_value));("trafficMirrorFilterId",(Option.mapx.trafficMirrorFilterId~f:String_.to_value));("trafficDirection",(Option.mapx.trafficDirection~f:TrafficDirection.to_value));("ruleNumber",(Option.mapx.ruleNumber~f:Integer.to_value));("ruleAction",(Option.mapx.ruleAction~f:TrafficMirrorRuleAction.to_value));("protocol",(Option.mapx.protocol~f:Integer.to_value));("destinationPortRange",(Option.mapx.destinationPortRange~f:TrafficMirrorPortRange.to_value));("sourcePortRange",(Option.mapx.sourcePortRange~f:TrafficMirrorPortRange.to_value));("destinationCidrBlock",(Option.mapx.destinationCidrBlock~f:String_.to_value));("sourceCidrBlock",(Option.mapx.sourceCidrBlock~f:String_.to_value));("description",(Option.mapx.description~f:String_.to_value));("tagSet",(Option.mapx.tags~f:TagList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:TagList.of_xml)(Xml.childxml_arg0"tagSet")inletdescription=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"description")inletsourceCidrBlock=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"sourceCidrBlock")inletdestinationCidrBlock=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"destinationCidrBlock")inletsourcePortRange=(Option.map~f:TrafficMirrorPortRange.of_xml)(Xml.childxml_arg0"sourcePortRange")inletdestinationPortRange=(Option.map~f:TrafficMirrorPortRange.of_xml)(Xml.childxml_arg0"destinationPortRange")inletprotocol=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"protocol")inletruleAction=(Option.map~f:TrafficMirrorRuleAction.of_xml)(Xml.childxml_arg0"ruleAction")inletruleNumber=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"ruleNumber")inlettrafficDirection=(Option.map~f:TrafficDirection.of_xml)(Xml.childxml_arg0"trafficDirection")inlettrafficMirrorFilterId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"trafficMirrorFilterId")inlettrafficMirrorFilterRuleId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"trafficMirrorFilterRuleId")inmake?tags?description?sourceCidrBlock?destinationCidrBlock?sourcePortRange?destinationPortRange?protocol?ruleAction?ruleNumber?trafficDirection?trafficMirrorFilterId?trafficMirrorFilterRuleId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"Tags"TagList.of_jsoninletdescription=field_mapjson__"Description"String_.of_jsoninletsourceCidrBlock=field_mapjson__"SourceCidrBlock"String_.of_jsoninletdestinationCidrBlock=field_mapjson__"DestinationCidrBlock"String_.of_jsoninletsourcePortRange=field_mapjson__"SourcePortRange"TrafficMirrorPortRange.of_jsoninletdestinationPortRange=field_mapjson__"DestinationPortRange"TrafficMirrorPortRange.of_jsoninletprotocol=field_mapjson__"Protocol"Integer.of_jsoninletruleAction=field_mapjson__"RuleAction"TrafficMirrorRuleAction.of_jsoninletruleNumber=field_mapjson__"RuleNumber"Integer.of_jsoninlettrafficDirection=field_mapjson__"TrafficDirection"TrafficDirection.of_jsoninlettrafficMirrorFilterId=field_mapjson__"TrafficMirrorFilterId"String_.of_jsoninlettrafficMirrorFilterRuleId=field_mapjson__"TrafficMirrorFilterRuleId"String_.of_jsoninmake?tags?description?sourceCidrBlock?destinationCidrBlock?sourcePortRange?destinationPortRange?protocol?ruleAction?ruleNumber?trafficDirection?trafficMirrorFilterId?trafficMirrorFilterRuleId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the Traffic Mirror rule."]moduleTrafficMirrorNetworkService=structtypenonrect=|Amazon_dns|Non_static_idofstringletmakei=iletto_string=function|Amazon_dns->"amazon-dns"|Non_static_ids->sletof_string=function|"amazon-dns"->Amazon_dns|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 TrafficMirrorNetworkService"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"TrafficMirrorNetworkService"j)letto_json=simple_to_jsonto_valueendmoduleSubnetIpv6CidrBlockAssociation=structtypenonrect={associationId:SubnetCidrAssociationId.toption[@ocaml.doc"The ID of the association."];ipv6CidrBlock:String_.toption[@ocaml.doc"The IPv6 CIDR block."];ipv6CidrBlockState:SubnetCidrBlockState.toption[@ocaml.doc"The state of the CIDR block."];ipv6AddressAttribute:Ipv6AddressAttribute.toption[@ocaml.doc"Public IPv6 addresses are those advertised on the internet from Amazon Web Services. Private IP addresses are not and cannot be advertised on the internet from Amazon Web Services."];ipSource:IpSource.toption[@ocaml.doc"The source that allocated the IP address space. byoip or amazon indicates public IP address space allocated by Amazon or space that you have allocated with Bring your own IP (BYOIP). none indicates private space."]}letmake?associationId=fun?ipv6CidrBlock->fun?ipv6CidrBlockState->fun?ipv6AddressAttribute->fun?ipSource->fun()->{associationId;ipv6CidrBlock;ipv6CidrBlockState;ipv6AddressAttribute;ipSource}letto_valuex=structure_to_value[("associationId",(Option.mapx.associationId~f:SubnetCidrAssociationId.to_value));("ipv6CidrBlock",(Option.mapx.ipv6CidrBlock~f:String_.to_value));("ipv6CidrBlockState",(Option.mapx.ipv6CidrBlockState~f:SubnetCidrBlockState.to_value));("ipv6AddressAttribute",(Option.mapx.ipv6AddressAttribute~f:Ipv6AddressAttribute.to_value));("ipSource",(Option.mapx.ipSource~f:IpSource.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letipSource=(Option.map~f:IpSource.of_xml)(Xml.childxml_arg0"ipSource")inletipv6AddressAttribute=(Option.map~f:Ipv6AddressAttribute.of_xml)(Xml.childxml_arg0"ipv6AddressAttribute")inletipv6CidrBlockState=(Option.map~f:SubnetCidrBlockState.of_xml)(Xml.childxml_arg0"ipv6CidrBlockState")inletipv6CidrBlock=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ipv6CidrBlock")inletassociationId=(Option.map~f:SubnetCidrAssociationId.of_xml)(Xml.childxml_arg0"associationId")inmake?ipSource?ipv6AddressAttribute?ipv6CidrBlockState?ipv6CidrBlock?associationId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letipSource=field_mapjson__"IpSource"IpSource.of_jsoninletipv6AddressAttribute=field_mapjson__"Ipv6AddressAttribute"Ipv6AddressAttribute.of_jsoninletipv6CidrBlockState=field_mapjson__"Ipv6CidrBlockState"SubnetCidrBlockState.of_jsoninletipv6CidrBlock=field_mapjson__"Ipv6CidrBlock"String_.of_jsoninletassociationId=field_mapjson__"AssociationId"SubnetCidrAssociationId.of_jsoninmake?ipSource?ipv6AddressAttribute?ipv6CidrBlockState?ipv6CidrBlock?associationId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an association between a subnet and an IPv6 CIDR block."]moduleStaleIpPermission=structtypenonrect={fromPort:Integer.toption[@ocaml.doc"If the protocol is TCP or UDP, this is the start of the port range. If the protocol is ICMP or ICMPv6, this is the ICMP type or -1 (all ICMP types)."];ipProtocol:String_.toption[@ocaml.doc"The IP protocol name (tcp, udp, icmp, icmpv6) or number (see Protocol Numbers)."];ipRanges:IpRanges.toption[@ocaml.doc"The IP ranges. Not applicable for stale security group rules."];prefixListIds:PrefixListIdSet.toption[@ocaml.doc"The prefix list IDs. Not applicable for stale security group rules."];toPort:Integer.toption[@ocaml.doc"If the protocol is TCP or UDP, this is the end of the port range. If the protocol is ICMP or ICMPv6, this is the ICMP code or -1 (all ICMP codes)."];userIdGroupPairs:UserIdGroupPairSet.toption[@ocaml.doc"The security group pairs. Returns the ID of the referenced security group and VPC, and the ID and status of the VPC peering connection."]}letmake?fromPort=fun?ipProtocol->fun?ipRanges->fun?prefixListIds->fun?toPort->fun?userIdGroupPairs->fun()->{fromPort;ipProtocol;ipRanges;prefixListIds;toPort;userIdGroupPairs}letto_valuex=structure_to_value[("fromPort",(Option.mapx.fromPort~f:Integer.to_value));("ipProtocol",(Option.mapx.ipProtocol~f:String_.to_value));("ipRanges",(Option.mapx.ipRanges~f:IpRanges.to_value));("prefixListIds",(Option.mapx.prefixListIds~f:PrefixListIdSet.to_value));("toPort",(Option.mapx.toPort~f:Integer.to_value));("groups",(Option.mapx.userIdGroupPairs~f:UserIdGroupPairSet.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letuserIdGroupPairs=(Option.map~f:UserIdGroupPairSet.of_xml)(Xml.childxml_arg0"groups")inlettoPort=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"toPort")inletprefixListIds=(Option.map~f:PrefixListIdSet.of_xml)(Xml.childxml_arg0"prefixListIds")inletipRanges=(Option.map~f:IpRanges.of_xml)(Xml.childxml_arg0"ipRanges")inletipProtocol=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ipProtocol")inletfromPort=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"fromPort")inmake?userIdGroupPairs?toPort?prefixListIds?ipRanges?ipProtocol?fromPort()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letuserIdGroupPairs=field_mapjson__"UserIdGroupPairs"UserIdGroupPairSet.of_jsoninlettoPort=field_mapjson__"ToPort"Integer.of_jsoninletprefixListIds=field_mapjson__"PrefixListIds"PrefixListIdSet.of_jsoninletipRanges=field_mapjson__"IpRanges"IpRanges.of_jsoninletipProtocol=field_mapjson__"IpProtocol"String_.of_jsoninletfromPort=field_mapjson__"FromPort"Integer.of_jsoninmake?userIdGroupPairs?toPort?prefixListIds?ipRanges?ipProtocol?fromPort()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a stale rule in a security group."]moduleAllocationStrategy=structtypenonrect=|LowestPrice|Diversified|CapacityOptimized|CapacityOptimizedPrioritized|PriceCapacityOptimized|Non_static_idofstringletmakei=iletto_string=function|LowestPrice->"lowestPrice"|Diversified->"diversified"|CapacityOptimized->"capacityOptimized"|CapacityOptimizedPrioritized->"capacityOptimizedPrioritized"|PriceCapacityOptimized->"priceCapacityOptimized"|Non_static_ids->sletof_string=function|"lowestPrice"->LowestPrice|"diversified"->Diversified|"capacityOptimized"->CapacityOptimized|"capacityOptimizedPrioritized"->CapacityOptimizedPrioritized|"priceCapacityOptimized"->PriceCapacityOptimized|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 AllocationStrategy"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"AllocationStrategy"j)letto_json=simple_to_jsonto_valueendmoduleExcessCapacityTerminationPolicy=structtypenonrect=|NoTermination|Default|Non_static_idofstringletmakei=iletto_string=function|NoTermination->"noTermination"|Default->"default"|Non_static_ids->sletof_string=function|"noTermination"->NoTermination|"default"->Default|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 ExcessCapacityTerminationPolicy"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ExcessCapacityTerminationPolicy"j)letto_json=simple_to_jsonto_valueendmoduleFleetType=structtypenonrect=|Request|Maintain|Instant|Non_static_idofstringletmakei=iletto_string=function|Request->"request"|Maintain->"maintain"|Instant->"instant"|Non_static_ids->sletof_string=function|"request"->Request|"maintain"->Maintain|"instant"->Instant|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 FleetType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"FleetType"j)letto_json=simple_to_jsonto_valueendmoduleLaunchSpecsList=structtypenonrect=SpotFleetLaunchSpecification.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:SpotFleetLaunchSpecification.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:SpotFleetLaunchSpecification.of_xml)letof_jsonj=list_of_json~kind:"LaunchSpecsList"~of_json:SpotFleetLaunchSpecification.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleLaunchTemplateConfigList=structtypenonrect=LaunchTemplateConfig.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:LaunchTemplateConfig.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:LaunchTemplateConfig.of_xml)letof_jsonj=list_of_json~kind:"LaunchTemplateConfigList"~of_json:LaunchTemplateConfig.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleLoadBalancersConfig=structtypenonrect={classicLoadBalancersConfig:ClassicLoadBalancersConfig.toption[@ocaml.doc"The Classic Load Balancers."];targetGroupsConfig:TargetGroupsConfig.toption[@ocaml.doc"The target groups."]}letmake?classicLoadBalancersConfig=fun?targetGroupsConfig->fun()->{classicLoadBalancersConfig;targetGroupsConfig}letto_valuex=structure_to_value[("classicLoadBalancersConfig",(Option.mapx.classicLoadBalancersConfig~f:ClassicLoadBalancersConfig.to_value));("targetGroupsConfig",(Option.mapx.targetGroupsConfig~f:TargetGroupsConfig.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettargetGroupsConfig=(Option.map~f:TargetGroupsConfig.of_xml)(Xml.childxml_arg0"targetGroupsConfig")inletclassicLoadBalancersConfig=(Option.map~f:ClassicLoadBalancersConfig.of_xml)(Xml.childxml_arg0"classicLoadBalancersConfig")inmake?targetGroupsConfig?classicLoadBalancersConfig()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettargetGroupsConfig=field_mapjson__"TargetGroupsConfig"TargetGroupsConfig.of_jsoninletclassicLoadBalancersConfig=field_mapjson__"ClassicLoadBalancersConfig"ClassicLoadBalancersConfig.of_jsoninmake?targetGroupsConfig?classicLoadBalancersConfig()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the Classic Load Balancers and target groups to attach to a Spot Fleet request."]moduleOnDemandAllocationStrategy=structtypenonrect=|LowestPrice|Prioritized|Non_static_idofstringletmakei=iletto_string=function|LowestPrice->"lowestPrice"|Prioritized->"prioritized"|Non_static_ids->sletof_string=function|"lowestPrice"->LowestPrice|"prioritized"->Prioritized|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 OnDemandAllocationStrategy"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"OnDemandAllocationStrategy"j)letto_json=simple_to_jsonto_valueendmoduleSpotMaintenanceStrategies=structtypenonrect={capacityRebalance:SpotCapacityRebalance.toption[@ocaml.doc"The Spot Instance replacement strategy to use when Amazon EC2 emits a signal that your Spot Instance is at an elevated risk of being interrupted. For more information, see Capacity rebalancing in the Amazon EC2 User Guide."]}letmake?capacityRebalance=fun()->{capacityRebalance}letto_valuex=structure_to_value[("capacityRebalance",(Option.mapx.capacityRebalance~f:SpotCapacityRebalance.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcapacityRebalance=(Option.map~f:SpotCapacityRebalance.of_xml)(Xml.childxml_arg0"capacityRebalance")inmake?capacityRebalance()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcapacityRebalance=field_mapjson__"CapacityRebalance"SpotCapacityRebalance.of_jsoninmake?capacityRebalance()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The strategies for managing your Spot Instances that are at an elevated risk of being interrupted."]moduleTagSpecificationList=structtypenonrect=TagSpecification.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:TagSpecification.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:TagSpecification.of_xml)letof_jsonj=list_of_json~kind:"TagSpecificationList"~of_json:TagSpecification.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleTargetCapacityUnitType=structtypenonrect=|Vcpu|Memory_mib|Units|Non_static_idofstringletmakei=iletto_string=function|Vcpu->"vcpu"|Memory_mib->"memory-mib"|Units->"units"|Non_static_ids->sletof_string=function|"vcpu"->Vcpu|"memory-mib"->Memory_mib|"units"->Units|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 TargetCapacityUnitType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"TargetCapacityUnitType"j)letto_json=simple_to_jsonto_valueendmoduleIpPermission=structtypenonrect={ipProtocol:String_.toption[@ocaml.doc"The IP protocol name (tcp, udp, icmp, icmpv6) or number (see Protocol Numbers). Use -1 to specify all protocols. When authorizing security group rules, specifying -1 or a protocol number other than tcp, udp, icmp, or icmpv6 allows traffic on all ports, regardless of any port range you specify. For tcp, udp, and icmp, you must specify a port range. For icmpv6, the port range is optional; if you omit the port range, traffic for all types and codes is allowed."];fromPort:Integer.toption[@ocaml.doc"If the protocol is TCP or UDP, this is the start of the port range. If the protocol is ICMP or ICMPv6, this is the ICMP type or -1 (all ICMP types)."];toPort:Integer.toption[@ocaml.doc"If the protocol is TCP or UDP, this is the end of the port range. If the protocol is ICMP or ICMPv6, this is the ICMP code or -1 (all ICMP codes). If the start port is -1 (all ICMP types), then the end port must be -1 (all ICMP codes)."];userIdGroupPairs:UserIdGroupPairList.toption[@ocaml.doc"The security group and Amazon Web Services account ID pairs."];ipRanges:IpRangeList.toption[@ocaml.doc"The IPv4 address ranges."];ipv6Ranges:Ipv6RangeList.toption[@ocaml.doc"The IPv6 address ranges."];prefixListIds:PrefixListIdList.toption[@ocaml.doc"The prefix list IDs."]}letmake?ipProtocol=fun?fromPort->fun?toPort->fun?userIdGroupPairs->fun?ipRanges->fun?ipv6Ranges->fun?prefixListIds->fun()->{ipProtocol;fromPort;toPort;userIdGroupPairs;ipRanges;ipv6Ranges;prefixListIds}letto_valuex=structure_to_value[("ipProtocol",(Option.mapx.ipProtocol~f:String_.to_value));("fromPort",(Option.mapx.fromPort~f:Integer.to_value));("toPort",(Option.mapx.toPort~f:Integer.to_value));("groups",(Option.mapx.userIdGroupPairs~f:UserIdGroupPairList.to_value));("ipRanges",(Option.mapx.ipRanges~f:IpRangeList.to_value));("ipv6Ranges",(Option.mapx.ipv6Ranges~f:Ipv6RangeList.to_value));("prefixListIds",(Option.mapx.prefixListIds~f:PrefixListIdList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letprefixListIds=(Option.map~f:PrefixListIdList.of_xml)(Xml.childxml_arg0"prefixListIds")inletipv6Ranges=(Option.map~f:Ipv6RangeList.of_xml)(Xml.childxml_arg0"ipv6Ranges")inletipRanges=(Option.map~f:IpRangeList.of_xml)(Xml.childxml_arg0"ipRanges")inletuserIdGroupPairs=(Option.map~f:UserIdGroupPairList.of_xml)(Xml.childxml_arg0"groups")inlettoPort=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"toPort")inletfromPort=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"fromPort")inletipProtocol=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ipProtocol")inmake?prefixListIds?ipv6Ranges?ipRanges?userIdGroupPairs?toPort?fromPort?ipProtocol()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letprefixListIds=field_mapjson__"PrefixListIds"PrefixListIdList.of_jsoninletipv6Ranges=field_mapjson__"Ipv6Ranges"Ipv6RangeList.of_jsoninletipRanges=field_mapjson__"IpRanges"IpRangeList.of_jsoninletuserIdGroupPairs=field_mapjson__"UserIdGroupPairs"UserIdGroupPairList.of_jsoninlettoPort=field_mapjson__"ToPort"Integer.of_jsoninletfromPort=field_mapjson__"FromPort"Integer.of_jsoninletipProtocol=field_mapjson__"IpProtocol"String_.of_jsoninmake?prefixListIds?ipv6Ranges?ipRanges?userIdGroupPairs?toPort?fromPort?ipProtocol()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the permissions for a security group rule."]moduleSecondarySubnetIpv4CidrBlockAssociation=structtypenonrect={associationId:SecondarySubnetCidrAssociationId.toption[@ocaml.doc"The association ID for the IPv4 CIDR block."];cidrBlock:String_.toption[@ocaml.doc"The IPv4 CIDR block."];state:SecondarySubnetCidrBlockAssociationState.toption[@ocaml.doc"The state of the CIDR block association."];stateReason:String_.toption[@ocaml.doc"The reason for the current state of the CIDR block association."]}letmake?associationId=fun?cidrBlock->fun?state->fun?stateReason->fun()->{associationId;cidrBlock;state;stateReason}letto_valuex=structure_to_value[("associationId",(Option.mapx.associationId~f:SecondarySubnetCidrAssociationId.to_value));("cidrBlock",(Option.mapx.cidrBlock~f:String_.to_value));("state",(Option.mapx.state~f:SecondarySubnetCidrBlockAssociationState.to_value));("stateReason",(Option.mapx.stateReason~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstateReason=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"stateReason")inletstate=(Option.map~f:SecondarySubnetCidrBlockAssociationState.of_xml)(Xml.childxml_arg0"state")inletcidrBlock=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"cidrBlock")inletassociationId=(Option.map~f:SecondarySubnetCidrAssociationId.of_xml)(Xml.childxml_arg0"associationId")inmake?stateReason?state?cidrBlock?associationId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstateReason=field_mapjson__"StateReason"String_.of_jsoninletstate=field_mapjson__"State"SecondarySubnetCidrBlockAssociationState.of_jsoninletcidrBlock=field_mapjson__"CidrBlock"String_.of_jsoninletassociationId=field_mapjson__"AssociationId"SecondarySubnetCidrAssociationId.of_jsoninmake?stateReason?state?cidrBlock?associationId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an IPv4 CIDR block associated with a secondary subnet."]moduleSecondaryNetworkIpv4CidrBlockAssociation=structtypenonrect={associationId:SecondaryNetworkCidrAssociationId.toption[@ocaml.doc"The association ID for the IPv4 CIDR block."];cidrBlock:String_.toption[@ocaml.doc"The IPv4 CIDR block."];state:SecondaryNetworkCidrBlockAssociationState.toption[@ocaml.doc"The state of the CIDR block association."];stateReason:String_.toption[@ocaml.doc"The reason for the current state of the CIDR block association."]}letmake?associationId=fun?cidrBlock->fun?state->fun?stateReason->fun()->{associationId;cidrBlock;state;stateReason}letto_valuex=structure_to_value[("associationId",(Option.mapx.associationId~f:SecondaryNetworkCidrAssociationId.to_value));("cidrBlock",(Option.mapx.cidrBlock~f:String_.to_value));("state",(Option.mapx.state~f:SecondaryNetworkCidrBlockAssociationState.to_value));("stateReason",(Option.mapx.stateReason~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstateReason=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"stateReason")inletstate=(Option.map~f:SecondaryNetworkCidrBlockAssociationState.of_xml)(Xml.childxml_arg0"state")inletcidrBlock=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"cidrBlock")inletassociationId=(Option.map~f:SecondaryNetworkCidrAssociationId.of_xml)(Xml.childxml_arg0"associationId")inmake?stateReason?state?cidrBlock?associationId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstateReason=field_mapjson__"StateReason"String_.of_jsoninletstate=field_mapjson__"State"SecondaryNetworkCidrBlockAssociationState.of_jsoninletcidrBlock=field_mapjson__"CidrBlock"String_.of_jsoninletassociationId=field_mapjson__"AssociationId"SecondaryNetworkCidrAssociationId.of_jsoninmake?stateReason?state?cidrBlock?associationId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an IPv4 CIDR block associated with a secondary network."]moduleSecondaryInterfaceIpv4Address=structtypenonrect={privateIpAddress:String_.toption[@ocaml.doc"The private IPv4 address."]}letmake?privateIpAddress=fun()->{privateIpAddress}letto_valuex=structure_to_value[("privateIpAddress",(Option.mapx.privateIpAddress~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letprivateIpAddress=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"privateIpAddress")inmake?privateIpAddress()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letprivateIpAddress=field_mapjson__"PrivateIpAddress"String_.of_jsoninmake?privateIpAddress()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a private IPv4 address for a secondary interface."]modulePropagatingVgw=structtypenonrect={gatewayId:String_.toption[@ocaml.doc"The ID of the virtual private gateway."]}letmake?gatewayId=fun()->{gatewayId}letto_valuex=structure_to_value[("gatewayId",(Option.mapx.gatewayId~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"gatewayId")inmake?gatewayId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayId=field_mapjson__"GatewayId"String_.of_jsoninmake?gatewayId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a virtual private gateway propagating route."]moduleRoute=structtypenonrect={destinationCidrBlock:String_.toption[@ocaml.doc"The IPv4 CIDR block used for the destination match."];destinationIpv6CidrBlock:String_.toption[@ocaml.doc"The IPv6 CIDR block used for the destination match."];destinationPrefixListId:String_.toption[@ocaml.doc"The prefix of the Amazon Web Services service."];egressOnlyInternetGatewayId:String_.toption[@ocaml.doc"The ID of the egress-only internet gateway."];gatewayId:String_.toption[@ocaml.doc"The ID of a gateway attached to your VPC."];instanceId:String_.toption[@ocaml.doc"The ID of a NAT instance in your VPC."];instanceOwnerId:String_.toption[@ocaml.doc"The ID of Amazon Web Services account that owns the instance."];natGatewayId:String_.toption[@ocaml.doc"The ID of a NAT gateway."];transitGatewayId:String_.toption[@ocaml.doc"The ID of a transit gateway."];localGatewayId:String_.toption[@ocaml.doc"The ID of the local gateway."];carrierGatewayId:CarrierGatewayId.toption[@ocaml.doc"The ID of the carrier gateway."];networkInterfaceId:String_.toption[@ocaml.doc"The ID of the network interface."];origin:RouteOrigin.toption[@ocaml.doc"Describes how the route was created. CreateRouteTable - The route was automatically created when the route table was created. CreateRoute - The route was manually added to the route table. EnableVgwRoutePropagation - The route was propagated by route propagation. Advertisement - The route was created dynamically by Amazon VPC Route Server."];state:RouteState.toption[@ocaml.doc"The state of the route. The blackhole state indicates that the route's target isn't available (for example, the specified gateway isn't attached to the VPC, or the specified NAT instance has been terminated)."];vpcPeeringConnectionId:String_.toption[@ocaml.doc"The ID of a VPC peering connection."];coreNetworkArn:CoreNetworkArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the core network."];odbNetworkArn:OdbNetworkArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the ODB network."];ipAddress:String_.toption[@ocaml.doc"The next hop IP address for routes propagated by VPC Route Server into VPC route tables."]}letmake?destinationCidrBlock=fun?destinationIpv6CidrBlock->fun?destinationPrefixListId->fun?egressOnlyInternetGatewayId->fun?gatewayId->fun?instanceId->fun?instanceOwnerId->fun?natGatewayId->fun?transitGatewayId->fun?localGatewayId->fun?carrierGatewayId->fun?networkInterfaceId->fun?origin->fun?state->fun?vpcPeeringConnectionId->fun?coreNetworkArn->fun?odbNetworkArn->fun?ipAddress->fun()->{destinationCidrBlock;destinationIpv6CidrBlock;destinationPrefixListId;egressOnlyInternetGatewayId;gatewayId;instanceId;instanceOwnerId;natGatewayId;transitGatewayId;localGatewayId;carrierGatewayId;networkInterfaceId;origin;state;vpcPeeringConnectionId;coreNetworkArn;odbNetworkArn;ipAddress}letto_valuex=structure_to_value[("destinationCidrBlock",(Option.mapx.destinationCidrBlock~f:String_.to_value));("destinationIpv6CidrBlock",(Option.mapx.destinationIpv6CidrBlock~f:String_.to_value));("destinationPrefixListId",(Option.mapx.destinationPrefixListId~f:String_.to_value));("egressOnlyInternetGatewayId",(Option.mapx.egressOnlyInternetGatewayId~f:String_.to_value));("gatewayId",(Option.mapx.gatewayId~f:String_.to_value));("instanceId",(Option.mapx.instanceId~f:String_.to_value));("instanceOwnerId",(Option.mapx.instanceOwnerId~f:String_.to_value));("natGatewayId",(Option.mapx.natGatewayId~f:String_.to_value));("transitGatewayId",(Option.mapx.transitGatewayId~f:String_.to_value));("localGatewayId",(Option.mapx.localGatewayId~f:String_.to_value));("carrierGatewayId",(Option.mapx.carrierGatewayId~f:CarrierGatewayId.to_value));("networkInterfaceId",(Option.mapx.networkInterfaceId~f:String_.to_value));("origin",(Option.mapx.origin~f:RouteOrigin.to_value));("state",(Option.mapx.state~f:RouteState.to_value));("vpcPeeringConnectionId",(Option.mapx.vpcPeeringConnectionId~f:String_.to_value));("coreNetworkArn",(Option.mapx.coreNetworkArn~f:CoreNetworkArn.to_value));("odbNetworkArn",(Option.mapx.odbNetworkArn~f:OdbNetworkArn.to_value));("ipAddress",(Option.mapx.ipAddress~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letipAddress=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ipAddress")inletodbNetworkArn=(Option.map~f:OdbNetworkArn.of_xml)(Xml.childxml_arg0"odbNetworkArn")inletcoreNetworkArn=(Option.map~f:CoreNetworkArn.of_xml)(Xml.childxml_arg0"coreNetworkArn")inletvpcPeeringConnectionId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"vpcPeeringConnectionId")inletstate=(Option.map~f:RouteState.of_xml)(Xml.childxml_arg0"state")inletorigin=(Option.map~f:RouteOrigin.of_xml)(Xml.childxml_arg0"origin")inletnetworkInterfaceId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"networkInterfaceId")inletcarrierGatewayId=(Option.map~f:CarrierGatewayId.of_xml)(Xml.childxml_arg0"carrierGatewayId")inletlocalGatewayId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"localGatewayId")inlettransitGatewayId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"transitGatewayId")inletnatGatewayId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"natGatewayId")inletinstanceOwnerId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"instanceOwnerId")inletinstanceId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"instanceId")inletgatewayId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"gatewayId")inletegressOnlyInternetGatewayId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"egressOnlyInternetGatewayId")inletdestinationPrefixListId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"destinationPrefixListId")inletdestinationIpv6CidrBlock=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"destinationIpv6CidrBlock")inletdestinationCidrBlock=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"destinationCidrBlock")inmake?ipAddress?odbNetworkArn?coreNetworkArn?vpcPeeringConnectionId?state?origin?networkInterfaceId?carrierGatewayId?localGatewayId?transitGatewayId?natGatewayId?instanceOwnerId?instanceId?gatewayId?egressOnlyInternetGatewayId?destinationPrefixListId?destinationIpv6CidrBlock?destinationCidrBlock()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letipAddress=field_mapjson__"IpAddress"String_.of_jsoninletodbNetworkArn=field_mapjson__"OdbNetworkArn"OdbNetworkArn.of_jsoninletcoreNetworkArn=field_mapjson__"CoreNetworkArn"CoreNetworkArn.of_jsoninletvpcPeeringConnectionId=field_mapjson__"VpcPeeringConnectionId"String_.of_jsoninletstate=field_mapjson__"State"RouteState.of_jsoninletorigin=field_mapjson__"Origin"RouteOrigin.of_jsoninletnetworkInterfaceId=field_mapjson__"NetworkInterfaceId"String_.of_jsoninletcarrierGatewayId=field_mapjson__"CarrierGatewayId"CarrierGatewayId.of_jsoninletlocalGatewayId=field_mapjson__"LocalGatewayId"String_.of_jsoninlettransitGatewayId=field_mapjson__"TransitGatewayId"String_.of_jsoninletnatGatewayId=field_mapjson__"NatGatewayId"String_.of_jsoninletinstanceOwnerId=field_mapjson__"InstanceOwnerId"String_.of_jsoninletinstanceId=field_mapjson__"InstanceId"String_.of_jsoninletgatewayId=field_mapjson__"GatewayId"String_.of_jsoninletegressOnlyInternetGatewayId=field_mapjson__"EgressOnlyInternetGatewayId"String_.of_jsoninletdestinationPrefixListId=field_mapjson__"DestinationPrefixListId"String_.of_jsoninletdestinationIpv6CidrBlock=field_mapjson__"DestinationIpv6CidrBlock"String_.of_jsoninletdestinationCidrBlock=field_mapjson__"DestinationCidrBlock"String_.of_jsoninmake?ipAddress?odbNetworkArn?coreNetworkArn?vpcPeeringConnectionId?state?origin?networkInterfaceId?carrierGatewayId?localGatewayId?transitGatewayId?natGatewayId?instanceOwnerId?instanceId?gatewayId?egressOnlyInternetGatewayId?destinationPrefixListId?destinationIpv6CidrBlock?destinationCidrBlock()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a route in a route table."]