123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345(* 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.pcsletapiVersion="2023-02-10"letendpointPrefix="pcs"letserviceFullName="AWS Parallel Computing Service"letsignatureVersion="v4"letprotocol="json"letglobalEndpoint=endpointPrefix^".amazonaws.com"lettargetPrefix="AWSParallelComputingService"letsimple_to_jsonto_valuex=Botodata.Json.value_to_json_scalar(to_valuex)letcomposed_to_jsonto_valuex=Botodata.Json.value_to_json(to_valuex)letto_queryto_valuex=Client.Query.of_value(to_valuex)letstructure_to_value_auxst~f=letfilter=function|(k,Somev)->Some(k,v)|_->Noneinletpairkv=(k,v)inletdefer_value(k,dv)=pairkdvin((List.filter_mapst~f:filter)|>(List.map~f:defer_value))|>(funx->`Structure(fx))letstructure_to_value=structure_to_value_aux~f:Fn.idletstructure_to_wrapped_value~wrapper~response=structure_to_value_aux~f:(funx->[(wrapper,(`Structurex));(response,(`Structure[]))])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_valueendmoduleSlurmCustomSetting=structtypenonrect={parameterName:String_.t[@ocaml.doc"PCS supports custom Slurm settings for clusters, compute node groups, and queues. For more information, see Configuring custom Slurm settings in PCS in the PCS User Guide."];parameterValue:String_.t[@ocaml.doc"The values for the configured Slurm settings."]}letcontext_="SlurmCustomSetting"letmake~parameterName=fun~parameterValue->fun()->{parameterName;parameterValue}letto_valuex=structure_to_value[("parameterName",(Some(String_.to_valuex.parameterName)));("parameterValue",(Some(String_.to_valuex.parameterValue)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letparameterValue=String_.of_xml(Xml.child_exn~context:context_xml_arg0"parameterValue")inletparameterName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"parameterName")inmake~parameterValue~parameterName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letparameterValue=field_map_exnjson__"parameterValue"String_.of_jsoninletparameterName=field_map_exnjson__"parameterName"String_.of_jsoninmake~parameterValue~parameterName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional settings that directly map to Slurm settings. PCS supports a subset of Slurm settings. For more information, see Configuring custom Slurm settings in PCS in the PCS User Guide."]moduleAccountingDefaultPurgeTimeInDaysInteger=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:10000)>>=(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 AccountingDefaultPurgeTimeInDaysInteger"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleAccountingMode=structtypenonrect=|STANDARD|NONE|Non_static_idofstringletmakei=iletto_string=function|STANDARD->"STANDARD"|NONE->"NONE"|Non_static_ids->sletof_string=function|"STANDARD"->STANDARD|"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 AccountingMode"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"AccountingMode"j)letto_json=simple_to_jsonto_valueendmoduleCgroupCustomSetting=structtypenonrect={parameterName:String_.t[@ocaml.doc"PCS supports custom Cgroup settings for clusters. For more information, see Configuring custom Cgroup settings in PCS in the PCS User Guide."];parameterValue:String_.t[@ocaml.doc"The values for the configured Cgroup settings."]}letcontext_="CgroupCustomSetting"letmake~parameterName=fun~parameterValue->fun()->{parameterName;parameterValue}letto_valuex=structure_to_value[("parameterName",(Some(String_.to_valuex.parameterName)));("parameterValue",(Some(String_.to_valuex.parameterValue)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letparameterValue=String_.of_xml(Xml.child_exn~context:context_xml_arg0"parameterValue")inletparameterName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"parameterName")inmake~parameterValue~parameterName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letparameterValue=field_map_exnjson__"parameterValue"String_.of_jsoninletparameterName=field_map_exnjson__"parameterName"String_.of_jsoninmake~parameterValue~parameterName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional settings that directly map to Cgroup settings. PCS supports a subset of Cgroup settings. For more information, see Configuring custom Cgroup settings in PCS in the PCS User Guide."]moduleJwtKey=structtypenonrect={secretArn:String_.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the Amazon Web Services Secrets Manager secret containing the JWT key."];secretVersion:String_.toption[@ocaml.doc"The version of the Amazon Web Services Secrets Manager secret containing the JWT key."]}letmake?secretArn=fun?secretVersion->fun()->{secretArn;secretVersion}letto_valuex=structure_to_value[("secretArn",(Option.mapx.secretArn~f:String_.to_value));("secretVersion",(Option.mapx.secretVersion~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsecretVersion=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"secretVersion")inletsecretArn=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"secretArn")inmake?secretVersion?secretArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsecretVersion=field_mapjson__"secretVersion"String_.of_jsoninletsecretArn=field_mapjson__"secretArn"String_.of_jsoninmake?secretVersion?secretArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The JWT key stored in Amazon Web Services Secrets Manager for Slurm REST API authentication."]moduleSlurmRestMode=structtypenonrect=|STANDARD|NONE|Non_static_idofstringletmakei=iletto_string=function|STANDARD->"STANDARD"|NONE->"NONE"|Non_static_ids->sletof_string=function|"STANDARD"->STANDARD|"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 SlurmRestMode"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"SlurmRestMode"j)letto_json=simple_to_jsonto_valueendmoduleSlurmdbdCustomSetting=structtypenonrect={parameterName:String_.t[@ocaml.doc"PCS supports custom SlurmDBD settings for clusters. For more information, see Configuring custom SlurmDBD settings in PCS in the PCS User Guide."];parameterValue:String_.t[@ocaml.doc"The values for the configured SlurmDBD settings."]}letcontext_="SlurmdbdCustomSetting"letmake~parameterName=fun~parameterValue->fun()->{parameterName;parameterValue}letto_valuex=structure_to_value[("parameterName",(Some(String_.to_valuex.parameterName)));("parameterValue",(Some(String_.to_valuex.parameterValue)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letparameterValue=String_.of_xml(Xml.child_exn~context:context_xml_arg0"parameterValue")inletparameterName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"parameterName")inmake~parameterValue~parameterName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letparameterValue=field_map_exnjson__"parameterValue"String_.of_jsoninletparameterName=field_map_exnjson__"parameterName"String_.of_jsoninmake~parameterValue~parameterName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional settings that directly map to SlurmDBD settings. PCS supports a subset of SlurmDBD settings. For more information, see Configuring custom SlurmDBD settings in PCS in the PCS User Guide."]moduleEndpointType=structtypenonrect=|SLURMCTLD|SLURMDBD|SLURMRESTD|Non_static_idofstringletmakei=iletto_string=function|SLURMCTLD->"SLURMCTLD"|SLURMDBD->"SLURMDBD"|SLURMRESTD->"SLURMRESTD"|Non_static_ids->sletof_string=function|"SLURMCTLD"->SLURMCTLD|"SLURMDBD"->SLURMDBD|"SLURMRESTD"->SLURMRESTD|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 EndpointType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"EndpointType"j)letto_json=simple_to_jsonto_valueendmoduleSecurityGroupId=structtypenonrect=stringletcontext_="SecurityGroupId"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"sg-\\w{8,17}");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_valueendmoduleSubnetId=structtypenonrect=stringletcontext_="SubnetId"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"subnet-\\w{8,17}");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_valueendmoduleComputeNodeGroupConfiguration=structtypenonrect={computeNodeGroupId:String_.toption[@ocaml.doc"The compute node group ID for the compute node group configuration."]}letmake?computeNodeGroupId=fun()->{computeNodeGroupId}letto_valuex=structure_to_value[("computeNodeGroupId",(Option.mapx.computeNodeGroupId~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcomputeNodeGroupId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"computeNodeGroupId")inmake?computeNodeGroupId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcomputeNodeGroupId=field_mapjson__"computeNodeGroupId"String_.of_jsoninmake?computeNodeGroupId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The compute node group configuration for a queue."]moduleErrorInfo=structtypenonrect={code:String_.toption[@ocaml.doc"The short-form error code."];message:String_.toption[@ocaml.doc"The detailed error information."]}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"An error that occurred during resource creation."]moduleSlurmCustomSettings=structtypenonrect=SlurmCustomSetting.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:SlurmCustomSetting.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:SlurmCustomSetting.of_xml)letof_jsonj=list_of_json~kind:"SlurmCustomSettings"~of_json:SlurmCustomSetting.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleValidationExceptionField=structtypenonrect={name:String_.toption[@ocaml.doc"The name of the exception."];message:String_.toption[@ocaml.doc"The message body of the exception."]}letmake?name=fun?message->fun()->{name;message}letto_valuex=structure_to_value[("name",(Option.mapx.name~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")inletname=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"name")inmake?message?name()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"String_.of_jsoninletname=field_mapjson__"name"String_.of_jsoninmake?message?name()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Stores information about a field in a request that caused an exception."]moduleInstanceConfig=structtypenonrect={instanceType:String_.toption[@ocaml.doc"The EC2 instance type that PCS can provision in the compute node group. Example: t2.xlarge"]}letmake?instanceType=fun()->{instanceType}letto_valuex=structure_to_value[("instanceType",(Option.mapx.instanceType~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letinstanceType=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"instanceType")inmake?instanceType()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letinstanceType=field_mapjson__"instanceType"String_.of_jsoninmake?instanceType()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"An EC2 instance configuration PCS uses to launch compute nodes."]moduleScalingConfigurationMaxInstanceCountInteger=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 ScalingConfigurationMaxInstanceCountInteger"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleScalingConfigurationMinInstanceCountInteger=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 ScalingConfigurationMinInstanceCountInteger"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleSpotAllocationStrategy=structtypenonrect=|Lowest_price|Capacity_optimized|Price_capacity_optimized|Non_static_idofstringletmakei=iletto_string=function|Lowest_price->"lowest-price"|Capacity_optimized->"capacity-optimized"|Price_capacity_optimized->"price-capacity-optimized"|Non_static_ids->sletof_string=function|"lowest-price"->Lowest_price|"capacity-optimized"->Capacity_optimized|"price-capacity-optimized"->Price_capacity_optimized|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 SpotAllocationStrategy"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"SpotAllocationStrategy"j)letto_json=simple_to_jsonto_valueendmoduleAccounting=structtypenonrect={defaultPurgeTimeInDays:AccountingDefaultPurgeTimeInDaysInteger.toption[@ocaml.doc"The default value for all purge settings for slurmdbd.conf. For more information, see the slurmdbd.conf documentation at SchedMD. The default value for defaultPurgeTimeInDays is -1. A value of -1 means there is no purge time and records persist as long as the cluster exists. 0 isn't a valid value."];mode:AccountingMode.toption[@ocaml.doc"The default value for mode is NONE. A value of STANDARD means Slurm accounting is enabled."]}letmake?defaultPurgeTimeInDays=fun?mode->fun()->{defaultPurgeTimeInDays;mode}letto_valuex=structure_to_value[("defaultPurgeTimeInDays",(Option.mapx.defaultPurgeTimeInDays~f:AccountingDefaultPurgeTimeInDaysInteger.to_value));("mode",(Option.mapx.mode~f:AccountingMode.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmode=(Option.map~f:AccountingMode.of_xml)(Xml.childxml_arg0"mode")inletdefaultPurgeTimeInDays=(Option.map~f:AccountingDefaultPurgeTimeInDaysInteger.of_xml)(Xml.childxml_arg0"defaultPurgeTimeInDays")inmake?mode?defaultPurgeTimeInDays()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmode=field_mapjson__"mode"AccountingMode.of_jsoninletdefaultPurgeTimeInDays=field_mapjson__"defaultPurgeTimeInDays"AccountingDefaultPurgeTimeInDaysInteger.of_jsoninmake?mode?defaultPurgeTimeInDays()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The accounting configuration includes configurable settings for Slurm accounting. It's a property of the ClusterSlurmConfiguration object."]moduleCgroupCustomSettings=structtypenonrect=CgroupCustomSetting.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:CgroupCustomSetting.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:CgroupCustomSetting.of_xml)letof_jsonj=list_of_json~kind:"CgroupCustomSettings"~of_json:CgroupCustomSetting.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleClusterSlurmConfigurationScaleDownIdleTimeInSecondsInteger=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:10000000)>>=(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 ClusterSlurmConfigurationScaleDownIdleTimeInSecondsInteger"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleJwtAuth=structtypenonrect={jwtKey:JwtKey.toption[@ocaml.doc"The JWT key for Slurm REST API authentication."]}letmake?jwtKey=fun()->{jwtKey}letto_valuex=structure_to_value[("jwtKey",(Option.mapx.jwtKey~f:JwtKey.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letjwtKey=(Option.map~f:JwtKey.of_xml)(Xml.childxml_arg0"jwtKey")inmake?jwtKey()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letjwtKey=field_mapjson__"jwtKey"JwtKey.of_jsoninmake?jwtKey()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The JWT authentication configuration for Slurm REST API access."]moduleSlurmAuthKey=structtypenonrect={secretArn:String_.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the shared Slurm key."];secretVersion:String_.toption[@ocaml.doc"The version of the shared Slurm key."]}letmake?secretArn=fun?secretVersion->fun()->{secretArn;secretVersion}letto_valuex=structure_to_value[("secretArn",(Option.mapx.secretArn~f:String_.to_value));("secretVersion",(Option.mapx.secretVersion~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsecretVersion=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"secretVersion")inletsecretArn=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"secretArn")inmake?secretVersion?secretArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsecretVersion=field_mapjson__"secretVersion"String_.of_jsoninletsecretArn=field_mapjson__"secretArn"String_.of_jsoninmake?secretVersion?secretArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The shared Slurm key for authentication, also known as the cluster secret."]moduleSlurmRest=structtypenonrect={mode:SlurmRestMode.toption[@ocaml.doc"The default value for mode is NONE. A value of STANDARD means the Slurm REST API is enabled."]}letmake?mode=fun()->{mode}letto_valuex=structure_to_value[("mode",(Option.mapx.mode~f:SlurmRestMode.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmode=(Option.map~f:SlurmRestMode.of_xml)(Xml.childxml_arg0"mode")inmake?mode()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmode=field_mapjson__"mode"SlurmRestMode.of_jsoninmake?mode()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The Slurm REST API configuration includes settings for enabling and configuring the Slurm REST API. It's a property of the ClusterSlurmConfiguration object."]moduleSlurmdbdCustomSettings=structtypenonrect=SlurmdbdCustomSetting.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:SlurmdbdCustomSetting.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:SlurmdbdCustomSetting.of_xml)letof_jsonj=list_of_json~kind:"SlurmdbdCustomSettings"~of_json:SlurmdbdCustomSetting.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleEndpoint=structtypenonrect={type_:EndpointType.toption[@ocaml.doc"Indicates the type of endpoint running at the specific IP address."];privateIpAddress:String_.toption[@ocaml.doc"For clusters that use IPv4, this is the endpoint's private IP address. Example: 10.1.2.3 For clusters configured to use IPv6, this is an empty string."];publicIpAddress:String_.toption[@ocaml.doc"The endpoint's public IP address. Example: 192.0.2.1"];ipv6Address:String_.toption[@ocaml.doc"The endpoint's IPv6 address. Example: 2001:db8::1"];port:String_.toption[@ocaml.doc"The endpoint's connection port number. Example: 1234"]}letmake?type_=fun?privateIpAddress->fun?publicIpAddress->fun?ipv6Address->fun?port->fun()->{type_;privateIpAddress;publicIpAddress;ipv6Address;port}letto_valuex=structure_to_value[("type",(Option.mapx.type_~f:EndpointType.to_value));("privateIpAddress",(Option.mapx.privateIpAddress~f:String_.to_value));("publicIpAddress",(Option.mapx.publicIpAddress~f:String_.to_value));("ipv6Address",(Option.mapx.ipv6Address~f:String_.to_value));("port",(Option.mapx.port~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letport=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"port")inletipv6Address=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ipv6Address")inletpublicIpAddress=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"publicIpAddress")inletprivateIpAddress=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"privateIpAddress")inlettype_=(Option.map~f:EndpointType.of_xml)(Xml.childxml_arg0"type")inmake?port?ipv6Address?publicIpAddress?privateIpAddress?type_()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letport=field_mapjson__"port"String_.of_jsoninletipv6Address=field_mapjson__"ipv6Address"String_.of_jsoninletpublicIpAddress=field_mapjson__"publicIpAddress"String_.of_jsoninletprivateIpAddress=field_mapjson__"privateIpAddress"String_.of_jsoninlettype_=field_mapjson__"type"EndpointType.of_jsoninmake?port?ipv6Address?publicIpAddress?privateIpAddress?type_()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"An endpoint available for interaction with the scheduler."]moduleNetworkType=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 NetworkType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"NetworkType"j)letto_json=simple_to_jsonto_valueendmoduleSecurityGroupIdList=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:"SecurityGroupIdList"~of_json:SecurityGroupId.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleSubnetIdList=structtypenonrect=SubnetId.tlistletmakei=letopenResultinok_or_failwith(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: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:"SubnetIdList"~of_json:SubnetId.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleSchedulerType=structtypenonrect=|SLURM|Non_static_idofstringletmakei=iletto_string=function|SLURM->"SLURM"|Non_static_ids->sletof_string=function|"SLURM"->SLURM|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 SchedulerType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"SchedulerType"j)letto_json=simple_to_jsonto_valueendmoduleUpdateAccountingRequestDefaultPurgeTimeInDaysInteger=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:10000)>>=(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 UpdateAccountingRequestDefaultPurgeTimeInDaysInteger"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleQueueName=structtypenonrect=stringletcontext_="QueueName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:3)>>=(fun()->(check_string_maxi~max:25)>>=(fun()->check_patterni~pattern:"(?!pcs_)^[A-Za-z][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:"QueueName"jletto_json=simple_to_jsonto_valueendmoduleQueueStatus=structtypenonrect=|CREATING|ACTIVE|UPDATING|DELETING|CREATE_FAILED|DELETE_FAILED|UPDATE_FAILED|SUSPENDING|SUSPENDED|RESUMING|Non_static_idofstringletmakei=iletto_string=function|CREATING->"CREATING"|ACTIVE->"ACTIVE"|UPDATING->"UPDATING"|DELETING->"DELETING"|CREATE_FAILED->"CREATE_FAILED"|DELETE_FAILED->"DELETE_FAILED"|UPDATE_FAILED->"UPDATE_FAILED"|SUSPENDING->"SUSPENDING"|SUSPENDED->"SUSPENDED"|RESUMING->"RESUMING"|Non_static_ids->sletof_string=function|"CREATING"->CREATING|"ACTIVE"->ACTIVE|"UPDATING"->UPDATING|"DELETING"->DELETING|"CREATE_FAILED"->CREATE_FAILED|"DELETE_FAILED"->DELETE_FAILED|"UPDATE_FAILED"->UPDATE_FAILED|"SUSPENDING"->SUSPENDING|"SUSPENDED"->SUSPENDED|"RESUMING"->RESUMING|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 QueueStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"QueueStatus"j)letto_json=simple_to_jsonto_valueendmoduleSyntheticTimestamp_date_time=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_valueendmoduleComputeNodeGroupName=structtypenonrect=stringletcontext_="ComputeNodeGroupName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:3)>>=(fun()->(check_string_maxi~max:25)>>=(fun()->check_patterni~pattern:"(?!pcs_)^[A-Za-z][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:"ComputeNodeGroupName"jletto_json=simple_to_jsonto_valueendmoduleComputeNodeGroupStatus=structtypenonrect=|CREATING|ACTIVE|UPDATING|DELETING|CREATE_FAILED|DELETE_FAILED|UPDATE_FAILED|DELETED|SUSPENDING|SUSPENDED|RESUMING|Non_static_idofstringletmakei=iletto_string=function|CREATING->"CREATING"|ACTIVE->"ACTIVE"|UPDATING->"UPDATING"|DELETING->"DELETING"|CREATE_FAILED->"CREATE_FAILED"|DELETE_FAILED->"DELETE_FAILED"|UPDATE_FAILED->"UPDATE_FAILED"|DELETED->"DELETED"|SUSPENDING->"SUSPENDING"|SUSPENDED->"SUSPENDED"|RESUMING->"RESUMING"|Non_static_ids->sletof_string=function|"CREATING"->CREATING|"ACTIVE"->ACTIVE|"UPDATING"->UPDATING|"DELETING"->DELETING|"CREATE_FAILED"->CREATE_FAILED|"DELETE_FAILED"->DELETE_FAILED|"UPDATE_FAILED"->UPDATE_FAILED|"DELETED"->DELETED|"SUSPENDING"->SUSPENDING|"SUSPENDED"->SUSPENDED|"RESUMING"->RESUMING|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 ComputeNodeGroupStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ComputeNodeGroupStatus"j)letto_json=simple_to_jsonto_valueendmoduleClusterStatus=structtypenonrect=|CREATING|ACTIVE|UPDATING|DELETING|CREATE_FAILED|DELETE_FAILED|UPDATE_FAILED|SUSPENDING|SUSPENDED|RESUMING|Non_static_idofstringletmakei=iletto_string=function|CREATING->"CREATING"|ACTIVE->"ACTIVE"|UPDATING->"UPDATING"|DELETING->"DELETING"|CREATE_FAILED->"CREATE_FAILED"|DELETE_FAILED->"DELETE_FAILED"|UPDATE_FAILED->"UPDATE_FAILED"|SUSPENDING->"SUSPENDING"|SUSPENDED->"SUSPENDED"|RESUMING->"RESUMING"|Non_static_ids->sletof_string=function|"CREATING"->CREATING|"ACTIVE"->ACTIVE|"UPDATING"->UPDATING|"DELETING"->DELETING|"CREATE_FAILED"->CREATE_FAILED|"DELETE_FAILED"->DELETE_FAILED|"UPDATE_FAILED"->UPDATE_FAILED|"SUSPENDING"->SUSPENDING|"SUSPENDED"->SUSPENDED|"RESUMING"->RESUMING|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 ClusterStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ClusterStatus"j)letto_json=simple_to_jsonto_valueendmoduleAccountingRequestDefaultPurgeTimeInDaysInteger=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:10000)>>=(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 AccountingRequestDefaultPurgeTimeInDaysInteger"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleComputeNodeGroupConfigurationList=structtypenonrect=ComputeNodeGroupConfiguration.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ComputeNodeGroupConfiguration.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:ComputeNodeGroupConfiguration.of_xml)letof_jsonj=list_of_json~kind:"ComputeNodeGroupConfigurationList"~of_json:ComputeNodeGroupConfiguration.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleErrorInfoList=structtypenonrect=ErrorInfo.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ErrorInfo.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:ErrorInfo.of_xml)letof_jsonj=list_of_json~kind:"ErrorInfoList"~of_json:ErrorInfo.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleQueueSlurmConfiguration=structtypenonrect={slurmCustomSettings:SlurmCustomSettings.toption[@ocaml.doc"Additional Slurm-specific configuration that directly maps to Slurm settings."]}letmake?slurmCustomSettings=fun()->{slurmCustomSettings}letto_valuex=structure_to_value[("slurmCustomSettings",(Option.mapx.slurmCustomSettings~f:SlurmCustomSettings.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letslurmCustomSettings=(Option.map~f:SlurmCustomSettings.of_xml)(Xml.childxml_arg0"slurmCustomSettings")inmake?slurmCustomSettings()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letslurmCustomSettings=field_mapjson__"slurmCustomSettings"SlurmCustomSettings.of_jsoninmake?slurmCustomSettings()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional options related to the Slurm scheduler."]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_valueendmoduleValidationExceptionFieldList=structtypenonrect=ValidationExceptionField.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ValidationExceptionField.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:ValidationExceptionField.of_xml)letof_jsonj=list_of_json~kind:"ValidationExceptionFieldList"~of_json:ValidationExceptionField.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleValidationExceptionReason=structtypenonrect=|UnknownOperation|CannotParse|FieldValidationFailed|Other|Non_static_idofstringletmakei=iletto_string=function|UnknownOperation->"unknownOperation"|CannotParse->"cannotParse"|FieldValidationFailed->"fieldValidationFailed"|Other->"other"|Non_static_ids->sletof_string=function|"unknownOperation"->UnknownOperation|"cannotParse"->CannotParse|"fieldValidationFailed"->FieldValidationFailed|"other"->Other|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration ValidationExceptionReason"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ValidationExceptionReason"j)letto_json=simple_to_jsonto_valueendmoduleAmiId=structtypenonrect=stringletcontext_="AmiId"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"ami-[a-z0-9]+");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"AmiId"jletto_json=simple_to_jsonto_valueendmoduleComputeNodeGroupSlurmConfiguration=structtypenonrect={slurmCustomSettings:SlurmCustomSettings.toption[@ocaml.doc"Additional Slurm-specific configuration that directly maps to Slurm settings."]}letmake?slurmCustomSettings=fun()->{slurmCustomSettings}letto_valuex=structure_to_value[("slurmCustomSettings",(Option.mapx.slurmCustomSettings~f:SlurmCustomSettings.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letslurmCustomSettings=(Option.map~f:SlurmCustomSettings.of_xml)(Xml.childxml_arg0"slurmCustomSettings")inmake?slurmCustomSettings()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letslurmCustomSettings=field_mapjson__"slurmCustomSettings"SlurmCustomSettings.of_jsoninmake?slurmCustomSettings()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional options related to the Slurm scheduler."]moduleCustomLaunchTemplate=structtypenonrect={id:String_.t[@ocaml.doc"The ID of the EC2 launch template to use to provision instances. Example: lt-xxxx"];version:String_.t[@ocaml.doc"The version of the EC2 launch template to use to provision instances."]}letcontext_="CustomLaunchTemplate"letmake~id=fun~version->fun()->{id;version}letto_valuex=structure_to_value[("id",(Some(String_.to_valuex.id)));("version",(Some(String_.to_valuex.version)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letversion=String_.of_xml(Xml.child_exn~context:context_xml_arg0"version")inletid=String_.of_xml(Xml.child_exn~context:context_xml_arg0"id")inmake~version~id()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letversion=field_map_exnjson__"version"String_.of_jsoninletid=field_map_exnjson__"id"String_.of_jsoninmake~version~id()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"An Amazon EC2 launch template PCS uses to launch compute nodes."]moduleInstanceList=structtypenonrect=InstanceConfig.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:InstanceConfig.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:InstanceConfig.of_xml)letof_jsonj=list_of_json~kind:"InstanceList"~of_json:InstanceConfig.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleInstanceProfileArn=structtypenonrect=stringletcontext_="InstanceProfileArn"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"arn:aws([a-zA-Z-]{0,10})?:iam::[0-9]{12}:instance-profile/([!-~]{1,510}/)?([\\w+=,.@-]{1,128})");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"InstanceProfileArn"jletto_json=simple_to_jsonto_valueendmodulePurchaseOption=structtypenonrect=|ONDEMAND|SPOT|CAPACITY_BLOCK|INTERRUPTIBLE_CAPACITY_RESERVATION|Non_static_idofstringletmakei=iletto_string=function|ONDEMAND->"ONDEMAND"|SPOT->"SPOT"|CAPACITY_BLOCK->"CAPACITY_BLOCK"|INTERRUPTIBLE_CAPACITY_RESERVATION->"INTERRUPTIBLE_CAPACITY_RESERVATION"|Non_static_ids->sletof_string=function|"ONDEMAND"->ONDEMAND|"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 PurchaseOption"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"PurchaseOption"j)letto_json=simple_to_jsonto_valueendmoduleScalingConfiguration=structtypenonrect={minInstanceCount:ScalingConfigurationMinInstanceCountInteger.toption[@ocaml.doc"The lower bound of the number of instances allowed in the compute fleet."];maxInstanceCount:ScalingConfigurationMaxInstanceCountInteger.toption[@ocaml.doc"The upper bound of the number of instances allowed in the compute fleet."]}letmake?minInstanceCount=fun?maxInstanceCount->fun()->{minInstanceCount;maxInstanceCount}letto_valuex=structure_to_value[("minInstanceCount",(Option.mapx.minInstanceCount~f:ScalingConfigurationMinInstanceCountInteger.to_value));("maxInstanceCount",(Option.mapx.maxInstanceCount~f:ScalingConfigurationMaxInstanceCountInteger.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmaxInstanceCount=(Option.map~f:ScalingConfigurationMaxInstanceCountInteger.of_xml)(Xml.childxml_arg0"maxInstanceCount")inletminInstanceCount=(Option.map~f:ScalingConfigurationMinInstanceCountInteger.of_xml)(Xml.childxml_arg0"minInstanceCount")inmake?maxInstanceCount?minInstanceCount()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmaxInstanceCount=field_mapjson__"maxInstanceCount"ScalingConfigurationMaxInstanceCountInteger.of_jsoninletminInstanceCount=field_mapjson__"minInstanceCount"ScalingConfigurationMinInstanceCountInteger.of_jsoninmake?maxInstanceCount?minInstanceCount()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Specifies the boundaries of the compute node group auto scaling."]moduleSpotOptions=structtypenonrect={allocationStrategy:SpotAllocationStrategy.toption[@ocaml.doc"The Amazon EC2 allocation strategy PCS uses to provision EC2 instances. PCS supports lowest price, capacity optimized, and price capacity optimized. For more information, see Use allocation strategies to determine how EC2 Fleet or Spot Fleet fulfills Spot and On-Demand capacity in the Amazon Elastic Compute Cloud User Guide. If you don't provide this option, it defaults to price capacity optimized."]}letmake?allocationStrategy=fun()->{allocationStrategy}letto_valuex=structure_to_value[("allocationStrategy",(Option.mapx.allocationStrategy~f:SpotAllocationStrategy.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letallocationStrategy=(Option.map~f:SpotAllocationStrategy.of_xml)(Xml.childxml_arg0"allocationStrategy")inmake?allocationStrategy()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letallocationStrategy=field_mapjson__"allocationStrategy"SpotAllocationStrategy.of_jsoninmake?allocationStrategy()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional configuration when you specify SPOT as the purchaseOption for the CreateComputeNodeGroup API action."]moduleScalingConfigurationRequestMaxInstanceCountInteger=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 ScalingConfigurationRequestMaxInstanceCountInteger"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleScalingConfigurationRequestMinInstanceCountInteger=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 ScalingConfigurationRequestMinInstanceCountInteger"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleClusterSlurmConfiguration=structtypenonrect={scaleDownIdleTimeInSeconds:ClusterSlurmConfigurationScaleDownIdleTimeInSecondsInteger.toption[@ocaml.doc"The time (in seconds) before an idle node is scaled down. Default: 600"];slurmCustomSettings:SlurmCustomSettings.toption[@ocaml.doc"Additional Slurm-specific configuration that directly maps to Slurm settings."];slurmdbdCustomSettings:SlurmdbdCustomSettings.toption[@ocaml.doc"Additional SlurmDBD-specific configuration that directly maps to SlurmDBD settings."];cgroupCustomSettings:CgroupCustomSettings.toption[@ocaml.doc"Additional Cgroup-specific configuration that directly maps to Cgroup settings."];authKey:SlurmAuthKey.toption[@ocaml.doc"The shared Slurm key for authentication, also known as the cluster secret."];jwtAuth:JwtAuth.toption[@ocaml.doc"The JWT authentication configuration for Slurm REST API access."];accounting:Accounting.toption[@ocaml.doc"The accounting configuration includes configurable settings for Slurm accounting."];slurmRest:SlurmRest.toption[@ocaml.doc"The Slurm REST API configuration for the cluster."]}letmake?scaleDownIdleTimeInSeconds=fun?slurmCustomSettings->fun?slurmdbdCustomSettings->fun?cgroupCustomSettings->fun?authKey->fun?jwtAuth->fun?accounting->fun?slurmRest->fun()->{scaleDownIdleTimeInSeconds;slurmCustomSettings;slurmdbdCustomSettings;cgroupCustomSettings;authKey;jwtAuth;accounting;slurmRest}letto_valuex=structure_to_value[("scaleDownIdleTimeInSeconds",(Option.mapx.scaleDownIdleTimeInSeconds~f:ClusterSlurmConfigurationScaleDownIdleTimeInSecondsInteger.to_value));("slurmCustomSettings",(Option.mapx.slurmCustomSettings~f:SlurmCustomSettings.to_value));("slurmdbdCustomSettings",(Option.mapx.slurmdbdCustomSettings~f:SlurmdbdCustomSettings.to_value));("cgroupCustomSettings",(Option.mapx.cgroupCustomSettings~f:CgroupCustomSettings.to_value));("authKey",(Option.mapx.authKey~f:SlurmAuthKey.to_value));("jwtAuth",(Option.mapx.jwtAuth~f:JwtAuth.to_value));("accounting",(Option.mapx.accounting~f:Accounting.to_value));("slurmRest",(Option.mapx.slurmRest~f:SlurmRest.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letslurmRest=(Option.map~f:SlurmRest.of_xml)(Xml.childxml_arg0"slurmRest")inletaccounting=(Option.map~f:Accounting.of_xml)(Xml.childxml_arg0"accounting")inletjwtAuth=(Option.map~f:JwtAuth.of_xml)(Xml.childxml_arg0"jwtAuth")inletauthKey=(Option.map~f:SlurmAuthKey.of_xml)(Xml.childxml_arg0"authKey")inletcgroupCustomSettings=(Option.map~f:CgroupCustomSettings.of_xml)(Xml.childxml_arg0"cgroupCustomSettings")inletslurmdbdCustomSettings=(Option.map~f:SlurmdbdCustomSettings.of_xml)(Xml.childxml_arg0"slurmdbdCustomSettings")inletslurmCustomSettings=(Option.map~f:SlurmCustomSettings.of_xml)(Xml.childxml_arg0"slurmCustomSettings")inletscaleDownIdleTimeInSeconds=(Option.map~f:ClusterSlurmConfigurationScaleDownIdleTimeInSecondsInteger.of_xml)(Xml.childxml_arg0"scaleDownIdleTimeInSeconds")inmake?slurmRest?accounting?jwtAuth?authKey?cgroupCustomSettings?slurmdbdCustomSettings?slurmCustomSettings?scaleDownIdleTimeInSeconds()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letslurmRest=field_mapjson__"slurmRest"SlurmRest.of_jsoninletaccounting=field_mapjson__"accounting"Accounting.of_jsoninletjwtAuth=field_mapjson__"jwtAuth"JwtAuth.of_jsoninletauthKey=field_mapjson__"authKey"SlurmAuthKey.of_jsoninletcgroupCustomSettings=field_mapjson__"cgroupCustomSettings"CgroupCustomSettings.of_jsoninletslurmdbdCustomSettings=field_mapjson__"slurmdbdCustomSettings"SlurmdbdCustomSettings.of_jsoninletslurmCustomSettings=field_mapjson__"slurmCustomSettings"SlurmCustomSettings.of_jsoninletscaleDownIdleTimeInSeconds=field_mapjson__"scaleDownIdleTimeInSeconds"ClusterSlurmConfigurationScaleDownIdleTimeInSecondsInteger.of_jsoninmake?slurmRest?accounting?jwtAuth?authKey?cgroupCustomSettings?slurmdbdCustomSettings?slurmCustomSettings?scaleDownIdleTimeInSeconds()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional options related to the Slurm scheduler."]moduleEndpoints=structtypenonrect=Endpoint.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Endpoint.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:Endpoint.of_xml)letof_jsonj=list_of_json~kind:"Endpoints"~of_json:Endpoint.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleNetworking=structtypenonrect={subnetIds:SubnetIdList.toption[@ocaml.doc"The ID of the subnet where PCS creates an Elastic Network Interface (ENI) to enable communication between managed controllers and PCS resources. The subnet must have an available IP address, cannot reside in Outposts, Wavelength, or an Amazon Web Services Local Zone. Example: subnet-abcd1234"];securityGroupIds:SecurityGroupIdList.toption[@ocaml.doc"The list of security group IDs associated with the Elastic Network Interface (ENI) created in subnets. The following rules are required: Inbound rule 1 Protocol: All Ports: All Source: Self Outbound rule 1 Protocol: All Ports: All Destination: 0.0.0.0/0 (IPv4) or ::/0 (IPv6) Outbound rule 2 Protocol: All Ports: All Destination: Self"];networkType:NetworkType.toption[@ocaml.doc"The IP address version the cluster uses. The default is IPV4."]}letmake?subnetIds=fun?securityGroupIds->fun?networkType->fun()->{subnetIds;securityGroupIds;networkType}letto_valuex=structure_to_value[("subnetIds",(Option.mapx.subnetIds~f:SubnetIdList.to_value));("securityGroupIds",(Option.mapx.securityGroupIds~f:SecurityGroupIdList.to_value));("networkType",(Option.mapx.networkType~f:NetworkType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnetworkType=(Option.map~f:NetworkType.of_xml)(Xml.childxml_arg0"networkType")inletsecurityGroupIds=(Option.map~f:SecurityGroupIdList.of_xml)(Xml.childxml_arg0"securityGroupIds")inletsubnetIds=(Option.map~f:SubnetIdList.of_xml)(Xml.childxml_arg0"subnetIds")inmake?networkType?securityGroupIds?subnetIds()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnetworkType=field_mapjson__"networkType"NetworkType.of_jsoninletsecurityGroupIds=field_mapjson__"securityGroupIds"SecurityGroupIdList.of_jsoninletsubnetIds=field_mapjson__"subnetIds"SubnetIdList.of_jsoninmake?networkType?securityGroupIds?subnetIds()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The networking configuration for the cluster's control plane."]moduleScheduler=structtypenonrect={type_:SchedulerType.toption[@ocaml.doc"The software PCS uses to manage cluster scaling and job scheduling."];version:String_.toption[@ocaml.doc"The version of the specified scheduling software that PCS uses to manage cluster scaling and job scheduling. For more information, see Slurm versions in PCS in the PCS User Guide. Valid Values: 23.11 | 24.05 | 24.11 | 25.05 | 25.11"]}letmake?type_=fun?version->fun()->{type_;version}letto_valuex=structure_to_value[("type",(Option.mapx.type_~f:SchedulerType.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")inlettype_=(Option.map~f:SchedulerType.of_xml)(Xml.childxml_arg0"type")inmake?version?type_()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letversion=field_mapjson__"version"String_.of_jsoninlettype_=field_mapjson__"type"SchedulerType.of_jsoninmake?version?type_()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The cluster management and job scheduling software associated with the cluster."]moduleSize=structtypenonrect=|SMALL|MEDIUM|LARGE|Non_static_idofstringletmakei=iletto_string=function|SMALL->"SMALL"|MEDIUM->"MEDIUM"|LARGE->"LARGE"|Non_static_ids->sletof_string=function|"SMALL"->SMALL|"MEDIUM"->MEDIUM|"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 Size"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"Size"j)letto_json=simple_to_jsonto_valueendmoduleUpdateAccountingRequest=structtypenonrect={defaultPurgeTimeInDays:UpdateAccountingRequestDefaultPurgeTimeInDaysInteger.toption[@ocaml.doc"The default value for all purge settings for slurmdbd.conf. For more information, see the slurmdbd.conf documentation at SchedMD. The default value for defaultPurgeTimeInDays is -1. A value of -1 means there is no purge time and records persist as long as the cluster exists. 0 isn't a valid value."];mode:AccountingMode.toption[@ocaml.doc"The default value for mode is NONE. A value of STANDARD means Slurm accounting is enabled."]}letmake?defaultPurgeTimeInDays=fun?mode->fun()->{defaultPurgeTimeInDays;mode}letto_valuex=structure_to_value[("defaultPurgeTimeInDays",(Option.mapx.defaultPurgeTimeInDays~f:UpdateAccountingRequestDefaultPurgeTimeInDaysInteger.to_value));("mode",(Option.mapx.mode~f:AccountingMode.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmode=(Option.map~f:AccountingMode.of_xml)(Xml.childxml_arg0"mode")inletdefaultPurgeTimeInDays=(Option.map~f:UpdateAccountingRequestDefaultPurgeTimeInDaysInteger.of_xml)(Xml.childxml_arg0"defaultPurgeTimeInDays")inmake?mode?defaultPurgeTimeInDays()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmode=field_mapjson__"mode"AccountingMode.of_jsoninletdefaultPurgeTimeInDays=field_mapjson__"defaultPurgeTimeInDays"UpdateAccountingRequestDefaultPurgeTimeInDaysInteger.of_jsoninmake?mode?defaultPurgeTimeInDays()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The accounting configuration includes configurable settings for Slurm accounting."]moduleUpdateClusterSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:10000000)>>=(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 UpdateClusterSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleUpdateSlurmRestRequest=structtypenonrect={mode:SlurmRestMode.toption[@ocaml.doc"The default value for mode is NONE. A value of STANDARD means the Slurm REST API is enabled."]}letmake?mode=fun()->{mode}letto_valuex=structure_to_value[("mode",(Option.mapx.mode~f:SlurmRestMode.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmode=(Option.map~f:SlurmRestMode.of_xml)(Xml.childxml_arg0"mode")inmake?mode()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmode=field_mapjson__"mode"SlurmRestMode.of_jsoninmake?mode()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The Slurm REST API configuration includes settings for enabling and configuring the Slurm REST API."]moduleTagKey=structtypenonrect=stringletcontext_="TagKey"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:128)>>=(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:"TagKey"jletto_json=simple_to_jsonto_valueendmoduleTagValue=structtypenonrect=stringletcontext_="TagValue"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:256)>>=(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:"TagValue"jletto_json=simple_to_jsonto_valueendmoduleQueueSummary=structtypenonrect={name:QueueName.toption[@ocaml.doc"The name that identifies the queue."];id:String_.toption[@ocaml.doc"The generated unique ID of the queue."];arn:String_.toption[@ocaml.doc"The unique Amazon Resource Name (ARN) of the queue."];clusterId:String_.toption[@ocaml.doc"The ID of the cluster of the queue."];createdAt:SyntheticTimestamp_date_time.toption[@ocaml.doc"The date and time the resource was created."];modifiedAt:SyntheticTimestamp_date_time.toption[@ocaml.doc"The date and time the resource was modified."];status:QueueStatus.toption[@ocaml.doc"The provisioning status of the queue. The provisioning status doesn't indicate the overall health of the queue. The resource enters the SUSPENDING and SUSPENDED states when the scheduler is beyond end of life and we have suspended the cluster. When in these states, you can't use the cluster. The cluster controller is down and all compute instances are terminated. The resources still count toward your service quotas. You can delete a resource if its status is SUSPENDED. For more information, see Frequently asked questions about Slurm versions in PCS in the PCS User Guide."]}letmake?name=fun?id->fun?arn->fun?clusterId->fun?createdAt->fun?modifiedAt->fun?status->fun()->{name;id;arn;clusterId;createdAt;modifiedAt;status}letto_valuex=structure_to_value[("name",(Option.mapx.name~f:QueueName.to_value));("id",(Option.mapx.id~f:String_.to_value));("arn",(Option.mapx.arn~f:String_.to_value));("clusterId",(Option.mapx.clusterId~f:String_.to_value));("createdAt",(Option.mapx.createdAt~f:SyntheticTimestamp_date_time.to_value));("modifiedAt",(Option.mapx.modifiedAt~f:SyntheticTimestamp_date_time.to_value));("status",(Option.mapx.status~f:QueueStatus.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstatus=(Option.map~f:QueueStatus.of_xml)(Xml.childxml_arg0"status")inletmodifiedAt=(Option.map~f:SyntheticTimestamp_date_time.of_xml)(Xml.childxml_arg0"modifiedAt")inletcreatedAt=(Option.map~f:SyntheticTimestamp_date_time.of_xml)(Xml.childxml_arg0"createdAt")inletclusterId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"clusterId")inletarn=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"arn")inletid=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"id")inletname=(Option.map~f:QueueName.of_xml)(Xml.childxml_arg0"name")inmake?status?modifiedAt?createdAt?clusterId?arn?id?name()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstatus=field_mapjson__"status"QueueStatus.of_jsoninletmodifiedAt=field_mapjson__"modifiedAt"SyntheticTimestamp_date_time.of_jsoninletcreatedAt=field_mapjson__"createdAt"SyntheticTimestamp_date_time.of_jsoninletclusterId=field_mapjson__"clusterId"String_.of_jsoninletarn=field_mapjson__"arn"String_.of_jsoninletid=field_mapjson__"id"String_.of_jsoninletname=field_mapjson__"name"QueueName.of_jsoninmake?status?modifiedAt?createdAt?clusterId?arn?id?name()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The object returned by the ListQueues API action."]moduleComputeNodeGroupSummary=structtypenonrect={name:ComputeNodeGroupName.toption[@ocaml.doc"The name that identifies the compute node group."];id:String_.toption[@ocaml.doc"The generated unique ID of the compute node group."];arn:String_.toption[@ocaml.doc"The unique Amazon Resource Name (ARN) of the compute node group."];clusterId:String_.toption[@ocaml.doc"The ID of the cluster of the compute node group."];createdAt:SyntheticTimestamp_date_time.toption[@ocaml.doc"The date and time the resource was created."];modifiedAt:SyntheticTimestamp_date_time.toption[@ocaml.doc"The date and time the resource was modified."];status:ComputeNodeGroupStatus.toption[@ocaml.doc"The provisioning status of the compute node group. The provisioning status doesn't indicate the overall health of the compute node group. The resource enters the SUSPENDING and SUSPENDED states when the scheduler is beyond end of life and we have suspended the cluster. When in these states, you can't use the cluster. The cluster controller is down and all compute instances are terminated. The resources still count toward your service quotas. You can delete a resource if its status is SUSPENDED. For more information, see Frequently asked questions about Slurm versions in PCS in the PCS User Guide."]}letmake?name=fun?id->fun?arn->fun?clusterId->fun?createdAt->fun?modifiedAt->fun?status->fun()->{name;id;arn;clusterId;createdAt;modifiedAt;status}letto_valuex=structure_to_value[("name",(Option.mapx.name~f:ComputeNodeGroupName.to_value));("id",(Option.mapx.id~f:String_.to_value));("arn",(Option.mapx.arn~f:String_.to_value));("clusterId",(Option.mapx.clusterId~f:String_.to_value));("createdAt",(Option.mapx.createdAt~f:SyntheticTimestamp_date_time.to_value));("modifiedAt",(Option.mapx.modifiedAt~f:SyntheticTimestamp_date_time.to_value));("status",(Option.mapx.status~f:ComputeNodeGroupStatus.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstatus=(Option.map~f:ComputeNodeGroupStatus.of_xml)(Xml.childxml_arg0"status")inletmodifiedAt=(Option.map~f:SyntheticTimestamp_date_time.of_xml)(Xml.childxml_arg0"modifiedAt")inletcreatedAt=(Option.map~f:SyntheticTimestamp_date_time.of_xml)(Xml.childxml_arg0"createdAt")inletclusterId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"clusterId")inletarn=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"arn")inletid=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"id")inletname=(Option.map~f:ComputeNodeGroupName.of_xml)(Xml.childxml_arg0"name")inmake?status?modifiedAt?createdAt?clusterId?arn?id?name()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstatus=field_mapjson__"status"ComputeNodeGroupStatus.of_jsoninletmodifiedAt=field_mapjson__"modifiedAt"SyntheticTimestamp_date_time.of_jsoninletcreatedAt=field_mapjson__"createdAt"SyntheticTimestamp_date_time.of_jsoninletclusterId=field_mapjson__"clusterId"String_.of_jsoninletarn=field_mapjson__"arn"String_.of_jsoninletid=field_mapjson__"id"String_.of_jsoninletname=field_mapjson__"name"ComputeNodeGroupName.of_jsoninmake?status?modifiedAt?createdAt?clusterId?arn?id?name()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The object returned by the ListComputeNodeGroups API action."]moduleClusterSummary=structtypenonrect={name:String_.toption[@ocaml.doc"The name that identifies the cluster."];id:String_.toption[@ocaml.doc"The generated unique ID of the cluster."];arn:String_.toption[@ocaml.doc"The unique Amazon Resource Name (ARN) of the cluster."];createdAt:SyntheticTimestamp_date_time.toption[@ocaml.doc"The date and time the resource was created."];modifiedAt:SyntheticTimestamp_date_time.toption[@ocaml.doc"The date and time the resource was modified."];status:ClusterStatus.toption[@ocaml.doc"The provisioning status of the cluster. The provisioning status doesn't indicate the overall health of the cluster. The resource enters the SUSPENDING and SUSPENDED states when the scheduler is beyond end of life and we have suspended the cluster. When in these states, you can't use the cluster. The cluster controller is down and all compute instances are terminated. The resources still count toward your service quotas. You can delete a resource if its status is SUSPENDED. For more information, see Frequently asked questions about Slurm versions in PCS in the PCS User Guide."]}letmake?name=fun?id->fun?arn->fun?createdAt->fun?modifiedAt->fun?status->fun()->{name;id;arn;createdAt;modifiedAt;status}letto_valuex=structure_to_value[("name",(Option.mapx.name~f:String_.to_value));("id",(Option.mapx.id~f:String_.to_value));("arn",(Option.mapx.arn~f:String_.to_value));("createdAt",(Option.mapx.createdAt~f:SyntheticTimestamp_date_time.to_value));("modifiedAt",(Option.mapx.modifiedAt~f:SyntheticTimestamp_date_time.to_value));("status",(Option.mapx.status~f:ClusterStatus.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstatus=(Option.map~f:ClusterStatus.of_xml)(Xml.childxml_arg0"status")inletmodifiedAt=(Option.map~f:SyntheticTimestamp_date_time.of_xml)(Xml.childxml_arg0"modifiedAt")inletcreatedAt=(Option.map~f:SyntheticTimestamp_date_time.of_xml)(Xml.childxml_arg0"createdAt")inletarn=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"arn")inletid=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"id")inletname=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"name")inmake?status?modifiedAt?createdAt?arn?id?name()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstatus=field_mapjson__"status"ClusterStatus.of_jsoninletmodifiedAt=field_mapjson__"modifiedAt"SyntheticTimestamp_date_time.of_jsoninletcreatedAt=field_mapjson__"createdAt"SyntheticTimestamp_date_time.of_jsoninletarn=field_mapjson__"arn"String_.of_jsoninletid=field_mapjson__"id"String_.of_jsoninletname=field_mapjson__"name"String_.of_jsoninmake?status?modifiedAt?createdAt?arn?id?name()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The object returned by the ListClusters API action."]moduleAccountingRequest=structtypenonrect={defaultPurgeTimeInDays:AccountingRequestDefaultPurgeTimeInDaysInteger.toption[@ocaml.doc"The default value for all purge settings for slurmdbd.conf. For more information, see the slurmdbd.conf documentation at SchedMD. The default value for defaultPurgeTimeInDays is -1. A value of -1 means there is no purge time and records persist as long as the cluster exists. 0 isn't a valid value."];mode:AccountingMode.t[@ocaml.doc"The default value for mode is NONE. A value of STANDARD means Slurm accounting is enabled."]}letcontext_="AccountingRequest"letmake?defaultPurgeTimeInDays=fun~mode->fun()->{defaultPurgeTimeInDays;mode}letto_valuex=structure_to_value[("defaultPurgeTimeInDays",(Option.mapx.defaultPurgeTimeInDays~f:AccountingRequestDefaultPurgeTimeInDaysInteger.to_value));("mode",(Some(AccountingMode.to_valuex.mode)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmode=AccountingMode.of_xml(Xml.child_exn~context:context_xml_arg0"mode")inletdefaultPurgeTimeInDays=(Option.map~f:AccountingRequestDefaultPurgeTimeInDaysInteger.of_xml)(Xml.childxml_arg0"defaultPurgeTimeInDays")inmake~mode?defaultPurgeTimeInDays()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmode=field_map_exnjson__"mode"AccountingMode.of_jsoninletdefaultPurgeTimeInDays=field_mapjson__"defaultPurgeTimeInDays"AccountingRequestDefaultPurgeTimeInDaysInteger.of_jsoninmake~mode?defaultPurgeTimeInDays()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The accounting configuration includes configurable settings for Slurm accounting. It's a property of the ClusterSlurmConfiguration object."]moduleClusterSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:10000000)>>=(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 ClusterSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleSlurmRestRequest=structtypenonrect={mode:SlurmRestMode.t[@ocaml.doc"The default value for mode is NONE. A value of STANDARD means the Slurm REST API is enabled."]}letcontext_="SlurmRestRequest"letmake~mode=fun()->{mode}letto_valuex=structure_to_value[("mode",(Some(SlurmRestMode.to_valuex.mode)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmode=SlurmRestMode.of_xml(Xml.child_exn~context:context_xml_arg0"mode")inmake~mode()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmode=field_map_exnjson__"mode"SlurmRestMode.of_jsoninmake~mode()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The Slurm REST API configuration includes settings for enabling and configuring the Slurm REST API. It's a property of the ClusterSlurmConfiguration object."]moduleAccessDeniedException=structtypenonrect={message:String_.toption}letmake?message=fun()->{message}letto_valuex=structure_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")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"String_.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"You don't have permission to perform the action. Examples The launch template instance profile doesn't pass iam:PassRole verification. There is a mismatch between the account ID and cluster ID. The cluster ID doesn't exist. The EC2 instance isn't present."]moduleConflictException=structtypenonrect={message:String_.toption;resourceId:String_.toption[@ocaml.doc"The unique identifier of the resource that caused the conflict exception."];resourceType:String_.toption[@ocaml.doc"The type or category of the resource that caused the conflict exception.\""]}letmake?message=fun?resourceId->fun?resourceType->fun()->{message;resourceId;resourceType}letto_valuex=structure_to_value[("message",(Option.mapx.message~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")inletmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inmake?resourceType?resourceId?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceType=field_mapjson__"resourceType"String_.of_jsoninletresourceId=field_mapjson__"resourceId"String_.of_jsoninletmessage=field_mapjson__"message"String_.of_jsoninmake?resourceType?resourceId?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Your request has conflicting operations. This can occur if you're trying to perform more than 1 operation on the same resource at the same time. Examples A cluster with the same name already exists. A cluster isn't in ACTIVE status. A cluster to delete is in an unstable state. For example, because it still has ACTIVE node groups or queues. A queue already exists in a cluster."]moduleInternalServerException=structtypenonrect={message:String_.toption}letmake?message=fun()->{message}letto_valuex=structure_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")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"String_.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"PCS can't process your request right now. Try again later."]moduleQueue=structtypenonrect={name:QueueName.toption[@ocaml.doc"The name that identifies the queue."];id:String_.toption[@ocaml.doc"The generated unique ID of the queue."];arn:String_.toption[@ocaml.doc"The unique Amazon Resource Name (ARN) of the queue."];clusterId:String_.toption[@ocaml.doc"The ID of the cluster of the queue."];createdAt:SyntheticTimestamp_date_time.toption[@ocaml.doc"The date and time the resource was created."];modifiedAt:SyntheticTimestamp_date_time.toption[@ocaml.doc"The date and time the resource was modified."];status:QueueStatus.toption[@ocaml.doc"The provisioning status of the queue. The provisioning status doesn't indicate the overall health of the queue. The resource enters the SUSPENDING and SUSPENDED states when the scheduler is beyond end of life and we have suspended the cluster. When in these states, you can't use the cluster. The cluster controller is down and all compute instances are terminated. The resources still count toward your service quotas. You can delete a resource if its status is SUSPENDED. For more information, see Frequently asked questions about Slurm versions in PCS in the PCS User Guide."];computeNodeGroupConfigurations:ComputeNodeGroupConfigurationList.toption[@ocaml.doc"The list of compute node group configurations associated with the queue. Queues assign jobs to associated compute node groups."];slurmConfiguration:QueueSlurmConfiguration.toption[@ocaml.doc"Additional options related to the Slurm scheduler."];errorInfo:ErrorInfoList.toption[@ocaml.doc"The list of errors that occurred during queue provisioning."]}letmake?name=fun?id->fun?arn->fun?clusterId->fun?createdAt->fun?modifiedAt->fun?status->fun?computeNodeGroupConfigurations->fun?slurmConfiguration->fun?errorInfo->fun()->{name;id;arn;clusterId;createdAt;modifiedAt;status;computeNodeGroupConfigurations;slurmConfiguration;errorInfo}letto_valuex=structure_to_value[("name",(Option.mapx.name~f:QueueName.to_value));("id",(Option.mapx.id~f:String_.to_value));("arn",(Option.mapx.arn~f:String_.to_value));("clusterId",(Option.mapx.clusterId~f:String_.to_value));("createdAt",(Option.mapx.createdAt~f:SyntheticTimestamp_date_time.to_value));("modifiedAt",(Option.mapx.modifiedAt~f:SyntheticTimestamp_date_time.to_value));("status",(Option.mapx.status~f:QueueStatus.to_value));("computeNodeGroupConfigurations",(Option.mapx.computeNodeGroupConfigurations~f:ComputeNodeGroupConfigurationList.to_value));("slurmConfiguration",(Option.mapx.slurmConfiguration~f:QueueSlurmConfiguration.to_value));("errorInfo",(Option.mapx.errorInfo~f:ErrorInfoList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=leterrorInfo=(Option.map~f:ErrorInfoList.of_xml)(Xml.childxml_arg0"errorInfo")inletslurmConfiguration=(Option.map~f:QueueSlurmConfiguration.of_xml)(Xml.childxml_arg0"slurmConfiguration")inletcomputeNodeGroupConfigurations=(Option.map~f:ComputeNodeGroupConfigurationList.of_xml)(Xml.childxml_arg0"computeNodeGroupConfigurations")inletstatus=(Option.map~f:QueueStatus.of_xml)(Xml.childxml_arg0"status")inletmodifiedAt=(Option.map~f:SyntheticTimestamp_date_time.of_xml)(Xml.childxml_arg0"modifiedAt")inletcreatedAt=(Option.map~f:SyntheticTimestamp_date_time.of_xml)(Xml.childxml_arg0"createdAt")inletclusterId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"clusterId")inletarn=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"arn")inletid=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"id")inletname=(Option.map~f:QueueName.of_xml)(Xml.childxml_arg0"name")inmake?errorInfo?slurmConfiguration?computeNodeGroupConfigurations?status?modifiedAt?createdAt?clusterId?arn?id?name()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=leterrorInfo=field_mapjson__"errorInfo"ErrorInfoList.of_jsoninletslurmConfiguration=field_mapjson__"slurmConfiguration"QueueSlurmConfiguration.of_jsoninletcomputeNodeGroupConfigurations=field_mapjson__"computeNodeGroupConfigurations"ComputeNodeGroupConfigurationList.of_jsoninletstatus=field_mapjson__"status"QueueStatus.of_jsoninletmodifiedAt=field_mapjson__"modifiedAt"SyntheticTimestamp_date_time.of_jsoninletcreatedAt=field_mapjson__"createdAt"SyntheticTimestamp_date_time.of_jsoninletclusterId=field_mapjson__"clusterId"String_.of_jsoninletarn=field_mapjson__"arn"String_.of_jsoninletid=field_mapjson__"id"String_.of_jsoninletname=field_mapjson__"name"QueueName.of_jsoninmake?errorInfo?slurmConfiguration?computeNodeGroupConfigurations?status?modifiedAt?createdAt?clusterId?arn?id?name()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A queue resource."]moduleResourceNotFoundException=structtypenonrect={message:String_.toption;resourceId:String_.toption[@ocaml.doc"The unique identifier of the resource that was not found."];resourceType:String_.toption[@ocaml.doc"The type or category of the resource that was not found."]}letmake?message=fun?resourceId->fun?resourceType->fun()->{message;resourceId;resourceType}letto_valuex=structure_to_value[("message",(Option.mapx.message~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")inletmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inmake?resourceType?resourceId?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceType=field_mapjson__"resourceType"String_.of_jsoninletresourceId=field_mapjson__"resourceId"String_.of_jsoninletmessage=field_mapjson__"message"String_.of_jsoninmake?resourceType?resourceId?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The requested resource can't be found. The cluster, node group, or queue you're attempting to get, update, list, or delete doesn't exist. Examples"]moduleServiceQuotaExceededException=structtypenonrect={message:String_.toption;serviceCode:String_.toption[@ocaml.doc"The service code associated with the quota that was exceeded."];resourceId:String_.toption[@ocaml.doc"The unique identifier of the resource that caused the quota to be exceeded."];resourceType:String_.toption[@ocaml.doc"The type or category of the resource that caused the quota to be exceeded."];quotaCode:String_.toption[@ocaml.doc"The quota code of the service quota that was exceeded."]}letmake?message=fun?serviceCode->fun?resourceId->fun?resourceType->fun?quotaCode->fun()->{message;serviceCode;resourceId;resourceType;quotaCode}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:String_.to_value));("serviceCode",(Option.mapx.serviceCode~f:String_.to_value));("resourceId",(Option.mapx.resourceId~f:String_.to_value));("resourceType",(Option.mapx.resourceType~f:String_.to_value));("quotaCode",(Option.mapx.quotaCode~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letquotaCode=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"quotaCode")inletresourceType=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"resourceType")inletresourceId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"resourceId")inletserviceCode=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"serviceCode")inletmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inmake?quotaCode?resourceType?resourceId?serviceCode?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letquotaCode=field_mapjson__"quotaCode"String_.of_jsoninletresourceType=field_mapjson__"resourceType"String_.of_jsoninletresourceId=field_mapjson__"resourceId"String_.of_jsoninletserviceCode=field_mapjson__"serviceCode"String_.of_jsoninletmessage=field_mapjson__"message"String_.of_jsoninmake?quotaCode?resourceType?resourceId?serviceCode?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"You exceeded your service quota. Service quotas, also referred to as limits, are the maximum number of service resources or operations for your Amazon Web Services account. To learn how to increase your service quota, see Requesting a quota increase in the Service Quotas User Guide Examples The max number of clusters or queues has been reached for the account. The max number of compute node groups has been reached for the associated cluster. The total of maxInstances across all compute node groups has been reached for associated cluster."]moduleThrottlingException=structtypenonrect={message:String_.toption;retryAfterSeconds:Integer.toption[@ocaml.doc"The number of seconds to wait before retrying the request."]}letmake?message=fun?retryAfterSeconds->fun()->{message;retryAfterSeconds}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:String_.to_value));("retryAfterSeconds",(Option.mapx.retryAfterSeconds~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letretryAfterSeconds=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"retryAfterSeconds")inletmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inmake?retryAfterSeconds?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letretryAfterSeconds=field_mapjson__"retryAfterSeconds"Integer.of_jsoninletmessage=field_mapjson__"message"String_.of_jsoninmake?retryAfterSeconds?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Your request exceeded a request rate quota. Check the resource's request rate quota and try again."]moduleValidationException=structtypenonrect={message:String_.toption;reason:ValidationExceptionReason.toption[@ocaml.doc"The specific reason or cause of the validation error."];fieldList:ValidationExceptionFieldList.toption[@ocaml.doc"A list of fields or properties that failed validation."]}letmake?message=fun?reason->fun?fieldList->fun()->{message;reason;fieldList}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:String_.to_value));("reason",(Option.mapx.reason~f:ValidationExceptionReason.to_value));("fieldList",(Option.mapx.fieldList~f:ValidationExceptionFieldList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfieldList=(Option.map~f:ValidationExceptionFieldList.of_xml)(Xml.childxml_arg0"fieldList")inletreason=(Option.map~f:ValidationExceptionReason.of_xml)(Xml.childxml_arg0"reason")inletmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inmake?fieldList?reason?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfieldList=field_mapjson__"fieldList"ValidationExceptionFieldList.of_jsoninletreason=field_mapjson__"reason"ValidationExceptionReason.of_jsoninletmessage=field_mapjson__"message"String_.of_jsoninmake?fieldList?reason?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The request isn't valid. Examples Your request contains malformed JSON or unsupported characters. The scheduler version isn't supported. There are networking related errors, such as network validation failure. AMI type is CUSTOM and the launch template doesn't define the AMI ID, or the AMI type is AL2 and the launch template defines the AMI."]moduleClusterIdentifier=structtypenonrect=stringletcontext_="ClusterIdentifier"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"(pcs_[a-zA-Z0-9]+|[A-Za-z][A-Za-z0-9-]{2,40})");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ClusterIdentifier"jletto_json=simple_to_jsonto_valueendmoduleQueueIdentifier=structtypenonrect=stringletcontext_="QueueIdentifier"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"(pcs_[a-zA-Z0-9]+|[A-Za-z][A-Za-z0-9-]{2,25})");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"QueueIdentifier"jletto_json=simple_to_jsonto_valueendmoduleSBClientToken=structtypenonrect=stringletcontext_="SBClientToken"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:100)>>=(fun()->check_string_mini~min:8));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"SBClientToken"jletto_json=simple_to_jsonto_valueendmoduleUpdateQueueSlurmConfigurationRequest=structtypenonrect={slurmCustomSettings:SlurmCustomSettings.toption[@ocaml.doc"Additional Slurm-specific configuration that directly maps to Slurm settings."]}letmake?slurmCustomSettings=fun()->{slurmCustomSettings}letto_valuex=structure_to_value[("slurmCustomSettings",(Option.mapx.slurmCustomSettings~f:SlurmCustomSettings.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letslurmCustomSettings=(Option.map~f:SlurmCustomSettings.of_xml)(Xml.childxml_arg0"slurmCustomSettings")inmake?slurmCustomSettings()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letslurmCustomSettings=field_mapjson__"slurmCustomSettings"SlurmCustomSettings.of_jsoninmake?slurmCustomSettings()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional options related to the Slurm scheduler."]moduleComputeNodeGroup=structtypenonrect={name:ComputeNodeGroupName.toption[@ocaml.doc"The name that identifies the compute node group."];id:String_.toption[@ocaml.doc"The generated unique ID of the compute node group."];arn:String_.toption[@ocaml.doc"The unique Amazon Resource Name (ARN) of the compute node group."];clusterId:String_.toption[@ocaml.doc"The ID of the cluster of the compute node group."];createdAt:SyntheticTimestamp_date_time.toption[@ocaml.doc"The date and time the resource was created."];modifiedAt:SyntheticTimestamp_date_time.toption[@ocaml.doc"The date and time the resource was modified."];status:ComputeNodeGroupStatus.toption[@ocaml.doc"The provisioning status of the compute node group. The provisioning status doesn't indicate the overall health of the compute node group. The resource enters the SUSPENDING and SUSPENDED states when the scheduler is beyond end of life and we have suspended the cluster. When in these states, you can't use the cluster. The cluster controller is down and all compute instances are terminated. The resources still count toward your service quotas. You can delete a resource if its status is SUSPENDED. For more information, see Frequently asked questions about Slurm versions in PCS in the PCS User Guide."];amiId:AmiId.toption[@ocaml.doc"The ID of the Amazon Machine Image (AMI) that PCS uses to launch instances. If not provided, PCS uses the AMI ID specified in the custom launch template."];subnetIds:SubnetIdList.toption[@ocaml.doc"The list of subnet IDs where instances are provisioned by the compute node group. The subnets must be in the same VPC as the cluster."];purchaseOption:PurchaseOption.toption[@ocaml.doc"Specifies how EC2 instances are purchased on your behalf. PCS supports On-Demand Instances, Spot Instances, Interruptible Capacity Reservations, On-Demand Capacity Reservations, and Amazon EC2 Capacity Blocks for ML. For more information, see Amazon EC2 billing and purchasing options in the Amazon Elastic Compute Cloud User Guide. For more information about PCS support for Capacity Blocks, see Using Amazon EC2 Capacity Blocks for ML with PCS in the PCS User Guide. For more information about PCS support for interruptible capacity reservations, see Using I-ODCRs with PCS in the PCS User Guide. Choose On-Demand if you plan to use an On-Demand Capacity Reservation (ODCR). For more information, see Using ODCRs with PCS. If you don't provide this option, it defaults to On-Demand."];customLaunchTemplate:CustomLaunchTemplate.toption;iamInstanceProfileArn:InstanceProfileArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the IAM instance profile used to pass an IAM role when launching EC2 instances. The role contained in your instance profile must have the pcs:RegisterComputeNodeGroupInstance permission and the role name must start with AWSPCS or must have the path /aws-pcs/. For more information, see IAM instance profiles for PCS in the PCS User Guide."];scalingConfiguration:ScalingConfiguration.toption;instanceConfigs:InstanceList.toption[@ocaml.doc"A list of EC2 instance configurations that PCS can provision in the compute node group."];spotOptions:SpotOptions.toption;slurmConfiguration:ComputeNodeGroupSlurmConfiguration.toption;errorInfo:ErrorInfoList.toption[@ocaml.doc"The list of errors that occurred during compute node group provisioning."]}letmake?name=fun?id->fun?arn->fun?clusterId->fun?createdAt->fun?modifiedAt->fun?status->fun?amiId->fun?subnetIds->fun?purchaseOption->fun?customLaunchTemplate->fun?iamInstanceProfileArn->fun?scalingConfiguration->fun?instanceConfigs->fun?spotOptions->fun?slurmConfiguration->fun?errorInfo->fun()->{name;id;arn;clusterId;createdAt;modifiedAt;status;amiId;subnetIds;purchaseOption;customLaunchTemplate;iamInstanceProfileArn;scalingConfiguration;instanceConfigs;spotOptions;slurmConfiguration;errorInfo}letto_valuex=structure_to_value[("name",(Option.mapx.name~f:ComputeNodeGroupName.to_value));("id",(Option.mapx.id~f:String_.to_value));("arn",(Option.mapx.arn~f:String_.to_value));("clusterId",(Option.mapx.clusterId~f:String_.to_value));("createdAt",(Option.mapx.createdAt~f:SyntheticTimestamp_date_time.to_value));("modifiedAt",(Option.mapx.modifiedAt~f:SyntheticTimestamp_date_time.to_value));("status",(Option.mapx.status~f:ComputeNodeGroupStatus.to_value));("amiId",(Option.mapx.amiId~f:AmiId.to_value));("subnetIds",(Option.mapx.subnetIds~f:SubnetIdList.to_value));("purchaseOption",(Option.mapx.purchaseOption~f:PurchaseOption.to_value));("customLaunchTemplate",(Option.mapx.customLaunchTemplate~f:CustomLaunchTemplate.to_value));("iamInstanceProfileArn",(Option.mapx.iamInstanceProfileArn~f:InstanceProfileArn.to_value));("scalingConfiguration",(Option.mapx.scalingConfiguration~f:ScalingConfiguration.to_value));("instanceConfigs",(Option.mapx.instanceConfigs~f:InstanceList.to_value));("spotOptions",(Option.mapx.spotOptions~f:SpotOptions.to_value));("slurmConfiguration",(Option.mapx.slurmConfiguration~f:ComputeNodeGroupSlurmConfiguration.to_value));("errorInfo",(Option.mapx.errorInfo~f:ErrorInfoList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=leterrorInfo=(Option.map~f:ErrorInfoList.of_xml)(Xml.childxml_arg0"errorInfo")inletslurmConfiguration=(Option.map~f:ComputeNodeGroupSlurmConfiguration.of_xml)(Xml.childxml_arg0"slurmConfiguration")inletspotOptions=(Option.map~f:SpotOptions.of_xml)(Xml.childxml_arg0"spotOptions")inletinstanceConfigs=(Option.map~f:InstanceList.of_xml)(Xml.childxml_arg0"instanceConfigs")inletscalingConfiguration=(Option.map~f:ScalingConfiguration.of_xml)(Xml.childxml_arg0"scalingConfiguration")inletiamInstanceProfileArn=(Option.map~f:InstanceProfileArn.of_xml)(Xml.childxml_arg0"iamInstanceProfileArn")inletcustomLaunchTemplate=(Option.map~f:CustomLaunchTemplate.of_xml)(Xml.childxml_arg0"customLaunchTemplate")inletpurchaseOption=(Option.map~f:PurchaseOption.of_xml)(Xml.childxml_arg0"purchaseOption")inletsubnetIds=(Option.map~f:SubnetIdList.of_xml)(Xml.childxml_arg0"subnetIds")inletamiId=(Option.map~f:AmiId.of_xml)(Xml.childxml_arg0"amiId")inletstatus=(Option.map~f:ComputeNodeGroupStatus.of_xml)(Xml.childxml_arg0"status")inletmodifiedAt=(Option.map~f:SyntheticTimestamp_date_time.of_xml)(Xml.childxml_arg0"modifiedAt")inletcreatedAt=(Option.map~f:SyntheticTimestamp_date_time.of_xml)(Xml.childxml_arg0"createdAt")inletclusterId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"clusterId")inletarn=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"arn")inletid=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"id")inletname=(Option.map~f:ComputeNodeGroupName.of_xml)(Xml.childxml_arg0"name")inmake?errorInfo?slurmConfiguration?spotOptions?instanceConfigs?scalingConfiguration?iamInstanceProfileArn?customLaunchTemplate?purchaseOption?subnetIds?amiId?status?modifiedAt?createdAt?clusterId?arn?id?name()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=leterrorInfo=field_mapjson__"errorInfo"ErrorInfoList.of_jsoninletslurmConfiguration=field_mapjson__"slurmConfiguration"ComputeNodeGroupSlurmConfiguration.of_jsoninletspotOptions=field_mapjson__"spotOptions"SpotOptions.of_jsoninletinstanceConfigs=field_mapjson__"instanceConfigs"InstanceList.of_jsoninletscalingConfiguration=field_mapjson__"scalingConfiguration"ScalingConfiguration.of_jsoninletiamInstanceProfileArn=field_mapjson__"iamInstanceProfileArn"InstanceProfileArn.of_jsoninletcustomLaunchTemplate=field_mapjson__"customLaunchTemplate"CustomLaunchTemplate.of_jsoninletpurchaseOption=field_mapjson__"purchaseOption"PurchaseOption.of_jsoninletsubnetIds=field_mapjson__"subnetIds"SubnetIdList.of_jsoninletamiId=field_mapjson__"amiId"AmiId.of_jsoninletstatus=field_mapjson__"status"ComputeNodeGroupStatus.of_jsoninletmodifiedAt=field_mapjson__"modifiedAt"SyntheticTimestamp_date_time.of_jsoninletcreatedAt=field_mapjson__"createdAt"SyntheticTimestamp_date_time.of_jsoninletclusterId=field_mapjson__"clusterId"String_.of_jsoninletarn=field_mapjson__"arn"String_.of_jsoninletid=field_mapjson__"id"String_.of_jsoninletname=field_mapjson__"name"ComputeNodeGroupName.of_jsoninmake?errorInfo?slurmConfiguration?spotOptions?instanceConfigs?scalingConfiguration?iamInstanceProfileArn?customLaunchTemplate?purchaseOption?subnetIds?amiId?status?modifiedAt?createdAt?clusterId?arn?id?name()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A compute node group associated with a cluster."]moduleComputeNodeGroupIdentifier=structtypenonrect=stringletcontext_="ComputeNodeGroupIdentifier"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"(pcs_[a-zA-Z0-9]+|[A-Za-z][A-Za-z0-9-]{2,25})");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ComputeNodeGroupIdentifier"jletto_json=simple_to_jsonto_valueendmoduleScalingConfigurationRequest=structtypenonrect={minInstanceCount:ScalingConfigurationRequestMinInstanceCountInteger.t[@ocaml.doc"The lower bound of the number of instances allowed in the compute fleet."];maxInstanceCount:ScalingConfigurationRequestMaxInstanceCountInteger.t[@ocaml.doc"The upper bound of the number of instances allowed in the compute fleet."]}letcontext_="ScalingConfigurationRequest"letmake~minInstanceCount=fun~maxInstanceCount->fun()->{minInstanceCount;maxInstanceCount}letto_valuex=structure_to_value[("minInstanceCount",(Some(ScalingConfigurationRequestMinInstanceCountInteger.to_valuex.minInstanceCount)));("maxInstanceCount",(Some(ScalingConfigurationRequestMaxInstanceCountInteger.to_valuex.maxInstanceCount)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmaxInstanceCount=ScalingConfigurationRequestMaxInstanceCountInteger.of_xml(Xml.child_exn~context:context_xml_arg0"maxInstanceCount")inletminInstanceCount=ScalingConfigurationRequestMinInstanceCountInteger.of_xml(Xml.child_exn~context:context_xml_arg0"minInstanceCount")inmake~maxInstanceCount~minInstanceCount()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmaxInstanceCount=field_map_exnjson__"maxInstanceCount"ScalingConfigurationRequestMaxInstanceCountInteger.of_jsoninletminInstanceCount=field_map_exnjson__"minInstanceCount"ScalingConfigurationRequestMinInstanceCountInteger.of_jsoninmake~maxInstanceCount~minInstanceCount()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Specifies the boundaries of the compute node group auto scaling."]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_valuevendmoduleUpdateComputeNodeGroupSlurmConfigurationRequest=structtypenonrect={slurmCustomSettings:SlurmCustomSettings.toption[@ocaml.doc"Additional Slurm-specific configuration that directly maps to Slurm settings."]}letmake?slurmCustomSettings=fun()->{slurmCustomSettings}letto_valuex=structure_to_value[("slurmCustomSettings",(Option.mapx.slurmCustomSettings~f:SlurmCustomSettings.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letslurmCustomSettings=(Option.map~f:SlurmCustomSettings.of_xml)(Xml.childxml_arg0"slurmCustomSettings")inmake?slurmCustomSettings()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letslurmCustomSettings=field_mapjson__"slurmCustomSettings"SlurmCustomSettings.of_jsoninmake?slurmCustomSettings()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional options related to the Slurm scheduler."]moduleCluster=structtypenonrect={name:String_.toption[@ocaml.doc"The name that identifies the cluster."];id:String_.toption[@ocaml.doc"The generated unique ID of the cluster."];arn:String_.toption[@ocaml.doc"The unique Amazon Resource Name (ARN) of the cluster."];status:ClusterStatus.toption[@ocaml.doc"The provisioning status of the cluster. The provisioning status doesn't indicate the overall health of the cluster. The resource enters the SUSPENDING and SUSPENDED states when the scheduler is beyond end of life and we have suspended the cluster. When in these states, you can't use the cluster. The cluster controller is down and all compute instances are terminated. The resources still count toward your service quotas. You can delete a resource if its status is SUSPENDED. For more information, see Frequently asked questions about Slurm versions in PCS in the PCS User Guide."];createdAt:SyntheticTimestamp_date_time.toption[@ocaml.doc"The date and time the resource was created."];modifiedAt:SyntheticTimestamp_date_time.toption[@ocaml.doc"The date and time the resource was modified."];scheduler:Scheduler.toption;size:Size.toption[@ocaml.doc"The size of the cluster. SMALL: 32 compute nodes and 256 jobs MEDIUM: 512 compute nodes and 8192 jobs LARGE: 2048 compute nodes and 16,384 jobs"];slurmConfiguration:ClusterSlurmConfiguration.toption[@ocaml.doc"Additional options related to the Slurm scheduler."];networking:Networking.toption;endpoints:Endpoints.toption[@ocaml.doc"The list of endpoints available for interaction with the scheduler."];errorInfo:ErrorInfoList.toption[@ocaml.doc"The list of errors that occurred during cluster provisioning."]}letmake?name=fun?id->fun?arn->fun?status->fun?createdAt->fun?modifiedAt->fun?scheduler->fun?size->fun?slurmConfiguration->fun?networking->fun?endpoints->fun?errorInfo->fun()->{name;id;arn;status;createdAt;modifiedAt;scheduler;size;slurmConfiguration;networking;endpoints;errorInfo}letto_valuex=structure_to_value[("name",(Option.mapx.name~f:String_.to_value));("id",(Option.mapx.id~f:String_.to_value));("arn",(Option.mapx.arn~f:String_.to_value));("status",(Option.mapx.status~f:ClusterStatus.to_value));("createdAt",(Option.mapx.createdAt~f:SyntheticTimestamp_date_time.to_value));("modifiedAt",(Option.mapx.modifiedAt~f:SyntheticTimestamp_date_time.to_value));("scheduler",(Option.mapx.scheduler~f:Scheduler.to_value));("size",(Option.mapx.size~f:Size.to_value));("slurmConfiguration",(Option.mapx.slurmConfiguration~f:ClusterSlurmConfiguration.to_value));("networking",(Option.mapx.networking~f:Networking.to_value));("endpoints",(Option.mapx.endpoints~f:Endpoints.to_value));("errorInfo",(Option.mapx.errorInfo~f:ErrorInfoList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=leterrorInfo=(Option.map~f:ErrorInfoList.of_xml)(Xml.childxml_arg0"errorInfo")inletendpoints=(Option.map~f:Endpoints.of_xml)(Xml.childxml_arg0"endpoints")inletnetworking=(Option.map~f:Networking.of_xml)(Xml.childxml_arg0"networking")inletslurmConfiguration=(Option.map~f:ClusterSlurmConfiguration.of_xml)(Xml.childxml_arg0"slurmConfiguration")inletsize=(Option.map~f:Size.of_xml)(Xml.childxml_arg0"size")inletscheduler=(Option.map~f:Scheduler.of_xml)(Xml.childxml_arg0"scheduler")inletmodifiedAt=(Option.map~f:SyntheticTimestamp_date_time.of_xml)(Xml.childxml_arg0"modifiedAt")inletcreatedAt=(Option.map~f:SyntheticTimestamp_date_time.of_xml)(Xml.childxml_arg0"createdAt")inletstatus=(Option.map~f:ClusterStatus.of_xml)(Xml.childxml_arg0"status")inletarn=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"arn")inletid=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"id")inletname=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"name")inmake?errorInfo?endpoints?networking?slurmConfiguration?size?scheduler?modifiedAt?createdAt?status?arn?id?name()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=leterrorInfo=field_mapjson__"errorInfo"ErrorInfoList.of_jsoninletendpoints=field_mapjson__"endpoints"Endpoints.of_jsoninletnetworking=field_mapjson__"networking"Networking.of_jsoninletslurmConfiguration=field_mapjson__"slurmConfiguration"ClusterSlurmConfiguration.of_jsoninletsize=field_mapjson__"size"Size.of_jsoninletscheduler=field_mapjson__"scheduler"Scheduler.of_jsoninletmodifiedAt=field_mapjson__"modifiedAt"SyntheticTimestamp_date_time.of_jsoninletcreatedAt=field_mapjson__"createdAt"SyntheticTimestamp_date_time.of_jsoninletstatus=field_mapjson__"status"ClusterStatus.of_jsoninletarn=field_mapjson__"arn"String_.of_jsoninletid=field_mapjson__"id"String_.of_jsoninletname=field_mapjson__"name"String_.of_jsoninmake?errorInfo?endpoints?networking?slurmConfiguration?size?scheduler?modifiedAt?createdAt?status?arn?id?name()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The cluster resource and configuration."]moduleUpdateClusterSlurmConfigurationRequest=structtypenonrect={scaleDownIdleTimeInSeconds:UpdateClusterSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger.toption[@ocaml.doc"The time (in seconds) before an idle node is scaled down. Default: 600"];slurmCustomSettings:SlurmCustomSettings.toption[@ocaml.doc"Additional Slurm-specific configuration that directly maps to Slurm settings."];slurmdbdCustomSettings:SlurmdbdCustomSettings.toption[@ocaml.doc"Additional SlurmDBD-specific configuration that directly maps to SlurmDBD settings."];cgroupCustomSettings:CgroupCustomSettings.toption[@ocaml.doc"Additional Cgroup-specific configuration that directly maps to Cgroup settings."];accounting:UpdateAccountingRequest.toption[@ocaml.doc"The accounting configuration includes configurable settings for Slurm accounting."];slurmRest:UpdateSlurmRestRequest.toption[@ocaml.doc"The Slurm REST API configuration for the cluster."]}letmake?scaleDownIdleTimeInSeconds=fun?slurmCustomSettings->fun?slurmdbdCustomSettings->fun?cgroupCustomSettings->fun?accounting->fun?slurmRest->fun()->{scaleDownIdleTimeInSeconds;slurmCustomSettings;slurmdbdCustomSettings;cgroupCustomSettings;accounting;slurmRest}letto_valuex=structure_to_value[("scaleDownIdleTimeInSeconds",(Option.mapx.scaleDownIdleTimeInSeconds~f:UpdateClusterSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger.to_value));("slurmCustomSettings",(Option.mapx.slurmCustomSettings~f:SlurmCustomSettings.to_value));("slurmdbdCustomSettings",(Option.mapx.slurmdbdCustomSettings~f:SlurmdbdCustomSettings.to_value));("cgroupCustomSettings",(Option.mapx.cgroupCustomSettings~f:CgroupCustomSettings.to_value));("accounting",(Option.mapx.accounting~f:UpdateAccountingRequest.to_value));("slurmRest",(Option.mapx.slurmRest~f:UpdateSlurmRestRequest.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letslurmRest=(Option.map~f:UpdateSlurmRestRequest.of_xml)(Xml.childxml_arg0"slurmRest")inletaccounting=(Option.map~f:UpdateAccountingRequest.of_xml)(Xml.childxml_arg0"accounting")inletcgroupCustomSettings=(Option.map~f:CgroupCustomSettings.of_xml)(Xml.childxml_arg0"cgroupCustomSettings")inletslurmdbdCustomSettings=(Option.map~f:SlurmdbdCustomSettings.of_xml)(Xml.childxml_arg0"slurmdbdCustomSettings")inletslurmCustomSettings=(Option.map~f:SlurmCustomSettings.of_xml)(Xml.childxml_arg0"slurmCustomSettings")inletscaleDownIdleTimeInSeconds=(Option.map~f:UpdateClusterSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger.of_xml)(Xml.childxml_arg0"scaleDownIdleTimeInSeconds")inmake?slurmRest?accounting?cgroupCustomSettings?slurmdbdCustomSettings?slurmCustomSettings?scaleDownIdleTimeInSeconds()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letslurmRest=field_mapjson__"slurmRest"UpdateSlurmRestRequest.of_jsoninletaccounting=field_mapjson__"accounting"UpdateAccountingRequest.of_jsoninletcgroupCustomSettings=field_mapjson__"cgroupCustomSettings"CgroupCustomSettings.of_jsoninletslurmdbdCustomSettings=field_mapjson__"slurmdbdCustomSettings"SlurmdbdCustomSettings.of_jsoninletslurmCustomSettings=field_mapjson__"slurmCustomSettings"SlurmCustomSettings.of_jsoninletscaleDownIdleTimeInSeconds=field_mapjson__"scaleDownIdleTimeInSeconds"UpdateClusterSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger.of_jsoninmake?slurmRest?accounting?cgroupCustomSettings?slurmdbdCustomSettings?slurmCustomSettings?scaleDownIdleTimeInSeconds()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional options related to the Slurm scheduler."]moduleArn=structtypenonrect=stringletcontext_="Arn"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:1011)>>=(fun()->check_patterni~pattern:"arn:aws.*:pcs:.*:[0-9]{12}:.*/[a-z0-9_\\-]+")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"Arn"jletto_json=simple_to_jsonto_valueendmoduleTagKeys=structtypenonrect=TagKey.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:200)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:TagKey.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:TagKey.of_xml)letof_jsonj=list_of_json~kind:"TagKeys"~of_json:TagKey.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleRequestTagMap=structtypenonrect=(TagKey.t*TagValue.t)listletmakei=letopenResultinok_or_failwith((check_list_maxi~max:200)>>=(fun()->check_list_mini~min:1));iletof_headerxs=make(List.filter_mapxs~f:(fun(k,v)->(Base.String.chop_prefixk~prefix:"x-amz-meta-")|>(Option.map~f:(funchopped->((TagKey.of_stringchopped),(TagValue.of_stringv))))))letto_valuexs=(xs|>(List.map~f:(fun(x,y)->(TagKey.to_valuex)|>(funx->(TagValue.to_valuey)|>(funy->(x,y))))))|>(funx->`Mapx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for Map_shape objects"()letof_xml_=failwith"of_xml_converter_of_shape: Map_shape case not implemented"letof_jsonj=object_of_json~key_of_string:TagKey.of_string~of_json:TagValue.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleSharedSecret=structtypenonrect=stringletcontext_="SharedSecret"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:"SharedSecret"jletto_json=simple_to_jsonto_valueendmoduleBootstrapId=structtypenonrect=stringletcontext_="BootstrapId"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:1000)>>=(fun()->check_patterni~pattern:"[\\S]+")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"BootstrapId"jletto_json=simple_to_jsonto_valueendmoduleResponseTagMap=structtypenonrect=(TagKey.t*TagValue.t)listletmakei=iletof_headerxs=make(List.filter_mapxs~f:(fun(k,v)->(Base.String.chop_prefixk~prefix:"x-amz-meta-")|>(Option.map~f:(funchopped->((TagKey.of_stringchopped),(TagValue.of_stringv))))))letto_valuexs=(xs|>(List.map~f:(fun(x,y)->(TagKey.to_valuex)|>(funx->(TagValue.to_valuey)|>(funy->(x,y))))))|>(funx->`Mapx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for Map_shape objects"()letof_xml_=failwith"of_xml_converter_of_shape: Map_shape case not implemented"letof_jsonj=object_of_json~key_of_string:TagKey.of_string~of_json:TagValue.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleQueueList=structtypenonrect=QueueSummary.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:QueueSummary.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:QueueSummary.of_xml)letof_jsonj=list_of_json~kind:"QueueList"~of_json:QueueSummary.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleMaxResults=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:100)>>=(fun()->check_int_mini~min:1));iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for MaxResults"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleComputeNodeGroupList=structtypenonrect=ComputeNodeGroupSummary.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ComputeNodeGroupSummary.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:ComputeNodeGroupSummary.of_xml)letof_jsonj=list_of_json~kind:"ComputeNodeGroupList"~of_json:ComputeNodeGroupSummary.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleClusterList=structtypenonrect=ClusterSummary.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ClusterSummary.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:ClusterSummary.of_xml)letof_jsonj=list_of_json~kind:"ClusterList"~of_json:ClusterSummary.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleQueueSlurmConfigurationRequest=structtypenonrect={slurmCustomSettings:SlurmCustomSettings.toption[@ocaml.doc"Additional Slurm-specific configuration that directly maps to Slurm settings."]}letmake?slurmCustomSettings=fun()->{slurmCustomSettings}letto_valuex=structure_to_value[("slurmCustomSettings",(Option.mapx.slurmCustomSettings~f:SlurmCustomSettings.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letslurmCustomSettings=(Option.map~f:SlurmCustomSettings.of_xml)(Xml.childxml_arg0"slurmCustomSettings")inmake?slurmCustomSettings()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letslurmCustomSettings=field_mapjson__"slurmCustomSettings"SlurmCustomSettings.of_jsoninmake?slurmCustomSettings()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional options related to the Slurm scheduler."]moduleComputeNodeGroupSlurmConfigurationRequest=structtypenonrect={slurmCustomSettings:SlurmCustomSettings.toption[@ocaml.doc"Additional Slurm-specific configuration that directly maps to Slurm settings."]}letmake?slurmCustomSettings=fun()->{slurmCustomSettings}letto_valuex=structure_to_value[("slurmCustomSettings",(Option.mapx.slurmCustomSettings~f:SlurmCustomSettings.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letslurmCustomSettings=(Option.map~f:SlurmCustomSettings.of_xml)(Xml.childxml_arg0"slurmCustomSettings")inmake?slurmCustomSettings()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letslurmCustomSettings=field_mapjson__"slurmCustomSettings"SlurmCustomSettings.of_jsoninmake?slurmCustomSettings()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional options related to the Slurm scheduler."]moduleClusterName=structtypenonrect=stringletcontext_="ClusterName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:3)>>=(fun()->(check_string_maxi~max:40)>>=(fun()->check_patterni~pattern:"(?!pcs_)^[A-Za-z][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:"ClusterName"jletto_json=simple_to_jsonto_valueendmoduleClusterSlurmConfigurationRequest=structtypenonrect={scaleDownIdleTimeInSeconds:ClusterSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger.toption[@ocaml.doc"The time (in seconds) before an idle node is scaled down. Default: 600"];slurmCustomSettings:SlurmCustomSettings.toption[@ocaml.doc"Additional Slurm-specific configuration that directly maps to Slurm settings."];slurmdbdCustomSettings:SlurmdbdCustomSettings.toption[@ocaml.doc"Additional SlurmDBD-specific configuration that directly maps to SlurmDBD settings."];cgroupCustomSettings:CgroupCustomSettings.toption[@ocaml.doc"Additional Cgroup-specific configuration that directly maps to Cgroup settings."];accounting:AccountingRequest.toption[@ocaml.doc"The accounting configuration includes configurable settings for Slurm accounting."];slurmRest:SlurmRestRequest.toption[@ocaml.doc"The Slurm REST API configuration for the cluster."]}letmake?scaleDownIdleTimeInSeconds=fun?slurmCustomSettings->fun?slurmdbdCustomSettings->fun?cgroupCustomSettings->fun?accounting->fun?slurmRest->fun()->{scaleDownIdleTimeInSeconds;slurmCustomSettings;slurmdbdCustomSettings;cgroupCustomSettings;accounting;slurmRest}letto_valuex=structure_to_value[("scaleDownIdleTimeInSeconds",(Option.mapx.scaleDownIdleTimeInSeconds~f:ClusterSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger.to_value));("slurmCustomSettings",(Option.mapx.slurmCustomSettings~f:SlurmCustomSettings.to_value));("slurmdbdCustomSettings",(Option.mapx.slurmdbdCustomSettings~f:SlurmdbdCustomSettings.to_value));("cgroupCustomSettings",(Option.mapx.cgroupCustomSettings~f:CgroupCustomSettings.to_value));("accounting",(Option.mapx.accounting~f:AccountingRequest.to_value));("slurmRest",(Option.mapx.slurmRest~f:SlurmRestRequest.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letslurmRest=(Option.map~f:SlurmRestRequest.of_xml)(Xml.childxml_arg0"slurmRest")inletaccounting=(Option.map~f:AccountingRequest.of_xml)(Xml.childxml_arg0"accounting")inletcgroupCustomSettings=(Option.map~f:CgroupCustomSettings.of_xml)(Xml.childxml_arg0"cgroupCustomSettings")inletslurmdbdCustomSettings=(Option.map~f:SlurmdbdCustomSettings.of_xml)(Xml.childxml_arg0"slurmdbdCustomSettings")inletslurmCustomSettings=(Option.map~f:SlurmCustomSettings.of_xml)(Xml.childxml_arg0"slurmCustomSettings")inletscaleDownIdleTimeInSeconds=(Option.map~f:ClusterSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger.of_xml)(Xml.childxml_arg0"scaleDownIdleTimeInSeconds")inmake?slurmRest?accounting?cgroupCustomSettings?slurmdbdCustomSettings?slurmCustomSettings?scaleDownIdleTimeInSeconds()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letslurmRest=field_mapjson__"slurmRest"SlurmRestRequest.of_jsoninletaccounting=field_mapjson__"accounting"AccountingRequest.of_jsoninletcgroupCustomSettings=field_mapjson__"cgroupCustomSettings"CgroupCustomSettings.of_jsoninletslurmdbdCustomSettings=field_mapjson__"slurmdbdCustomSettings"SlurmdbdCustomSettings.of_jsoninletslurmCustomSettings=field_mapjson__"slurmCustomSettings"SlurmCustomSettings.of_jsoninletscaleDownIdleTimeInSeconds=field_mapjson__"scaleDownIdleTimeInSeconds"ClusterSlurmConfigurationRequestScaleDownIdleTimeInSecondsInteger.of_jsoninmake?slurmRest?accounting?cgroupCustomSettings?slurmdbdCustomSettings?slurmCustomSettings?scaleDownIdleTimeInSeconds()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional options related to the Slurm scheduler."]moduleNetworkingRequest=structtypenonrect={subnetIds:SubnetIdList.toption[@ocaml.doc"The list of subnet IDs where PCS creates an Elastic Network Interface (ENI) to enable communication between managed controllers and PCS resources. Subnet IDs have the form subnet-0123456789abcdef0. Subnets can't be in Outposts, Wavelength or an Amazon Web Services Local Zone. PCS currently supports only 1 subnet in this list."];securityGroupIds:SecurityGroupIdList.toption[@ocaml.doc"A list of security group IDs associated with the Elastic Network Interface (ENI) created in subnets."];networkType:NetworkType.toption[@ocaml.doc"The IP address version the cluster uses. The default is IPV4."]}letmake?subnetIds=fun?securityGroupIds->fun?networkType->fun()->{subnetIds;securityGroupIds;networkType}letto_valuex=structure_to_value[("subnetIds",(Option.mapx.subnetIds~f:SubnetIdList.to_value));("securityGroupIds",(Option.mapx.securityGroupIds~f:SecurityGroupIdList.to_value));("networkType",(Option.mapx.networkType~f:NetworkType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnetworkType=(Option.map~f:NetworkType.of_xml)(Xml.childxml_arg0"networkType")inletsecurityGroupIds=(Option.map~f:SecurityGroupIdList.of_xml)(Xml.childxml_arg0"securityGroupIds")inletsubnetIds=(Option.map~f:SubnetIdList.of_xml)(Xml.childxml_arg0"subnetIds")inmake?networkType?securityGroupIds?subnetIds()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnetworkType=field_mapjson__"networkType"NetworkType.of_jsoninletsecurityGroupIds=field_mapjson__"securityGroupIds"SecurityGroupIdList.of_jsoninletsubnetIds=field_mapjson__"subnetIds"SubnetIdList.of_jsoninmake?networkType?securityGroupIds?subnetIds()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The networking configuration for the cluster's control plane."]moduleSchedulerRequest=structtypenonrect={type_:SchedulerType.t[@ocaml.doc"The software PCS uses to manage cluster scaling and job scheduling."];version:String_.t[@ocaml.doc"The version of the specified scheduling software that PCS uses to manage cluster scaling and job scheduling. For more information, see Slurm versions in PCS in the PCS User Guide. Valid Values: 24.11 | 25.05 | 25.11"]}letcontext_="SchedulerRequest"letmake~type_=fun~version->fun()->{type_;version}letto_valuex=structure_to_value[("type",(Some(SchedulerType.to_valuex.type_)));("version",(Some(String_.to_valuex.version)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letversion=String_.of_xml(Xml.child_exn~context:context_xml_arg0"version")inlettype_=SchedulerType.of_xml(Xml.child_exn~context:context_xml_arg0"type")inmake~version~type_()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letversion=field_map_exnjson__"version"String_.of_jsoninlettype_=field_map_exnjson__"type"SchedulerType.of_jsoninmake~version~type_()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The cluster management and job scheduling software associated with the cluster."]moduleUpdateQueueResponse=structtypenonrect={queue:Queue.toption}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?queue=fun()->{queue}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceQuotaExceededExceptione->`Assoc[("error",(`String"ServiceQuotaExceededException"));("details",(ServiceQuotaExceededException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("queue",(Option.mapx.queue~f:Queue.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letqueue=(Option.map~f:Queue.of_xml)(Xml.childxml_arg0"queue")inmake?queue()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letqueue=field_mapjson__"queue"Queue.of_jsoninmake?queue()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates the compute node group configuration of a queue. Use this API to change the compute node groups that the queue can send jobs to."]moduleUpdateQueueRequest=structtypenonrect={clusterIdentifier:ClusterIdentifier.t[@ocaml.doc"The name or ID of the cluster of the queue."];queueIdentifier:QueueIdentifier.t[@ocaml.doc"The name or ID of the queue."];computeNodeGroupConfigurations:ComputeNodeGroupConfigurationList.toption[@ocaml.doc"The list of compute node group configurations to associate with the queue. Queues assign jobs to associated compute node groups."];slurmConfiguration:UpdateQueueSlurmConfigurationRequest.toption[@ocaml.doc"Additional options related to the Slurm scheduler."];clientToken:SBClientToken.toption[@ocaml.doc"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate 1 for you."]}letcontext_="UpdateQueueRequest"letmake?computeNodeGroupConfigurations=fun?slurmConfiguration->fun?clientToken->fun~clusterIdentifier->fun~queueIdentifier->fun()->{computeNodeGroupConfigurations;slurmConfiguration;clientToken;clusterIdentifier;queueIdentifier}letto_valuex=structure_to_value[("clusterIdentifier",(Some(ClusterIdentifier.to_valuex.clusterIdentifier)));("queueIdentifier",(Some(QueueIdentifier.to_valuex.queueIdentifier)));("computeNodeGroupConfigurations",(Option.mapx.computeNodeGroupConfigurations~f:ComputeNodeGroupConfigurationList.to_value));("slurmConfiguration",(Option.mapx.slurmConfiguration~f:UpdateQueueSlurmConfigurationRequest.to_value));("clientToken",(Option.mapx.clientToken~f:SBClientToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letclientToken=(Option.map~f:SBClientToken.of_xml)(Xml.childxml_arg0"clientToken")inletslurmConfiguration=(Option.map~f:UpdateQueueSlurmConfigurationRequest.of_xml)(Xml.childxml_arg0"slurmConfiguration")inletcomputeNodeGroupConfigurations=(Option.map~f:ComputeNodeGroupConfigurationList.of_xml)(Xml.childxml_arg0"computeNodeGroupConfigurations")inletqueueIdentifier=QueueIdentifier.of_xml(Xml.child_exn~context:context_xml_arg0"queueIdentifier")inletclusterIdentifier=ClusterIdentifier.of_xml(Xml.child_exn~context:context_xml_arg0"clusterIdentifier")inmake?clientToken?slurmConfiguration?computeNodeGroupConfigurations~queueIdentifier~clusterIdentifier()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letclientToken=field_mapjson__"clientToken"SBClientToken.of_jsoninletslurmConfiguration=field_mapjson__"slurmConfiguration"UpdateQueueSlurmConfigurationRequest.of_jsoninletcomputeNodeGroupConfigurations=field_mapjson__"computeNodeGroupConfigurations"ComputeNodeGroupConfigurationList.of_jsoninletqueueIdentifier=field_map_exnjson__"queueIdentifier"QueueIdentifier.of_jsoninletclusterIdentifier=field_map_exnjson__"clusterIdentifier"ClusterIdentifier.of_jsoninmake?clientToken?slurmConfiguration?computeNodeGroupConfigurations~queueIdentifier~clusterIdentifier()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates the compute node group configuration of a queue. Use this API to change the compute node groups that the queue can send jobs to."]moduleUpdateComputeNodeGroupResponse=structtypenonrect={computeNodeGroup:ComputeNodeGroup.toption}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?computeNodeGroup=fun()->{computeNodeGroup}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceQuotaExceededExceptione->`Assoc[("error",(`String"ServiceQuotaExceededException"));("details",(ServiceQuotaExceededException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("computeNodeGroup",(Option.mapx.computeNodeGroup~f:ComputeNodeGroup.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcomputeNodeGroup=(Option.map~f:ComputeNodeGroup.of_xml)(Xml.childxml_arg0"computeNodeGroup")inmake?computeNodeGroup()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcomputeNodeGroup=field_mapjson__"computeNodeGroup"ComputeNodeGroup.of_jsoninmake?computeNodeGroup()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates a compute node group. You can update many of the fields related to your compute node group including the configurations for networking, compute nodes, and settings specific to your scheduler (such as Slurm)."]moduleUpdateComputeNodeGroupRequest=structtypenonrect={clusterIdentifier:ClusterIdentifier.t[@ocaml.doc"The name or ID of the cluster of the compute node group."];computeNodeGroupIdentifier:ComputeNodeGroupIdentifier.t[@ocaml.doc"The name or ID of the compute node group."];amiId:AmiId.toption[@ocaml.doc"The ID of the Amazon Machine Image (AMI) that PCS uses to launch instances. If not provided, PCS uses the AMI ID specified in the custom launch template."];subnetIds:StringList.toption[@ocaml.doc"The list of subnet IDs where the compute node group provisions instances. The subnets must be in the same VPC as the cluster."];customLaunchTemplate:CustomLaunchTemplate.toption;purchaseOption:PurchaseOption.toption[@ocaml.doc"Specifies how EC2 instances are purchased on your behalf. PCS supports On-Demand Instances, Spot Instances, Interruptible Capacity Reservations, On-Demand Capacity Reservations, and Amazon EC2 Capacity Blocks for ML. For more information, see Amazon EC2 billing and purchasing options in the Amazon Elastic Compute Cloud User Guide. For more information about PCS support for Capacity Blocks, see Using Amazon EC2 Capacity Blocks for ML with PCS in the PCS User Guide. For more information about PCS support for interruptible capacity reservations, see Using I-ODCRs with PCS in the PCS User Guide. Choose On-Demand if you plan to use an On-Demand Capacity Reservation (ODCR). For more information, see Using ODCRs with PCS. If you don't provide this option, it defaults to On-Demand."];spotOptions:SpotOptions.toption;scalingConfiguration:ScalingConfigurationRequest.toption[@ocaml.doc"Specifies the boundaries of the compute node group auto scaling."];iamInstanceProfileArn:InstanceProfileArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the IAM instance profile used to pass an IAM role when launching EC2 instances. The role contained in your instance profile must have the pcs:RegisterComputeNodeGroupInstance permission and the role name must start with AWSPCS or must have the path /aws-pcs/. For more information, see IAM instance profiles for PCS in the PCS User Guide."];slurmConfiguration:UpdateComputeNodeGroupSlurmConfigurationRequest.toption[@ocaml.doc"Additional options related to the Slurm scheduler."];clientToken:SBClientToken.toption[@ocaml.doc"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate 1 for you."]}letcontext_="UpdateComputeNodeGroupRequest"letmake?amiId=fun?subnetIds->fun?customLaunchTemplate->fun?purchaseOption->fun?spotOptions->fun?scalingConfiguration->fun?iamInstanceProfileArn->fun?slurmConfiguration->fun?clientToken->fun~clusterIdentifier->fun~computeNodeGroupIdentifier->fun()->{amiId;subnetIds;customLaunchTemplate;purchaseOption;spotOptions;scalingConfiguration;iamInstanceProfileArn;slurmConfiguration;clientToken;clusterIdentifier;computeNodeGroupIdentifier}letto_valuex=structure_to_value[("clusterIdentifier",(Some(ClusterIdentifier.to_valuex.clusterIdentifier)));("computeNodeGroupIdentifier",(Some(ComputeNodeGroupIdentifier.to_valuex.computeNodeGroupIdentifier)));("amiId",(Option.mapx.amiId~f:AmiId.to_value));("subnetIds",(Option.mapx.subnetIds~f:StringList.to_value));("customLaunchTemplate",(Option.mapx.customLaunchTemplate~f:CustomLaunchTemplate.to_value));("purchaseOption",(Option.mapx.purchaseOption~f:PurchaseOption.to_value));("spotOptions",(Option.mapx.spotOptions~f:SpotOptions.to_value));("scalingConfiguration",(Option.mapx.scalingConfiguration~f:ScalingConfigurationRequest.to_value));("iamInstanceProfileArn",(Option.mapx.iamInstanceProfileArn~f:InstanceProfileArn.to_value));("slurmConfiguration",(Option.mapx.slurmConfiguration~f:UpdateComputeNodeGroupSlurmConfigurationRequest.to_value));("clientToken",(Option.mapx.clientToken~f:SBClientToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letclientToken=(Option.map~f:SBClientToken.of_xml)(Xml.childxml_arg0"clientToken")inletslurmConfiguration=(Option.map~f:UpdateComputeNodeGroupSlurmConfigurationRequest.of_xml)(Xml.childxml_arg0"slurmConfiguration")inletiamInstanceProfileArn=(Option.map~f:InstanceProfileArn.of_xml)(Xml.childxml_arg0"iamInstanceProfileArn")inletscalingConfiguration=(Option.map~f:ScalingConfigurationRequest.of_xml)(Xml.childxml_arg0"scalingConfiguration")inletspotOptions=(Option.map~f:SpotOptions.of_xml)(Xml.childxml_arg0"spotOptions")inletpurchaseOption=(Option.map~f:PurchaseOption.of_xml)(Xml.childxml_arg0"purchaseOption")inletcustomLaunchTemplate=(Option.map~f:CustomLaunchTemplate.of_xml)(Xml.childxml_arg0"customLaunchTemplate")inletsubnetIds=(Option.map~f:StringList.of_xml)(Xml.childxml_arg0"subnetIds")inletamiId=(Option.map~f:AmiId.of_xml)(Xml.childxml_arg0"amiId")inletcomputeNodeGroupIdentifier=ComputeNodeGroupIdentifier.of_xml(Xml.child_exn~context:context_xml_arg0"computeNodeGroupIdentifier")inletclusterIdentifier=ClusterIdentifier.of_xml(Xml.child_exn~context:context_xml_arg0"clusterIdentifier")inmake?clientToken?slurmConfiguration?iamInstanceProfileArn?scalingConfiguration?spotOptions?purchaseOption?customLaunchTemplate?subnetIds?amiId~computeNodeGroupIdentifier~clusterIdentifier()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letclientToken=field_mapjson__"clientToken"SBClientToken.of_jsoninletslurmConfiguration=field_mapjson__"slurmConfiguration"UpdateComputeNodeGroupSlurmConfigurationRequest.of_jsoninletiamInstanceProfileArn=field_mapjson__"iamInstanceProfileArn"InstanceProfileArn.of_jsoninletscalingConfiguration=field_mapjson__"scalingConfiguration"ScalingConfigurationRequest.of_jsoninletspotOptions=field_mapjson__"spotOptions"SpotOptions.of_jsoninletpurchaseOption=field_mapjson__"purchaseOption"PurchaseOption.of_jsoninletcustomLaunchTemplate=field_mapjson__"customLaunchTemplate"CustomLaunchTemplate.of_jsoninletsubnetIds=field_mapjson__"subnetIds"StringList.of_jsoninletamiId=field_mapjson__"amiId"AmiId.of_jsoninletcomputeNodeGroupIdentifier=field_map_exnjson__"computeNodeGroupIdentifier"ComputeNodeGroupIdentifier.of_jsoninletclusterIdentifier=field_map_exnjson__"clusterIdentifier"ClusterIdentifier.of_jsoninmake?clientToken?slurmConfiguration?iamInstanceProfileArn?scalingConfiguration?spotOptions?purchaseOption?customLaunchTemplate?subnetIds?amiId~computeNodeGroupIdentifier~clusterIdentifier()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates a compute node group. You can update many of the fields related to your compute node group including the configurations for networking, compute nodes, and settings specific to your scheduler (such as Slurm)."]moduleUpdateClusterResponse=structtypenonrect={cluster:Cluster.toption}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?cluster=fun()->{cluster}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("cluster",(Option.mapx.cluster~f:Cluster.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcluster=(Option.map~f:Cluster.of_xml)(Xml.childxml_arg0"cluster")inmake?cluster()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcluster=field_mapjson__"cluster"Cluster.of_jsoninmake?cluster()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates a cluster configuration. You can modify Slurm scheduler settings, accounting configuration, and security groups for an existing cluster. You can only update clusters that are in ACTIVE, UPDATE_FAILED, or SUSPENDED state. All associated resources (queues and compute node groups) must be in ACTIVE state before you can update the cluster."]moduleUpdateClusterRequest=structtypenonrect={clusterIdentifier:ClusterIdentifier.t[@ocaml.doc"The name or ID of the cluster to update."];clientToken:SBClientToken.toption[@ocaml.doc"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate 1 for you."];slurmConfiguration:UpdateClusterSlurmConfigurationRequest.toption[@ocaml.doc"Additional options related to the Slurm scheduler."]}letcontext_="UpdateClusterRequest"letmake?clientToken=fun?slurmConfiguration->fun~clusterIdentifier->fun()->{clientToken;slurmConfiguration;clusterIdentifier}letto_valuex=structure_to_value[("clusterIdentifier",(Some(ClusterIdentifier.to_valuex.clusterIdentifier)));("clientToken",(Option.mapx.clientToken~f:SBClientToken.to_value));("slurmConfiguration",(Option.mapx.slurmConfiguration~f:UpdateClusterSlurmConfigurationRequest.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letslurmConfiguration=(Option.map~f:UpdateClusterSlurmConfigurationRequest.of_xml)(Xml.childxml_arg0"slurmConfiguration")inletclientToken=(Option.map~f:SBClientToken.of_xml)(Xml.childxml_arg0"clientToken")inletclusterIdentifier=ClusterIdentifier.of_xml(Xml.child_exn~context:context_xml_arg0"clusterIdentifier")inmake?slurmConfiguration?clientToken~clusterIdentifier()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letslurmConfiguration=field_mapjson__"slurmConfiguration"UpdateClusterSlurmConfigurationRequest.of_jsoninletclientToken=field_mapjson__"clientToken"SBClientToken.of_jsoninletclusterIdentifier=field_map_exnjson__"clusterIdentifier"ClusterIdentifier.of_jsoninmake?slurmConfiguration?clientToken~clusterIdentifier()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates a cluster configuration. You can modify Slurm scheduler settings, accounting configuration, and security groups for an existing cluster. You can only update clusters that are in ACTIVE, UPDATE_FAILED, or SUSPENDED state. All associated resources (queues and compute node groups) must be in ACTIVE state before you can update the cluster."]moduleUntagResourceResponse=structtypenonrect=unittypenonrecerror=[`ResourceNotFoundExceptionofResourceNotFoundException.t|`Unknown_operation_errorof(string*stringoption)]letmake()=()leterror_of_jsonnamejson=matchnamewith|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes tags from an PCS resource. To delete a tag, specify the tag key and the Amazon Resource Name (ARN) of the PCS resource."]moduleUntagResourceRequest=structtypenonrect={resourceArn:Arn.t[@ocaml.doc"The Amazon Resource Name (ARN) of the resource."];tagKeys:TagKeys.t[@ocaml.doc"1 or more tag keys to remove from the resource. Specify only tag keys and not tag values."]}letcontext_="UntagResourceRequest"letmake~resourceArn=fun~tagKeys->fun()->{resourceArn;tagKeys}letto_valuex=structure_to_value[("resourceArn",(Some(Arn.to_valuex.resourceArn)));("tagKeys",(Some(TagKeys.to_valuex.tagKeys)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettagKeys=TagKeys.of_xml(Xml.child_exn~context:context_xml_arg0"tagKeys")inletresourceArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"resourceArn")inmake~tagKeys~resourceArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettagKeys=field_map_exnjson__"tagKeys"TagKeys.of_jsoninletresourceArn=field_map_exnjson__"resourceArn"Arn.of_jsoninmake~tagKeys~resourceArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes tags from an PCS resource. To delete a tag, specify the tag key and the Amazon Resource Name (ARN) of the PCS resource."]moduleTagResourceResponse=structtypenonrect=unittypenonrecerror=[`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`Unknown_operation_errorof(string*stringoption)]letmake()=()leterror_of_jsonnamejson=matchnamewith|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceQuotaExceededExceptione->`Assoc[("error",(`String"ServiceQuotaExceededException"));("details",(ServiceQuotaExceededException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Adds or edits tags on an PCS resource. Each tag consists of a tag key and a tag value. The tag key and tag value are case-sensitive strings. The tag value can be an empty (null) string. To add a tag, specify a new tag key and a tag value. To edit a tag, specify an existing tag key and a new tag value."]moduleTagResourceRequest=structtypenonrect={resourceArn:Arn.t[@ocaml.doc"The Amazon Resource Name (ARN) of the resource."];tags:RequestTagMap.t[@ocaml.doc"1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string."]}letcontext_="TagResourceRequest"letmake~resourceArn=fun~tags->fun()->{resourceArn;tags}letto_valuex=structure_to_value[("resourceArn",(Some(Arn.to_valuex.resourceArn)));("tags",(Some(RequestTagMap.to_valuex.tags)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=RequestTagMap.of_xml(Xml.child_exn~context:context_xml_arg0"tags")inletresourceArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"resourceArn")inmake~tags~resourceArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_map_exnjson__"tags"RequestTagMap.of_jsoninletresourceArn=field_map_exnjson__"resourceArn"Arn.of_jsoninmake~tags~resourceArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Adds or edits tags on an PCS resource. Each tag consists of a tag key and a tag value. The tag key and tag value are case-sensitive strings. The tag value can be an empty (null) string. To add a tag, specify a new tag key and a tag value. To edit a tag, specify an existing tag key and a new tag value."]moduleRegisterComputeNodeGroupInstanceResponse=structtypenonrect={nodeID:String_.toption[@ocaml.doc"The scheduler node ID for this instance."];sharedSecret:SharedSecret.toption[@ocaml.doc"For the Slurm scheduler, this is the shared Munge key the scheduler uses to authenticate compute node group instances."];endpoints:Endpoints.toption[@ocaml.doc"The list of endpoints available for interaction with the scheduler."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`Unknown_operation_errorof(string*stringoption)]letmake?nodeID=fun?sharedSecret->fun?endpoints->fun()->{nodeID;sharedSecret;endpoints}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("nodeID",(Option.mapx.nodeID~f:String_.to_value));("sharedSecret",(Option.mapx.sharedSecret~f:SharedSecret.to_value));("endpoints",(Option.mapx.endpoints~f:Endpoints.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letendpoints=(Option.map~f:Endpoints.of_xml)(Xml.childxml_arg0"endpoints")inletsharedSecret=(Option.map~f:SharedSecret.of_xml)(Xml.childxml_arg0"sharedSecret")inletnodeID=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"nodeID")inmake?endpoints?sharedSecret?nodeID()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letendpoints=field_mapjson__"endpoints"Endpoints.of_jsoninletsharedSecret=field_mapjson__"sharedSecret"SharedSecret.of_jsoninletnodeID=field_mapjson__"nodeID"String_.of_jsoninmake?endpoints?sharedSecret?nodeID()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"This API action isn't intended for you to use. PCS uses this API action to register the compute nodes it launches in your account."]moduleRegisterComputeNodeGroupInstanceRequest=structtypenonrect={clusterIdentifier:ClusterIdentifier.t[@ocaml.doc"The name or ID of the cluster to register the compute node group instance in."];bootstrapId:BootstrapId.t[@ocaml.doc"The client-generated token to allow for retries."]}letcontext_="RegisterComputeNodeGroupInstanceRequest"letmake~clusterIdentifier=fun~bootstrapId->fun()->{clusterIdentifier;bootstrapId}letto_valuex=structure_to_value[("clusterIdentifier",(Some(ClusterIdentifier.to_valuex.clusterIdentifier)));("bootstrapId",(Some(BootstrapId.to_valuex.bootstrapId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letbootstrapId=BootstrapId.of_xml(Xml.child_exn~context:context_xml_arg0"bootstrapId")inletclusterIdentifier=ClusterIdentifier.of_xml(Xml.child_exn~context:context_xml_arg0"clusterIdentifier")inmake~bootstrapId~clusterIdentifier()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letbootstrapId=field_map_exnjson__"bootstrapId"BootstrapId.of_jsoninletclusterIdentifier=field_map_exnjson__"clusterIdentifier"ClusterIdentifier.of_jsoninmake~bootstrapId~clusterIdentifier()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"This API action isn't intended for you to use. PCS uses this API action to register the compute nodes it launches in your account."]moduleListTagsForResourceResponse=structtypenonrect={tags:ResponseTagMap.toption[@ocaml.doc"1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string."]}typenonrecerror=[`ResourceNotFoundExceptionofResourceNotFoundException.t|`Unknown_operation_errorof(string*stringoption)]letmake?tags=fun()->{tags}leterror_of_jsonnamejson=matchnamewith|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("tags",(Option.mapx.tags~f:ResponseTagMap.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:ResponseTagMap.of_xml)(Xml.childxml_arg0"tags")inmake?tags()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"tags"ResponseTagMap.of_jsoninmake?tags()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a list of all tags on an PCS resource."]moduleListTagsForResourceRequest=structtypenonrect={resourceArn:Arn.t[@ocaml.doc"The Amazon Resource Name (ARN) of the resource for which to list tags."]}letcontext_="ListTagsForResourceRequest"letmake~resourceArn=fun()->{resourceArn}letto_valuex=structure_to_value[("resourceArn",(Some(Arn.to_valuex.resourceArn)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"resourceArn")inmake~resourceArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceArn=field_map_exnjson__"resourceArn"Arn.of_jsoninmake~resourceArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a list of all tags on an PCS resource."]moduleListQueuesResponse=structtypenonrect={queues:QueueList.toption[@ocaml.doc"The list of queues associated with the cluster."];nextToken:String_.toption[@ocaml.doc"The value of nextToken is a unique pagination token for each page of results returned. If nextToken is returned, there are more results available. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token returns an HTTP 400 InvalidToken error."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?queues=fun?nextToken->fun()->{queues;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("queues",(Option.mapx.queues~f:QueueList.to_value));("nextToken",(Option.mapx.nextToken~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"nextToken")inletqueues=(Option.map~f:QueueList.of_xml)(Xml.childxml_arg0"queues")inmake?nextToken?queues()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"nextToken"String_.of_jsoninletqueues=field_mapjson__"queues"QueueList.of_jsoninmake?nextToken?queues()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a list of all queues associated with a cluster."]moduleListQueuesRequest=structtypenonrect={clusterIdentifier:ClusterIdentifier.t[@ocaml.doc"The name or ID of the cluster to list queues for."];nextToken:String_.toption[@ocaml.doc"The value of nextToken is a unique pagination token for each page of results returned. If nextToken is returned, there are more results available. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token returns an HTTP 400 InvalidToken error."];maxResults:MaxResults.toption[@ocaml.doc"The maximum number of results that are returned per call. You can use nextToken to obtain further pages of results. The default is 10 results, and the maximum allowed page size is 100 results. A value of 0 uses the default."]}letcontext_="ListQueuesRequest"letmake?nextToken=fun?maxResults->fun~clusterIdentifier->fun()->{nextToken;maxResults;clusterIdentifier}letto_valuex=structure_to_value[("clusterIdentifier",(Some(ClusterIdentifier.to_valuex.clusterIdentifier)));("nextToken",(Option.mapx.nextToken~f:String_.to_value));("maxResults",(Option.mapx.maxResults~f:MaxResults.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"maxResults")inletnextToken=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"nextToken")inletclusterIdentifier=ClusterIdentifier.of_xml(Xml.child_exn~context:context_xml_arg0"clusterIdentifier")inmake?maxResults?nextToken~clusterIdentifier()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmaxResults=field_mapjson__"maxResults"MaxResults.of_jsoninletnextToken=field_mapjson__"nextToken"String_.of_jsoninletclusterIdentifier=field_map_exnjson__"clusterIdentifier"ClusterIdentifier.of_jsoninmake?maxResults?nextToken~clusterIdentifier()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a list of all queues associated with a cluster."]moduleListComputeNodeGroupsResponse=structtypenonrect={computeNodeGroups:ComputeNodeGroupList.toption[@ocaml.doc"The list of compute node groups for the cluster."];nextToken:String_.toption[@ocaml.doc"The value of nextToken is a unique pagination token for each page of results returned. If nextToken is returned, there are more results available. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token returns an HTTP 400 InvalidToken error."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?computeNodeGroups=fun?nextToken->fun()->{computeNodeGroups;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("computeNodeGroups",(Option.mapx.computeNodeGroups~f:ComputeNodeGroupList.to_value));("nextToken",(Option.mapx.nextToken~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"nextToken")inletcomputeNodeGroups=(Option.map~f:ComputeNodeGroupList.of_xml)(Xml.childxml_arg0"computeNodeGroups")inmake?nextToken?computeNodeGroups()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"nextToken"String_.of_jsoninletcomputeNodeGroups=field_mapjson__"computeNodeGroups"ComputeNodeGroupList.of_jsoninmake?nextToken?computeNodeGroups()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a list of all compute node groups associated with a cluster."]moduleListComputeNodeGroupsRequest=structtypenonrect={clusterIdentifier:ClusterIdentifier.t[@ocaml.doc"The name or ID of the cluster to list compute node groups for."];nextToken:String_.toption[@ocaml.doc"The value of nextToken is a unique pagination token for each page of results returned. If nextToken is returned, there are more results available. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token returns an HTTP 400 InvalidToken error."];maxResults:MaxResults.toption[@ocaml.doc"The maximum number of results that are returned per call. You can use nextToken to obtain further pages of results. The default is 10 results, and the maximum allowed page size is 100 results. A value of 0 uses the default."]}letcontext_="ListComputeNodeGroupsRequest"letmake?nextToken=fun?maxResults->fun~clusterIdentifier->fun()->{nextToken;maxResults;clusterIdentifier}letto_valuex=structure_to_value[("clusterIdentifier",(Some(ClusterIdentifier.to_valuex.clusterIdentifier)));("nextToken",(Option.mapx.nextToken~f:String_.to_value));("maxResults",(Option.mapx.maxResults~f:MaxResults.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"maxResults")inletnextToken=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"nextToken")inletclusterIdentifier=ClusterIdentifier.of_xml(Xml.child_exn~context:context_xml_arg0"clusterIdentifier")inmake?maxResults?nextToken~clusterIdentifier()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmaxResults=field_mapjson__"maxResults"MaxResults.of_jsoninletnextToken=field_mapjson__"nextToken"String_.of_jsoninletclusterIdentifier=field_map_exnjson__"clusterIdentifier"ClusterIdentifier.of_jsoninmake?maxResults?nextToken~clusterIdentifier()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a list of all compute node groups associated with a cluster."]moduleListClustersResponse=structtypenonrect={clusters:ClusterList.toption[@ocaml.doc"The list of clusters."];nextToken:String_.toption[@ocaml.doc"The value of nextToken is a unique pagination token for each page of results returned. If nextToken is returned, there are more results available. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token returns an HTTP 400 InvalidToken error."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?clusters=fun?nextToken->fun()->{clusters;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("clusters",(Option.mapx.clusters~f:ClusterList.to_value));("nextToken",(Option.mapx.nextToken~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"nextToken")inletclusters=(Option.map~f:ClusterList.of_xml)(Xml.childxml_arg0"clusters")inmake?nextToken?clusters()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"nextToken"String_.of_jsoninletclusters=field_mapjson__"clusters"ClusterList.of_jsoninmake?nextToken?clusters()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a list of running clusters in your account."]moduleListClustersRequest=structtypenonrect={nextToken:String_.toption[@ocaml.doc"The value of nextToken is a unique pagination token for each page of results returned. If nextToken is returned, there are more results available. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token returns an HTTP 400 InvalidToken error."];maxResults:MaxResults.toption[@ocaml.doc"The maximum number of results that are returned per call. You can use nextToken to obtain further pages of results. The default is 10 results, and the maximum allowed page size is 100 results. A value of 0 uses the default."]}letmake?nextToken=fun?maxResults->fun()->{nextToken;maxResults}letto_valuex=structure_to_value[("nextToken",(Option.mapx.nextToken~f:String_.to_value));("maxResults",(Option.mapx.maxResults~f:MaxResults.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"maxResults")inletnextToken=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"nextToken")inmake?maxResults?nextToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmaxResults=field_mapjson__"maxResults"MaxResults.of_jsoninletnextToken=field_mapjson__"nextToken"String_.of_jsoninmake?maxResults?nextToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a list of running clusters in your account."]moduleGetQueueResponse=structtypenonrect={queue:Queue.toption}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?queue=fun()->{queue}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("queue",(Option.mapx.queue~f:Queue.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letqueue=(Option.map~f:Queue.of_xml)(Xml.childxml_arg0"queue")inmake?queue()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letqueue=field_mapjson__"queue"Queue.of_jsoninmake?queue()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns detailed information about a queue. The information includes the compute node groups that the queue uses to schedule jobs."]moduleGetQueueRequest=structtypenonrect={clusterIdentifier:ClusterIdentifier.t[@ocaml.doc"The name or ID of the cluster of the queue."];queueIdentifier:QueueIdentifier.t[@ocaml.doc"The name or ID of the queue."]}letcontext_="GetQueueRequest"letmake~clusterIdentifier=fun~queueIdentifier->fun()->{clusterIdentifier;queueIdentifier}letto_valuex=structure_to_value[("clusterIdentifier",(Some(ClusterIdentifier.to_valuex.clusterIdentifier)));("queueIdentifier",(Some(QueueIdentifier.to_valuex.queueIdentifier)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letqueueIdentifier=QueueIdentifier.of_xml(Xml.child_exn~context:context_xml_arg0"queueIdentifier")inletclusterIdentifier=ClusterIdentifier.of_xml(Xml.child_exn~context:context_xml_arg0"clusterIdentifier")inmake~queueIdentifier~clusterIdentifier()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letqueueIdentifier=field_map_exnjson__"queueIdentifier"QueueIdentifier.of_jsoninletclusterIdentifier=field_map_exnjson__"clusterIdentifier"ClusterIdentifier.of_jsoninmake~queueIdentifier~clusterIdentifier()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns detailed information about a queue. The information includes the compute node groups that the queue uses to schedule jobs."]moduleGetComputeNodeGroupResponse=structtypenonrect={computeNodeGroup:ComputeNodeGroup.toption}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?computeNodeGroup=fun()->{computeNodeGroup}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("computeNodeGroup",(Option.mapx.computeNodeGroup~f:ComputeNodeGroup.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcomputeNodeGroup=(Option.map~f:ComputeNodeGroup.of_xml)(Xml.childxml_arg0"computeNodeGroup")inmake?computeNodeGroup()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcomputeNodeGroup=field_mapjson__"computeNodeGroup"ComputeNodeGroup.of_jsoninmake?computeNodeGroup()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns detailed information about a compute node group. This API action provides networking information, EC2 instance type, compute node group status, and scheduler (such as Slurm) configuration."]moduleGetComputeNodeGroupRequest=structtypenonrect={clusterIdentifier:ClusterIdentifier.t[@ocaml.doc"The name or ID of the cluster."];computeNodeGroupIdentifier:ComputeNodeGroupIdentifier.t[@ocaml.doc"The name or ID of the compute node group."]}letcontext_="GetComputeNodeGroupRequest"letmake~clusterIdentifier=fun~computeNodeGroupIdentifier->fun()->{clusterIdentifier;computeNodeGroupIdentifier}letto_valuex=structure_to_value[("clusterIdentifier",(Some(ClusterIdentifier.to_valuex.clusterIdentifier)));("computeNodeGroupIdentifier",(Some(ComputeNodeGroupIdentifier.to_valuex.computeNodeGroupIdentifier)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcomputeNodeGroupIdentifier=ComputeNodeGroupIdentifier.of_xml(Xml.child_exn~context:context_xml_arg0"computeNodeGroupIdentifier")inletclusterIdentifier=ClusterIdentifier.of_xml(Xml.child_exn~context:context_xml_arg0"clusterIdentifier")inmake~computeNodeGroupIdentifier~clusterIdentifier()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcomputeNodeGroupIdentifier=field_map_exnjson__"computeNodeGroupIdentifier"ComputeNodeGroupIdentifier.of_jsoninletclusterIdentifier=field_map_exnjson__"clusterIdentifier"ClusterIdentifier.of_jsoninmake~computeNodeGroupIdentifier~clusterIdentifier()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns detailed information about a compute node group. This API action provides networking information, EC2 instance type, compute node group status, and scheduler (such as Slurm) configuration."]moduleGetClusterResponse=structtypenonrect={cluster:Cluster.toption[@ocaml.doc"The cluster resource."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?cluster=fun()->{cluster}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("cluster",(Option.mapx.cluster~f:Cluster.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcluster=(Option.map~f:Cluster.of_xml)(Xml.childxml_arg0"cluster")inmake?cluster()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcluster=field_mapjson__"cluster"Cluster.of_jsoninmake?cluster()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns detailed information about a running cluster in your account. This API action provides networking information, endpoint information for communication with the scheduler, and provisioning status."]moduleGetClusterRequest=structtypenonrect={clusterIdentifier:ClusterIdentifier.t[@ocaml.doc"The name or ID of the cluster."]}letcontext_="GetClusterRequest"letmake~clusterIdentifier=fun()->{clusterIdentifier}letto_valuex=structure_to_value[("clusterIdentifier",(Some(ClusterIdentifier.to_valuex.clusterIdentifier)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letclusterIdentifier=ClusterIdentifier.of_xml(Xml.child_exn~context:context_xml_arg0"clusterIdentifier")inmake~clusterIdentifier()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letclusterIdentifier=field_map_exnjson__"clusterIdentifier"ClusterIdentifier.of_jsoninmake~clusterIdentifier()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns detailed information about a running cluster in your account. This API action provides networking information, endpoint information for communication with the scheduler, and provisioning status."]moduleDeleteQueueResponse=structtypenonrect=unittypenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake()=()leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a job queue. If the compute node group associated with this queue isn't associated with any other queues, PCS terminates all the compute nodes for this queue."]moduleDeleteQueueRequest=structtypenonrect={clusterIdentifier:ClusterIdentifier.t[@ocaml.doc"The name or ID of the cluster of the queue."];queueIdentifier:QueueIdentifier.t[@ocaml.doc"The name or ID of the queue to delete."];clientToken:SBClientToken.toption[@ocaml.doc"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate 1 for you."]}letcontext_="DeleteQueueRequest"letmake?clientToken=fun~clusterIdentifier->fun~queueIdentifier->fun()->{clientToken;clusterIdentifier;queueIdentifier}letto_valuex=structure_to_value[("clusterIdentifier",(Some(ClusterIdentifier.to_valuex.clusterIdentifier)));("queueIdentifier",(Some(QueueIdentifier.to_valuex.queueIdentifier)));("clientToken",(Option.mapx.clientToken~f:SBClientToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letclientToken=(Option.map~f:SBClientToken.of_xml)(Xml.childxml_arg0"clientToken")inletqueueIdentifier=QueueIdentifier.of_xml(Xml.child_exn~context:context_xml_arg0"queueIdentifier")inletclusterIdentifier=ClusterIdentifier.of_xml(Xml.child_exn~context:context_xml_arg0"clusterIdentifier")inmake?clientToken~queueIdentifier~clusterIdentifier()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letclientToken=field_mapjson__"clientToken"SBClientToken.of_jsoninletqueueIdentifier=field_map_exnjson__"queueIdentifier"QueueIdentifier.of_jsoninletclusterIdentifier=field_map_exnjson__"clusterIdentifier"ClusterIdentifier.of_jsoninmake?clientToken~queueIdentifier~clusterIdentifier()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a job queue. If the compute node group associated with this queue isn't associated with any other queues, PCS terminates all the compute nodes for this queue."]moduleDeleteComputeNodeGroupResponse=structtypenonrect=unittypenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake()=()leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a compute node group. You must delete all queues associated with the compute node group first."]moduleDeleteComputeNodeGroupRequest=structtypenonrect={clusterIdentifier:ClusterIdentifier.t[@ocaml.doc"The name or ID of the cluster of the compute node group."];computeNodeGroupIdentifier:ComputeNodeGroupIdentifier.t[@ocaml.doc"The name or ID of the compute node group to delete."];clientToken:SBClientToken.toption[@ocaml.doc"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate 1 for you."]}letcontext_="DeleteComputeNodeGroupRequest"letmake?clientToken=fun~clusterIdentifier->fun~computeNodeGroupIdentifier->fun()->{clientToken;clusterIdentifier;computeNodeGroupIdentifier}letto_valuex=structure_to_value[("clusterIdentifier",(Some(ClusterIdentifier.to_valuex.clusterIdentifier)));("computeNodeGroupIdentifier",(Some(ComputeNodeGroupIdentifier.to_valuex.computeNodeGroupIdentifier)));("clientToken",(Option.mapx.clientToken~f:SBClientToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letclientToken=(Option.map~f:SBClientToken.of_xml)(Xml.childxml_arg0"clientToken")inletcomputeNodeGroupIdentifier=ComputeNodeGroupIdentifier.of_xml(Xml.child_exn~context:context_xml_arg0"computeNodeGroupIdentifier")inletclusterIdentifier=ClusterIdentifier.of_xml(Xml.child_exn~context:context_xml_arg0"clusterIdentifier")inmake?clientToken~computeNodeGroupIdentifier~clusterIdentifier()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letclientToken=field_mapjson__"clientToken"SBClientToken.of_jsoninletcomputeNodeGroupIdentifier=field_map_exnjson__"computeNodeGroupIdentifier"ComputeNodeGroupIdentifier.of_jsoninletclusterIdentifier=field_map_exnjson__"clusterIdentifier"ClusterIdentifier.of_jsoninmake?clientToken~computeNodeGroupIdentifier~clusterIdentifier()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a compute node group. You must delete all queues associated with the compute node group first."]moduleDeleteClusterResponse=structtypenonrect=unittypenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake()=()leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a cluster and all its linked resources. You must delete all queues and compute node groups associated with the cluster before you can delete the cluster."]moduleDeleteClusterRequest=structtypenonrect={clusterIdentifier:ClusterIdentifier.t[@ocaml.doc"The name or ID of the cluster to delete."];clientToken:SBClientToken.toption[@ocaml.doc"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate 1 for you."]}letcontext_="DeleteClusterRequest"letmake?clientToken=fun~clusterIdentifier->fun()->{clientToken;clusterIdentifier}letto_valuex=structure_to_value[("clusterIdentifier",(Some(ClusterIdentifier.to_valuex.clusterIdentifier)));("clientToken",(Option.mapx.clientToken~f:SBClientToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letclientToken=(Option.map~f:SBClientToken.of_xml)(Xml.childxml_arg0"clientToken")inletclusterIdentifier=ClusterIdentifier.of_xml(Xml.child_exn~context:context_xml_arg0"clusterIdentifier")inmake?clientToken~clusterIdentifier()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letclientToken=field_mapjson__"clientToken"SBClientToken.of_jsoninletclusterIdentifier=field_map_exnjson__"clusterIdentifier"ClusterIdentifier.of_jsoninmake?clientToken~clusterIdentifier()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a cluster and all its linked resources. You must delete all queues and compute node groups associated with the cluster before you can delete the cluster."]moduleCreateQueueResponse=structtypenonrect={queue:Queue.toption}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?queue=fun()->{queue}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceQuotaExceededExceptione->`Assoc[("error",(`String"ServiceQuotaExceededException"));("details",(ServiceQuotaExceededException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("queue",(Option.mapx.queue~f:Queue.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letqueue=(Option.map~f:Queue.of_xml)(Xml.childxml_arg0"queue")inmake?queue()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letqueue=field_mapjson__"queue"Queue.of_jsoninmake?queue()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a job queue. You must associate 1 or more compute node groups with the queue. You can associate 1 compute node group with multiple queues."]moduleCreateQueueRequest=structtypenonrect={clusterIdentifier:ClusterIdentifier.t[@ocaml.doc"The name or ID of the cluster for which to create a queue."];queueName:QueueName.t[@ocaml.doc"A name to identify the queue."];computeNodeGroupConfigurations:ComputeNodeGroupConfigurationList.toption[@ocaml.doc"The list of compute node group configurations to associate with the queue. Queues assign jobs to associated compute node groups."];slurmConfiguration:QueueSlurmConfigurationRequest.toption[@ocaml.doc"Additional options related to the Slurm scheduler."];clientToken:SBClientToken.toption[@ocaml.doc"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate 1 for you."];tags:RequestTagMap.toption[@ocaml.doc"1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string."]}letcontext_="CreateQueueRequest"letmake?computeNodeGroupConfigurations=fun?slurmConfiguration->fun?clientToken->fun?tags->fun~clusterIdentifier->fun~queueName->fun()->{computeNodeGroupConfigurations;slurmConfiguration;clientToken;tags;clusterIdentifier;queueName}letto_valuex=structure_to_value[("clusterIdentifier",(Some(ClusterIdentifier.to_valuex.clusterIdentifier)));("queueName",(Some(QueueName.to_valuex.queueName)));("computeNodeGroupConfigurations",(Option.mapx.computeNodeGroupConfigurations~f:ComputeNodeGroupConfigurationList.to_value));("slurmConfiguration",(Option.mapx.slurmConfiguration~f:QueueSlurmConfigurationRequest.to_value));("clientToken",(Option.mapx.clientToken~f:SBClientToken.to_value));("tags",(Option.mapx.tags~f:RequestTagMap.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:RequestTagMap.of_xml)(Xml.childxml_arg0"tags")inletclientToken=(Option.map~f:SBClientToken.of_xml)(Xml.childxml_arg0"clientToken")inletslurmConfiguration=(Option.map~f:QueueSlurmConfigurationRequest.of_xml)(Xml.childxml_arg0"slurmConfiguration")inletcomputeNodeGroupConfigurations=(Option.map~f:ComputeNodeGroupConfigurationList.of_xml)(Xml.childxml_arg0"computeNodeGroupConfigurations")inletqueueName=QueueName.of_xml(Xml.child_exn~context:context_xml_arg0"queueName")inletclusterIdentifier=ClusterIdentifier.of_xml(Xml.child_exn~context:context_xml_arg0"clusterIdentifier")inmake?tags?clientToken?slurmConfiguration?computeNodeGroupConfigurations~queueName~clusterIdentifier()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"tags"RequestTagMap.of_jsoninletclientToken=field_mapjson__"clientToken"SBClientToken.of_jsoninletslurmConfiguration=field_mapjson__"slurmConfiguration"QueueSlurmConfigurationRequest.of_jsoninletcomputeNodeGroupConfigurations=field_mapjson__"computeNodeGroupConfigurations"ComputeNodeGroupConfigurationList.of_jsoninletqueueName=field_map_exnjson__"queueName"QueueName.of_jsoninletclusterIdentifier=field_map_exnjson__"clusterIdentifier"ClusterIdentifier.of_jsoninmake?tags?clientToken?slurmConfiguration?computeNodeGroupConfigurations~queueName~clusterIdentifier()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a job queue. You must associate 1 or more compute node groups with the queue. You can associate 1 compute node group with multiple queues."]moduleCreateComputeNodeGroupResponse=structtypenonrect={computeNodeGroup:ComputeNodeGroup.toption}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?computeNodeGroup=fun()->{computeNodeGroup}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceQuotaExceededExceptione->`Assoc[("error",(`String"ServiceQuotaExceededException"));("details",(ServiceQuotaExceededException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("computeNodeGroup",(Option.mapx.computeNodeGroup~f:ComputeNodeGroup.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcomputeNodeGroup=(Option.map~f:ComputeNodeGroup.of_xml)(Xml.childxml_arg0"computeNodeGroup")inmake?computeNodeGroup()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcomputeNodeGroup=field_mapjson__"computeNodeGroup"ComputeNodeGroup.of_jsoninmake?computeNodeGroup()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a managed set of compute nodes. You associate a compute node group with a cluster through 1 or more PCS queues or as part of the login fleet. A compute node group includes the definition of the compute properties and lifecycle management. PCS uses the information you provide to this API action to launch compute nodes in your account. You can only specify subnets in the same Amazon VPC as your cluster. You receive billing charges for the compute nodes that PCS launches in your account. You must already have a launch template before you call this API. For more information, see Launch an instance from a launch template in the Amazon Elastic Compute Cloud User Guide for Linux Instances."]moduleCreateComputeNodeGroupRequest=structtypenonrect={clusterIdentifier:ClusterIdentifier.t[@ocaml.doc"The name or ID of the cluster to create a compute node group in."];computeNodeGroupName:ComputeNodeGroupName.t[@ocaml.doc"A name to identify the cluster. Example: MyCluster"];amiId:AmiId.toption[@ocaml.doc"The ID of the Amazon Machine Image (AMI) that PCS uses to launch compute nodes (Amazon EC2 instances). If you don't provide this value, PCS uses the AMI ID specified in the custom launch template."];subnetIds:StringList.t[@ocaml.doc"The list of subnet IDs where the compute node group launches instances. Subnets must be in the same VPC as the cluster."];purchaseOption:PurchaseOption.toption[@ocaml.doc"Specifies how EC2 instances are purchased on your behalf. PCS supports On-Demand Instances, Spot Instances, Interruptible Capacity Reservations, On-Demand Capacity Reservations, and Amazon EC2 Capacity Blocks for ML. For more information, see Amazon EC2 billing and purchasing options in the Amazon Elastic Compute Cloud User Guide. For more information about PCS support for Capacity Blocks, see Using Amazon EC2 Capacity Blocks for ML with PCS in the PCS User Guide. For more information about PCS support for interruptible capacity reservations, see Using I-ODCRs with PCS in the PCS User Guide. Choose On-Demand if you plan to use an On-Demand Capacity Reservation (ODCR). For more information, see Using ODCRs with PCS. If you don't provide this option, it defaults to On-Demand."];customLaunchTemplate:CustomLaunchTemplate.t;iamInstanceProfileArn:InstanceProfileArn.t[@ocaml.doc"The Amazon Resource Name (ARN) of the IAM instance profile used to pass an IAM role when launching EC2 instances. The role contained in your instance profile must have the pcs:RegisterComputeNodeGroupInstance permission and the role name must start with AWSPCS or must have the path /aws-pcs/. For more information, see IAM instance profiles for PCS in the PCS User Guide."];scalingConfiguration:ScalingConfigurationRequest.t[@ocaml.doc"Specifies the boundaries of the compute node group auto scaling."];instanceConfigs:InstanceList.t[@ocaml.doc"A list of EC2 instance configurations that PCS can provision in the compute node group."];spotOptions:SpotOptions.toption;slurmConfiguration:ComputeNodeGroupSlurmConfigurationRequest.toption[@ocaml.doc"Additional options related to the Slurm scheduler."];clientToken:SBClientToken.toption[@ocaml.doc"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate 1 for you."];tags:RequestTagMap.toption[@ocaml.doc"1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string."]}letcontext_="CreateComputeNodeGroupRequest"letmake?amiId=fun?purchaseOption->fun?spotOptions->fun?slurmConfiguration->fun?clientToken->fun?tags->fun~clusterIdentifier->fun~computeNodeGroupName->fun~subnetIds->fun~customLaunchTemplate->fun~iamInstanceProfileArn->fun~scalingConfiguration->fun~instanceConfigs->fun()->{amiId;purchaseOption;spotOptions;slurmConfiguration;clientToken;tags;clusterIdentifier;computeNodeGroupName;subnetIds;customLaunchTemplate;iamInstanceProfileArn;scalingConfiguration;instanceConfigs}letto_valuex=structure_to_value[("clusterIdentifier",(Some(ClusterIdentifier.to_valuex.clusterIdentifier)));("computeNodeGroupName",(Some(ComputeNodeGroupName.to_valuex.computeNodeGroupName)));("amiId",(Option.mapx.amiId~f:AmiId.to_value));("subnetIds",(Some(StringList.to_valuex.subnetIds)));("purchaseOption",(Option.mapx.purchaseOption~f:PurchaseOption.to_value));("customLaunchTemplate",(Some(CustomLaunchTemplate.to_valuex.customLaunchTemplate)));("iamInstanceProfileArn",(Some(InstanceProfileArn.to_valuex.iamInstanceProfileArn)));("scalingConfiguration",(Some(ScalingConfigurationRequest.to_valuex.scalingConfiguration)));("instanceConfigs",(Some(InstanceList.to_valuex.instanceConfigs)));("spotOptions",(Option.mapx.spotOptions~f:SpotOptions.to_value));("slurmConfiguration",(Option.mapx.slurmConfiguration~f:ComputeNodeGroupSlurmConfigurationRequest.to_value));("clientToken",(Option.mapx.clientToken~f:SBClientToken.to_value));("tags",(Option.mapx.tags~f:RequestTagMap.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:RequestTagMap.of_xml)(Xml.childxml_arg0"tags")inletclientToken=(Option.map~f:SBClientToken.of_xml)(Xml.childxml_arg0"clientToken")inletslurmConfiguration=(Option.map~f:ComputeNodeGroupSlurmConfigurationRequest.of_xml)(Xml.childxml_arg0"slurmConfiguration")inletspotOptions=(Option.map~f:SpotOptions.of_xml)(Xml.childxml_arg0"spotOptions")inletinstanceConfigs=InstanceList.of_xml(Xml.child_exn~context:context_xml_arg0"instanceConfigs")inletscalingConfiguration=ScalingConfigurationRequest.of_xml(Xml.child_exn~context:context_xml_arg0"scalingConfiguration")inletiamInstanceProfileArn=InstanceProfileArn.of_xml(Xml.child_exn~context:context_xml_arg0"iamInstanceProfileArn")inletcustomLaunchTemplate=CustomLaunchTemplate.of_xml(Xml.child_exn~context:context_xml_arg0"customLaunchTemplate")inletpurchaseOption=(Option.map~f:PurchaseOption.of_xml)(Xml.childxml_arg0"purchaseOption")inletsubnetIds=StringList.of_xml(Xml.child_exn~context:context_xml_arg0"subnetIds")inletamiId=(Option.map~f:AmiId.of_xml)(Xml.childxml_arg0"amiId")inletcomputeNodeGroupName=ComputeNodeGroupName.of_xml(Xml.child_exn~context:context_xml_arg0"computeNodeGroupName")inletclusterIdentifier=ClusterIdentifier.of_xml(Xml.child_exn~context:context_xml_arg0"clusterIdentifier")inmake?tags?clientToken?slurmConfiguration?spotOptions~instanceConfigs~scalingConfiguration~iamInstanceProfileArn~customLaunchTemplate?purchaseOption~subnetIds?amiId~computeNodeGroupName~clusterIdentifier()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"tags"RequestTagMap.of_jsoninletclientToken=field_mapjson__"clientToken"SBClientToken.of_jsoninletslurmConfiguration=field_mapjson__"slurmConfiguration"ComputeNodeGroupSlurmConfigurationRequest.of_jsoninletspotOptions=field_mapjson__"spotOptions"SpotOptions.of_jsoninletinstanceConfigs=field_map_exnjson__"instanceConfigs"InstanceList.of_jsoninletscalingConfiguration=field_map_exnjson__"scalingConfiguration"ScalingConfigurationRequest.of_jsoninletiamInstanceProfileArn=field_map_exnjson__"iamInstanceProfileArn"InstanceProfileArn.of_jsoninletcustomLaunchTemplate=field_map_exnjson__"customLaunchTemplate"CustomLaunchTemplate.of_jsoninletpurchaseOption=field_mapjson__"purchaseOption"PurchaseOption.of_jsoninletsubnetIds=field_map_exnjson__"subnetIds"StringList.of_jsoninletamiId=field_mapjson__"amiId"AmiId.of_jsoninletcomputeNodeGroupName=field_map_exnjson__"computeNodeGroupName"ComputeNodeGroupName.of_jsoninletclusterIdentifier=field_map_exnjson__"clusterIdentifier"ClusterIdentifier.of_jsoninmake?tags?clientToken?slurmConfiguration?spotOptions~instanceConfigs~scalingConfiguration~iamInstanceProfileArn~customLaunchTemplate?purchaseOption~subnetIds?amiId~computeNodeGroupName~clusterIdentifier()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a managed set of compute nodes. You associate a compute node group with a cluster through 1 or more PCS queues or as part of the login fleet. A compute node group includes the definition of the compute properties and lifecycle management. PCS uses the information you provide to this API action to launch compute nodes in your account. You can only specify subnets in the same Amazon VPC as your cluster. You receive billing charges for the compute nodes that PCS launches in your account. You must already have a launch template before you call this API. For more information, see Launch an instance from a launch template in the Amazon Elastic Compute Cloud User Guide for Linux Instances."]moduleCreateClusterResponse=structtypenonrect={cluster:Cluster.toption[@ocaml.doc"The cluster resource."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?cluster=fun()->{cluster}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ServiceQuotaExceededExceptione->`Assoc[("error",(`String"ServiceQuotaExceededException"));("details",(ServiceQuotaExceededException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("cluster",(Option.mapx.cluster~f:Cluster.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcluster=(Option.map~f:Cluster.of_xml)(Xml.childxml_arg0"cluster")inmake?cluster()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcluster=field_mapjson__"cluster"Cluster.of_jsoninmake?cluster()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a cluster in your account. PCS creates the cluster controller in a service-owned account. The cluster controller communicates with the cluster resources in your account. The subnets and security groups for the cluster must already exist before you use this API action. It takes time for PCS to create the cluster. The cluster is in a Creating state until it is ready to use. There can only be 1 cluster in a Creating state per Amazon Web Services Region per Amazon Web Services account. CreateCluster fails with a ServiceQuotaExceededException if there is already a cluster in a Creating state."]moduleCreateClusterRequest=structtypenonrect={clusterName:ClusterName.t[@ocaml.doc"A name to identify the cluster. Example: MyCluster"];scheduler:SchedulerRequest.t[@ocaml.doc"The cluster management and job scheduling software associated with the cluster."];size:Size.t[@ocaml.doc"A value that determines the maximum number of compute nodes in the cluster and the maximum number of jobs (active and queued). SMALL: 32 compute nodes and 256 jobs MEDIUM: 512 compute nodes and 8192 jobs LARGE: 2048 compute nodes and 16,384 jobs"];networking:NetworkingRequest.t[@ocaml.doc"The networking configuration used to set up the cluster's control plane."];slurmConfiguration:ClusterSlurmConfigurationRequest.toption[@ocaml.doc"Additional options related to the Slurm scheduler."];clientToken:SBClientToken.toption[@ocaml.doc"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the CLI and SDK automatically generate 1 for you."];tags:RequestTagMap.toption[@ocaml.doc"1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string."]}letcontext_="CreateClusterRequest"letmake?slurmConfiguration=fun?clientToken->fun?tags->fun~clusterName->fun~scheduler->fun~size->fun~networking->fun()->{slurmConfiguration;clientToken;tags;clusterName;scheduler;size;networking}letto_valuex=structure_to_value[("clusterName",(Some(ClusterName.to_valuex.clusterName)));("scheduler",(Some(SchedulerRequest.to_valuex.scheduler)));("size",(Some(Size.to_valuex.size)));("networking",(Some(NetworkingRequest.to_valuex.networking)));("slurmConfiguration",(Option.mapx.slurmConfiguration~f:ClusterSlurmConfigurationRequest.to_value));("clientToken",(Option.mapx.clientToken~f:SBClientToken.to_value));("tags",(Option.mapx.tags~f:RequestTagMap.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:RequestTagMap.of_xml)(Xml.childxml_arg0"tags")inletclientToken=(Option.map~f:SBClientToken.of_xml)(Xml.childxml_arg0"clientToken")inletslurmConfiguration=(Option.map~f:ClusterSlurmConfigurationRequest.of_xml)(Xml.childxml_arg0"slurmConfiguration")inletnetworking=NetworkingRequest.of_xml(Xml.child_exn~context:context_xml_arg0"networking")inletsize=Size.of_xml(Xml.child_exn~context:context_xml_arg0"size")inletscheduler=SchedulerRequest.of_xml(Xml.child_exn~context:context_xml_arg0"scheduler")inletclusterName=ClusterName.of_xml(Xml.child_exn~context:context_xml_arg0"clusterName")inmake?tags?clientToken?slurmConfiguration~networking~size~scheduler~clusterName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"tags"RequestTagMap.of_jsoninletclientToken=field_mapjson__"clientToken"SBClientToken.of_jsoninletslurmConfiguration=field_mapjson__"slurmConfiguration"ClusterSlurmConfigurationRequest.of_jsoninletnetworking=field_map_exnjson__"networking"NetworkingRequest.of_jsoninletsize=field_map_exnjson__"size"Size.of_jsoninletscheduler=field_map_exnjson__"scheduler"SchedulerRequest.of_jsoninletclusterName=field_map_exnjson__"clusterName"ClusterName.of_jsoninmake?tags?clientToken?slurmConfiguration~networking~size~scheduler~clusterName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a cluster in your account. PCS creates the cluster controller in a service-owned account. The cluster controller communicates with the cluster resources in your account. The subnets and security groups for the cluster must already exist before you use this API action. It takes time for PCS to create the cluster. The cluster is in a Creating state until it is ready to use. There can only be 1 cluster in a Creating state per Amazon Web Services Region per Amazon Web Services account. CreateCluster fails with a ServiceQuotaExceededException if there is already a cluster in a Creating state."]