123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062(* 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.grafanaletapiVersion="2020-08-18"letendpointPrefix="grafana"letserviceFullName="Amazon Managed Grafana"letsignatureVersion="v4"letprotocol="rest_json"letglobalEndpoint=endpointPrefix^".amazonaws.com"letsimple_to_jsonto_valuex=Botodata.Json.value_to_json_scalar(to_valuex)letcomposed_to_jsonto_valuex=Botodata.Json.value_to_json(to_valuex)letto_queryto_valuex=Client.Query.of_value(to_valuex)letstructure_to_value_auxst~f=letfilter=function|(k,Somev)->Some(k,v)|_->Noneinletpairkv=(k,v)inletdefer_value(k,dv)=pairkdvin((List.filter_mapst~f:filter)|>(List.map~f:defer_value))|>(funx->`Structure(fx))letstructure_to_value=structure_to_value_aux~f:Fn.idletstructure_to_wrapped_value~wrapper~response=structure_to_value_aux~f:(funx->[(wrapper,(`Structurex));(response,(`Structure[]))])moduleRoleValue=structtypenonrect=stringletcontext_="RoleValue"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:256)>>=(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:"RoleValue"jletto_json=simple_to_jsonto_valueendmoduleSsoId=structtypenonrect=stringletcontext_="SsoId"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:47)>>=(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:"SsoId"jletto_json=simple_to_jsonto_valueendmoduleUserType=structtypenonrect=|SSO_USER|SSO_GROUP|Non_static_idofstringletmakei=iletto_string=function|SSO_USER->"SSO_USER"|SSO_GROUP->"SSO_GROUP"|Non_static_ids->sletof_string=function|"SSO_USER"->SSO_USER|"SSO_GROUP"->SSO_GROUP|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 UserType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"UserType"j)letto_json=simple_to_jsonto_valueendmoduleAllowedOrganization=structtypenonrect=stringletcontext_="AllowedOrganization"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:256)>>=(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:"AllowedOrganization"jletto_json=simple_to_jsonto_valueendmoduleAssertionAttribute=structtypenonrect=stringletcontext_="AssertionAttribute"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:256)>>=(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:"AssertionAttribute"jletto_json=simple_to_jsonto_valueendmoduleIdpMetadataUrl=structtypenonrect=stringletcontext_="IdpMetadataUrl"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:2048)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"IdpMetadataUrl"jletto_json=simple_to_jsonto_valueendmoduleString_=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_valueendmoduleRoleValueList=structtypenonrect=RoleValue.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:RoleValue.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:RoleValue.of_xml)letof_jsonj=list_of_json~kind:"RoleValueList"~of_json:RoleValue.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleUser=structtypenonrect={id:SsoId.t[@ocaml.doc"The ID of the user or group. Pattern: ^(\\[0-9a-fA-F\\]\\{10\\}-|)\\[A-Fa-f0-9\\]\\{8\\}-\\[A-Fa-f0-9\\]\\{4\\}-\\[A-Fa-f0-9\\]\\{4\\}-\\[A-Fa-f0-9\\]\\{4\\}-\\[A-Fa-f0-9\\]\\{12\\}$"];type_:UserType.t[@ocaml.doc"Specifies whether this is a single user or a group."]}letcontext_="User"letmake~id=fun~type_->fun()->{id;type_}letto_valuex=structure_to_value[("id",(Some(SsoId.to_valuex.id)));("type",(Some(UserType.to_valuex.type_)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettype_=UserType.of_xml(Xml.child_exn~context:context_xml_arg0"type")inletid=SsoId.of_xml(Xml.child_exn~context:context_xml_arg0"id")inmake~type_~id()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettype_=field_map_exnjson__"type"UserType.of_jsoninletid=field_map_exnjson__"id"SsoId.of_jsoninmake~type_~id()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A structure that specifies one user or group in the workspace."]moduleAuthenticationProviderTypes=structtypenonrect=|AWS_SSO|SAML|Non_static_idofstringletmakei=iletto_string=function|AWS_SSO->"AWS_SSO"|SAML->"SAML"|Non_static_ids->sletof_string=function|"AWS_SSO"->AWS_SSO|"SAML"->SAML|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 AuthenticationProviderTypes"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"AuthenticationProviderTypes"j)letto_json=simple_to_jsonto_valueendmodulePrefixListId=structtypenonrect=stringletcontext_="PrefixListId"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:100)>>=(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:"PrefixListId"jletto_json=simple_to_jsonto_valueendmoduleVpceId=structtypenonrect=stringletcontext_="VpceId"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:100)>>=(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:"VpceId"jletto_json=simple_to_jsonto_valueendmoduleSecurityGroupId=structtypenonrect=stringletcontext_="SecurityGroupId"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:255)>>=(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:"SecurityGroupId"jletto_json=simple_to_jsonto_valueendmoduleSubnetId=structtypenonrect=stringletcontext_="SubnetId"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:255)>>=(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:"SubnetId"jletto_json=simple_to_jsonto_valueendmoduleAllowedOrganizations=structtypenonrect=AllowedOrganization.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:AllowedOrganization.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:AllowedOrganization.of_xml)letof_jsonj=list_of_json~kind:"AllowedOrganizations"~of_json:AllowedOrganization.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAssertionAttributes=structtypenonrect={name:AssertionAttribute.toption[@ocaml.doc"The name of the attribute within the SAML assertion to use as the user full \"friendly\" names for SAML users."];login:AssertionAttribute.toption[@ocaml.doc"The name of the attribute within the SAML assertion to use as the login names for SAML users."];email:AssertionAttribute.toption[@ocaml.doc"The name of the attribute within the SAML assertion to use as the email names for SAML users."];groups:AssertionAttribute.toption[@ocaml.doc"The name of the attribute within the SAML assertion to use as the user full \"friendly\" names for user groups."];role:AssertionAttribute.toption[@ocaml.doc"The name of the attribute within the SAML assertion to use as the user roles."];org:AssertionAttribute.toption[@ocaml.doc"The name of the attribute within the SAML assertion to use as the user full \"friendly\" names for the users' organizations."]}letmake?name=fun?login->fun?email->fun?groups->fun?role->fun?org->fun()->{name;login;email;groups;role;org}letto_valuex=structure_to_value[("name",(Option.mapx.name~f:AssertionAttribute.to_value));("login",(Option.mapx.login~f:AssertionAttribute.to_value));("email",(Option.mapx.email~f:AssertionAttribute.to_value));("groups",(Option.mapx.groups~f:AssertionAttribute.to_value));("role",(Option.mapx.role~f:AssertionAttribute.to_value));("org",(Option.mapx.org~f:AssertionAttribute.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letorg=(Option.map~f:AssertionAttribute.of_xml)(Xml.childxml_arg0"org")inletrole=(Option.map~f:AssertionAttribute.of_xml)(Xml.childxml_arg0"role")inletgroups=(Option.map~f:AssertionAttribute.of_xml)(Xml.childxml_arg0"groups")inletemail=(Option.map~f:AssertionAttribute.of_xml)(Xml.childxml_arg0"email")inletlogin=(Option.map~f:AssertionAttribute.of_xml)(Xml.childxml_arg0"login")inletname=(Option.map~f:AssertionAttribute.of_xml)(Xml.childxml_arg0"name")inmake?org?role?groups?email?login?name()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letorg=field_mapjson__"org"AssertionAttribute.of_jsoninletrole=field_mapjson__"role"AssertionAttribute.of_jsoninletgroups=field_mapjson__"groups"AssertionAttribute.of_jsoninletemail=field_mapjson__"email"AssertionAttribute.of_jsoninletlogin=field_mapjson__"login"AssertionAttribute.of_jsoninletname=field_mapjson__"name"AssertionAttribute.of_jsoninmake?org?role?groups?email?login?name()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A structure that defines which attributes in the IdP assertion are to be used to define information about the users authenticated by the IdP to use the workspace."]moduleIdpMetadata=structtypenonrect={url:IdpMetadataUrl.toption[@ocaml.doc"The URL of the location containing the IdP metadata."];xml:String_.toption[@ocaml.doc"The full IdP metadata, in XML format."]}letmake?url=fun?xml->fun()->{url;xml}letto_valuex=structure_to_value[("url",(Option.mapx.url~f:IdpMetadataUrl.to_value));("xml",(Option.mapx.xml~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letxml=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"xml")inleturl=(Option.map~f:IdpMetadataUrl.of_xml)(Xml.childxml_arg0"url")inmake?xml?url()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letxml=field_mapjson__"xml"String_.of_jsoninleturl=field_mapjson__"url"IdpMetadataUrl.of_jsoninmake?xml?url()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A structure containing the identity provider (IdP) metadata used to integrate the identity provider with this workspace. You can specify the metadata either by providing a URL to its location in the url parameter, or by specifying the full metadata in XML format in the xml parameter. Specifying both will cause an error."]moduleLoginValidityDuration=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 LoginValidityDuration"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleRoleValues=structtypenonrect={editor:RoleValueList.toption[@ocaml.doc"A list of groups from the SAML assertion attribute to grant the Grafana Editor role to."];admin:RoleValueList.toption[@ocaml.doc"A list of groups from the SAML assertion attribute to grant the Grafana Admin role to."]}letmake?editor=fun?admin->fun()->{editor;admin}letto_valuex=structure_to_value[("editor",(Option.mapx.editor~f:RoleValueList.to_value));("admin",(Option.mapx.admin~f:RoleValueList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letadmin=(Option.map~f:RoleValueList.of_xml)(Xml.childxml_arg0"admin")inleteditor=(Option.map~f:RoleValueList.of_xml)(Xml.childxml_arg0"editor")inmake?admin?editor()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letadmin=field_mapjson__"admin"RoleValueList.of_jsoninleteditor=field_mapjson__"editor"RoleValueList.of_jsoninmake?admin?editor()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"This structure defines which groups defined in the SAML assertion attribute are to be mapped to the Grafana Admin and Editor roles in the workspace. SAML authenticated users not part of Admin or Editor role groups have Viewer permission over the workspace."]moduleRole=structtypenonrect=|ADMIN|EDITOR|VIEWER|Non_static_idofstringletmakei=iletto_string=function|ADMIN->"ADMIN"|EDITOR->"EDITOR"|VIEWER->"VIEWER"|Non_static_ids->sletof_string=function|"ADMIN"->ADMIN|"EDITOR"->EDITOR|"VIEWER"->VIEWER|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 Role"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"Role"j)letto_json=simple_to_jsonto_valueendmoduleUpdateAction=structtypenonrect=|ADD|REVOKE|Non_static_idofstringletmakei=iletto_string=function|ADD->"ADD"|REVOKE->"REVOKE"|Non_static_ids->sletof_string=function|"ADD"->ADD|"REVOKE"->REVOKE|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 UpdateAction"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"UpdateAction"j)letto_json=simple_to_jsonto_valueendmoduleUserList=structtypenonrect=User.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:User.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:User.of_xml)letof_jsonj=list_of_json~kind:"UserList"~of_json:User.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAuthenticationProviders=structtypenonrect=AuthenticationProviderTypes.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:AuthenticationProviderTypes.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:AuthenticationProviderTypes.of_xml)letof_jsonj=list_of_json~kind:"AuthenticationProviders"~of_json:AuthenticationProviderTypes.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleSamlConfigurationStatus=structtypenonrect=|CONFIGURED|NOT_CONFIGURED|Non_static_idofstringletmakei=iletto_string=function|CONFIGURED->"CONFIGURED"|NOT_CONFIGURED->"NOT_CONFIGURED"|Non_static_ids->sletof_string=function|"CONFIGURED"->CONFIGURED|"NOT_CONFIGURED"->NOT_CONFIGURED|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 SamlConfigurationStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"SamlConfigurationStatus"j)letto_json=simple_to_jsonto_valueendmoduleNotificationDestinationType=structtypenonrect=|SNS|Non_static_idofstringletmakei=iletto_string=function|SNS->"SNS"|Non_static_ids->sletof_string=function|"SNS"->SNS|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 NotificationDestinationType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"NotificationDestinationType"j)letto_json=simple_to_jsonto_valueendmoduleTagKey=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_valueendmoduleValidationExceptionField=structtypenonrect={name:String_.toption[@ocaml.doc"The name of the field that caused the validation error."];message:String_.toption[@ocaml.doc"A message describing why this field couldn't be validated."]}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"A structure that contains information about a request parameter that caused an error."]moduleDataSourceType=structtypenonrect=|AMAZON_OPENSEARCH_SERVICE|CLOUDWATCH|PROMETHEUS|XRAY|TIMESTREAM|SITEWISE|ATHENA|REDSHIFT|TWINMAKER|Non_static_idofstringletmakei=iletto_string=function|AMAZON_OPENSEARCH_SERVICE->"AMAZON_OPENSEARCH_SERVICE"|CLOUDWATCH->"CLOUDWATCH"|PROMETHEUS->"PROMETHEUS"|XRAY->"XRAY"|TIMESTREAM->"TIMESTREAM"|SITEWISE->"SITEWISE"|ATHENA->"ATHENA"|REDSHIFT->"REDSHIFT"|TWINMAKER->"TWINMAKER"|Non_static_ids->sletof_string=function|"AMAZON_OPENSEARCH_SERVICE"->AMAZON_OPENSEARCH_SERVICE|"CLOUDWATCH"->CLOUDWATCH|"PROMETHEUS"->PROMETHEUS|"XRAY"->XRAY|"TIMESTREAM"->TIMESTREAM|"SITEWISE"->SITEWISE|"ATHENA"->ATHENA|"REDSHIFT"->REDSHIFT|"TWINMAKER"->TWINMAKER|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 DataSourceType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"DataSourceType"j)letto_json=simple_to_jsonto_valueendmodulePrefixListIds=structtypenonrect=PrefixListId.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:PrefixListId.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:PrefixListId.of_xml)letof_jsonj=list_of_json~kind:"PrefixListIds"~of_json:PrefixListId.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleVpceIds=structtypenonrect=VpceId.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:VpceId.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:VpceId.of_xml)letof_jsonj=list_of_json~kind:"VpceIds"~of_json:VpceId.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleOrganizationalUnit=structtypenonrect=stringletcontext_="OrganizationalUnit"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:"OrganizationalUnit"jletto_json=simple_to_jsonto_valueendmoduleSecurityGroupIds=structtypenonrect=SecurityGroupId.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:5)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f: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:"SecurityGroupIds"~of_json:SecurityGroupId.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleSubnetIds=structtypenonrect=SubnetId.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:6)>>=(fun()->check_list_mini~min:2));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:"SubnetIds"~of_json:SubnetId.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleSSOClientId=structtypenonrect=stringletcontext_="SSOClientId"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:"SSOClientId"jletto_json=simple_to_jsonto_valueendmoduleSamlConfiguration=structtypenonrect={idpMetadata:IdpMetadata.t[@ocaml.doc"A structure containing the identity provider (IdP) metadata used to integrate the identity provider with this workspace."];assertionAttributes:AssertionAttributes.toption[@ocaml.doc"A structure that defines which attributes in the SAML assertion are to be used to define information about the users authenticated by that IdP to use the workspace."];roleValues:RoleValues.toption[@ocaml.doc"A structure containing arrays that map group names in the SAML assertion to the Grafana Admin and Editor roles in the workspace."];allowedOrganizations:AllowedOrganizations.toption[@ocaml.doc"Lists which organizations defined in the SAML assertion are allowed to use the Amazon Managed Grafana workspace. If this is empty, all organizations in the assertion attribute have access."];loginValidityDuration:LoginValidityDuration.toption[@ocaml.doc"How long a sign-on session by a SAML user is valid, before the user has to sign on again."]}letcontext_="SamlConfiguration"letmake?assertionAttributes=fun?roleValues->fun?allowedOrganizations->fun?loginValidityDuration->fun~idpMetadata->fun()->{assertionAttributes;roleValues;allowedOrganizations;loginValidityDuration;idpMetadata}letto_valuex=structure_to_value[("idpMetadata",(Some(IdpMetadata.to_valuex.idpMetadata)));("assertionAttributes",(Option.mapx.assertionAttributes~f:AssertionAttributes.to_value));("roleValues",(Option.mapx.roleValues~f:RoleValues.to_value));("allowedOrganizations",(Option.mapx.allowedOrganizations~f:AllowedOrganizations.to_value));("loginValidityDuration",(Option.mapx.loginValidityDuration~f:LoginValidityDuration.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letloginValidityDuration=(Option.map~f:LoginValidityDuration.of_xml)(Xml.childxml_arg0"loginValidityDuration")inletallowedOrganizations=(Option.map~f:AllowedOrganizations.of_xml)(Xml.childxml_arg0"allowedOrganizations")inletroleValues=(Option.map~f:RoleValues.of_xml)(Xml.childxml_arg0"roleValues")inletassertionAttributes=(Option.map~f:AssertionAttributes.of_xml)(Xml.childxml_arg0"assertionAttributes")inletidpMetadata=IdpMetadata.of_xml(Xml.child_exn~context:context_xml_arg0"idpMetadata")inmake?loginValidityDuration?allowedOrganizations?roleValues?assertionAttributes~idpMetadata()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letloginValidityDuration=field_mapjson__"loginValidityDuration"LoginValidityDuration.of_jsoninletallowedOrganizations=field_mapjson__"allowedOrganizations"AllowedOrganizations.of_jsoninletroleValues=field_mapjson__"roleValues"RoleValues.of_jsoninletassertionAttributes=field_mapjson__"assertionAttributes"AssertionAttributes.of_jsoninletidpMetadata=field_map_exnjson__"idpMetadata"IdpMetadata.of_jsoninmake?loginValidityDuration?allowedOrganizations?roleValues?assertionAttributes~idpMetadata()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A structure containing information about how this workspace works with SAML."]moduleUpdateErrorCodeInteger=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:999)>>=(fun()->check_int_mini~min:100));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 UpdateErrorCodeInteger"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleUpdateInstruction=structtypenonrect={action:UpdateAction.t[@ocaml.doc"Specifies whether this update is to add or revoke role permissions."];role:Role.t[@ocaml.doc"The role to add or revoke for the user or the group specified in users."];users:UserList.t[@ocaml.doc"A structure that specifies the user or group to add or revoke the role for."]}letcontext_="UpdateInstruction"letmake~action=fun~role->fun~users->fun()->{action;role;users}letto_valuex=structure_to_value[("action",(Some(UpdateAction.to_valuex.action)));("role",(Some(Role.to_valuex.role)));("users",(Some(UserList.to_valuex.users)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letusers=UserList.of_xml(Xml.child_exn~context:context_xml_arg0"users")inletrole=Role.of_xml(Xml.child_exn~context:context_xml_arg0"role")inletaction=UpdateAction.of_xml(Xml.child_exn~context:context_xml_arg0"action")inmake~users~role~action()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letusers=field_map_exnjson__"users"UserList.of_jsoninletrole=field_map_exnjson__"role"Role.of_jsoninletaction=field_map_exnjson__"action"UpdateAction.of_jsoninmake~users~role~action()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains the instructions for one Grafana role permission update in a UpdatePermissions operation."]moduleAuthenticationSummary=structtypenonrect={providers:AuthenticationProviders.toption[@ocaml.doc"Specifies whether the workspace uses SAML, IAM Identity Center, or both methods for user authentication."];samlConfigurationStatus:SamlConfigurationStatus.toption[@ocaml.doc"Specifies whether the workplace's user authentication method is fully configured."]}letmake?providers=fun?samlConfigurationStatus->fun()->{providers;samlConfigurationStatus}letto_valuex=structure_to_value[("providers",(Option.mapx.providers~f:AuthenticationProviders.to_value));("samlConfigurationStatus",(Option.mapx.samlConfigurationStatus~f:SamlConfigurationStatus.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsamlConfigurationStatus=(Option.map~f:SamlConfigurationStatus.of_xml)(Xml.childxml_arg0"samlConfigurationStatus")inletproviders=(Option.map~f:AuthenticationProviders.of_xml)(Xml.childxml_arg0"providers")inmake?samlConfigurationStatus?providers()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsamlConfigurationStatus=field_mapjson__"samlConfigurationStatus"SamlConfigurationStatus.of_jsoninletproviders=field_mapjson__"providers"AuthenticationProviders.of_jsoninmake?samlConfigurationStatus?providers()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A structure that describes whether the workspace uses SAML, IAM Identity Center, or both methods for user authentication, and whether that authentication is fully configured."]moduleDescription=structtypenonrect=stringletcontext_="Description"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:2048)>>=(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:"Description"jletto_json=simple_to_jsonto_valueendmoduleEndpoint=structtypenonrect=stringletcontext_="Endpoint"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:2048)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"Endpoint"jletto_json=simple_to_jsonto_valueendmoduleGrafanaToken=structtypenonrect=stringletcontext_="GrafanaToken"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:36)>>=(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:"GrafanaToken"jletto_json=simple_to_jsonto_valueendmoduleGrafanaVersion=structtypenonrect=stringletcontext_="GrafanaVersion"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:255)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"GrafanaVersion"jletto_json=simple_to_jsonto_valueendmoduleLicenseType=structtypenonrect=|ENTERPRISE|ENTERPRISE_FREE_TRIAL|Non_static_idofstringletmakei=iletto_string=function|ENTERPRISE->"ENTERPRISE"|ENTERPRISE_FREE_TRIAL->"ENTERPRISE_FREE_TRIAL"|Non_static_ids->sletof_string=function|"ENTERPRISE"->ENTERPRISE|"ENTERPRISE_FREE_TRIAL"->ENTERPRISE_FREE_TRIAL|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 LicenseType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"LicenseType"j)letto_json=simple_to_jsonto_valueendmoduleNotificationDestinationsList=structtypenonrect=NotificationDestinationType.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:NotificationDestinationType.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:NotificationDestinationType.of_xml)letof_jsonj=list_of_json~kind:"NotificationDestinationsList"~of_json:NotificationDestinationType.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleTagMap=structtypenonrect=(TagKey.t*TagValue.t)listletmakei=letopenResultinok_or_failwith((check_list_maxi~max:50)>>=(fun()->check_list_mini~min:0));iletof_headerxs=make(List.filter_mapxs~f:(fun(k,v)->(Base.String.chop_prefixk~prefix:"x-amz-meta-")|>(Option.map~f:(funchopped->((TagKey.of_stringchopped),(TagValue.of_stringv))))))letto_valuexs=(xs|>(List.map~f:(fun(x,y)->(TagKey.to_valuex)|>(funx->(TagValue.to_valuey)|>(funy->(x,y))))))|>(funx->`Mapx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for Map_shape objects"()letof_xml_=failwith"of_xml_converter_of_shape: Map_shape case not implemented"letof_jsonj=object_of_json~key_of_string:TagKey.of_string~of_json:TagValue.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleTimestamp=structtypenonrect=stringletmakei=iletof_stringx=xletto_valuex=`Timestampxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=string_of_xml~kind:"a timestamp"letof_json=timestamp_of_jsonletto_json=simple_to_jsonto_valueendmoduleWorkspaceId=structtypenonrect=stringletcontext_="WorkspaceId"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"g-[0-9a-f]{10}");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"WorkspaceId"jletto_json=simple_to_jsonto_valueendmoduleWorkspaceName=structtypenonrect=stringletcontext_="WorkspaceName"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"[a-zA-Z0-9-._~]{1,255}");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"WorkspaceName"jletto_json=simple_to_jsonto_valueendmoduleWorkspaceStatus=structtypenonrect=|ACTIVE|CREATING|DELETING|FAILED|UPDATING|UPGRADING|DELETION_FAILED|CREATION_FAILED|UPDATE_FAILED|UPGRADE_FAILED|LICENSE_REMOVAL_FAILED|VERSION_UPDATING|VERSION_UPDATE_FAILED|Non_static_idofstringletmakei=iletto_string=function|ACTIVE->"ACTIVE"|CREATING->"CREATING"|DELETING->"DELETING"|FAILED->"FAILED"|UPDATING->"UPDATING"|UPGRADING->"UPGRADING"|DELETION_FAILED->"DELETION_FAILED"|CREATION_FAILED->"CREATION_FAILED"|UPDATE_FAILED->"UPDATE_FAILED"|UPGRADE_FAILED->"UPGRADE_FAILED"|LICENSE_REMOVAL_FAILED->"LICENSE_REMOVAL_FAILED"|VERSION_UPDATING->"VERSION_UPDATING"|VERSION_UPDATE_FAILED->"VERSION_UPDATE_FAILED"|Non_static_ids->sletof_string=function|"ACTIVE"->ACTIVE|"CREATING"->CREATING|"DELETING"->DELETING|"FAILED"->FAILED|"UPDATING"->UPDATING|"UPGRADING"->UPGRADING|"DELETION_FAILED"->DELETION_FAILED|"CREATION_FAILED"->CREATION_FAILED|"UPDATE_FAILED"->UPDATE_FAILED|"UPGRADE_FAILED"->UPGRADE_FAILED|"LICENSE_REMOVAL_FAILED"->LICENSE_REMOVAL_FAILED|"VERSION_UPDATING"->VERSION_UPDATING|"VERSION_UPDATE_FAILED"->VERSION_UPDATE_FAILED|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration WorkspaceStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"WorkspaceStatus"j)letto_json=simple_to_jsonto_valueendmoduleInteger=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=|UNKNOWN_OPERATION|CANNOT_PARSE|FIELD_VALIDATION_FAILED|OTHER|Non_static_idofstringletmakei=iletto_string=function|UNKNOWN_OPERATION->"UNKNOWN_OPERATION"|CANNOT_PARSE->"CANNOT_PARSE"|FIELD_VALIDATION_FAILED->"FIELD_VALIDATION_FAILED"|OTHER->"OTHER"|Non_static_ids->sletof_string=function|"UNKNOWN_OPERATION"->UNKNOWN_OPERATION|"CANNOT_PARSE"->CANNOT_PARSE|"FIELD_VALIDATION_FAILED"->FIELD_VALIDATION_FAILED|"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_valueendmoduleAccountAccessType=structtypenonrect=|CURRENT_ACCOUNT|ORGANIZATION|Non_static_idofstringletmakei=iletto_string=function|CURRENT_ACCOUNT->"CURRENT_ACCOUNT"|ORGANIZATION->"ORGANIZATION"|Non_static_ids->sletof_string=function|"CURRENT_ACCOUNT"->CURRENT_ACCOUNT|"ORGANIZATION"->ORGANIZATION|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 AccountAccessType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"AccountAccessType"j)letto_json=simple_to_jsonto_valueendmoduleBoolean=structtypenonrect=boolletmakei=iletof_string=Bool.of_stringletto_valuex=`Booleanxletto_queryv=to_queryto_valuevletto_headerx=Bool.to_stringxletof_xmlxml_arg0=Bool.of_string(string_of_xml~kind:"a boolean"xml_arg0)letof_json=bool_of_jsonletto_json=simple_to_jsonto_valueendmoduleDataSourceTypesList=structtypenonrect=DataSourceType.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:DataSourceType.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:DataSourceType.of_xml)letof_jsonj=list_of_json~kind:"DataSourceTypesList"~of_json:DataSourceType.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleIPAddressType=structtypenonrect=|IPv4|DualStack|Non_static_idofstringletmakei=iletto_string=function|IPv4->"IPv4"|DualStack->"DualStack"|Non_static_ids->sletof_string=function|"IPv4"->IPv4|"DualStack"->DualStack|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 IPAddressType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"IPAddressType"j)letto_json=simple_to_jsonto_valueendmoduleIamRoleArn=structtypenonrect=stringletcontext_="IamRoleArn"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:2048)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"IamRoleArn"jletto_json=simple_to_jsonto_valueendmoduleKmsKeyId=structtypenonrect=stringletcontext_="KmsKeyId"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:2048)>>=(fun()->check_patterni~pattern:"[a-zA-Z0-9:/_-]+")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"KmsKeyId"jletto_json=simple_to_jsonto_valueendmoduleNetworkAccessConfiguration=structtypenonrect={prefixListIds:PrefixListIds.t[@ocaml.doc"An array of prefix list IDs. A prefix list is a list of CIDR ranges of IP addresses. The IP addresses specified are allowed to access your workspace. If the list is not included in the configuration (passed an empty array) then no IP addresses are allowed to access the workspace. You create a prefix list using the Amazon VPC console. Prefix list IDs have the format pl-1a2b3c4d . For more information about prefix lists, see Group CIDR blocks using managed prefix listsin the Amazon Virtual Private Cloud User Guide."];vpceIds:VpceIds.t[@ocaml.doc"An array of Amazon VPC endpoint IDs for the workspace. You can create VPC endpoints to your Amazon Managed Grafana workspace for access from within a VPC. If a NetworkAccessConfiguration is specified then only VPC endpoints specified here are allowed to access the workspace. If you pass in an empty array of strings, then no VPCs are allowed to access the workspace. VPC endpoint IDs have the format vpce-1a2b3c4d . For more information about creating an interface VPC endpoint, see Interface VPC endpoints in the Amazon Managed Grafana User Guide. The only VPC endpoints that can be specified here are interface VPC endpoints for Grafana workspaces (using the com.amazonaws.\\[region\\].grafana-workspace service endpoint). Other VPC endpoints are ignored."]}letcontext_="NetworkAccessConfiguration"letmake~prefixListIds=fun~vpceIds->fun()->{prefixListIds;vpceIds}letto_valuex=structure_to_value[("prefixListIds",(Some(PrefixListIds.to_valuex.prefixListIds)));("vpceIds",(Some(VpceIds.to_valuex.vpceIds)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvpceIds=VpceIds.of_xml(Xml.child_exn~context:context_xml_arg0"vpceIds")inletprefixListIds=PrefixListIds.of_xml(Xml.child_exn~context:context_xml_arg0"prefixListIds")inmake~vpceIds~prefixListIds()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvpceIds=field_map_exnjson__"vpceIds"VpceIds.of_jsoninletprefixListIds=field_map_exnjson__"prefixListIds"PrefixListIds.of_jsoninmake~vpceIds~prefixListIds()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The configuration settings for in-bound network access to your workspace. When this is configured, only listed IP addresses and VPC endpoints will be able to access your workspace. Standard Grafana authentication and authorization are still required. Access is granted to a caller that is in either the IP address list or the VPC endpoint list - they do not need to be in both. If this is not configured, or is removed, then all IP addresses and VPC endpoints are allowed. Standard Grafana authentication and authorization are still required. While both prefixListIds and vpceIds are required, you can pass in an empty array of strings for either parameter if you do not want to allow any of that type. If both are passed as empty arrays, no traffic is allowed to the workspace, because only explicitly allowed connections are accepted."]moduleOrganizationRoleName=structtypenonrect=stringletcontext_="OrganizationRoleName"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:2048)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"OrganizationRoleName"jletto_json=simple_to_jsonto_valueendmoduleOrganizationalUnitList=structtypenonrect=OrganizationalUnit.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:OrganizationalUnit.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:OrganizationalUnit.of_xml)letof_jsonj=list_of_json~kind:"OrganizationalUnitList"~of_json:OrganizationalUnit.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmodulePermissionType=structtypenonrect=|CUSTOMER_MANAGED|SERVICE_MANAGED|Non_static_idofstringletmakei=iletto_string=function|CUSTOMER_MANAGED->"CUSTOMER_MANAGED"|SERVICE_MANAGED->"SERVICE_MANAGED"|Non_static_ids->sletof_string=function|"CUSTOMER_MANAGED"->CUSTOMER_MANAGED|"SERVICE_MANAGED"->SERVICE_MANAGED|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 PermissionType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"PermissionType"j)letto_json=simple_to_jsonto_valueendmoduleStackSetName=structtypenonrect=stringletcontext_="StackSetName"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:"StackSetName"jletto_json=simple_to_jsonto_valueendmoduleVpcConfiguration=structtypenonrect={securityGroupIds:SecurityGroupIds.t[@ocaml.doc"The list of Amazon EC2 security group IDs attached to the Amazon VPC for your Grafana workspace to connect. Duplicates not allowed."];subnetIds:SubnetIds.t[@ocaml.doc"The list of Amazon EC2 subnet IDs created in the Amazon VPC for your Grafana workspace to connect. Duplicates not allowed."]}letcontext_="VpcConfiguration"letmake~securityGroupIds=fun~subnetIds->fun()->{securityGroupIds;subnetIds}letto_valuex=structure_to_value[("securityGroupIds",(Some(SecurityGroupIds.to_valuex.securityGroupIds)));("subnetIds",(Some(SubnetIds.to_valuex.subnetIds)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsubnetIds=SubnetIds.of_xml(Xml.child_exn~context:context_xml_arg0"subnetIds")inletsecurityGroupIds=SecurityGroupIds.of_xml(Xml.child_exn~context:context_xml_arg0"securityGroupIds")inmake~subnetIds~securityGroupIds()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsubnetIds=field_map_exnjson__"subnetIds"SubnetIds.of_jsoninletsecurityGroupIds=field_map_exnjson__"securityGroupIds"SecurityGroupIds.of_jsoninmake~subnetIds~securityGroupIds()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The configuration settings for an Amazon VPC that contains data sources for your Grafana workspace to connect to. Provided securityGroupIds and subnetIds must be part of the same VPC. Connecting to a private VPC is not yet available in the Asia Pacific (Seoul) Region (ap-northeast-2)."]moduleAwsSsoAuthentication=structtypenonrect={ssoClientId:SSOClientId.toption[@ocaml.doc"The ID of the IAM Identity Center-managed application that is created by Amazon Managed Grafana."]}letmake?ssoClientId=fun()->{ssoClientId}letto_valuex=structure_to_value[("ssoClientId",(Option.mapx.ssoClientId~f:SSOClientId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letssoClientId=(Option.map~f:SSOClientId.of_xml)(Xml.childxml_arg0"ssoClientId")inmake?ssoClientId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letssoClientId=field_mapjson__"ssoClientId"SSOClientId.of_jsoninmake?ssoClientId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A structure containing information about how this workspace works with IAM Identity Center."]moduleSamlAuthentication=structtypenonrect={status:SamlConfigurationStatus.toption[@ocaml.doc"Specifies whether the workspace's SAML configuration is complete."];configuration:SamlConfiguration.toption[@ocaml.doc"A structure containing details about how this workspace works with SAML."]}letmake?status=fun?configuration->fun()->{status;configuration}letto_valuex=structure_to_value[("status",(Option.mapx.status~f:SamlConfigurationStatus.to_value));("configuration",(Option.mapx.configuration~f:SamlConfiguration.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letconfiguration=(Option.map~f:SamlConfiguration.of_xml)(Xml.childxml_arg0"configuration")inletstatus=(Option.map~f:SamlConfigurationStatus.of_xml)(Xml.childxml_arg0"status")inmake?configuration?status()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letconfiguration=field_mapjson__"configuration"SamlConfiguration.of_jsoninletstatus=field_mapjson__"status"SamlConfigurationStatus.of_jsoninmake?configuration?status()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A structure containing information about how this workspace works with SAML."]moduleUpdateError=structtypenonrect={code:UpdateErrorCodeInteger.toption[@ocaml.doc"The error code."];message:String_.toption[@ocaml.doc"The message for this error."];causedBy:UpdateInstruction.toption[@ocaml.doc"Specifies which permission update caused the error."]}letmake?code=fun?message->fun?causedBy->fun()->{code;message;causedBy}letto_valuex=structure_to_value[("code",(Option.mapx.code~f:UpdateErrorCodeInteger.to_value));("message",(Option.mapx.message~f:String_.to_value));("causedBy",(Option.mapx.causedBy~f:UpdateInstruction.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcausedBy=(Option.map~f:UpdateInstruction.of_xml)(Xml.childxml_arg0"causedBy")inletmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inletcode=(Option.map~f:UpdateErrorCodeInteger.of_xml)(Xml.childxml_arg0"code")inmake?causedBy?message?code()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcausedBy=field_mapjson__"causedBy"UpdateInstruction.of_jsoninletmessage=field_mapjson__"message"String_.of_jsoninletcode=field_mapjson__"code"UpdateErrorCodeInteger.of_jsoninmake?causedBy?message?code()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A structure containing information about one error encountered while performing an UpdatePermissions operation."]moduleWorkspaceSummary=structtypenonrect={created:Timestamp.toption[@ocaml.doc"The date that the workspace was created."];description:Description.toption[@ocaml.doc"The customer-entered description of the workspace."];endpoint:Endpoint.toption[@ocaml.doc"The URL endpoint to use to access the Grafana console in the workspace."];grafanaVersion:GrafanaVersion.toption[@ocaml.doc"The Grafana version that the workspace is running."];id:WorkspaceId.toption[@ocaml.doc"The unique ID of the workspace."];modified:Timestamp.toption[@ocaml.doc"The most recent date that the workspace was modified."];name:WorkspaceName.toption[@ocaml.doc"The name of the workspace."];notificationDestinations:NotificationDestinationsList.toption[@ocaml.doc"The Amazon Web Services notification channels that Amazon Managed Grafana can automatically create IAM roles and permissions for, which allows Amazon Managed Grafana to use these channels."];status:WorkspaceStatus.toption[@ocaml.doc"The current status of the workspace."];authentication:AuthenticationSummary.toption[@ocaml.doc"A structure containing information about the authentication methods used in the workspace."];tags:TagMap.toption[@ocaml.doc"The list of tags associated with the workspace."];licenseType:LicenseType.toption[@ocaml.doc"Specifies whether this workspace has a full Grafana Enterprise license. Amazon Managed Grafana workspaces no longer support Grafana Enterprise free trials."];grafanaToken:GrafanaToken.toption[@ocaml.doc"The token that ties this workspace to a Grafana Labs account. For more information, see Link your account with Grafana Labs."]}letmake?created=fun?description->fun?endpoint->fun?grafanaVersion->fun?id->fun?modified->fun?name->fun?notificationDestinations->fun?status->fun?authentication->fun?tags->fun?licenseType->fun?grafanaToken->fun()->{created;description;endpoint;grafanaVersion;id;modified;name;notificationDestinations;status;authentication;tags;licenseType;grafanaToken}letto_valuex=structure_to_value[("created",(Option.mapx.created~f:Timestamp.to_value));("description",(Option.mapx.description~f:Description.to_value));("endpoint",(Option.mapx.endpoint~f:Endpoint.to_value));("grafanaVersion",(Option.mapx.grafanaVersion~f:GrafanaVersion.to_value));("id",(Option.mapx.id~f:WorkspaceId.to_value));("modified",(Option.mapx.modified~f:Timestamp.to_value));("name",(Option.mapx.name~f:WorkspaceName.to_value));("notificationDestinations",(Option.mapx.notificationDestinations~f:NotificationDestinationsList.to_value));("status",(Option.mapx.status~f:WorkspaceStatus.to_value));("authentication",(Option.mapx.authentication~f:AuthenticationSummary.to_value));("tags",(Option.mapx.tags~f:TagMap.to_value));("licenseType",(Option.mapx.licenseType~f:LicenseType.to_value));("grafanaToken",(Option.mapx.grafanaToken~f:GrafanaToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgrafanaToken=(Option.map~f:GrafanaToken.of_xml)(Xml.childxml_arg0"grafanaToken")inletlicenseType=(Option.map~f:LicenseType.of_xml)(Xml.childxml_arg0"licenseType")inlettags=(Option.map~f:TagMap.of_xml)(Xml.childxml_arg0"tags")inletauthentication=(Option.map~f:AuthenticationSummary.of_xml)(Xml.childxml_arg0"authentication")inletstatus=(Option.map~f:WorkspaceStatus.of_xml)(Xml.childxml_arg0"status")inletnotificationDestinations=(Option.map~f:NotificationDestinationsList.of_xml)(Xml.childxml_arg0"notificationDestinations")inletname=(Option.map~f:WorkspaceName.of_xml)(Xml.childxml_arg0"name")inletmodified=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"modified")inletid=(Option.map~f:WorkspaceId.of_xml)(Xml.childxml_arg0"id")inletgrafanaVersion=(Option.map~f:GrafanaVersion.of_xml)(Xml.childxml_arg0"grafanaVersion")inletendpoint=(Option.map~f:Endpoint.of_xml)(Xml.childxml_arg0"endpoint")inletdescription=(Option.map~f:Description.of_xml)(Xml.childxml_arg0"description")inletcreated=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"created")inmake?grafanaToken?licenseType?tags?authentication?status?notificationDestinations?name?modified?id?grafanaVersion?endpoint?description?created()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgrafanaToken=field_mapjson__"grafanaToken"GrafanaToken.of_jsoninletlicenseType=field_mapjson__"licenseType"LicenseType.of_jsoninlettags=field_mapjson__"tags"TagMap.of_jsoninletauthentication=field_mapjson__"authentication"AuthenticationSummary.of_jsoninletstatus=field_mapjson__"status"WorkspaceStatus.of_jsoninletnotificationDestinations=field_mapjson__"notificationDestinations"NotificationDestinationsList.of_jsoninletname=field_mapjson__"name"WorkspaceName.of_jsoninletmodified=field_mapjson__"modified"Timestamp.of_jsoninletid=field_mapjson__"id"WorkspaceId.of_jsoninletgrafanaVersion=field_mapjson__"grafanaVersion"GrafanaVersion.of_jsoninletendpoint=field_mapjson__"endpoint"Endpoint.of_jsoninletdescription=field_mapjson__"description"Description.of_jsoninletcreated=field_mapjson__"created"Timestamp.of_jsoninmake?grafanaToken?licenseType?tags?authentication?status?notificationDestinations?name?modified?id?grafanaVersion?endpoint?description?created()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A structure that contains some information about one workspace in the account."]moduleServiceAccountSummary=structtypenonrect={id:String_.toption[@ocaml.doc"The unique ID of the service account."];name:String_.toption[@ocaml.doc"The name of the service account."];isDisabled:String_.toption[@ocaml.doc"Returns true if the service account is disabled. Service accounts can be disabled and enabled in the Amazon Managed Grafana console."];grafanaRole:Role.toption[@ocaml.doc"The role of the service account, which sets the permission level used when calling Grafana APIs."]}letmake?id=fun?name->fun?isDisabled->fun?grafanaRole->fun()->{id;name;isDisabled;grafanaRole}letto_valuex=structure_to_value[("id",(Option.mapx.id~f:String_.to_value));("name",(Option.mapx.name~f:String_.to_value));("isDisabled",(Option.mapx.isDisabled~f:String_.to_value));("grafanaRole",(Option.mapx.grafanaRole~f:Role.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgrafanaRole=(Option.map~f:Role.of_xml)(Xml.childxml_arg0"grafanaRole")inletisDisabled=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"isDisabled")inletname=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"name")inletid=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"id")inmake?grafanaRole?isDisabled?name?id()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgrafanaRole=field_mapjson__"grafanaRole"Role.of_jsoninletisDisabled=field_mapjson__"isDisabled"String_.of_jsoninletname=field_mapjson__"name"String_.of_jsoninletid=field_mapjson__"id"String_.of_jsoninmake?grafanaRole?isDisabled?name?id()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A structure that contains the information about one service account."]moduleServiceAccountTokenSummary=structtypenonrect={id:String_.toption[@ocaml.doc"The unique ID of the service account token."];name:String_.toption[@ocaml.doc"The name of the service account token."];createdAt:Timestamp.toption[@ocaml.doc"When the service account token was created."];expiresAt:Timestamp.toption[@ocaml.doc"When the service account token will expire."];lastUsedAt:Timestamp.toption[@ocaml.doc"The last time the token was used to authorize a Grafana HTTP API."]}letmake?id=fun?name->fun?createdAt->fun?expiresAt->fun?lastUsedAt->fun()->{id;name;createdAt;expiresAt;lastUsedAt}letto_valuex=structure_to_value[("id",(Option.mapx.id~f:String_.to_value));("name",(Option.mapx.name~f:String_.to_value));("createdAt",(Option.mapx.createdAt~f:Timestamp.to_value));("expiresAt",(Option.mapx.expiresAt~f:Timestamp.to_value));("lastUsedAt",(Option.mapx.lastUsedAt~f:Timestamp.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlastUsedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"lastUsedAt")inletexpiresAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"expiresAt")inletcreatedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"createdAt")inletname=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"name")inletid=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"id")inmake?lastUsedAt?expiresAt?createdAt?name?id()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlastUsedAt=field_mapjson__"lastUsedAt"Timestamp.of_jsoninletexpiresAt=field_mapjson__"expiresAt"Timestamp.of_jsoninletcreatedAt=field_mapjson__"createdAt"Timestamp.of_jsoninletname=field_mapjson__"name"String_.of_jsoninletid=field_mapjson__"id"String_.of_jsoninmake?lastUsedAt?expiresAt?createdAt?name?id()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A structure that contains the information about a service account token."]modulePermissionEntry=structtypenonrect={user:User.toption[@ocaml.doc"A structure with the ID of the user or group with this role."];role:Role.toption[@ocaml.doc"Specifies whether the user or group has the Admin, Editor, or Viewer role."]}letmake?user=fun?role->fun()->{user;role}letto_valuex=structure_to_value[("user",(Option.mapx.user~f:User.to_value));("role",(Option.mapx.role~f:Role.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letrole=(Option.map~f:Role.of_xml)(Xml.childxml_arg0"role")inletuser=(Option.map~f:User.of_xml)(Xml.childxml_arg0"user")inmake?role?user()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letrole=field_mapjson__"role"Role.of_jsoninletuser=field_mapjson__"user"User.of_jsoninmake?role?user()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A structure containing the identity of one user or group and the Admin, Editor, or Viewer role that they have."]moduleServiceAccountTokenKey=structtypenonrect=stringletcontext_="ServiceAccountTokenKey"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:"ServiceAccountTokenKey"jletto_json=simple_to_jsonto_valueendmoduleAccessDeniedException=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 do not have sufficient permissions to perform this action."]moduleConflictException=structtypenonrect={message:String_.toption[@ocaml.doc"A description of the error."];resourceId:String_.toption[@ocaml.doc"The ID of the resource that is associated with the error."];resourceType:String_.toption[@ocaml.doc"The type of the resource that is associated with the error."]}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"A resource was in an inconsistent state during an update or a deletion."]moduleInternalServerException=structtypenonrect={message:String_.toption[@ocaml.doc"A description of the error."];retryAfterSeconds:Integer.toption[@ocaml.doc"How long to wait before you retry this operation."]}letmake?message=fun?retryAfterSeconds->fun()->{message;retryAfterSeconds}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:String_.to_value));("Retry-After",(Option.mapx.retryAfterSeconds~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letretryAfterSeconds=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"Retry-After")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"Unexpected error while processing the request. Retry the request."]moduleResourceNotFoundException=structtypenonrect={message:String_.toption[@ocaml.doc"The value of a parameter in the request caused an error."];resourceId:String_.toption[@ocaml.doc"The ID of the resource that is associated with the error."];resourceType:String_.toption[@ocaml.doc"The type of the resource that is associated with the error."]}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 request references a resource that does not exist."]moduleThrottlingException=structtypenonrect={message:String_.toption[@ocaml.doc"A description of the error."];serviceCode:String_.toption[@ocaml.doc"The ID of the service that is associated with the error."];quotaCode:String_.toption[@ocaml.doc"The ID of the service quota that was exceeded."];retryAfterSeconds:Integer.toption[@ocaml.doc"The value of a parameter in the request caused an error."]}letmake?message=fun?serviceCode->fun?quotaCode->fun?retryAfterSeconds->fun()->{message;serviceCode;quotaCode;retryAfterSeconds}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:String_.to_value));("serviceCode",(Option.mapx.serviceCode~f:String_.to_value));("quotaCode",(Option.mapx.quotaCode~f:String_.to_value));("Retry-After",(Option.mapx.retryAfterSeconds~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letretryAfterSeconds=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"Retry-After")inletquotaCode=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"quotaCode")inletserviceCode=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"serviceCode")inletmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inmake?retryAfterSeconds?quotaCode?serviceCode?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letretryAfterSeconds=field_mapjson__"retryAfterSeconds"Integer.of_jsoninletquotaCode=field_mapjson__"quotaCode"String_.of_jsoninletserviceCode=field_mapjson__"serviceCode"String_.of_jsoninletmessage=field_mapjson__"message"String_.of_jsoninmake?retryAfterSeconds?quotaCode?serviceCode?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The request was denied because of request throttling. Retry the request."]moduleValidationException=structtypenonrect={message:String_.toption[@ocaml.doc"A description of the error."];reason:ValidationExceptionReason.toption[@ocaml.doc"The reason that the operation failed."];fieldList:ValidationExceptionFieldList.toption[@ocaml.doc"A list of fields that might be associated with the error."]}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 value of a parameter in the request caused an error."]moduleWorkspaceDescription=structtypenonrect={accountAccessType:AccountAccessType.toption[@ocaml.doc"Specifies whether the workspace can access Amazon Web Services resources in this Amazon Web Services account only, or whether it can also access Amazon Web Services resources in other accounts in the same organization. If this is ORGANIZATION, the workspaceOrganizationalUnits parameter specifies which organizational units the workspace can access."];created:Timestamp.toption[@ocaml.doc"The date that the workspace was created."];dataSources:DataSourceTypesList.toption[@ocaml.doc"Specifies the Amazon Web Services data sources that have been configured to have IAM roles and permissions created to allow Amazon Managed Grafana to read data from these sources. This list is only used when the workspace was created through the Amazon Web Services console, and the permissionType is SERVICE_MANAGED."];description:Description.toption[@ocaml.doc"The user-defined description of the workspace."];endpoint:Endpoint.toption[@ocaml.doc"The URL that users can use to access the Grafana console in the workspace."];grafanaVersion:GrafanaVersion.toption[@ocaml.doc"The version of Grafana supported in this workspace."];id:WorkspaceId.toption[@ocaml.doc"The unique ID of this workspace."];modified:Timestamp.toption[@ocaml.doc"The most recent date that the workspace was modified."];name:WorkspaceName.toption[@ocaml.doc"The name of the workspace."];organizationRoleName:OrganizationRoleName.toption[@ocaml.doc"The name of the IAM role that is used to access resources through Organizations."];notificationDestinations:NotificationDestinationsList.toption[@ocaml.doc"The Amazon Web Services notification channels that Amazon Managed Grafana can automatically create IAM roles and permissions for, to allow Amazon Managed Grafana to use these channels."];organizationalUnits:OrganizationalUnitList.toption[@ocaml.doc"Specifies the organizational units that this workspace is allowed to use data sources from, if this workspace is in an account that is part of an organization."];permissionType:PermissionType.toption[@ocaml.doc"If this is SERVICE_MANAGED, and the workplace was created through the Amazon Managed Grafana console, then Amazon Managed Grafana automatically creates the IAM roles and provisions the permissions that the workspace needs to use Amazon Web Services data sources and notification channels. If this is CUSTOMER_MANAGED, you must manage those roles and permissions yourself. If you are working with a workspace in a member account of an organization and that account is not a delegated administrator account, and you want the workspace to access data sources in other Amazon Web Services accounts in the organization, this parameter must be set to CUSTOMER_MANAGED. For more information about converting between customer and service managed, see Managing permissions for data sources and notification channels. For more information about the roles and permissions that must be managed for customer managed workspaces, see Amazon Managed Grafana permissions and policies for Amazon Web Services data sources and notification channels"];stackSetName:StackSetName.toption[@ocaml.doc"The name of the CloudFormation stack set that is used to generate IAM roles to be used for this workspace."];status:WorkspaceStatus.toption[@ocaml.doc"The current status of the workspace."];workspaceRoleArn:IamRoleArn.toption[@ocaml.doc"The IAM role that grants permissions to the Amazon Web Services resources that the workspace will view data from. This role must already exist."];licenseType:LicenseType.toption[@ocaml.doc"Specifies whether this workspace has a full Grafana Enterprise license. Amazon Managed Grafana workspaces no longer support Grafana Enterprise free trials."];freeTrialConsumed:Boolean.toption[@ocaml.doc"Specifies whether this workspace has already fully used its free trial for Grafana Enterprise. Amazon Managed Grafana workspaces no longer support Grafana Enterprise free trials."];licenseExpiration:Timestamp.toption[@ocaml.doc"If this workspace has a full Grafana Enterprise license purchased through Amazon Web Services Marketplace, this specifies when the license ends and will need to be renewed. Purchasing the Enterprise plugins option through Amazon Managed Grafana does not have an expiration. It is valid until the license is removed."];freeTrialExpiration:Timestamp.toption[@ocaml.doc"If this workspace is currently in the free trial period for Grafana Enterprise, this value specifies when that free trial ends. Amazon Managed Grafana workspaces no longer support Grafana Enterprise free trials."];authentication:AuthenticationSummary.toption[@ocaml.doc"A structure that describes whether the workspace uses SAML, IAM Identity Center, or both methods for user authentication."];tags:TagMap.toption[@ocaml.doc"The list of tags associated with the workspace."];vpcConfiguration:VpcConfiguration.toption[@ocaml.doc"The configuration for connecting to data sources in a private VPC (Amazon Virtual Private Cloud)."];networkAccessControl:NetworkAccessConfiguration.toption[@ocaml.doc"The configuration settings for network access to your workspace."];grafanaToken:GrafanaToken.toption[@ocaml.doc"The token that ties this workspace to a Grafana Labs account. For more information, see Link your account with Grafana Labs."];ipAddressType:IPAddressType.toption[@ocaml.doc"The type of IP addresses supported for connection to the workspace. Valid values are IPv4 and DualStack."];kmsKeyId:KmsKeyId.toption[@ocaml.doc"The ID or ARN of the Key Management Service key used for encrypting workspace data."]}letmake?accountAccessType=fun?created->fun?dataSources->fun?description->fun?endpoint->fun?grafanaVersion->fun?id->fun?modified->fun?name->fun?organizationRoleName->fun?notificationDestinations->fun?organizationalUnits->fun?permissionType->fun?stackSetName->fun?status->fun?workspaceRoleArn->fun?licenseType->fun?freeTrialConsumed->fun?licenseExpiration->fun?freeTrialExpiration->fun?authentication->fun?tags->fun?vpcConfiguration->fun?networkAccessControl->fun?grafanaToken->fun?ipAddressType->fun?kmsKeyId->fun()->{accountAccessType;created;dataSources;description;endpoint;grafanaVersion;id;modified;name;organizationRoleName;notificationDestinations;organizationalUnits;permissionType;stackSetName;status;workspaceRoleArn;licenseType;freeTrialConsumed;licenseExpiration;freeTrialExpiration;authentication;tags;vpcConfiguration;networkAccessControl;grafanaToken;ipAddressType;kmsKeyId}letto_valuex=structure_to_value[("accountAccessType",(Option.mapx.accountAccessType~f:AccountAccessType.to_value));("created",(Option.mapx.created~f:Timestamp.to_value));("dataSources",(Option.mapx.dataSources~f:DataSourceTypesList.to_value));("description",(Option.mapx.description~f:Description.to_value));("endpoint",(Option.mapx.endpoint~f:Endpoint.to_value));("grafanaVersion",(Option.mapx.grafanaVersion~f:GrafanaVersion.to_value));("id",(Option.mapx.id~f:WorkspaceId.to_value));("modified",(Option.mapx.modified~f:Timestamp.to_value));("name",(Option.mapx.name~f:WorkspaceName.to_value));("organizationRoleName",(Option.mapx.organizationRoleName~f:OrganizationRoleName.to_value));("notificationDestinations",(Option.mapx.notificationDestinations~f:NotificationDestinationsList.to_value));("organizationalUnits",(Option.mapx.organizationalUnits~f:OrganizationalUnitList.to_value));("permissionType",(Option.mapx.permissionType~f:PermissionType.to_value));("stackSetName",(Option.mapx.stackSetName~f:StackSetName.to_value));("status",(Option.mapx.status~f:WorkspaceStatus.to_value));("workspaceRoleArn",(Option.mapx.workspaceRoleArn~f:IamRoleArn.to_value));("licenseType",(Option.mapx.licenseType~f:LicenseType.to_value));("freeTrialConsumed",(Option.mapx.freeTrialConsumed~f:Boolean.to_value));("licenseExpiration",(Option.mapx.licenseExpiration~f:Timestamp.to_value));("freeTrialExpiration",(Option.mapx.freeTrialExpiration~f:Timestamp.to_value));("authentication",(Option.mapx.authentication~f:AuthenticationSummary.to_value));("tags",(Option.mapx.tags~f:TagMap.to_value));("vpcConfiguration",(Option.mapx.vpcConfiguration~f:VpcConfiguration.to_value));("networkAccessControl",(Option.mapx.networkAccessControl~f:NetworkAccessConfiguration.to_value));("grafanaToken",(Option.mapx.grafanaToken~f:GrafanaToken.to_value));("ipAddressType",(Option.mapx.ipAddressType~f:IPAddressType.to_value));("kmsKeyId",(Option.mapx.kmsKeyId~f:KmsKeyId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letkmsKeyId=(Option.map~f:KmsKeyId.of_xml)(Xml.childxml_arg0"kmsKeyId")inletipAddressType=(Option.map~f:IPAddressType.of_xml)(Xml.childxml_arg0"ipAddressType")inletgrafanaToken=(Option.map~f:GrafanaToken.of_xml)(Xml.childxml_arg0"grafanaToken")inletnetworkAccessControl=(Option.map~f:NetworkAccessConfiguration.of_xml)(Xml.childxml_arg0"networkAccessControl")inletvpcConfiguration=(Option.map~f:VpcConfiguration.of_xml)(Xml.childxml_arg0"vpcConfiguration")inlettags=(Option.map~f:TagMap.of_xml)(Xml.childxml_arg0"tags")inletauthentication=(Option.map~f:AuthenticationSummary.of_xml)(Xml.childxml_arg0"authentication")inletfreeTrialExpiration=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"freeTrialExpiration")inletlicenseExpiration=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"licenseExpiration")inletfreeTrialConsumed=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"freeTrialConsumed")inletlicenseType=(Option.map~f:LicenseType.of_xml)(Xml.childxml_arg0"licenseType")inletworkspaceRoleArn=(Option.map~f:IamRoleArn.of_xml)(Xml.childxml_arg0"workspaceRoleArn")inletstatus=(Option.map~f:WorkspaceStatus.of_xml)(Xml.childxml_arg0"status")inletstackSetName=(Option.map~f:StackSetName.of_xml)(Xml.childxml_arg0"stackSetName")inletpermissionType=(Option.map~f:PermissionType.of_xml)(Xml.childxml_arg0"permissionType")inletorganizationalUnits=(Option.map~f:OrganizationalUnitList.of_xml)(Xml.childxml_arg0"organizationalUnits")inletnotificationDestinations=(Option.map~f:NotificationDestinationsList.of_xml)(Xml.childxml_arg0"notificationDestinations")inletorganizationRoleName=(Option.map~f:OrganizationRoleName.of_xml)(Xml.childxml_arg0"organizationRoleName")inletname=(Option.map~f:WorkspaceName.of_xml)(Xml.childxml_arg0"name")inletmodified=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"modified")inletid=(Option.map~f:WorkspaceId.of_xml)(Xml.childxml_arg0"id")inletgrafanaVersion=(Option.map~f:GrafanaVersion.of_xml)(Xml.childxml_arg0"grafanaVersion")inletendpoint=(Option.map~f:Endpoint.of_xml)(Xml.childxml_arg0"endpoint")inletdescription=(Option.map~f:Description.of_xml)(Xml.childxml_arg0"description")inletdataSources=(Option.map~f:DataSourceTypesList.of_xml)(Xml.childxml_arg0"dataSources")inletcreated=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"created")inletaccountAccessType=(Option.map~f:AccountAccessType.of_xml)(Xml.childxml_arg0"accountAccessType")inmake?kmsKeyId?ipAddressType?grafanaToken?networkAccessControl?vpcConfiguration?tags?authentication?freeTrialExpiration?licenseExpiration?freeTrialConsumed?licenseType?workspaceRoleArn?status?stackSetName?permissionType?organizationalUnits?notificationDestinations?organizationRoleName?name?modified?id?grafanaVersion?endpoint?description?dataSources?created?accountAccessType()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letkmsKeyId=field_mapjson__"kmsKeyId"KmsKeyId.of_jsoninletipAddressType=field_mapjson__"ipAddressType"IPAddressType.of_jsoninletgrafanaToken=field_mapjson__"grafanaToken"GrafanaToken.of_jsoninletnetworkAccessControl=field_mapjson__"networkAccessControl"NetworkAccessConfiguration.of_jsoninletvpcConfiguration=field_mapjson__"vpcConfiguration"VpcConfiguration.of_jsoninlettags=field_mapjson__"tags"TagMap.of_jsoninletauthentication=field_mapjson__"authentication"AuthenticationSummary.of_jsoninletfreeTrialExpiration=field_mapjson__"freeTrialExpiration"Timestamp.of_jsoninletlicenseExpiration=field_mapjson__"licenseExpiration"Timestamp.of_jsoninletfreeTrialConsumed=field_mapjson__"freeTrialConsumed"Boolean.of_jsoninletlicenseType=field_mapjson__"licenseType"LicenseType.of_jsoninletworkspaceRoleArn=field_mapjson__"workspaceRoleArn"IamRoleArn.of_jsoninletstatus=field_mapjson__"status"WorkspaceStatus.of_jsoninletstackSetName=field_mapjson__"stackSetName"StackSetName.of_jsoninletpermissionType=field_mapjson__"permissionType"PermissionType.of_jsoninletorganizationalUnits=field_mapjson__"organizationalUnits"OrganizationalUnitList.of_jsoninletnotificationDestinations=field_mapjson__"notificationDestinations"NotificationDestinationsList.of_jsoninletorganizationRoleName=field_mapjson__"organizationRoleName"OrganizationRoleName.of_jsoninletname=field_mapjson__"name"WorkspaceName.of_jsoninletmodified=field_mapjson__"modified"Timestamp.of_jsoninletid=field_mapjson__"id"WorkspaceId.of_jsoninletgrafanaVersion=field_mapjson__"grafanaVersion"GrafanaVersion.of_jsoninletendpoint=field_mapjson__"endpoint"Endpoint.of_jsoninletdescription=field_mapjson__"description"Description.of_jsoninletdataSources=field_mapjson__"dataSources"DataSourceTypesList.of_jsoninletcreated=field_mapjson__"created"Timestamp.of_jsoninletaccountAccessType=field_mapjson__"accountAccessType"AccountAccessType.of_jsoninmake?kmsKeyId?ipAddressType?grafanaToken?networkAccessControl?vpcConfiguration?tags?authentication?freeTrialExpiration?licenseExpiration?freeTrialConsumed?licenseType?workspaceRoleArn?status?stackSetName?permissionType?organizationalUnits?notificationDestinations?organizationRoleName?name?modified?id?grafanaVersion?endpoint?description?dataSources?created?accountAccessType()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A structure containing information about an Amazon Managed Grafana workspace in your account."]moduleOverridableConfigurationJson=structtypenonrect=stringletcontext_="OverridableConfigurationJson"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:65536)>>=(fun()->check_string_mini~min:2));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"OverridableConfigurationJson"jletto_json=simple_to_jsonto_valueendmoduleAuthenticationDescription=structtypenonrect={providers:AuthenticationProviders.toption[@ocaml.doc"Specifies whether this workspace uses IAM Identity Center, SAML, or both methods to authenticate users to use the Grafana console in the Amazon Managed Grafana workspace."];saml:SamlAuthentication.toption[@ocaml.doc"A structure containing information about how this workspace works with SAML, including what attributes within the assertion are to be mapped to user information in the workspace."];awsSso:AwsSsoAuthentication.toption[@ocaml.doc"A structure containing information about how this workspace works with IAM Identity Center."]}letmake?providers=fun?saml->fun?awsSso->fun()->{providers;saml;awsSso}letto_valuex=structure_to_value[("providers",(Option.mapx.providers~f:AuthenticationProviders.to_value));("saml",(Option.mapx.saml~f:SamlAuthentication.to_value));("awsSso",(Option.mapx.awsSso~f:AwsSsoAuthentication.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letawsSso=(Option.map~f:AwsSsoAuthentication.of_xml)(Xml.childxml_arg0"awsSso")inletsaml=(Option.map~f:SamlAuthentication.of_xml)(Xml.childxml_arg0"saml")inletproviders=(Option.map~f:AuthenticationProviders.of_xml)(Xml.childxml_arg0"providers")inmake?awsSso?saml?providers()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letawsSso=field_mapjson__"awsSso"AwsSsoAuthentication.of_jsoninletsaml=field_mapjson__"saml"SamlAuthentication.of_jsoninletproviders=field_mapjson__"providers"AuthenticationProviders.of_jsoninmake?awsSso?saml?providers()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A structure containing information about the user authentication methods used by the workspace."]moduleUpdateErrorList=structtypenonrect=UpdateError.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:UpdateError.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:UpdateError.of_xml)letof_jsonj=list_of_json~kind:"UpdateErrorList"~of_json:UpdateError.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleUpdateInstructionBatch=structtypenonrect=UpdateInstruction.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:20)>>=(fun()->check_list_mini~min:0));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:UpdateInstruction.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:UpdateInstruction.of_xml)letof_jsonj=list_of_json~kind:"UpdateInstructionBatch"~of_json:UpdateInstruction.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleTagKeys=structtypenonrect=TagKey.tlistletmakei=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_valuevendmodulePaginationToken=structtypenonrect=stringletcontext_="PaginationToken"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:"PaginationToken"jletto_json=simple_to_jsonto_valueendmoduleWorkspaceList=structtypenonrect=WorkspaceSummary.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:WorkspaceSummary.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:WorkspaceSummary.of_xml)letof_jsonj=list_of_json~kind:"WorkspaceList"~of_json:WorkspaceSummary.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleListWorkspacesRequestMaxResultsInteger=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 ListWorkspacesRequestMaxResultsInteger"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleServiceAccountList=structtypenonrect=ServiceAccountSummary.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ServiceAccountSummary.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:ServiceAccountSummary.of_xml)letof_jsonj=list_of_json~kind:"ServiceAccountList"~of_json:ServiceAccountSummary.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleListWorkspaceServiceAccountsRequestMaxResultsInteger=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 ListWorkspaceServiceAccountsRequestMaxResultsInteger"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleServiceAccountTokenList=structtypenonrect=ServiceAccountTokenSummary.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ServiceAccountTokenSummary.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:ServiceAccountTokenSummary.of_xml)letof_jsonj=list_of_json~kind:"ServiceAccountTokenList"~of_json:ServiceAccountTokenSummary.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleListWorkspaceServiceAccountTokensRequestMaxResultsInteger=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 ListWorkspaceServiceAccountTokensRequestMaxResultsInteger"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleGrafanaVersionList=structtypenonrect=GrafanaVersion.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:GrafanaVersion.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:GrafanaVersion.of_xml)letof_jsonj=list_of_json~kind:"GrafanaVersionList"~of_json:GrafanaVersion.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleListVersionsRequestMaxResultsInteger=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 ListVersionsRequestMaxResultsInteger"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmodulePermissionEntryList=structtypenonrect=PermissionEntry.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:PermissionEntry.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:PermissionEntry.of_xml)letof_jsonj=list_of_json~kind:"PermissionEntryList"~of_json:PermissionEntry.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleListPermissionsRequestMaxResultsInteger=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 ListPermissionsRequestMaxResultsInteger"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleApiKeyName=structtypenonrect=stringletcontext_="ApiKeyName"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:100)>>=(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:"ApiKeyName"jletto_json=simple_to_jsonto_valueendmoduleServiceAccountTokenSummaryWithKey=structtypenonrect={id:String_.toption[@ocaml.doc"The unique ID of the service account token."];name:String_.toption[@ocaml.doc"The name of the service account token."];key:ServiceAccountTokenKey.toption[@ocaml.doc"The key for the service account token. Used when making calls to the Grafana HTTP APIs to authenticate and authorize the requests."]}letmake?id=fun?name->fun?key->fun()->{id;name;key}letto_valuex=structure_to_value[("id",(Option.mapx.id~f:String_.to_value));("name",(Option.mapx.name~f:String_.to_value));("key",(Option.mapx.key~f:ServiceAccountTokenKey.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letkey=(Option.map~f:ServiceAccountTokenKey.of_xml)(Xml.childxml_arg0"key")inletname=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"name")inletid=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"id")inmake?key?name?id()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letkey=field_mapjson__"key"ServiceAccountTokenKey.of_jsoninletname=field_mapjson__"name"String_.of_jsoninletid=field_mapjson__"id"String_.of_jsoninmake?key?name?id()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A structure that contains the information about a service account token. This structure is returned when creating the token. It is important to store the key that is returned, as it is not retrievable at a later time. If you lose the key, you can delete and recreate the token, which will create a new key."]moduleServiceQuotaExceededException=structtypenonrect={message:String_.toption[@ocaml.doc"A description of the error."];resourceId:String_.toption[@ocaml.doc"The ID of the resource that is associated with the error."];resourceType:String_.toption[@ocaml.doc"The type of the resource that is associated with the error."];serviceCode:String_.toption[@ocaml.doc"The value of a parameter in the request caused an error."];quotaCode:String_.toption[@ocaml.doc"The ID of the service quota that was exceeded."]}letmake?message=fun?resourceId->fun?resourceType->fun?serviceCode->fun?quotaCode->fun()->{message;resourceId;resourceType;serviceCode;quotaCode}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));("serviceCode",(Option.mapx.serviceCode~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")inletserviceCode=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"serviceCode")inletresourceType=(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?quotaCode?serviceCode?resourceType?resourceId?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letquotaCode=field_mapjson__"quotaCode"String_.of_jsoninletserviceCode=field_mapjson__"serviceCode"String_.of_jsoninletresourceType=field_mapjson__"resourceType"String_.of_jsoninletresourceId=field_mapjson__"resourceId"String_.of_jsoninletmessage=field_mapjson__"message"String_.of_jsoninmake?quotaCode?serviceCode?resourceType?resourceId?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The request would cause a service quota to be exceeded."]moduleCreateWorkspaceServiceAccountTokenRequestSecondsToLiveInteger=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:2592000)>>=(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 CreateWorkspaceServiceAccountTokenRequestSecondsToLiveInteger"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleServiceAccountTokenName=structtypenonrect=stringletcontext_="ServiceAccountTokenName"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:"ServiceAccountTokenName"jletto_json=simple_to_jsonto_valueendmoduleServiceAccountName=structtypenonrect=stringletcontext_="ServiceAccountName"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:"ServiceAccountName"jletto_json=simple_to_jsonto_valueendmoduleClientToken=structtypenonrect=stringletcontext_="ClientToken"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"[!-~]{1,64}");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ClientToken"jletto_json=simple_to_jsonto_valueendmoduleApiKeyToken=structtypenonrect=stringletcontext_="ApiKeyToken"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:"ApiKeyToken"jletto_json=simple_to_jsonto_valueendmoduleCreateWorkspaceApiKeyRequestSecondsToLiveInteger=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:2592000)>>=(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 CreateWorkspaceApiKeyRequestSecondsToLiveInteger"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleUpdateWorkspaceResponse=structtypenonrect={workspace:WorkspaceDescription.toption[@ocaml.doc"A structure containing data about the workspace that was created."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?workspace=fun()->{workspace}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[("workspace",(Option.mapx.workspace~f:WorkspaceDescription.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspace=(Option.map~f:WorkspaceDescription.of_xml)(Xml.childxml_arg0"workspace")inmake?workspace()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspace=field_mapjson__"workspace"WorkspaceDescription.of_jsoninmake?workspace()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Modifies an existing Amazon Managed Grafana workspace. If you use this operation and omit any optional parameters, the existing values of those parameters are not changed. To modify the user authentication methods that the workspace uses, such as SAML or IAM Identity Center, use UpdateWorkspaceAuthentication. To modify which users in the workspace have the Admin and Editor Grafana roles, use UpdatePermissions."]moduleUpdateWorkspaceRequest=structtypenonrect={accountAccessType:AccountAccessType.toption[@ocaml.doc"Specifies whether the workspace can access Amazon Web Services resources in this Amazon Web Services account only, or whether it can also access Amazon Web Services resources in other accounts in the same organization. If you specify ORGANIZATION, you must specify which organizational units the workspace can access in the workspaceOrganizationalUnits parameter."];organizationRoleName:OrganizationRoleName.toption[@ocaml.doc"The name of an IAM role that already exists to use to access resources through Organizations. This can only be used with a workspace that has the permissionType set to CUSTOMER_MANAGED."];permissionType:PermissionType.toption[@ocaml.doc"Use this parameter if you want to change a workspace from SERVICE_MANAGED to CUSTOMER_MANAGED. This allows you to manage the permissions that the workspace uses to access datasources and notification channels. If the workspace is in a member Amazon Web Services account of an organization, and that account is not a delegated administrator account, and you want the workspace to access data sources in other Amazon Web Services accounts in the organization, you must choose CUSTOMER_MANAGED. If you specify this as CUSTOMER_MANAGED, you must also specify a workspaceRoleArn that the workspace will use for accessing Amazon Web Services resources. For more information on the role and permissions needed, see Amazon Managed Grafana permissions and policies for Amazon Web Services data sources and notification channels Do not use this to convert a CUSTOMER_MANAGED workspace to SERVICE_MANAGED. Do not include this parameter if you want to leave the workspace as SERVICE_MANAGED. You can convert a CUSTOMER_MANAGED workspace to SERVICE_MANAGED using the Amazon Managed Grafana console. For more information, see Managing permissions for data sources and notification channels."];stackSetName:StackSetName.toption[@ocaml.doc"The name of the CloudFormation stack set to use to generate IAM roles to be used for this workspace."];workspaceDataSources:DataSourceTypesList.toption[@ocaml.doc"This parameter is for internal use only, and should not be used."];workspaceDescription:Description.toption[@ocaml.doc"A description for the workspace. This is used only to help you identify this workspace."];workspaceId:WorkspaceId.t[@ocaml.doc"The ID of the workspace to update."];workspaceName:WorkspaceName.toption[@ocaml.doc"A new name for the workspace to update."];workspaceNotificationDestinations:NotificationDestinationsList.toption[@ocaml.doc"Specify the Amazon Web Services notification channels that you plan to use in this workspace. Specifying these data sources here enables Amazon Managed Grafana to create IAM roles and permissions that allow Amazon Managed Grafana to use these channels."];workspaceOrganizationalUnits:OrganizationalUnitList.toption[@ocaml.doc"Specifies the organizational units that this workspace is allowed to use data sources from, if this workspace is in an account that is part of an organization."];workspaceRoleArn:IamRoleArn.toption[@ocaml.doc"Specifies an IAM role that grants permissions to Amazon Web Services resources that the workspace accesses, such as data sources and notification channels. If this workspace has permissionType CUSTOMER_MANAGED, then this role is required."];vpcConfiguration:VpcConfiguration.toption[@ocaml.doc"The configuration settings for an Amazon VPC that contains data sources for your Grafana workspace to connect to."];removeVpcConfiguration:Boolean.toption[@ocaml.doc"Whether to remove the VPC configuration from the workspace. Setting this to true and providing a vpcConfiguration to set will return an error."];networkAccessControl:NetworkAccessConfiguration.toption[@ocaml.doc"The configuration settings for network access to your workspace. When this is configured, only listed IP addresses and VPC endpoints will be able to access your workspace. Standard Grafana authentication and authorization will still be required. If this is not configured, or is removed, then all IP addresses and VPC endpoints will be allowed. Standard Grafana authentication and authorization will still be required."];removeNetworkAccessConfiguration:Boolean.toption[@ocaml.doc"Whether to remove the network access configuration from the workspace. Setting this to true and providing a networkAccessControl to set will return an error. If you remove this configuration by setting this to true, then all IP addresses and VPC endpoints will be allowed. Standard Grafana authentication and authorization will still be required."];ipAddressType:IPAddressType.toption[@ocaml.doc"Specifies whether the workspace supports IPv4 only, or IPv4 and IPv6. Valid values are IPv4 and DualStack. For more information about IP address types, see Network access control."]}letcontext_="UpdateWorkspaceRequest"letmake?accountAccessType=fun?organizationRoleName->fun?permissionType->fun?stackSetName->fun?workspaceDataSources->fun?workspaceDescription->fun?workspaceName->fun?workspaceNotificationDestinations->fun?workspaceOrganizationalUnits->fun?workspaceRoleArn->fun?vpcConfiguration->fun?removeVpcConfiguration->fun?networkAccessControl->fun?removeNetworkAccessConfiguration->fun?ipAddressType->fun~workspaceId->fun()->{accountAccessType;organizationRoleName;permissionType;stackSetName;workspaceDataSources;workspaceDescription;workspaceName;workspaceNotificationDestinations;workspaceOrganizationalUnits;workspaceRoleArn;vpcConfiguration;removeVpcConfiguration;networkAccessControl;removeNetworkAccessConfiguration;ipAddressType;workspaceId}letto_valuex=structure_to_value[("accountAccessType",(Option.mapx.accountAccessType~f:AccountAccessType.to_value));("organizationRoleName",(Option.mapx.organizationRoleName~f:OrganizationRoleName.to_value));("permissionType",(Option.mapx.permissionType~f:PermissionType.to_value));("stackSetName",(Option.mapx.stackSetName~f:StackSetName.to_value));("workspaceDataSources",(Option.mapx.workspaceDataSources~f:DataSourceTypesList.to_value));("workspaceDescription",(Option.mapx.workspaceDescription~f:Description.to_value));("workspaceId",(Some(WorkspaceId.to_valuex.workspaceId)));("workspaceName",(Option.mapx.workspaceName~f:WorkspaceName.to_value));("workspaceNotificationDestinations",(Option.mapx.workspaceNotificationDestinations~f:NotificationDestinationsList.to_value));("workspaceOrganizationalUnits",(Option.mapx.workspaceOrganizationalUnits~f:OrganizationalUnitList.to_value));("workspaceRoleArn",(Option.mapx.workspaceRoleArn~f:IamRoleArn.to_value));("vpcConfiguration",(Option.mapx.vpcConfiguration~f:VpcConfiguration.to_value));("removeVpcConfiguration",(Option.mapx.removeVpcConfiguration~f:Boolean.to_value));("networkAccessControl",(Option.mapx.networkAccessControl~f:NetworkAccessConfiguration.to_value));("removeNetworkAccessConfiguration",(Option.mapx.removeNetworkAccessConfiguration~f:Boolean.to_value));("ipAddressType",(Option.mapx.ipAddressType~f:IPAddressType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letipAddressType=(Option.map~f:IPAddressType.of_xml)(Xml.childxml_arg0"ipAddressType")inletremoveNetworkAccessConfiguration=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"removeNetworkAccessConfiguration")inletnetworkAccessControl=(Option.map~f:NetworkAccessConfiguration.of_xml)(Xml.childxml_arg0"networkAccessControl")inletremoveVpcConfiguration=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"removeVpcConfiguration")inletvpcConfiguration=(Option.map~f:VpcConfiguration.of_xml)(Xml.childxml_arg0"vpcConfiguration")inletworkspaceRoleArn=(Option.map~f:IamRoleArn.of_xml)(Xml.childxml_arg0"workspaceRoleArn")inletworkspaceOrganizationalUnits=(Option.map~f:OrganizationalUnitList.of_xml)(Xml.childxml_arg0"workspaceOrganizationalUnits")inletworkspaceNotificationDestinations=(Option.map~f:NotificationDestinationsList.of_xml)(Xml.childxml_arg0"workspaceNotificationDestinations")inletworkspaceName=(Option.map~f:WorkspaceName.of_xml)(Xml.childxml_arg0"workspaceName")inletworkspaceId=WorkspaceId.of_xml(Xml.child_exn~context:context_xml_arg0"workspaceId")inletworkspaceDescription=(Option.map~f:Description.of_xml)(Xml.childxml_arg0"workspaceDescription")inletworkspaceDataSources=(Option.map~f:DataSourceTypesList.of_xml)(Xml.childxml_arg0"workspaceDataSources")inletstackSetName=(Option.map~f:StackSetName.of_xml)(Xml.childxml_arg0"stackSetName")inletpermissionType=(Option.map~f:PermissionType.of_xml)(Xml.childxml_arg0"permissionType")inletorganizationRoleName=(Option.map~f:OrganizationRoleName.of_xml)(Xml.childxml_arg0"organizationRoleName")inletaccountAccessType=(Option.map~f:AccountAccessType.of_xml)(Xml.childxml_arg0"accountAccessType")inmake?ipAddressType?removeNetworkAccessConfiguration?networkAccessControl?removeVpcConfiguration?vpcConfiguration?workspaceRoleArn?workspaceOrganizationalUnits?workspaceNotificationDestinations?workspaceName~workspaceId?workspaceDescription?workspaceDataSources?stackSetName?permissionType?organizationRoleName?accountAccessType()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letipAddressType=field_mapjson__"ipAddressType"IPAddressType.of_jsoninletremoveNetworkAccessConfiguration=field_mapjson__"removeNetworkAccessConfiguration"Boolean.of_jsoninletnetworkAccessControl=field_mapjson__"networkAccessControl"NetworkAccessConfiguration.of_jsoninletremoveVpcConfiguration=field_mapjson__"removeVpcConfiguration"Boolean.of_jsoninletvpcConfiguration=field_mapjson__"vpcConfiguration"VpcConfiguration.of_jsoninletworkspaceRoleArn=field_mapjson__"workspaceRoleArn"IamRoleArn.of_jsoninletworkspaceOrganizationalUnits=field_mapjson__"workspaceOrganizationalUnits"OrganizationalUnitList.of_jsoninletworkspaceNotificationDestinations=field_mapjson__"workspaceNotificationDestinations"NotificationDestinationsList.of_jsoninletworkspaceName=field_mapjson__"workspaceName"WorkspaceName.of_jsoninletworkspaceId=field_map_exnjson__"workspaceId"WorkspaceId.of_jsoninletworkspaceDescription=field_mapjson__"workspaceDescription"Description.of_jsoninletworkspaceDataSources=field_mapjson__"workspaceDataSources"DataSourceTypesList.of_jsoninletstackSetName=field_mapjson__"stackSetName"StackSetName.of_jsoninletpermissionType=field_mapjson__"permissionType"PermissionType.of_jsoninletorganizationRoleName=field_mapjson__"organizationRoleName"OrganizationRoleName.of_jsoninletaccountAccessType=field_mapjson__"accountAccessType"AccountAccessType.of_jsoninmake?ipAddressType?removeNetworkAccessConfiguration?networkAccessControl?removeVpcConfiguration?vpcConfiguration?workspaceRoleArn?workspaceOrganizationalUnits?workspaceNotificationDestinations?workspaceName~workspaceId?workspaceDescription?workspaceDataSources?stackSetName?permissionType?organizationRoleName?accountAccessType()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Modifies an existing Amazon Managed Grafana workspace. If you use this operation and omit any optional parameters, the existing values of those parameters are not changed. To modify the user authentication methods that the workspace uses, such as SAML or IAM Identity Center, use UpdateWorkspaceAuthentication. To modify which users in the workspace have the Admin and Editor Grafana roles, use UpdatePermissions."]moduleUpdateWorkspaceConfigurationResponse=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"Updates the configuration string for the given workspace"]moduleUpdateWorkspaceConfigurationRequest=structtypenonrect={configuration:OverridableConfigurationJson.t[@ocaml.doc"The new configuration string for the workspace. For more information about the format and configuration options available, see Working in your Grafana workspace."];workspaceId:WorkspaceId.t[@ocaml.doc"The ID of the workspace to update."];grafanaVersion:GrafanaVersion.toption[@ocaml.doc"Specifies the version of Grafana to support in the workspace. If not specified, keeps the current version of the workspace. Can only be used to upgrade (for example, from 8.4 to 9.4), not downgrade (for example, from 9.4 to 8.4). To know what versions are available to upgrade to for a specific workspace, see the ListVersions operation."]}letcontext_="UpdateWorkspaceConfigurationRequest"letmake?grafanaVersion=fun~configuration->fun~workspaceId->fun()->{grafanaVersion;configuration;workspaceId}letto_valuex=structure_to_value[("configuration",(Some(OverridableConfigurationJson.to_valuex.configuration)));("workspaceId",(Some(WorkspaceId.to_valuex.workspaceId)));("grafanaVersion",(Option.mapx.grafanaVersion~f:GrafanaVersion.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgrafanaVersion=(Option.map~f:GrafanaVersion.of_xml)(Xml.childxml_arg0"grafanaVersion")inletworkspaceId=WorkspaceId.of_xml(Xml.child_exn~context:context_xml_arg0"workspaceId")inletconfiguration=OverridableConfigurationJson.of_xml(Xml.child_exn~context:context_xml_arg0"configuration")inmake?grafanaVersion~workspaceId~configuration()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgrafanaVersion=field_mapjson__"grafanaVersion"GrafanaVersion.of_jsoninletworkspaceId=field_map_exnjson__"workspaceId"WorkspaceId.of_jsoninletconfiguration=field_map_exnjson__"configuration"OverridableConfigurationJson.of_jsoninmake?grafanaVersion~workspaceId~configuration()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates the configuration string for the given workspace"]moduleUpdateWorkspaceAuthenticationResponse=structtypenonrect={authentication:AuthenticationDescription.toption[@ocaml.doc"A structure that describes the user authentication for this workspace after the update is made."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?authentication=fun()->{authentication}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[("authentication",(Option.mapx.authentication~f:AuthenticationDescription.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letauthentication=(Option.map~f:AuthenticationDescription.of_xml)(Xml.childxml_arg0"authentication")inmake?authentication()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letauthentication=field_mapjson__"authentication"AuthenticationDescription.of_jsoninmake?authentication()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Use this operation to define the identity provider (IdP) that this workspace authenticates users from, using SAML. You can also map SAML assertion attributes to workspace user information and define which groups in the assertion attribute are to have the Admin and Editor roles in the workspace. Changes to the authentication method for a workspace may take a few minutes to take effect."]moduleUpdateWorkspaceAuthenticationRequest=structtypenonrect={workspaceId:WorkspaceId.t[@ocaml.doc"The ID of the workspace to update the authentication for."];authenticationProviders:AuthenticationProviders.t[@ocaml.doc"Specifies whether this workspace uses SAML 2.0, IAM Identity Center, or both to authenticate users for using the Grafana console within a workspace. For more information, see User authentication in Amazon Managed Grafana."];samlConfiguration:SamlConfiguration.toption[@ocaml.doc"If the workspace uses SAML, use this structure to map SAML assertion attributes to workspace user information and define which groups in the assertion attribute are to have the Admin and Editor roles in the workspace."]}letcontext_="UpdateWorkspaceAuthenticationRequest"letmake?samlConfiguration=fun~workspaceId->fun~authenticationProviders->fun()->{samlConfiguration;workspaceId;authenticationProviders}letto_valuex=structure_to_value[("workspaceId",(Some(WorkspaceId.to_valuex.workspaceId)));("authenticationProviders",(Some(AuthenticationProviders.to_valuex.authenticationProviders)));("samlConfiguration",(Option.mapx.samlConfiguration~f:SamlConfiguration.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsamlConfiguration=(Option.map~f:SamlConfiguration.of_xml)(Xml.childxml_arg0"samlConfiguration")inletauthenticationProviders=AuthenticationProviders.of_xml(Xml.child_exn~context:context_xml_arg0"authenticationProviders")inletworkspaceId=WorkspaceId.of_xml(Xml.child_exn~context:context_xml_arg0"workspaceId")inmake?samlConfiguration~authenticationProviders~workspaceId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsamlConfiguration=field_mapjson__"samlConfiguration"SamlConfiguration.of_jsoninletauthenticationProviders=field_map_exnjson__"authenticationProviders"AuthenticationProviders.of_jsoninletworkspaceId=field_map_exnjson__"workspaceId"WorkspaceId.of_jsoninmake?samlConfiguration~authenticationProviders~workspaceId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Use this operation to define the identity provider (IdP) that this workspace authenticates users from, using SAML. You can also map SAML assertion attributes to workspace user information and define which groups in the assertion attribute are to have the Admin and Editor roles in the workspace. Changes to the authentication method for a workspace may take a few minutes to take effect."]moduleUpdatePermissionsResponse=structtypenonrect={errors:UpdateErrorList.toption[@ocaml.doc"An array of structures that contain the errors from the operation, if any."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?errors=fun()->{errors}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("errors",(Option.mapx.errors~f:UpdateErrorList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=leterrors=(Option.map~f:UpdateErrorList.of_xml)(Xml.childxml_arg0"errors")inmake?errors()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=leterrors=field_mapjson__"errors"UpdateErrorList.of_jsoninmake?errors()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates which users in a workspace have the Grafana Admin or Editor roles."]moduleUpdatePermissionsRequest=structtypenonrect={updateInstructionBatch:UpdateInstructionBatch.t[@ocaml.doc"An array of structures that contain the permission updates to make."];workspaceId:WorkspaceId.t[@ocaml.doc"The ID of the workspace to update."]}letcontext_="UpdatePermissionsRequest"letmake~updateInstructionBatch=fun~workspaceId->fun()->{updateInstructionBatch;workspaceId}letto_valuex=structure_to_value[("updateInstructionBatch",(Some(UpdateInstructionBatch.to_valuex.updateInstructionBatch)));("workspaceId",(Some(WorkspaceId.to_valuex.workspaceId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspaceId=WorkspaceId.of_xml(Xml.child_exn~context:context_xml_arg0"workspaceId")inletupdateInstructionBatch=UpdateInstructionBatch.of_xml(Xml.child_exn~context:context_xml_arg0"updateInstructionBatch")inmake~workspaceId~updateInstructionBatch()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspaceId=field_map_exnjson__"workspaceId"WorkspaceId.of_jsoninletupdateInstructionBatch=field_map_exnjson__"updateInstructionBatch"UpdateInstructionBatch.of_jsoninmake~workspaceId~updateInstructionBatch()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates which users in a workspace have the Grafana Admin or Editor roles."]moduleUntagResourceResponse=structtypenonrect=unittypenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake()=()leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The UntagResource operation removes the association of the tag with the Amazon Managed Grafana resource."]moduleUntagResourceRequest=structtypenonrect={resourceArn:String_.t[@ocaml.doc"The ARN of the resource the tag association is removed from."];tagKeys:TagKeys.t[@ocaml.doc"The key values of the tag to be removed from the resource."]}letcontext_="UntagResourceRequest"letmake~resourceArn=fun~tagKeys->fun()->{resourceArn;tagKeys}letto_valuex=structure_to_value[("resourceArn",(Some(String_.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=String_.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"String_.of_jsoninmake~tagKeys~resourceArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The UntagResource operation removes the association of the tag with the Amazon Managed Grafana resource."]moduleTagResourceResponse=structtypenonrect=unittypenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake()=()leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The TagResource operation associates tags with an Amazon Managed Grafana resource. Currently, the only resource that can be tagged is workspaces. If you specify a new tag key for the resource, this tag is appended to the list of tags associated with the resource. If you specify a tag key that is already associated with the resource, the new tag value that you specify replaces the previous value for that tag."]moduleTagResourceRequest=structtypenonrect={resourceArn:String_.t[@ocaml.doc"The ARN of the resource the tag is associated with."];tags:TagMap.t[@ocaml.doc"The list of tag keys and values to associate with the resource. You can associate tag keys only, tags (key and values) only or a combination of tag keys and tags."]}letcontext_="TagResourceRequest"letmake~resourceArn=fun~tags->fun()->{resourceArn;tags}letto_valuex=structure_to_value[("resourceArn",(Some(String_.to_valuex.resourceArn)));("tags",(Some(TagMap.to_valuex.tags)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=TagMap.of_xml(Xml.child_exn~context:context_xml_arg0"tags")inletresourceArn=String_.of_xml(Xml.child_exn~context:context_xml_arg0"resourceArn")inmake~tags~resourceArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_map_exnjson__"tags"TagMap.of_jsoninletresourceArn=field_map_exnjson__"resourceArn"String_.of_jsoninmake~tags~resourceArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The TagResource operation associates tags with an Amazon Managed Grafana resource. Currently, the only resource that can be tagged is workspaces. If you specify a new tag key for the resource, this tag is appended to the list of tags associated with the resource. If you specify a tag key that is already associated with the resource, the new tag value that you specify replaces the previous value for that tag."]moduleListWorkspacesResponse=structtypenonrect={workspaces:WorkspaceList.toption[@ocaml.doc"An array of structures that contain some information about the workspaces in the account."];nextToken:PaginationToken.toption[@ocaml.doc"The token to use when requesting the next set of workspaces."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ThrottlingExceptionofThrottlingException.t|`Unknown_operation_errorof(string*stringoption)]letmake?workspaces=fun?nextToken->fun()->{workspaces;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("workspaces",(Option.mapx.workspaces~f:WorkspaceList.to_value));("nextToken",(Option.mapx.nextToken~f:PaginationToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:PaginationToken.of_xml)(Xml.childxml_arg0"nextToken")inletworkspaces=(Option.map~f:WorkspaceList.of_xml)(Xml.childxml_arg0"workspaces")inmake?nextToken?workspaces()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"nextToken"PaginationToken.of_jsoninletworkspaces=field_mapjson__"workspaces"WorkspaceList.of_jsoninmake?nextToken?workspaces()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a list of Amazon Managed Grafana workspaces in the account, with some information about each workspace. For more complete information about one workspace, use DescribeWorkspace."]moduleListWorkspacesRequest=structtypenonrect={maxResults:ListWorkspacesRequestMaxResultsInteger.toption[@ocaml.doc"The maximum number of workspaces to include in the results."];nextToken:PaginationToken.toption[@ocaml.doc"The token for the next set of workspaces to return. (You receive this token from a previous ListWorkspaces operation.)"]}letmake?maxResults=fun?nextToken->fun()->{maxResults;nextToken}letto_valuex=structure_to_value[("maxResults",(Option.mapx.maxResults~f:ListWorkspacesRequestMaxResultsInteger.to_value));("nextToken",(Option.mapx.nextToken~f:PaginationToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:PaginationToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:ListWorkspacesRequestMaxResultsInteger.of_xml)(Xml.childxml_arg0"maxResults")inmake?nextToken?maxResults()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"nextToken"PaginationToken.of_jsoninletmaxResults=field_mapjson__"maxResults"ListWorkspacesRequestMaxResultsInteger.of_jsoninmake?nextToken?maxResults()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a list of Amazon Managed Grafana workspaces in the account, with some information about each workspace. For more complete information about one workspace, use DescribeWorkspace."]moduleListWorkspaceServiceAccountsResponse=structtypenonrect={nextToken:PaginationToken.toption[@ocaml.doc"The token to use when requesting the next set of service accounts."];serviceAccounts:ServiceAccountList.toption[@ocaml.doc"An array of structures containing information about the service accounts."];workspaceId:WorkspaceId.toption[@ocaml.doc"The workspace to which the service accounts are associated."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?nextToken=fun?serviceAccounts->fun?workspaceId->fun()->{nextToken;serviceAccounts;workspaceId}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("nextToken",(Option.mapx.nextToken~f:PaginationToken.to_value));("serviceAccounts",(Option.mapx.serviceAccounts~f:ServiceAccountList.to_value));("workspaceId",(Option.mapx.workspaceId~f:WorkspaceId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspaceId=(Option.map~f:WorkspaceId.of_xml)(Xml.childxml_arg0"workspaceId")inletserviceAccounts=(Option.map~f:ServiceAccountList.of_xml)(Xml.childxml_arg0"serviceAccounts")inletnextToken=(Option.map~f:PaginationToken.of_xml)(Xml.childxml_arg0"nextToken")inmake?workspaceId?serviceAccounts?nextToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspaceId=field_mapjson__"workspaceId"WorkspaceId.of_jsoninletserviceAccounts=field_mapjson__"serviceAccounts"ServiceAccountList.of_jsoninletnextToken=field_mapjson__"nextToken"PaginationToken.of_jsoninmake?workspaceId?serviceAccounts?nextToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a list of service accounts for a workspace. Service accounts are only available for workspaces that are compatible with Grafana version 9 and above."]moduleListWorkspaceServiceAccountsRequest=structtypenonrect={maxResults:ListWorkspaceServiceAccountsRequestMaxResultsInteger.toption[@ocaml.doc"The maximum number of service accounts to include in the results."];nextToken:PaginationToken.toption[@ocaml.doc"The token for the next set of service accounts to return. (You receive this token from a previous ListWorkspaceServiceAccounts operation.)"];workspaceId:WorkspaceId.t[@ocaml.doc"The workspace for which to list service accounts."]}letcontext_="ListWorkspaceServiceAccountsRequest"letmake?maxResults=fun?nextToken->fun~workspaceId->fun()->{maxResults;nextToken;workspaceId}letto_valuex=structure_to_value[("maxResults",(Option.mapx.maxResults~f:ListWorkspaceServiceAccountsRequestMaxResultsInteger.to_value));("nextToken",(Option.mapx.nextToken~f:PaginationToken.to_value));("workspaceId",(Some(WorkspaceId.to_valuex.workspaceId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspaceId=WorkspaceId.of_xml(Xml.child_exn~context:context_xml_arg0"workspaceId")inletnextToken=(Option.map~f:PaginationToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:ListWorkspaceServiceAccountsRequestMaxResultsInteger.of_xml)(Xml.childxml_arg0"maxResults")inmake~workspaceId?nextToken?maxResults()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspaceId=field_map_exnjson__"workspaceId"WorkspaceId.of_jsoninletnextToken=field_mapjson__"nextToken"PaginationToken.of_jsoninletmaxResults=field_mapjson__"maxResults"ListWorkspaceServiceAccountsRequestMaxResultsInteger.of_jsoninmake~workspaceId?nextToken?maxResults()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a list of service accounts for a workspace. Service accounts are only available for workspaces that are compatible with Grafana version 9 and above."]moduleListWorkspaceServiceAccountTokensResponse=structtypenonrect={nextToken:PaginationToken.toption[@ocaml.doc"The token to use when requesting the next set of service accounts."];serviceAccountTokens:ServiceAccountTokenList.toption[@ocaml.doc"An array of structures containing information about the tokens."];serviceAccountId:String_.toption[@ocaml.doc"The ID of the service account where the tokens reside."];workspaceId:WorkspaceId.toption[@ocaml.doc"The ID of the workspace where the tokens reside."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?nextToken=fun?serviceAccountTokens->fun?serviceAccountId->fun?workspaceId->fun()->{nextToken;serviceAccountTokens;serviceAccountId;workspaceId}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("nextToken",(Option.mapx.nextToken~f:PaginationToken.to_value));("serviceAccountTokens",(Option.mapx.serviceAccountTokens~f:ServiceAccountTokenList.to_value));("serviceAccountId",(Option.mapx.serviceAccountId~f:String_.to_value));("workspaceId",(Option.mapx.workspaceId~f:WorkspaceId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspaceId=(Option.map~f:WorkspaceId.of_xml)(Xml.childxml_arg0"workspaceId")inletserviceAccountId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"serviceAccountId")inletserviceAccountTokens=(Option.map~f:ServiceAccountTokenList.of_xml)(Xml.childxml_arg0"serviceAccountTokens")inletnextToken=(Option.map~f:PaginationToken.of_xml)(Xml.childxml_arg0"nextToken")inmake?workspaceId?serviceAccountId?serviceAccountTokens?nextToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspaceId=field_mapjson__"workspaceId"WorkspaceId.of_jsoninletserviceAccountId=field_mapjson__"serviceAccountId"String_.of_jsoninletserviceAccountTokens=field_mapjson__"serviceAccountTokens"ServiceAccountTokenList.of_jsoninletnextToken=field_mapjson__"nextToken"PaginationToken.of_jsoninmake?workspaceId?serviceAccountId?serviceAccountTokens?nextToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a list of tokens for a workspace service account. This does not return the key for each token. You cannot access keys after they are created. To create a new key, delete the token and recreate it. Service accounts are only available for workspaces that are compatible with Grafana version 9 and above."]moduleListWorkspaceServiceAccountTokensRequest=structtypenonrect={maxResults:ListWorkspaceServiceAccountTokensRequestMaxResultsInteger.toption[@ocaml.doc"The maximum number of tokens to include in the results."];nextToken:PaginationToken.toption[@ocaml.doc"The token for the next set of service accounts to return. (You receive this token from a previous ListWorkspaceServiceAccountTokens operation.)"];serviceAccountId:String_.t[@ocaml.doc"The ID of the service account for which to return tokens."];workspaceId:WorkspaceId.t[@ocaml.doc"The ID of the workspace for which to return tokens."]}letcontext_="ListWorkspaceServiceAccountTokensRequest"letmake?maxResults=fun?nextToken->fun~serviceAccountId->fun~workspaceId->fun()->{maxResults;nextToken;serviceAccountId;workspaceId}letto_valuex=structure_to_value[("maxResults",(Option.mapx.maxResults~f:ListWorkspaceServiceAccountTokensRequestMaxResultsInteger.to_value));("nextToken",(Option.mapx.nextToken~f:PaginationToken.to_value));("serviceAccountId",(Some(String_.to_valuex.serviceAccountId)));("workspaceId",(Some(WorkspaceId.to_valuex.workspaceId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspaceId=WorkspaceId.of_xml(Xml.child_exn~context:context_xml_arg0"workspaceId")inletserviceAccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"serviceAccountId")inletnextToken=(Option.map~f:PaginationToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:ListWorkspaceServiceAccountTokensRequestMaxResultsInteger.of_xml)(Xml.childxml_arg0"maxResults")inmake~workspaceId~serviceAccountId?nextToken?maxResults()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspaceId=field_map_exnjson__"workspaceId"WorkspaceId.of_jsoninletserviceAccountId=field_map_exnjson__"serviceAccountId"String_.of_jsoninletnextToken=field_mapjson__"nextToken"PaginationToken.of_jsoninletmaxResults=field_mapjson__"maxResults"ListWorkspaceServiceAccountTokensRequestMaxResultsInteger.of_jsoninmake~workspaceId~serviceAccountId?nextToken?maxResults()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a list of tokens for a workspace service account. This does not return the key for each token. You cannot access keys after they are created. To create a new key, delete the token and recreate it. Service accounts are only available for workspaces that are compatible with Grafana version 9 and above."]moduleListVersionsResponse=structtypenonrect={nextToken:PaginationToken.toption[@ocaml.doc"The token to use in a subsequent ListVersions operation to return the next set of results."];grafanaVersions:GrafanaVersionList.toption[@ocaml.doc"The Grafana versions available to create. If a workspace ID is included in the request, the Grafana versions to which this workspace can be upgraded."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?nextToken=fun?grafanaVersions->fun()->{nextToken;grafanaVersions}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("nextToken",(Option.mapx.nextToken~f:PaginationToken.to_value));("grafanaVersions",(Option.mapx.grafanaVersions~f:GrafanaVersionList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgrafanaVersions=(Option.map~f:GrafanaVersionList.of_xml)(Xml.childxml_arg0"grafanaVersions")inletnextToken=(Option.map~f:PaginationToken.of_xml)(Xml.childxml_arg0"nextToken")inmake?grafanaVersions?nextToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgrafanaVersions=field_mapjson__"grafanaVersions"GrafanaVersionList.of_jsoninletnextToken=field_mapjson__"nextToken"PaginationToken.of_jsoninmake?grafanaVersions?nextToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists available versions of Grafana. These are available when calling CreateWorkspace. Optionally, include a workspace to list the versions to which it can be upgraded."]moduleListVersionsRequest=structtypenonrect={maxResults:ListVersionsRequestMaxResultsInteger.toption[@ocaml.doc"The maximum number of results to include in the response."];nextToken:PaginationToken.toption[@ocaml.doc"The token to use when requesting the next set of results. You receive this token from a previous ListVersions operation."];workspaceId:WorkspaceId.toption[@ocaml.doc"The ID of the workspace to list the available upgrade versions. If not included, lists all versions of Grafana that are supported for CreateWorkspace."]}letmake?maxResults=fun?nextToken->fun?workspaceId->fun()->{maxResults;nextToken;workspaceId}letto_valuex=structure_to_value[("maxResults",(Option.mapx.maxResults~f:ListVersionsRequestMaxResultsInteger.to_value));("nextToken",(Option.mapx.nextToken~f:PaginationToken.to_value));("workspace-id",(Option.mapx.workspaceId~f:WorkspaceId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspaceId=(Option.map~f:WorkspaceId.of_xml)(Xml.childxml_arg0"workspace-id")inletnextToken=(Option.map~f:PaginationToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:ListVersionsRequestMaxResultsInteger.of_xml)(Xml.childxml_arg0"maxResults")inmake?workspaceId?nextToken?maxResults()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspaceId=field_mapjson__"workspaceId"WorkspaceId.of_jsoninletnextToken=field_mapjson__"nextToken"PaginationToken.of_jsoninletmaxResults=field_mapjson__"maxResults"ListVersionsRequestMaxResultsInteger.of_jsoninmake?workspaceId?nextToken?maxResults()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists available versions of Grafana. These are available when calling CreateWorkspace. Optionally, include a workspace to list the versions to which it can be upgraded."]moduleListTagsForResourceResponse=structtypenonrect={tags:TagMap.toption[@ocaml.doc"The list of tags that are associated with the resource."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?tags=fun()->{tags}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("tags",(Option.mapx.tags~f:TagMap.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:TagMap.of_xml)(Xml.childxml_arg0"tags")inmake?tags()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"tags"TagMap.of_jsoninmake?tags()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The ListTagsForResource operation returns the tags that are associated with the Amazon Managed Service for Grafana resource specified by the resourceArn. Currently, the only resource that can be tagged is a workspace."]moduleListTagsForResourceRequest=structtypenonrect={resourceArn:String_.t[@ocaml.doc"The ARN of the resource the list of tags are associated with."]}letcontext_="ListTagsForResourceRequest"letmake~resourceArn=fun()->{resourceArn}letto_valuex=structure_to_value[("resourceArn",(Some(String_.to_valuex.resourceArn)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceArn=String_.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"String_.of_jsoninmake~resourceArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The ListTagsForResource operation returns the tags that are associated with the Amazon Managed Service for Grafana resource specified by the resourceArn. Currently, the only resource that can be tagged is a workspace."]moduleListPermissionsResponse=structtypenonrect={nextToken:PaginationToken.toption[@ocaml.doc"The token to use in a subsequent ListPermissions operation to return the next set of results."];permissions:PermissionEntryList.toption[@ocaml.doc"The permissions returned by the operation."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?nextToken=fun?permissions->fun()->{nextToken;permissions}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("nextToken",(Option.mapx.nextToken~f:PaginationToken.to_value));("permissions",(Option.mapx.permissions~f:PermissionEntryList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpermissions=(Option.map~f:PermissionEntryList.of_xml)(Xml.childxml_arg0"permissions")inletnextToken=(Option.map~f:PaginationToken.of_xml)(Xml.childxml_arg0"nextToken")inmake?permissions?nextToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpermissions=field_mapjson__"permissions"PermissionEntryList.of_jsoninletnextToken=field_mapjson__"nextToken"PaginationToken.of_jsoninmake?permissions?nextToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the users and groups who have the Grafana Admin and Editor roles in this workspace. If you use this operation without specifying userId or groupId, the operation returns the roles of all users and groups. If you specify a userId or a groupId, only the roles for that user or group are returned. If you do this, you can specify only one userId or one groupId."]moduleListPermissionsRequest=structtypenonrect={maxResults:ListPermissionsRequestMaxResultsInteger.toption[@ocaml.doc"The maximum number of results to include in the response."];nextToken:PaginationToken.toption[@ocaml.doc"The token to use when requesting the next set of results. You received this token from a previous ListPermissions operation."];userType:UserType.toption[@ocaml.doc"(Optional) If you specify SSO_USER, then only the permissions of IAM Identity Center users are returned. If you specify SSO_GROUP, only the permissions of IAM Identity Center groups are returned."];userId:SsoId.toption[@ocaml.doc"(Optional) Limits the results to only the user that matches this ID."];groupId:SsoId.toption[@ocaml.doc"(Optional) Limits the results to only the group that matches this ID."];workspaceId:WorkspaceId.t[@ocaml.doc"The ID of the workspace to list permissions for. This parameter is required."]}letcontext_="ListPermissionsRequest"letmake?maxResults=fun?nextToken->fun?userType->fun?userId->fun?groupId->fun~workspaceId->fun()->{maxResults;nextToken;userType;userId;groupId;workspaceId}letto_valuex=structure_to_value[("maxResults",(Option.mapx.maxResults~f:ListPermissionsRequestMaxResultsInteger.to_value));("nextToken",(Option.mapx.nextToken~f:PaginationToken.to_value));("userType",(Option.mapx.userType~f:UserType.to_value));("userId",(Option.mapx.userId~f:SsoId.to_value));("groupId",(Option.mapx.groupId~f:SsoId.to_value));("workspaceId",(Some(WorkspaceId.to_valuex.workspaceId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspaceId=WorkspaceId.of_xml(Xml.child_exn~context:context_xml_arg0"workspaceId")inletgroupId=(Option.map~f:SsoId.of_xml)(Xml.childxml_arg0"groupId")inletuserId=(Option.map~f:SsoId.of_xml)(Xml.childxml_arg0"userId")inletuserType=(Option.map~f:UserType.of_xml)(Xml.childxml_arg0"userType")inletnextToken=(Option.map~f:PaginationToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:ListPermissionsRequestMaxResultsInteger.of_xml)(Xml.childxml_arg0"maxResults")inmake~workspaceId?groupId?userId?userType?nextToken?maxResults()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspaceId=field_map_exnjson__"workspaceId"WorkspaceId.of_jsoninletgroupId=field_mapjson__"groupId"SsoId.of_jsoninletuserId=field_mapjson__"userId"SsoId.of_jsoninletuserType=field_mapjson__"userType"UserType.of_jsoninletnextToken=field_mapjson__"nextToken"PaginationToken.of_jsoninletmaxResults=field_mapjson__"maxResults"ListPermissionsRequestMaxResultsInteger.of_jsoninmake~workspaceId?groupId?userId?userType?nextToken?maxResults()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the users and groups who have the Grafana Admin and Editor roles in this workspace. If you use this operation without specifying userId or groupId, the operation returns the roles of all users and groups. If you specify a userId or a groupId, only the roles for that user or group are returned. If you do this, you can specify only one userId or one groupId."]moduleDisassociateLicenseResponse=structtypenonrect={workspace:WorkspaceDescription.toption[@ocaml.doc"A structure containing information about the workspace."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?workspace=fun()->{workspace}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("workspace",(Option.mapx.workspace~f:WorkspaceDescription.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspace=(Option.map~f:WorkspaceDescription.of_xml)(Xml.childxml_arg0"workspace")inmake?workspace()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspace=field_mapjson__"workspace"WorkspaceDescription.of_jsoninmake?workspace()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Removes the Grafana Enterprise license from a workspace."]moduleDisassociateLicenseRequest=structtypenonrect={workspaceId:WorkspaceId.t[@ocaml.doc"The ID of the workspace to remove the Grafana Enterprise license from."];licenseType:LicenseType.t[@ocaml.doc"The type of license to remove from the workspace."]}letcontext_="DisassociateLicenseRequest"letmake~workspaceId=fun~licenseType->fun()->{workspaceId;licenseType}letto_valuex=structure_to_value[("workspaceId",(Some(WorkspaceId.to_valuex.workspaceId)));("licenseType",(Some(LicenseType.to_valuex.licenseType)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlicenseType=LicenseType.of_xml(Xml.child_exn~context:context_xml_arg0"licenseType")inletworkspaceId=WorkspaceId.of_xml(Xml.child_exn~context:context_xml_arg0"workspaceId")inmake~licenseType~workspaceId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlicenseType=field_map_exnjson__"licenseType"LicenseType.of_jsoninletworkspaceId=field_map_exnjson__"workspaceId"WorkspaceId.of_jsoninmake~licenseType~workspaceId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Removes the Grafana Enterprise license from a workspace."]moduleDescribeWorkspaceResponse=structtypenonrect={workspace:WorkspaceDescription.toption[@ocaml.doc"A structure containing information about the workspace."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?workspace=fun()->{workspace}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("workspace",(Option.mapx.workspace~f:WorkspaceDescription.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspace=(Option.map~f:WorkspaceDescription.of_xml)(Xml.childxml_arg0"workspace")inmake?workspace()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspace=field_mapjson__"workspace"WorkspaceDescription.of_jsoninmake?workspace()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Displays information about one Amazon Managed Grafana workspace."]moduleDescribeWorkspaceRequest=structtypenonrect={workspaceId:WorkspaceId.t[@ocaml.doc"The ID of the workspace to display information about."]}letcontext_="DescribeWorkspaceRequest"letmake~workspaceId=fun()->{workspaceId}letto_valuex=structure_to_value[("workspaceId",(Some(WorkspaceId.to_valuex.workspaceId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspaceId=WorkspaceId.of_xml(Xml.child_exn~context:context_xml_arg0"workspaceId")inmake~workspaceId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspaceId=field_map_exnjson__"workspaceId"WorkspaceId.of_jsoninmake~workspaceId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Displays information about one Amazon Managed Grafana workspace."]moduleDescribeWorkspaceConfigurationResponse=structtypenonrect={configuration:OverridableConfigurationJson.toption[@ocaml.doc"The configuration string for the workspace that you requested. For more information about the format and configuration options available, see Working in your Grafana workspace."];grafanaVersion:GrafanaVersion.toption[@ocaml.doc"The supported Grafana version for the workspace."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`Unknown_operation_errorof(string*stringoption)]letmake?configuration=fun?grafanaVersion->fun()->{configuration;grafanaVersion}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("configuration",(Option.mapx.configuration~f:OverridableConfigurationJson.to_value));("grafanaVersion",(Option.mapx.grafanaVersion~f:GrafanaVersion.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgrafanaVersion=(Option.map~f:GrafanaVersion.of_xml)(Xml.childxml_arg0"grafanaVersion")inletconfiguration=(Option.map~f:OverridableConfigurationJson.of_xml)(Xml.childxml_arg0"configuration")inmake?grafanaVersion?configuration()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgrafanaVersion=field_mapjson__"grafanaVersion"GrafanaVersion.of_jsoninletconfiguration=field_mapjson__"configuration"OverridableConfigurationJson.of_jsoninmake?grafanaVersion?configuration()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Gets the current configuration string for the given workspace."]moduleDescribeWorkspaceConfigurationRequest=structtypenonrect={workspaceId:WorkspaceId.t[@ocaml.doc"The ID of the workspace to get configuration information for."]}letcontext_="DescribeWorkspaceConfigurationRequest"letmake~workspaceId=fun()->{workspaceId}letto_valuex=structure_to_value[("workspaceId",(Some(WorkspaceId.to_valuex.workspaceId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspaceId=WorkspaceId.of_xml(Xml.child_exn~context:context_xml_arg0"workspaceId")inmake~workspaceId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspaceId=field_map_exnjson__"workspaceId"WorkspaceId.of_jsoninmake~workspaceId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Gets the current configuration string for the given workspace."]moduleDescribeWorkspaceAuthenticationResponse=structtypenonrect={authentication:AuthenticationDescription.toption[@ocaml.doc"A structure containing information about the authentication methods used in the workspace."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?authentication=fun()->{authentication}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[("authentication",(Option.mapx.authentication~f:AuthenticationDescription.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letauthentication=(Option.map~f:AuthenticationDescription.of_xml)(Xml.childxml_arg0"authentication")inmake?authentication()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letauthentication=field_mapjson__"authentication"AuthenticationDescription.of_jsoninmake?authentication()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Displays information about the authentication methods used in one Amazon Managed Grafana workspace."]moduleDescribeWorkspaceAuthenticationRequest=structtypenonrect={workspaceId:WorkspaceId.t[@ocaml.doc"The ID of the workspace to return authentication information about."]}letcontext_="DescribeWorkspaceAuthenticationRequest"letmake~workspaceId=fun()->{workspaceId}letto_valuex=structure_to_value[("workspaceId",(Some(WorkspaceId.to_valuex.workspaceId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspaceId=WorkspaceId.of_xml(Xml.child_exn~context:context_xml_arg0"workspaceId")inmake~workspaceId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspaceId=field_map_exnjson__"workspaceId"WorkspaceId.of_jsoninmake~workspaceId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Displays information about the authentication methods used in one Amazon Managed Grafana workspace."]moduleDeleteWorkspaceServiceAccountTokenResponse=structtypenonrect={tokenId:String_.toption[@ocaml.doc"The ID of the token that was deleted."];serviceAccountId:String_.toption[@ocaml.doc"The ID of the service account where the token was deleted."];workspaceId:WorkspaceId.toption[@ocaml.doc"The ID of the workspace where the token was deleted."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?tokenId=fun?serviceAccountId->fun?workspaceId->fun()->{tokenId;serviceAccountId;workspaceId}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[("tokenId",(Option.mapx.tokenId~f:String_.to_value));("serviceAccountId",(Option.mapx.serviceAccountId~f:String_.to_value));("workspaceId",(Option.mapx.workspaceId~f:WorkspaceId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspaceId=(Option.map~f:WorkspaceId.of_xml)(Xml.childxml_arg0"workspaceId")inletserviceAccountId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"serviceAccountId")inlettokenId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"tokenId")inmake?workspaceId?serviceAccountId?tokenId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspaceId=field_mapjson__"workspaceId"WorkspaceId.of_jsoninletserviceAccountId=field_mapjson__"serviceAccountId"String_.of_jsoninlettokenId=field_mapjson__"tokenId"String_.of_jsoninmake?workspaceId?serviceAccountId?tokenId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a token for the workspace service account. This will disable the key associated with the token. If any automation is currently using the key, it will no longer be authenticated or authorized to perform actions with the Grafana HTTP APIs. Service accounts are only available for workspaces that are compatible with Grafana version 9 and above."]moduleDeleteWorkspaceServiceAccountTokenRequest=structtypenonrect={tokenId:String_.t[@ocaml.doc"The ID of the token to delete."];serviceAccountId:String_.t[@ocaml.doc"The ID of the service account from which to delete the token."];workspaceId:WorkspaceId.t[@ocaml.doc"The ID of the workspace from which to delete the token."]}letcontext_="DeleteWorkspaceServiceAccountTokenRequest"letmake~tokenId=fun~serviceAccountId->fun~workspaceId->fun()->{tokenId;serviceAccountId;workspaceId}letto_valuex=structure_to_value[("tokenId",(Some(String_.to_valuex.tokenId)));("serviceAccountId",(Some(String_.to_valuex.serviceAccountId)));("workspaceId",(Some(WorkspaceId.to_valuex.workspaceId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspaceId=WorkspaceId.of_xml(Xml.child_exn~context:context_xml_arg0"workspaceId")inletserviceAccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"serviceAccountId")inlettokenId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"tokenId")inmake~workspaceId~serviceAccountId~tokenId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspaceId=field_map_exnjson__"workspaceId"WorkspaceId.of_jsoninletserviceAccountId=field_map_exnjson__"serviceAccountId"String_.of_jsoninlettokenId=field_map_exnjson__"tokenId"String_.of_jsoninmake~workspaceId~serviceAccountId~tokenId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a token for the workspace service account. This will disable the key associated with the token. If any automation is currently using the key, it will no longer be authenticated or authorized to perform actions with the Grafana HTTP APIs. Service accounts are only available for workspaces that are compatible with Grafana version 9 and above."]moduleDeleteWorkspaceServiceAccountResponse=structtypenonrect={serviceAccountId:String_.toption[@ocaml.doc"The ID of the service account deleted."];workspaceId:WorkspaceId.toption[@ocaml.doc"The ID of the workspace where the service account was deleted."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?serviceAccountId=fun?workspaceId->fun()->{serviceAccountId;workspaceId}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[("serviceAccountId",(Option.mapx.serviceAccountId~f:String_.to_value));("workspaceId",(Option.mapx.workspaceId~f:WorkspaceId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspaceId=(Option.map~f:WorkspaceId.of_xml)(Xml.childxml_arg0"workspaceId")inletserviceAccountId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"serviceAccountId")inmake?workspaceId?serviceAccountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspaceId=field_mapjson__"workspaceId"WorkspaceId.of_jsoninletserviceAccountId=field_mapjson__"serviceAccountId"String_.of_jsoninmake?workspaceId?serviceAccountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a workspace service account from the workspace. This will delete any tokens created for the service account, as well. If the tokens are currently in use, the will fail to authenticate / authorize after they are deleted. Service accounts are only available for workspaces that are compatible with Grafana version 9 and above."]moduleDeleteWorkspaceServiceAccountRequest=structtypenonrect={serviceAccountId:String_.t[@ocaml.doc"The ID of the service account to delete."];workspaceId:WorkspaceId.t[@ocaml.doc"The ID of the workspace where the service account resides."]}letcontext_="DeleteWorkspaceServiceAccountRequest"letmake~serviceAccountId=fun~workspaceId->fun()->{serviceAccountId;workspaceId}letto_valuex=structure_to_value[("serviceAccountId",(Some(String_.to_valuex.serviceAccountId)));("workspaceId",(Some(WorkspaceId.to_valuex.workspaceId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspaceId=WorkspaceId.of_xml(Xml.child_exn~context:context_xml_arg0"workspaceId")inletserviceAccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"serviceAccountId")inmake~workspaceId~serviceAccountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspaceId=field_map_exnjson__"workspaceId"WorkspaceId.of_jsoninletserviceAccountId=field_map_exnjson__"serviceAccountId"String_.of_jsoninmake~workspaceId~serviceAccountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a workspace service account from the workspace. This will delete any tokens created for the service account, as well. If the tokens are currently in use, the will fail to authenticate / authorize after they are deleted. Service accounts are only available for workspaces that are compatible with Grafana version 9 and above."]moduleDeleteWorkspaceResponse=structtypenonrect={workspace:WorkspaceDescription.toption[@ocaml.doc"A structure containing information about the workspace that was deleted."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?workspace=fun()->{workspace}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[("workspace",(Option.mapx.workspace~f:WorkspaceDescription.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspace=(Option.map~f:WorkspaceDescription.of_xml)(Xml.childxml_arg0"workspace")inmake?workspace()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspace=field_mapjson__"workspace"WorkspaceDescription.of_jsoninmake?workspace()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes an Amazon Managed Grafana workspace."]moduleDeleteWorkspaceRequest=structtypenonrect={workspaceId:WorkspaceId.t[@ocaml.doc"The ID of the workspace to delete."]}letcontext_="DeleteWorkspaceRequest"letmake~workspaceId=fun()->{workspaceId}letto_valuex=structure_to_value[("workspaceId",(Some(WorkspaceId.to_valuex.workspaceId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspaceId=WorkspaceId.of_xml(Xml.child_exn~context:context_xml_arg0"workspaceId")inmake~workspaceId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspaceId=field_map_exnjson__"workspaceId"WorkspaceId.of_jsoninmake~workspaceId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes an Amazon Managed Grafana workspace."]moduleDeleteWorkspaceApiKeyResponse=structtypenonrect={keyName:ApiKeyName.toption[@ocaml.doc"The name of the key that was deleted."];workspaceId:WorkspaceId.toption[@ocaml.doc"The ID of the workspace where the key was deleted."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?keyName=fun?workspaceId->fun()->{keyName;workspaceId}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[("keyName",(Option.mapx.keyName~f:ApiKeyName.to_value));("workspaceId",(Option.mapx.workspaceId~f:WorkspaceId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspaceId=(Option.map~f:WorkspaceId.of_xml)(Xml.childxml_arg0"workspaceId")inletkeyName=(Option.map~f:ApiKeyName.of_xml)(Xml.childxml_arg0"keyName")inmake?workspaceId?keyName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspaceId=field_mapjson__"workspaceId"WorkspaceId.of_jsoninletkeyName=field_mapjson__"keyName"ApiKeyName.of_jsoninmake?workspaceId?keyName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a Grafana API key for the workspace. In workspaces compatible with Grafana version 9 or above, use workspace service accounts instead of API keys. API keys will be removed in a future release."]moduleDeleteWorkspaceApiKeyRequest=structtypenonrect={keyName:ApiKeyName.t[@ocaml.doc"The name of the API key to delete."];workspaceId:WorkspaceId.t[@ocaml.doc"The ID of the workspace to delete."]}letcontext_="DeleteWorkspaceApiKeyRequest"letmake~keyName=fun~workspaceId->fun()->{keyName;workspaceId}letto_valuex=structure_to_value[("keyName",(Some(ApiKeyName.to_valuex.keyName)));("workspaceId",(Some(WorkspaceId.to_valuex.workspaceId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspaceId=WorkspaceId.of_xml(Xml.child_exn~context:context_xml_arg0"workspaceId")inletkeyName=ApiKeyName.of_xml(Xml.child_exn~context:context_xml_arg0"keyName")inmake~workspaceId~keyName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspaceId=field_map_exnjson__"workspaceId"WorkspaceId.of_jsoninletkeyName=field_map_exnjson__"keyName"ApiKeyName.of_jsoninmake~workspaceId~keyName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a Grafana API key for the workspace. In workspaces compatible with Grafana version 9 or above, use workspace service accounts instead of API keys. API keys will be removed in a future release."]moduleCreateWorkspaceServiceAccountTokenResponse=structtypenonrect={serviceAccountToken:ServiceAccountTokenSummaryWithKey.toption[@ocaml.doc"Information about the created token, including the key. Be sure to store the key securely."];serviceAccountId:String_.toption[@ocaml.doc"The ID of the service account where the token was created."];workspaceId:WorkspaceId.toption[@ocaml.doc"The ID of the workspace where the token was created."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?serviceAccountToken=fun?serviceAccountId->fun?workspaceId->fun()->{serviceAccountToken;serviceAccountId;workspaceId}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[("serviceAccountToken",(Option.mapx.serviceAccountToken~f:ServiceAccountTokenSummaryWithKey.to_value));("serviceAccountId",(Option.mapx.serviceAccountId~f:String_.to_value));("workspaceId",(Option.mapx.workspaceId~f:WorkspaceId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspaceId=(Option.map~f:WorkspaceId.of_xml)(Xml.childxml_arg0"workspaceId")inletserviceAccountId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"serviceAccountId")inletserviceAccountToken=(Option.map~f:ServiceAccountTokenSummaryWithKey.of_xml)(Xml.childxml_arg0"serviceAccountToken")inmake?workspaceId?serviceAccountId?serviceAccountToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspaceId=field_mapjson__"workspaceId"WorkspaceId.of_jsoninletserviceAccountId=field_mapjson__"serviceAccountId"String_.of_jsoninletserviceAccountToken=field_mapjson__"serviceAccountToken"ServiceAccountTokenSummaryWithKey.of_jsoninmake?workspaceId?serviceAccountId?serviceAccountToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a token that can be used to authenticate and authorize Grafana HTTP API operations for the given workspace service account. The service account acts as a user for the API operations, and defines the permissions that are used by the API. When you create the service account token, you will receive a key that is used when calling Grafana APIs. Do not lose this key, as it will not be retrievable again. If you do lose the key, you can delete the token and recreate it to receive a new key. This will disable the initial key. Service accounts are only available for workspaces that are compatible with Grafana version 9 and above."]moduleCreateWorkspaceServiceAccountTokenRequest=structtypenonrect={name:ServiceAccountTokenName.t[@ocaml.doc"A name for the token to create."];secondsToLive:CreateWorkspaceServiceAccountTokenRequestSecondsToLiveInteger.t[@ocaml.doc"Sets how long the token will be valid, in seconds. You can set the time up to 30 days in the future."];serviceAccountId:String_.t[@ocaml.doc"The ID of the service account for which to create a token."];workspaceId:WorkspaceId.t[@ocaml.doc"The ID of the workspace the service account resides within."]}letcontext_="CreateWorkspaceServiceAccountTokenRequest"letmake~name=fun~secondsToLive->fun~serviceAccountId->fun~workspaceId->fun()->{name;secondsToLive;serviceAccountId;workspaceId}letto_valuex=structure_to_value[("name",(Some(ServiceAccountTokenName.to_valuex.name)));("secondsToLive",(Some(CreateWorkspaceServiceAccountTokenRequestSecondsToLiveInteger.to_valuex.secondsToLive)));("serviceAccountId",(Some(String_.to_valuex.serviceAccountId)));("workspaceId",(Some(WorkspaceId.to_valuex.workspaceId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspaceId=WorkspaceId.of_xml(Xml.child_exn~context:context_xml_arg0"workspaceId")inletserviceAccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"serviceAccountId")inletsecondsToLive=CreateWorkspaceServiceAccountTokenRequestSecondsToLiveInteger.of_xml(Xml.child_exn~context:context_xml_arg0"secondsToLive")inletname=ServiceAccountTokenName.of_xml(Xml.child_exn~context:context_xml_arg0"name")inmake~workspaceId~serviceAccountId~secondsToLive~name()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspaceId=field_map_exnjson__"workspaceId"WorkspaceId.of_jsoninletserviceAccountId=field_map_exnjson__"serviceAccountId"String_.of_jsoninletsecondsToLive=field_map_exnjson__"secondsToLive"CreateWorkspaceServiceAccountTokenRequestSecondsToLiveInteger.of_jsoninletname=field_map_exnjson__"name"ServiceAccountTokenName.of_jsoninmake~workspaceId~serviceAccountId~secondsToLive~name()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a token that can be used to authenticate and authorize Grafana HTTP API operations for the given workspace service account. The service account acts as a user for the API operations, and defines the permissions that are used by the API. When you create the service account token, you will receive a key that is used when calling Grafana APIs. Do not lose this key, as it will not be retrievable again. If you do lose the key, you can delete the token and recreate it to receive a new key. This will disable the initial key. Service accounts are only available for workspaces that are compatible with Grafana version 9 and above."]moduleCreateWorkspaceServiceAccountResponse=structtypenonrect={id:String_.toption[@ocaml.doc"The ID of the service account."];name:String_.toption[@ocaml.doc"The name of the service account."];grafanaRole:Role.toption[@ocaml.doc"The permission level given to the service account."];workspaceId:WorkspaceId.toption[@ocaml.doc"The workspace with which the service account is associated."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?id=fun?name->fun?grafanaRole->fun?workspaceId->fun()->{id;name;grafanaRole;workspaceId}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[("id",(Option.mapx.id~f:String_.to_value));("name",(Option.mapx.name~f:String_.to_value));("grafanaRole",(Option.mapx.grafanaRole~f:Role.to_value));("workspaceId",(Option.mapx.workspaceId~f:WorkspaceId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspaceId=(Option.map~f:WorkspaceId.of_xml)(Xml.childxml_arg0"workspaceId")inletgrafanaRole=(Option.map~f:Role.of_xml)(Xml.childxml_arg0"grafanaRole")inletname=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"name")inletid=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"id")inmake?workspaceId?grafanaRole?name?id()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspaceId=field_mapjson__"workspaceId"WorkspaceId.of_jsoninletgrafanaRole=field_mapjson__"grafanaRole"Role.of_jsoninletname=field_mapjson__"name"String_.of_jsoninletid=field_mapjson__"id"String_.of_jsoninmake?workspaceId?grafanaRole?name?id()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a service account for the workspace. A service account can be used to call Grafana HTTP APIs, and run automated workloads. After creating the service account with the correct GrafanaRole for your use case, use CreateWorkspaceServiceAccountToken to create a token that can be used to authenticate and authorize Grafana HTTP API calls. You can only create service accounts for workspaces that are compatible with Grafana version 9 and above. For more information about service accounts, see Service accounts in the Amazon Managed Grafana User Guide. For more information about the Grafana HTTP APIs, see Using Grafana HTTP APIs in the Amazon Managed Grafana User Guide."]moduleCreateWorkspaceServiceAccountRequest=structtypenonrect={name:ServiceAccountName.t[@ocaml.doc"A name for the service account. The name must be unique within the workspace, as it determines the ID associated with the service account."];grafanaRole:Role.t[@ocaml.doc"The permission level to use for this service account. For more information about the roles and the permissions each has, see User roles in the Amazon Managed Grafana User Guide."];workspaceId:WorkspaceId.t[@ocaml.doc"The ID of the workspace within which to create the service account."]}letcontext_="CreateWorkspaceServiceAccountRequest"letmake~name=fun~grafanaRole->fun~workspaceId->fun()->{name;grafanaRole;workspaceId}letto_valuex=structure_to_value[("name",(Some(ServiceAccountName.to_valuex.name)));("grafanaRole",(Some(Role.to_valuex.grafanaRole)));("workspaceId",(Some(WorkspaceId.to_valuex.workspaceId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspaceId=WorkspaceId.of_xml(Xml.child_exn~context:context_xml_arg0"workspaceId")inletgrafanaRole=Role.of_xml(Xml.child_exn~context:context_xml_arg0"grafanaRole")inletname=ServiceAccountName.of_xml(Xml.child_exn~context:context_xml_arg0"name")inmake~workspaceId~grafanaRole~name()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspaceId=field_map_exnjson__"workspaceId"WorkspaceId.of_jsoninletgrafanaRole=field_map_exnjson__"grafanaRole"Role.of_jsoninletname=field_map_exnjson__"name"ServiceAccountName.of_jsoninmake~workspaceId~grafanaRole~name()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a service account for the workspace. A service account can be used to call Grafana HTTP APIs, and run automated workloads. After creating the service account with the correct GrafanaRole for your use case, use CreateWorkspaceServiceAccountToken to create a token that can be used to authenticate and authorize Grafana HTTP API calls. You can only create service accounts for workspaces that are compatible with Grafana version 9 and above. For more information about service accounts, see Service accounts in the Amazon Managed Grafana User Guide. For more information about the Grafana HTTP APIs, see Using Grafana HTTP APIs in the Amazon Managed Grafana User Guide."]moduleCreateWorkspaceResponse=structtypenonrect={workspace:WorkspaceDescription.toption[@ocaml.doc"A structure containing data about the workspace that was created."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?workspace=fun()->{workspace}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[("workspace",(Option.mapx.workspace~f:WorkspaceDescription.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspace=(Option.map~f:WorkspaceDescription.of_xml)(Xml.childxml_arg0"workspace")inmake?workspace()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspace=field_mapjson__"workspace"WorkspaceDescription.of_jsoninmake?workspace()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a workspace. In a workspace, you can create Grafana dashboards and visualizations to analyze your metrics, logs, and traces. You don't have to build, package, or deploy any hardware to run the Grafana server. Don't use CreateWorkspace to modify an existing workspace. Instead, use UpdateWorkspace."]moduleCreateWorkspaceRequest=structtypenonrect={accountAccessType:AccountAccessType.t[@ocaml.doc"Specifies whether the workspace can access Amazon Web Services resources in this Amazon Web Services account only, or whether it can also access Amazon Web Services resources in other accounts in the same organization. If you specify ORGANIZATION, you must specify which organizational units the workspace can access in the workspaceOrganizationalUnits parameter."];clientToken:ClientToken.toption[@ocaml.doc"A unique, case-sensitive, user-provided identifier to ensure the idempotency of the request."];organizationRoleName:OrganizationRoleName.toption[@ocaml.doc"The name of an IAM role that already exists to use with Organizations to access Amazon Web Services data sources and notification channels in other accounts in an organization."];permissionType:PermissionType.t[@ocaml.doc"When creating a workspace through the Amazon Web Services API, CLI or Amazon Web Services CloudFormation, you must manage IAM roles and provision the permissions that the workspace needs to use Amazon Web Services data sources and notification channels. You must also specify a workspaceRoleArn for a role that you will manage for the workspace to use when accessing those datasources and notification channels. The ability for Amazon Managed Grafana to create and update IAM roles on behalf of the user is supported only in the Amazon Managed Grafana console, where this value may be set to SERVICE_MANAGED. Use only the CUSTOMER_MANAGED permission type when creating a workspace with the API, CLI or Amazon Web Services CloudFormation. For more information, see Amazon Managed Grafana permissions and policies for Amazon Web Services data sources and notification channels."];stackSetName:StackSetName.toption[@ocaml.doc"The name of the CloudFormation stack set to use to generate IAM roles to be used for this workspace."];workspaceDataSources:DataSourceTypesList.toption[@ocaml.doc"This parameter is for internal use only, and should not be used."];workspaceDescription:Description.toption[@ocaml.doc"A description for the workspace. This is used only to help you identify this workspace. Pattern: ^\\[\\\\p\\{L\\}\\\\p\\{Z\\}\\\\p\\{N\\}\\\\p\\{P\\}\\]\\{0,2048\\}$"];workspaceName:WorkspaceName.toption[@ocaml.doc"The name for the workspace. It does not have to be unique."];workspaceNotificationDestinations:NotificationDestinationsList.toption[@ocaml.doc"Specify the Amazon Web Services notification channels that you plan to use in this workspace. Specifying these data sources here enables Amazon Managed Grafana to create IAM roles and permissions that allow Amazon Managed Grafana to use these channels."];workspaceOrganizationalUnits:OrganizationalUnitList.toption[@ocaml.doc"Specifies the organizational units that this workspace is allowed to use data sources from, if this workspace is in an account that is part of an organization."];workspaceRoleArn:IamRoleArn.toption[@ocaml.doc"Specified the IAM role that grants permissions to the Amazon Web Services resources that the workspace will view data from, including both data sources and notification channels. You are responsible for managing the permissions for this role as new data sources or notification channels are added."];authenticationProviders:AuthenticationProviders.t[@ocaml.doc"Specifies whether this workspace uses SAML 2.0, IAM Identity Center, or both to authenticate users for using the Grafana console within a workspace. For more information, see User authentication in Amazon Managed Grafana."];tags:TagMap.toption[@ocaml.doc"The list of tags associated with the workspace."];vpcConfiguration:VpcConfiguration.toption[@ocaml.doc"The configuration settings for an Amazon VPC that contains data sources for your Grafana workspace to connect to. Connecting to a private VPC is not yet available in the Asia Pacific (Seoul) Region (ap-northeast-2)."];configuration:OverridableConfigurationJson.toption[@ocaml.doc"The configuration string for the workspace that you create. For more information about the format and configuration options available, see Working in your Grafana workspace."];networkAccessControl:NetworkAccessConfiguration.toption[@ocaml.doc"Configuration for network access to your workspace. When this is configured, only listed IP addresses and VPC endpoints will be able to access your workspace. Standard Grafana authentication and authorization will still be required. If this is not configured, or is removed, then all IP addresses and VPC endpoints will be allowed. Standard Grafana authentication and authorization will still be required."];grafanaVersion:GrafanaVersion.toption[@ocaml.doc"Specifies the version of Grafana to support in the new workspace. If not specified, defaults to the latest version (for example, 10.4). To get a list of supported versions, use the ListVersions operation."];ipAddressType:IPAddressType.toption[@ocaml.doc"Specifies whether the workspace supports IPv4 only, or IPv4 and IPv6. Valid values are IPv4 and DualStack. For more information about IP address types, see Network access control."];kmsKeyId:KmsKeyId.toption[@ocaml.doc"The ID or ARN of the Key Management Service key to use for encrypting workspace data."]}letcontext_="CreateWorkspaceRequest"letmake?clientToken=fun?organizationRoleName->fun?stackSetName->fun?workspaceDataSources->fun?workspaceDescription->fun?workspaceName->fun?workspaceNotificationDestinations->fun?workspaceOrganizationalUnits->fun?workspaceRoleArn->fun?tags->fun?vpcConfiguration->fun?configuration->fun?networkAccessControl->fun?grafanaVersion->fun?ipAddressType->fun?kmsKeyId->fun~accountAccessType->fun~permissionType->fun~authenticationProviders->fun()->{clientToken;organizationRoleName;stackSetName;workspaceDataSources;workspaceDescription;workspaceName;workspaceNotificationDestinations;workspaceOrganizationalUnits;workspaceRoleArn;tags;vpcConfiguration;configuration;networkAccessControl;grafanaVersion;ipAddressType;kmsKeyId;accountAccessType;permissionType;authenticationProviders}letto_valuex=structure_to_value[("accountAccessType",(Some(AccountAccessType.to_valuex.accountAccessType)));("clientToken",(Option.mapx.clientToken~f:ClientToken.to_value));("organizationRoleName",(Option.mapx.organizationRoleName~f:OrganizationRoleName.to_value));("permissionType",(Some(PermissionType.to_valuex.permissionType)));("stackSetName",(Option.mapx.stackSetName~f:StackSetName.to_value));("workspaceDataSources",(Option.mapx.workspaceDataSources~f:DataSourceTypesList.to_value));("workspaceDescription",(Option.mapx.workspaceDescription~f:Description.to_value));("workspaceName",(Option.mapx.workspaceName~f:WorkspaceName.to_value));("workspaceNotificationDestinations",(Option.mapx.workspaceNotificationDestinations~f:NotificationDestinationsList.to_value));("workspaceOrganizationalUnits",(Option.mapx.workspaceOrganizationalUnits~f:OrganizationalUnitList.to_value));("workspaceRoleArn",(Option.mapx.workspaceRoleArn~f:IamRoleArn.to_value));("authenticationProviders",(Some(AuthenticationProviders.to_valuex.authenticationProviders)));("tags",(Option.mapx.tags~f:TagMap.to_value));("vpcConfiguration",(Option.mapx.vpcConfiguration~f:VpcConfiguration.to_value));("configuration",(Option.mapx.configuration~f:OverridableConfigurationJson.to_value));("networkAccessControl",(Option.mapx.networkAccessControl~f:NetworkAccessConfiguration.to_value));("grafanaVersion",(Option.mapx.grafanaVersion~f:GrafanaVersion.to_value));("ipAddressType",(Option.mapx.ipAddressType~f:IPAddressType.to_value));("kmsKeyId",(Option.mapx.kmsKeyId~f:KmsKeyId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letkmsKeyId=(Option.map~f:KmsKeyId.of_xml)(Xml.childxml_arg0"kmsKeyId")inletipAddressType=(Option.map~f:IPAddressType.of_xml)(Xml.childxml_arg0"ipAddressType")inletgrafanaVersion=(Option.map~f:GrafanaVersion.of_xml)(Xml.childxml_arg0"grafanaVersion")inletnetworkAccessControl=(Option.map~f:NetworkAccessConfiguration.of_xml)(Xml.childxml_arg0"networkAccessControl")inletconfiguration=(Option.map~f:OverridableConfigurationJson.of_xml)(Xml.childxml_arg0"configuration")inletvpcConfiguration=(Option.map~f:VpcConfiguration.of_xml)(Xml.childxml_arg0"vpcConfiguration")inlettags=(Option.map~f:TagMap.of_xml)(Xml.childxml_arg0"tags")inletauthenticationProviders=AuthenticationProviders.of_xml(Xml.child_exn~context:context_xml_arg0"authenticationProviders")inletworkspaceRoleArn=(Option.map~f:IamRoleArn.of_xml)(Xml.childxml_arg0"workspaceRoleArn")inletworkspaceOrganizationalUnits=(Option.map~f:OrganizationalUnitList.of_xml)(Xml.childxml_arg0"workspaceOrganizationalUnits")inletworkspaceNotificationDestinations=(Option.map~f:NotificationDestinationsList.of_xml)(Xml.childxml_arg0"workspaceNotificationDestinations")inletworkspaceName=(Option.map~f:WorkspaceName.of_xml)(Xml.childxml_arg0"workspaceName")inletworkspaceDescription=(Option.map~f:Description.of_xml)(Xml.childxml_arg0"workspaceDescription")inletworkspaceDataSources=(Option.map~f:DataSourceTypesList.of_xml)(Xml.childxml_arg0"workspaceDataSources")inletstackSetName=(Option.map~f:StackSetName.of_xml)(Xml.childxml_arg0"stackSetName")inletpermissionType=PermissionType.of_xml(Xml.child_exn~context:context_xml_arg0"permissionType")inletorganizationRoleName=(Option.map~f:OrganizationRoleName.of_xml)(Xml.childxml_arg0"organizationRoleName")inletclientToken=(Option.map~f:ClientToken.of_xml)(Xml.childxml_arg0"clientToken")inletaccountAccessType=AccountAccessType.of_xml(Xml.child_exn~context:context_xml_arg0"accountAccessType")inmake?kmsKeyId?ipAddressType?grafanaVersion?networkAccessControl?configuration?vpcConfiguration?tags~authenticationProviders?workspaceRoleArn?workspaceOrganizationalUnits?workspaceNotificationDestinations?workspaceName?workspaceDescription?workspaceDataSources?stackSetName~permissionType?organizationRoleName?clientToken~accountAccessType()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letkmsKeyId=field_mapjson__"kmsKeyId"KmsKeyId.of_jsoninletipAddressType=field_mapjson__"ipAddressType"IPAddressType.of_jsoninletgrafanaVersion=field_mapjson__"grafanaVersion"GrafanaVersion.of_jsoninletnetworkAccessControl=field_mapjson__"networkAccessControl"NetworkAccessConfiguration.of_jsoninletconfiguration=field_mapjson__"configuration"OverridableConfigurationJson.of_jsoninletvpcConfiguration=field_mapjson__"vpcConfiguration"VpcConfiguration.of_jsoninlettags=field_mapjson__"tags"TagMap.of_jsoninletauthenticationProviders=field_map_exnjson__"authenticationProviders"AuthenticationProviders.of_jsoninletworkspaceRoleArn=field_mapjson__"workspaceRoleArn"IamRoleArn.of_jsoninletworkspaceOrganizationalUnits=field_mapjson__"workspaceOrganizationalUnits"OrganizationalUnitList.of_jsoninletworkspaceNotificationDestinations=field_mapjson__"workspaceNotificationDestinations"NotificationDestinationsList.of_jsoninletworkspaceName=field_mapjson__"workspaceName"WorkspaceName.of_jsoninletworkspaceDescription=field_mapjson__"workspaceDescription"Description.of_jsoninletworkspaceDataSources=field_mapjson__"workspaceDataSources"DataSourceTypesList.of_jsoninletstackSetName=field_mapjson__"stackSetName"StackSetName.of_jsoninletpermissionType=field_map_exnjson__"permissionType"PermissionType.of_jsoninletorganizationRoleName=field_mapjson__"organizationRoleName"OrganizationRoleName.of_jsoninletclientToken=field_mapjson__"clientToken"ClientToken.of_jsoninletaccountAccessType=field_map_exnjson__"accountAccessType"AccountAccessType.of_jsoninmake?kmsKeyId?ipAddressType?grafanaVersion?networkAccessControl?configuration?vpcConfiguration?tags~authenticationProviders?workspaceRoleArn?workspaceOrganizationalUnits?workspaceNotificationDestinations?workspaceName?workspaceDescription?workspaceDataSources?stackSetName~permissionType?organizationRoleName?clientToken~accountAccessType()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a workspace. In a workspace, you can create Grafana dashboards and visualizations to analyze your metrics, logs, and traces. You don't have to build, package, or deploy any hardware to run the Grafana server. Don't use CreateWorkspace to modify an existing workspace. Instead, use UpdateWorkspace."]moduleCreateWorkspaceApiKeyResponse=structtypenonrect={keyName:ApiKeyName.toption[@ocaml.doc"The name of the key that was created."];key:ApiKeyToken.toption[@ocaml.doc"The key token. Use this value as a bearer token to authenticate HTTP requests to the workspace."];workspaceId:WorkspaceId.toption[@ocaml.doc"The ID of the workspace that the key is valid for."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?keyName=fun?key->fun?workspaceId->fun()->{keyName;key;workspaceId}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[("keyName",(Option.mapx.keyName~f:ApiKeyName.to_value));("key",(Option.mapx.key~f:ApiKeyToken.to_value));("workspaceId",(Option.mapx.workspaceId~f:WorkspaceId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspaceId=(Option.map~f:WorkspaceId.of_xml)(Xml.childxml_arg0"workspaceId")inletkey=(Option.map~f:ApiKeyToken.of_xml)(Xml.childxml_arg0"key")inletkeyName=(Option.map~f:ApiKeyName.of_xml)(Xml.childxml_arg0"keyName")inmake?workspaceId?key?keyName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspaceId=field_mapjson__"workspaceId"WorkspaceId.of_jsoninletkey=field_mapjson__"key"ApiKeyToken.of_jsoninletkeyName=field_mapjson__"keyName"ApiKeyName.of_jsoninmake?workspaceId?key?keyName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a Grafana API key for the workspace. This key can be used to authenticate requests sent to the workspace's HTTP API. See https://docs.aws.amazon.com/grafana/latest/userguide/Using-Grafana-APIs.html for available APIs and example requests. In workspaces compatible with Grafana version 9 or above, use workspace service accounts instead of API keys. API keys will be removed in a future release."]moduleCreateWorkspaceApiKeyRequest=structtypenonrect={keyName:ApiKeyName.t[@ocaml.doc"Specifies the name of the key. Keynames must be unique to the workspace."];keyRole:String_.t[@ocaml.doc"Specifies the permission level of the key. Valid values: ADMIN|EDITOR|VIEWER"];secondsToLive:CreateWorkspaceApiKeyRequestSecondsToLiveInteger.t[@ocaml.doc"Specifies the time in seconds until the key expires. Keys can be valid for up to 30 days."];workspaceId:WorkspaceId.t[@ocaml.doc"The ID of the workspace to create an API key."]}letcontext_="CreateWorkspaceApiKeyRequest"letmake~keyName=fun~keyRole->fun~secondsToLive->fun~workspaceId->fun()->{keyName;keyRole;secondsToLive;workspaceId}letto_valuex=structure_to_value[("keyName",(Some(ApiKeyName.to_valuex.keyName)));("keyRole",(Some(String_.to_valuex.keyRole)));("secondsToLive",(Some(CreateWorkspaceApiKeyRequestSecondsToLiveInteger.to_valuex.secondsToLive)));("workspaceId",(Some(WorkspaceId.to_valuex.workspaceId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspaceId=WorkspaceId.of_xml(Xml.child_exn~context:context_xml_arg0"workspaceId")inletsecondsToLive=CreateWorkspaceApiKeyRequestSecondsToLiveInteger.of_xml(Xml.child_exn~context:context_xml_arg0"secondsToLive")inletkeyRole=String_.of_xml(Xml.child_exn~context:context_xml_arg0"keyRole")inletkeyName=ApiKeyName.of_xml(Xml.child_exn~context:context_xml_arg0"keyName")inmake~workspaceId~secondsToLive~keyRole~keyName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspaceId=field_map_exnjson__"workspaceId"WorkspaceId.of_jsoninletsecondsToLive=field_map_exnjson__"secondsToLive"CreateWorkspaceApiKeyRequestSecondsToLiveInteger.of_jsoninletkeyRole=field_map_exnjson__"keyRole"String_.of_jsoninletkeyName=field_map_exnjson__"keyName"ApiKeyName.of_jsoninmake~workspaceId~secondsToLive~keyRole~keyName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a Grafana API key for the workspace. This key can be used to authenticate requests sent to the workspace's HTTP API. See https://docs.aws.amazon.com/grafana/latest/userguide/Using-Grafana-APIs.html for available APIs and example requests. In workspaces compatible with Grafana version 9 or above, use workspace service accounts instead of API keys. API keys will be removed in a future release."]moduleAssociateLicenseResponse=structtypenonrect={workspace:WorkspaceDescription.toption[@ocaml.doc"A structure containing data about the workspace."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?workspace=fun()->{workspace}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("workspace",(Option.mapx.workspace~f:WorkspaceDescription.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkspace=(Option.map~f:WorkspaceDescription.of_xml)(Xml.childxml_arg0"workspace")inmake?workspace()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkspace=field_mapjson__"workspace"WorkspaceDescription.of_jsoninmake?workspace()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Assigns a Grafana Enterprise license to a workspace. To upgrade, you must use ENTERPRISE for the licenseType, and pass in a valid Grafana Labs token for the grafanaToken. Upgrading to Grafana Enterprise incurs additional fees. For more information, see Upgrade a workspace to Grafana Enterprise."]moduleAssociateLicenseRequest=structtypenonrect={workspaceId:WorkspaceId.t[@ocaml.doc"The ID of the workspace to associate the license with."];licenseType:LicenseType.t[@ocaml.doc"The type of license to associate with the workspace. Amazon Managed Grafana workspaces no longer support Grafana Enterprise free trials."];grafanaToken:GrafanaToken.toption[@ocaml.doc"A token from Grafana Labs that ties your Amazon Web Services account with a Grafana Labs account. For more information, see Link your account with Grafana Labs."]}letcontext_="AssociateLicenseRequest"letmake?grafanaToken=fun~workspaceId->fun~licenseType->fun()->{grafanaToken;workspaceId;licenseType}letto_valuex=structure_to_value[("workspaceId",(Some(WorkspaceId.to_valuex.workspaceId)));("licenseType",(Some(LicenseType.to_valuex.licenseType)));("Grafana-Token",(Option.mapx.grafanaToken~f:GrafanaToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgrafanaToken=(Option.map~f:GrafanaToken.of_xml)(Xml.childxml_arg0"Grafana-Token")inletlicenseType=LicenseType.of_xml(Xml.child_exn~context:context_xml_arg0"licenseType")inletworkspaceId=WorkspaceId.of_xml(Xml.child_exn~context:context_xml_arg0"workspaceId")inmake?grafanaToken~licenseType~workspaceId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgrafanaToken=field_mapjson__"grafanaToken"GrafanaToken.of_jsoninletlicenseType=field_map_exnjson__"licenseType"LicenseType.of_jsoninletworkspaceId=field_map_exnjson__"workspaceId"WorkspaceId.of_jsoninmake?grafanaToken~licenseType~workspaceId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Assigns a Grafana Enterprise license to a workspace. To upgrade, you must use ENTERPRISE for the licenseType, and pass in a valid Grafana Labs token for the grafanaToken. Upgrading to Grafana Enterprise incurs additional fees. For more information, see Upgrade a workspace to Grafana Enterprise."]