123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569(* 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.billingconductorletapiVersion="2021-07-30"letendpointPrefix="billingconductor"letserviceFullName="AWSBillingConductor"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[]))])moduleAttributeValue=structtypenonrect=stringletcontext_="AttributeValue"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:128)>>=(fun()->check_patterni~pattern:"[a-zA-Z0-9]+")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"AttributeValue"jletto_json=simple_to_jsonto_valueendmoduleLineItemFilterValue=structtypenonrect=|SAVINGS_PLAN_NEGATION|Non_static_idofstringletmakei=iletto_string=function|SAVINGS_PLAN_NEGATION->"SAVINGS_PLAN_NEGATION"|Non_static_ids->sletof_string=function|"SAVINGS_PLAN_NEGATION"->SAVINGS_PLAN_NEGATION|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 LineItemFilterValue"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"LineItemFilterValue"j)letto_json=simple_to_jsonto_valueendmoduleAttributeValueList=structtypenonrect=AttributeValue.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:1)>>=(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:AttributeValue.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:AttributeValue.of_xml)letof_jsonj=list_of_json~kind:"AttributeValueList"~of_json:AttributeValue.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleLineItemFilterAttributeName=structtypenonrect=|LINE_ITEM_TYPE|SERVICE|Non_static_idofstringletmakei=iletto_string=function|LINE_ITEM_TYPE->"LINE_ITEM_TYPE"|SERVICE->"SERVICE"|Non_static_ids->sletof_string=function|"LINE_ITEM_TYPE"->LINE_ITEM_TYPE|"SERVICE"->SERVICE|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 LineItemFilterAttributeName"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"LineItemFilterAttributeName"j)letto_json=simple_to_jsonto_valueendmoduleLineItemFilterValuesList=structtypenonrect=LineItemFilterValue.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:1)>>=(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:LineItemFilterValue.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:LineItemFilterValue.of_xml)letof_jsonj=list_of_json~kind:"LineItemFilterValuesList"~of_json:LineItemFilterValue.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleMatchOption=structtypenonrect=|NOT_EQUAL|EQUAL|Non_static_idofstringletmakei=iletto_string=function|NOT_EQUAL->"NOT_EQUAL"|EQUAL->"EQUAL"|Non_static_ids->sletof_string=function|"NOT_EQUAL"->NOT_EQUAL|"EQUAL"->EQUAL|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 MatchOption"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"MatchOption"j)letto_json=simple_to_jsonto_valueendmoduleTieringActivated=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_valueendmoduleLineItemFilter=structtypenonrect={attribute:LineItemFilterAttributeName.t[@ocaml.doc"The attribute of the line item filter. This specifies what attribute that you can filter on."];matchOption:MatchOption.t[@ocaml.doc"The match criteria of the line item filter. This parameter specifies whether not to include the resource value from the billing group total cost."];values:LineItemFilterValuesList.toption[@ocaml.doc"The values of the line item filter. This specifies the values to filter on. Currently, you can only exclude Savings Plans discounts."];attributeValues:AttributeValueList.toption[@ocaml.doc"The values of the line item filter. This specifies the values to filter on."]}letcontext_="LineItemFilter"letmake?values=fun?attributeValues->fun~attribute->fun~matchOption->fun()->{values;attributeValues;attribute;matchOption}letto_valuex=structure_to_value[("Attribute",(Some(LineItemFilterAttributeName.to_valuex.attribute)));("MatchOption",(Some(MatchOption.to_valuex.matchOption)));("Values",(Option.mapx.values~f:LineItemFilterValuesList.to_value));("AttributeValues",(Option.mapx.attributeValues~f:AttributeValueList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letattributeValues=(Option.map~f:AttributeValueList.of_xml)(Xml.childxml_arg0"AttributeValues")inletvalues=(Option.map~f:LineItemFilterValuesList.of_xml)(Xml.childxml_arg0"Values")inletmatchOption=MatchOption.of_xml(Xml.child_exn~context:context_xml_arg0"MatchOption")inletattribute=LineItemFilterAttributeName.of_xml(Xml.child_exn~context:context_xml_arg0"Attribute")inmake?attributeValues?values~matchOption~attribute()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letattributeValues=field_mapjson__"AttributeValues"AttributeValueList.of_jsoninletvalues=field_mapjson__"Values"LineItemFilterValuesList.of_jsoninletmatchOption=field_map_exnjson__"MatchOption"MatchOption.of_jsoninletattribute=field_map_exnjson__"Attribute"LineItemFilterAttributeName.of_jsoninmake?attributeValues?values~matchOption~attribute()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A representation of the line item filter for your custom line item. You can use line item filters to include or exclude specific resource values from the billing group's total cost. For example, if you create a custom line item and you want to filter out a value, such as Savings Plans discounts, you can update LineItemFilter to exclude it."]moduleCustomLineItemChargeValue=structtypenonrect=floatletmakei=letopenResultinok_or_failwith((check_float_mini~min:1000000.)>>=(fun()->check_float_mini~min:0.));iletof_string=Float.of_stringletto_valuex=`Doublexletto_queryv=to_queryto_valuevletto_headerx=Stdlib.Float.to_stringxletof_xmlxml_arg0=Float.of_string(string_of_xml~kind:"a double"xml_arg0)letof_jsonj=float_of_json~kind:"a double"jletto_json=simple_to_jsonto_valueendmoduleCustomLineItemPercentageChargeValue=structtypenonrect=floatletmakei=letopenResultinok_or_failwith((check_float_mini~min:10000.)>>=(fun()->check_float_mini~min:0.));iletof_string=Float.of_stringletto_valuex=`Doublexletto_queryv=to_queryto_valuevletto_headerx=Stdlib.Float.to_stringxletof_xmlxml_arg0=Float.of_string(string_of_xml~kind:"a double"xml_arg0)letof_jsonj=float_of_json~kind:"a double"jletto_json=simple_to_jsonto_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_valueendmoduleFreeTierConfig=structtypenonrect={activated:TieringActivated.toption[@ocaml.doc"Activate or deactivate Amazon Web Services Free Tier application."]}letmake?activated=fun()->{activated}letto_valuex=structure_to_value[("Activated",(Option.mapx.activated~f:TieringActivated.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letactivated=(Option.map~f:TieringActivated.of_xml)(Xml.childxml_arg0"Activated")inmake?activated()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letactivated=field_mapjson__"Activated"TieringActivated.of_jsoninmake?activated()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The possible Amazon Web Services Free Tier configurations."]moduleCustomLineItemType=structtypenonrect=|CREDIT|FEE|Non_static_idofstringletmakei=iletto_string=function|CREDIT->"CREDIT"|FEE->"FEE"|Non_static_ids->sletof_string=function|"CREDIT"->CREDIT|"FEE"->FEE|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 CustomLineItemType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"CustomLineItemType"j)letto_json=simple_to_jsonto_valueendmoduleLineItemFiltersList=structtypenonrect=LineItemFilter.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:1)>>=(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:LineItemFilter.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:LineItemFilter.of_xml)letof_jsonj=list_of_json~kind:"LineItemFiltersList"~of_json:LineItemFilter.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleListCustomLineItemFlatChargeDetails=structtypenonrect={chargeValue:CustomLineItemChargeValue.toption[@ocaml.doc"The custom line item's fixed charge value in USD."]}letmake?chargeValue=fun()->{chargeValue}letto_valuex=structure_to_value[("ChargeValue",(Option.mapx.chargeValue~f:CustomLineItemChargeValue.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letchargeValue=(Option.map~f:CustomLineItemChargeValue.of_xml)(Xml.childxml_arg0"ChargeValue")inmake?chargeValue()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letchargeValue=field_mapjson__"ChargeValue"CustomLineItemChargeValue.of_jsoninmake?chargeValue()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A representation of the charge details that are associated with a flat custom line item."]moduleListCustomLineItemPercentageChargeDetails=structtypenonrect={percentageValue:CustomLineItemPercentageChargeValue.toption[@ocaml.doc"The custom line item's percentage value. This will be multiplied against the combined value of its associated resources to determine its charge value."]}letmake?percentageValue=fun()->{percentageValue}letto_valuex=structure_to_value[("PercentageValue",(Option.mapx.percentageValue~f:CustomLineItemPercentageChargeValue.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpercentageValue=(Option.map~f:CustomLineItemPercentageChargeValue.of_xml)(Xml.childxml_arg0"PercentageValue")inmake?percentageValue()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpercentageValue=field_mapjson__"PercentageValue"CustomLineItemPercentageChargeValue.of_jsoninmake?percentageValue()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A representation of the charge details that are associated with a percentage custom line item."]moduleService=structtypenonrect=stringletcontext_="Service"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:128)>>=(fun()->check_patterni~pattern:"[a-zA-Z0-9]+")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"Service"jletto_json=simple_to_jsonto_valueendmodulePricingPlanFullArn=structtypenonrect=stringletcontext_="PricingPlanFullArn"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"arn:aws(-cn)?:billingconductor::(aws|[0-9]{12}):pricingplan/(BasicPricingPlan|Passthrough|[a-zA-Z0-9]{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:"PricingPlanFullArn"jletto_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_valueendmoduleResponsibilityTransferArn=structtypenonrect=stringletcontext_="ResponsibilityTransferArn"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"arn:[a-z0-9][a-z0-9-.]{0,62}:organizations::\\d{12}:transfer/o-[a-z0-9]{10,32}/(billing)/(inbound|outbound)/rt-[0-9a-z]{8,32}");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ResponsibilityTransferArn"jletto_json=simple_to_jsonto_valueendmoduleSearchOption=structtypenonrect=|STARTS_WITH|Non_static_idofstringletmakei=iletto_string=function|STARTS_WITH->"STARTS_WITH"|Non_static_ids->sletof_string=function|"STARTS_WITH"->STARTS_WITH|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 SearchOption"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"SearchOption"j)letto_json=simple_to_jsonto_valueendmoduleSearchValue=structtypenonrect=stringletcontext_="SearchValue"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:128)>>=(fun()->check_patterni~pattern:"[a-zA-Z0-9_\\+=\\.\\-@ ]+")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"SearchValue"jletto_json=simple_to_jsonto_valueendmoduleAttribute=structtypenonrect={key:String_.toption[@ocaml.doc"The key in a key-value pair that describes the margin summary."];value:String_.toption[@ocaml.doc"The value in a key-value pair that describes the margin summary."]}letmake?key=fun?value->fun()->{key;value}letto_valuex=structure_to_value[("Key",(Option.mapx.key~f:String_.to_value));("Value",(Option.mapx.value~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvalue=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Value")inletkey=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Key")inmake?value?key()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvalue=field_mapjson__"Value"String_.of_jsoninletkey=field_mapjson__"Key"String_.of_jsoninmake?value?key()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The key-value pair that represents the attribute by which the BillingGroupCostReportResults are grouped. For example, if you want a service-level breakdown for Amazon Simple Storage Service (Amazon S3) of the billing group, the attribute will be a key-value pair of \"PRODUCT_NAME\" and \"S3\"."]moduleCustomLineItemAssociationElement=structtypenonrect=stringletcontext_="CustomLineItemAssociationElement"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"(arn:aws(-cn)?:billingconductor::[0-9]{12}:(customlineitem|billinggroup)/)?[a-zA-Z0-9]{10,12}");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"CustomLineItemAssociationElement"jletto_json=simple_to_jsonto_valueendmoduleAssociateResourceErrorReason=structtypenonrect=|INVALID_ARN|SERVICE_LIMIT_EXCEEDED|ILLEGAL_CUSTOMLINEITEM|INTERNAL_SERVER_EXCEPTION|INVALID_BILLING_PERIOD_RANGE|Non_static_idofstringletmakei=iletto_string=function|INVALID_ARN->"INVALID_ARN"|SERVICE_LIMIT_EXCEEDED->"SERVICE_LIMIT_EXCEEDED"|ILLEGAL_CUSTOMLINEITEM->"ILLEGAL_CUSTOMLINEITEM"|INTERNAL_SERVER_EXCEPTION->"INTERNAL_SERVER_EXCEPTION"|INVALID_BILLING_PERIOD_RANGE->"INVALID_BILLING_PERIOD_RANGE"|Non_static_ids->sletof_string=function|"INVALID_ARN"->INVALID_ARN|"SERVICE_LIMIT_EXCEEDED"->SERVICE_LIMIT_EXCEEDED|"ILLEGAL_CUSTOMLINEITEM"->ILLEGAL_CUSTOMLINEITEM|"INTERNAL_SERVER_EXCEPTION"->INTERNAL_SERVER_EXCEPTION|"INVALID_BILLING_PERIOD_RANGE"->INVALID_BILLING_PERIOD_RANGE|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 AssociateResourceErrorReason"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"AssociateResourceErrorReason"j)letto_json=simple_to_jsonto_valueendmoduleValidationExceptionField=structtypenonrect={name:String_.toption[@ocaml.doc"The field name."];message:String_.toption[@ocaml.doc"The message describing why the field failed validation."]}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"The field's information of a request that resulted in an exception."]moduleBillingPeriod=structtypenonrect=stringletcontext_="BillingPeriod"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"\\d{4}-(0?[1-9]|1[012])");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"BillingPeriod"jletto_json=simple_to_jsonto_valueendmoduleCustomLineItemRelationship=structtypenonrect=|PARENT|CHILD|Non_static_idofstringletmakei=iletto_string=function|PARENT->"PARENT"|CHILD->"CHILD"|Non_static_ids->sletof_string=function|"PARENT"->PARENT|"CHILD"->CHILD|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 CustomLineItemRelationship"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"CustomLineItemRelationship"j)letto_json=simple_to_jsonto_valueendmoduleBillingEntity=structtypenonrect=stringletcontext_="BillingEntity"letmakei=letopenResultinok_or_failwith(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:"BillingEntity"jletto_json=simple_to_jsonto_valueendmoduleInstant=structtypenonrect=Int64.tletmakei=iletof_string=Int64.of_stringletto_valuex=`Longxletto_queryv=to_queryto_valuevletto_headerx=Int64.to_stringxletof_xmlxml_arg0=Int64.of_string(string_of_xml~kind:"a long"xml_arg0)letof_jsonj=Int64.of_float(float_of_json~kind:"a long"j)letto_json=simple_to_jsonto_valueendmoduleModifierPercentage=structtypenonrect=floatletmakei=letopenResultinok_or_failwith(check_float_mini~min:0.);iletof_string=Float.of_stringletto_valuex=`Doublexletto_queryv=to_queryto_valuevletto_headerx=Stdlib.Float.to_stringxletof_xmlxml_arg0=Float.of_string(string_of_xml~kind:"a double"xml_arg0)letof_jsonj=float_of_json~kind:"a double"jletto_json=simple_to_jsonto_valueendmoduleNumberOfPricingPlansAssociatedWith=structtypenonrect=Int64.tletmakei=letopenResultinok_or_failwith(check_int64_mini~min:0L);iletof_string=Int64.of_stringletto_valuex=`Longxletto_queryv=to_queryto_valuevletto_headerx=Int64.to_stringxletof_xmlxml_arg0=Int64.of_string(string_of_xml~kind:"a long"xml_arg0)letof_jsonj=Int64.of_float(float_of_json~kind:"a long"j)letto_json=simple_to_jsonto_valueendmoduleOperation=structtypenonrect=stringletcontext_="Operation"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:256)>>=(fun()->check_patterni~pattern:"\\S+")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"Operation"jletto_json=simple_to_jsonto_valueendmodulePricingRuleArn=structtypenonrect=stringletcontext_="PricingRuleArn"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"(arn:aws(-cn)?:billingconductor::[0-9]{12}:pricingrule/)?[a-zA-Z0-9]{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:"PricingRuleArn"jletto_json=simple_to_jsonto_valueendmodulePricingRuleDescription=structtypenonrect=stringletcontext_="PricingRuleDescription"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:1024)>>=(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:"PricingRuleDescription"jletto_json=simple_to_jsonto_valueendmodulePricingRuleName=structtypenonrect=stringletcontext_="PricingRuleName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:128)>>=(fun()->check_patterni~pattern:"[a-zA-Z0-9_\\+=\\.\\-@]+")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"PricingRuleName"jletto_json=simple_to_jsonto_valueendmodulePricingRuleScope=structtypenonrect=|GLOBAL|SERVICE|BILLING_ENTITY|SKU|Non_static_idofstringletmakei=iletto_string=function|GLOBAL->"GLOBAL"|SERVICE->"SERVICE"|BILLING_ENTITY->"BILLING_ENTITY"|SKU->"SKU"|Non_static_ids->sletof_string=function|"GLOBAL"->GLOBAL|"SERVICE"->SERVICE|"BILLING_ENTITY"->BILLING_ENTITY|"SKU"->SKU|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 PricingRuleScope"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"PricingRuleScope"j)letto_json=simple_to_jsonto_valueendmodulePricingRuleType=structtypenonrect=|MARKUP|DISCOUNT|TIERING|Non_static_idofstringletmakei=iletto_string=function|MARKUP->"MARKUP"|DISCOUNT->"DISCOUNT"|TIERING->"TIERING"|Non_static_ids->sletof_string=function|"MARKUP"->MARKUP|"DISCOUNT"->DISCOUNT|"TIERING"->TIERING|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 PricingRuleType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"PricingRuleType"j)letto_json=simple_to_jsonto_valueendmoduleTiering=structtypenonrect={freeTier:FreeTierConfig.toption[@ocaml.doc"The possible Amazon Web Services Free Tier configurations."]}letmake?freeTier=fun()->{freeTier}letto_valuex=structure_to_value[("FreeTier",(Option.mapx.freeTier~f:FreeTierConfig.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfreeTier=(Option.map~f:FreeTierConfig.of_xml)(Xml.childxml_arg0"FreeTier")inmake?freeTier()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfreeTier=field_mapjson__"FreeTier"FreeTierConfig.of_jsoninmake?freeTier()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The set of tiering configurations for the pricing rule."]moduleUsageType=structtypenonrect=stringletcontext_="UsageType"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:256)>>=(fun()->check_patterni~pattern:"\\S+")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"UsageType"jletto_json=simple_to_jsonto_valueendmoduleNumberOfAssociatedPricingRules=structtypenonrect=Int64.tletmakei=letopenResultinok_or_failwith(check_int64_mini~min:1L);iletof_string=Int64.of_stringletto_valuex=`Longxletto_queryv=to_queryto_valuevletto_headerx=Int64.to_stringxletof_xmlxml_arg0=Int64.of_string(string_of_xml~kind:"a long"xml_arg0)letof_jsonj=Int64.of_float(float_of_json~kind:"a long"j)letto_json=simple_to_jsonto_valueendmodulePricingPlanArn=structtypenonrect=stringletcontext_="PricingPlanArn"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"(arn:aws(-cn)?:billingconductor::(aws|[0-9]{12}):pricingplan/)?(BasicPricingPlan|Passthrough|[a-zA-Z0-9]{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:"PricingPlanArn"jletto_json=simple_to_jsonto_valueendmodulePricingPlanDescription=structtypenonrect=stringletcontext_="PricingPlanDescription"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:1024)>>=(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:"PricingPlanDescription"jletto_json=simple_to_jsonto_valueendmodulePricingPlanName=structtypenonrect=stringletcontext_="PricingPlanName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:128)>>=(fun()->check_patterni~pattern:"[a-zA-Z0-9_\\+=\\.\\-@]+")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"PricingPlanName"jletto_json=simple_to_jsonto_valueendmoduleAccountId=structtypenonrect=stringletcontext_="AccountId"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"[0-9]{12}");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"AccountId"jletto_json=simple_to_jsonto_valueendmoduleBillingGroupArn=structtypenonrect=stringletcontext_="BillingGroupArn"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"(arn:aws(-cn)?:billingconductor::[0-9]{12}:billinggroup/)?[a-zA-Z0-9]{10,12}");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"BillingGroupArn"jletto_json=simple_to_jsonto_valueendmoduleComputationRuleEnum=structtypenonrect=|ITEMIZED|CONSOLIDATED|Non_static_idofstringletmakei=iletto_string=function|ITEMIZED->"ITEMIZED"|CONSOLIDATED->"CONSOLIDATED"|Non_static_ids->sletof_string=function|"ITEMIZED"->ITEMIZED|"CONSOLIDATED"->CONSOLIDATED|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 ComputationRuleEnum"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ComputationRuleEnum"j)letto_json=simple_to_jsonto_valueendmoduleCurrencyCode=structtypenonrect=|USD|CNY|Non_static_idofstringletmakei=iletto_string=function|USD->"USD"|CNY->"CNY"|Non_static_ids->sletof_string=function|"USD"->USD|"CNY"->CNY|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 CurrencyCode"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"CurrencyCode"j)letto_json=simple_to_jsonto_valueendmoduleCustomLineItemArn=structtypenonrect=stringletcontext_="CustomLineItemArn"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"(arn:aws(-cn)?:billingconductor::[0-9]{12}:customlineitem/)?[a-zA-Z0-9]{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:"CustomLineItemArn"jletto_json=simple_to_jsonto_valueendmoduleCustomLineItemDescription=structtypenonrect=stringletcontext_="CustomLineItemDescription"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:"CustomLineItemDescription"jletto_json=simple_to_jsonto_valueendmoduleCustomLineItemName=structtypenonrect=stringletcontext_="CustomLineItemName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:128)>>=(fun()->check_patterni~pattern:"[a-zA-Z0-9_\\+=\\.\\-@]+")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"CustomLineItemName"jletto_json=simple_to_jsonto_valueendmoduleCustomLineItemProductCode=structtypenonrect=stringletcontext_="CustomLineItemProductCode"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:29)>>=(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:"CustomLineItemProductCode"jletto_json=simple_to_jsonto_valueendmoduleListCustomLineItemChargeDetails=structtypenonrect={flat:ListCustomLineItemFlatChargeDetails.toption[@ocaml.doc"A ListCustomLineItemFlatChargeDetails that describes the charge details of a flat custom line item."];percentage:ListCustomLineItemPercentageChargeDetails.toption[@ocaml.doc"A ListCustomLineItemPercentageChargeDetails that describes the charge details of a percentage custom line item."];type_:CustomLineItemType.toption[@ocaml.doc"The type of the custom line item that indicates whether the charge is a fee or credit."];lineItemFilters:LineItemFiltersList.toption[@ocaml.doc"A representation of the line item filter."]}letmake?flat=fun?percentage->fun?type_->fun?lineItemFilters->fun()->{flat;percentage;type_;lineItemFilters}letto_valuex=structure_to_value[("Flat",(Option.mapx.flat~f:ListCustomLineItemFlatChargeDetails.to_value));("Percentage",(Option.mapx.percentage~f:ListCustomLineItemPercentageChargeDetails.to_value));("Type",(Option.mapx.type_~f:CustomLineItemType.to_value));("LineItemFilters",(Option.mapx.lineItemFilters~f:LineItemFiltersList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlineItemFilters=(Option.map~f:LineItemFiltersList.of_xml)(Xml.childxml_arg0"LineItemFilters")inlettype_=(Option.map~f:CustomLineItemType.of_xml)(Xml.childxml_arg0"Type")inletpercentage=(Option.map~f:ListCustomLineItemPercentageChargeDetails.of_xml)(Xml.childxml_arg0"Percentage")inletflat=(Option.map~f:ListCustomLineItemFlatChargeDetails.of_xml)(Xml.childxml_arg0"Flat")inmake?lineItemFilters?type_?percentage?flat()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlineItemFilters=field_mapjson__"LineItemFilters"LineItemFiltersList.of_jsoninlettype_=field_mapjson__"Type"CustomLineItemType.of_jsoninletpercentage=field_mapjson__"Percentage"ListCustomLineItemPercentageChargeDetails.of_jsoninletflat=field_mapjson__"Flat"ListCustomLineItemFlatChargeDetails.of_jsoninmake?lineItemFilters?type_?percentage?flat()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A representation of the charge details of a custom line item."]moduleNumberOfAssociations=structtypenonrect=Int64.tletmakei=letopenResultinok_or_failwith(check_int64_mini~min:0L);iletof_string=Int64.of_stringletto_valuex=`Longxletto_queryv=to_queryto_valuevletto_headerx=Int64.to_stringxletof_xmlxml_arg0=Int64.of_string(string_of_xml~kind:"a long"xml_arg0)letof_jsonj=Int64.of_float(float_of_json~kind:"a long"j)letto_json=simple_to_jsonto_valueendmodulePresentationObject=structtypenonrect={service:Service.t[@ocaml.doc"The service under which the custom line item charges will be presented. Must be a string between 1 and 128 characters matching the pattern \"^\\[a-zA-Z0-9\\]+$\"."]}letcontext_="PresentationObject"letmake~service=fun()->{service}letto_valuex=structure_to_value[("Service",(Some(Service.to_valuex.service)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letservice=Service.of_xml(Xml.child_exn~context:context_xml_arg0"Service")inmake~service()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letservice=field_map_exnjson__"Service"Service.of_jsoninmake~service()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"An object that defines how custom line item charges are presented in the bill, containing specifications for service presentation."]moduleBillingGroupDescription=structtypenonrect=stringletcontext_="BillingGroupDescription"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:1024)>>=(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:"BillingGroupDescription"jletto_json=simple_to_jsonto_valueendmoduleBillingGroupName=structtypenonrect=stringletcontext_="BillingGroupName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:128)>>=(fun()->check_patterni~pattern:"[a-zA-Z0-9_\\+=\\.\\-@]+")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"BillingGroupName"jletto_json=simple_to_jsonto_valueendmoduleBillingGroupStatus=structtypenonrect=|ACTIVE|PRIMARY_ACCOUNT_MISSING|PENDING|Non_static_idofstringletmakei=iletto_string=function|ACTIVE->"ACTIVE"|PRIMARY_ACCOUNT_MISSING->"PRIMARY_ACCOUNT_MISSING"|PENDING->"PENDING"|Non_static_ids->sletof_string=function|"ACTIVE"->ACTIVE|"PRIMARY_ACCOUNT_MISSING"->PRIMARY_ACCOUNT_MISSING|"PENDING"->PENDING|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration BillingGroupStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"BillingGroupStatus"j)letto_json=simple_to_jsonto_valueendmoduleBillingGroupStatusReason=structtypenonrect=stringletcontext_="BillingGroupStatusReason"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:"BillingGroupStatusReason"jletto_json=simple_to_jsonto_valueendmoduleBillingGroupType=structtypenonrect=|STANDARD|TRANSFER_BILLING|Non_static_idofstringletmakei=iletto_string=function|STANDARD->"STANDARD"|TRANSFER_BILLING->"TRANSFER_BILLING"|Non_static_ids->sletof_string=function|"STANDARD"->STANDARD|"TRANSFER_BILLING"->TRANSFER_BILLING|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 BillingGroupType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"BillingGroupType"j)letto_json=simple_to_jsonto_valueendmoduleComputationPreference=structtypenonrect={pricingPlanArn:PricingPlanFullArn.t[@ocaml.doc"The Amazon Resource Name (ARN) of the pricing plan that's used to compute the Amazon Web Services charges for a billing group."]}letcontext_="ComputationPreference"letmake~pricingPlanArn=fun()->{pricingPlanArn}letto_valuex=structure_to_value[("PricingPlanArn",(Some(PricingPlanFullArn.to_valuex.pricingPlanArn)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpricingPlanArn=PricingPlanFullArn.of_xml(Xml.child_exn~context:context_xml_arg0"PricingPlanArn")inmake~pricingPlanArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpricingPlanArn=field_map_exnjson__"PricingPlanArn"PricingPlanFullArn.of_jsoninmake~pricingPlanArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The preferences and settings that will be used to compute the Amazon Web Services charges for a billing group."]moduleListBillingGroupAccountGrouping=structtypenonrect={autoAssociate:Boolean.toption[@ocaml.doc"Specifies if this billing group will automatically associate newly added Amazon Web Services accounts that join your consolidated billing family."];responsibilityTransferArn:ResponsibilityTransferArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) that identifies the transfer relationship for the billing group."]}letmake?autoAssociate=fun?responsibilityTransferArn->fun()->{autoAssociate;responsibilityTransferArn}letto_valuex=structure_to_value[("AutoAssociate",(Option.mapx.autoAssociate~f:Boolean.to_value));("ResponsibilityTransferArn",(Option.mapx.responsibilityTransferArn~f:ResponsibilityTransferArn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresponsibilityTransferArn=(Option.map~f:ResponsibilityTransferArn.of_xml)(Xml.childxml_arg0"ResponsibilityTransferArn")inletautoAssociate=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"AutoAssociate")inmake?responsibilityTransferArn?autoAssociate()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresponsibilityTransferArn=field_mapjson__"ResponsibilityTransferArn"ResponsibilityTransferArn.of_jsoninletautoAssociate=field_mapjson__"AutoAssociate"Boolean.of_jsoninmake?responsibilityTransferArn?autoAssociate()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Specifies if the billing group has the following features enabled."]moduleNumberOfAccounts=structtypenonrect=Int64.tletmakei=letopenResultinok_or_failwith(check_int64_mini~min:0L);iletof_string=Int64.of_stringletto_valuex=`Longxletto_queryv=to_queryto_valuevletto_headerx=Int64.to_stringxletof_xmlxml_arg0=Int64.of_string(string_of_xml~kind:"a long"xml_arg0)letof_jsonj=Int64.of_float(float_of_json~kind:"a long"j)letto_json=simple_to_jsonto_valueendmoduleStringSearch=structtypenonrect={searchOption:SearchOption.t[@ocaml.doc"The search option to be applied when performing the string search."];searchValue:SearchValue.t[@ocaml.doc"The value to search for within the specified string field."]}letcontext_="StringSearch"letmake~searchOption=fun~searchValue->fun()->{searchOption;searchValue}letto_valuex=structure_to_value[("SearchOption",(Some(SearchOption.to_valuex.searchOption)));("SearchValue",(Some(SearchValue.to_valuex.searchValue)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsearchValue=SearchValue.of_xml(Xml.child_exn~context:context_xml_arg0"SearchValue")inletsearchOption=SearchOption.of_xml(Xml.child_exn~context:context_xml_arg0"SearchOption")inmake~searchValue~searchOption()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsearchValue=field_map_exnjson__"SearchValue"SearchValue.of_jsoninletsearchOption=field_map_exnjson__"SearchOption"SearchOption.of_jsoninmake~searchValue~searchOption()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A structure that defines string search parameters."]moduleAWSCost=structtypenonrect=stringletcontext_="AWSCost"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:"AWSCost"jletto_json=simple_to_jsonto_valueendmoduleCurrency=structtypenonrect=stringletcontext_="Currency"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:"Currency"jletto_json=simple_to_jsonto_valueendmoduleMargin=structtypenonrect=stringletcontext_="Margin"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:"Margin"jletto_json=simple_to_jsonto_valueendmoduleMarginPercentage=structtypenonrect=stringletcontext_="MarginPercentage"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:"MarginPercentage"jletto_json=simple_to_jsonto_valueendmoduleProformaCost=structtypenonrect=stringletcontext_="ProformaCost"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:"ProformaCost"jletto_json=simple_to_jsonto_valueendmoduleAccountEmail=structtypenonrect=stringletcontext_="AccountEmail"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:"AccountEmail"jletto_json=simple_to_jsonto_valueendmoduleAccountName=structtypenonrect=stringletcontext_="AccountName"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:"AccountName"jletto_json=simple_to_jsonto_valueendmoduleAttributesList=structtypenonrect=Attribute.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Attribute.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:Attribute.of_xml)letof_jsonj=list_of_json~kind:"AttributesList"~of_json:Attribute.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleCustomLineItemAssociationsList=structtypenonrect=CustomLineItemAssociationElement.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:5)>>=(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:CustomLineItemAssociationElement.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:CustomLineItemAssociationElement.of_xml)letof_jsonj=list_of_json~kind:"CustomLineItemAssociationsList"~of_json:CustomLineItemAssociationElement.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAssociateResourceError=structtypenonrect={message:String_.toption[@ocaml.doc"The reason why the resource association failed."];reason:AssociateResourceErrorReason.toption[@ocaml.doc"A static error code that's used to classify the type of failure."]}letmake?message=fun?reason->fun()->{message;reason}letto_valuex=structure_to_value[("Message",(Option.mapx.message~f:String_.to_value));("Reason",(Option.mapx.reason~f:AssociateResourceErrorReason.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letreason=(Option.map~f:AssociateResourceErrorReason.of_xml)(Xml.childxml_arg0"Reason")inletmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Message")inmake?reason?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letreason=field_mapjson__"Reason"AssociateResourceErrorReason.of_jsoninletmessage=field_mapjson__"Message"String_.of_jsoninmake?reason?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A representation of a resource association error."]moduleConflictExceptionReason=structtypenonrect=|RESOURCE_NAME_CONFLICT|PRICING_RULE_IN_PRICING_PLAN_CONFLICT|PRICING_PLAN_ATTACHED_TO_BILLING_GROUP_DELETE_CONFLICT|PRICING_RULE_ATTACHED_TO_PRICING_PLAN_DELETE_CONFLICT|WRITE_CONFLICT_RETRY|Non_static_idofstringletmakei=iletto_string=function|RESOURCE_NAME_CONFLICT->"RESOURCE_NAME_CONFLICT"|PRICING_RULE_IN_PRICING_PLAN_CONFLICT->"PRICING_RULE_IN_PRICING_PLAN_CONFLICT"|PRICING_PLAN_ATTACHED_TO_BILLING_GROUP_DELETE_CONFLICT->"PRICING_PLAN_ATTACHED_TO_BILLING_GROUP_DELETE_CONFLICT"|PRICING_RULE_ATTACHED_TO_PRICING_PLAN_DELETE_CONFLICT->"PRICING_RULE_ATTACHED_TO_PRICING_PLAN_DELETE_CONFLICT"|WRITE_CONFLICT_RETRY->"WRITE_CONFLICT_RETRY"|Non_static_ids->sletof_string=function|"RESOURCE_NAME_CONFLICT"->RESOURCE_NAME_CONFLICT|"PRICING_RULE_IN_PRICING_PLAN_CONFLICT"->PRICING_RULE_IN_PRICING_PLAN_CONFLICT|"PRICING_PLAN_ATTACHED_TO_BILLING_GROUP_DELETE_CONFLICT"->PRICING_PLAN_ATTACHED_TO_BILLING_GROUP_DELETE_CONFLICT|"PRICING_RULE_ATTACHED_TO_PRICING_PLAN_DELETE_CONFLICT"->PRICING_RULE_ATTACHED_TO_PRICING_PLAN_DELETE_CONFLICT|"WRITE_CONFLICT_RETRY"->WRITE_CONFLICT_RETRY|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 ConflictExceptionReason"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ConflictExceptionReason"j)letto_json=simple_to_jsonto_valueendmoduleRetryAfterSeconds=structtypenonrect=intletmakei=iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for RetryAfterSeconds"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleUpdateFreeTierConfig=structtypenonrect={activated:TieringActivated.t[@ocaml.doc"Activate or deactivate application of Amazon Web Services Free Tier."]}letcontext_="UpdateFreeTierConfig"letmake~activated=fun()->{activated}letto_valuex=structure_to_value[("Activated",(Some(TieringActivated.to_valuex.activated)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letactivated=TieringActivated.of_xml(Xml.child_exn~context:context_xml_arg0"Activated")inmake~activated()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letactivated=field_map_exnjson__"Activated"TieringActivated.of_jsoninmake~activated()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The possible Amazon Web Services Free Tier configurations."]moduleValidationExceptionFieldList=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|PRIMARY_NOT_ASSOCIATED|PRIMARY_CANNOT_DISASSOCIATE|ACCOUNTS_NOT_ASSOCIATED|ACCOUNTS_ALREADY_ASSOCIATED|ILLEGAL_PRIMARY_ACCOUNT|ILLEGAL_ACCOUNTS|MISMATCHED_BILLINGGROUP_ARN|MISSING_BILLINGGROUP|MISMATCHED_CUSTOMLINEITEM_ARN|ILLEGAL_BILLING_PERIOD|ILLEGAL_BILLING_PERIOD_RANGE|TOO_MANY_ACCOUNTS_IN_REQUEST|DUPLICATE_ACCOUNT|INVALID_BILLING_GROUP_STATUS|MISMATCHED_PRICINGPLAN_ARN|MISSING_PRICINGPLAN|MISMATCHED_PRICINGRULE_ARN|DUPLICATE_PRICINGRULE_ARNS|MISSING_COSTCATEGORY|ILLEGAL_EXPRESSION|ILLEGAL_SCOPE|ILLEGAL_SERVICE|PRICINGRULES_NOT_EXIST|PRICINGRULES_ALREADY_ASSOCIATED|PRICINGRULES_NOT_ASSOCIATED|INVALID_TIME_RANGE|INVALID_BILLINGVIEW_ARN|MISMATCHED_BILLINGVIEW_ARN|ILLEGAL_CUSTOMLINEITEM|MISSING_CUSTOMLINEITEM|ILLEGAL_CUSTOMLINEITEM_UPDATE|TOO_MANY_CUSTOMLINEITEMS_IN_REQUEST|ILLEGAL_CHARGE_DETAILS|ILLEGAL_UPDATE_CHARGE_DETAILS|INVALID_ARN|ILLEGAL_RESOURCE_ARNS|ILLEGAL_CUSTOMLINEITEM_MODIFICATION|MISSING_LINKED_ACCOUNT_IDS|MULTIPLE_LINKED_ACCOUNT_IDS|MISSING_PRICING_PLAN_ARN|MULTIPLE_PRICING_PLAN_ARN|ILLEGAL_CHILD_ASSOCIATE_RESOURCE|CUSTOM_LINE_ITEM_ASSOCIATION_EXISTS|INVALID_BILLING_GROUP|INVALID_BILLING_PERIOD_FOR_OPERATION|ILLEGAL_BILLING_ENTITY|ILLEGAL_MODIFIER_PERCENTAGE|ILLEGAL_TYPE|ILLEGAL_BILLING_GROUP_TYPE|ILLEGAL_BILLING_GROUP_PRICING_PLAN|ILLEGAL_ENDED_BILLINGGROUP|ILLEGAL_TIERING_INPUT|ILLEGAL_OPERATION|ILLEGAL_USAGE_TYPE|INVALID_SKU_COMBO|INVALID_FILTER|TOO_MANY_AUTO_ASSOCIATE_BILLING_GROUPS|CANNOT_DELETE_AUTO_ASSOCIATE_BILLING_GROUP|ILLEGAL_ACCOUNT_ID|BILLING_GROUP_ALREADY_EXIST_IN_CURRENT_BILLING_PERIOD|ILLEGAL_COMPUTATION_RULE|ILLEGAL_LINE_ITEM_FILTER|Non_static_idofstringletmakei=iletto_string=function|UNKNOWN_OPERATION->"UNKNOWN_OPERATION"|CANNOT_PARSE->"CANNOT_PARSE"|FIELD_VALIDATION_FAILED->"FIELD_VALIDATION_FAILED"|OTHER->"OTHER"|PRIMARY_NOT_ASSOCIATED->"PRIMARY_NOT_ASSOCIATED"|PRIMARY_CANNOT_DISASSOCIATE->"PRIMARY_CANNOT_DISASSOCIATE"|ACCOUNTS_NOT_ASSOCIATED->"ACCOUNTS_NOT_ASSOCIATED"|ACCOUNTS_ALREADY_ASSOCIATED->"ACCOUNTS_ALREADY_ASSOCIATED"|ILLEGAL_PRIMARY_ACCOUNT->"ILLEGAL_PRIMARY_ACCOUNT"|ILLEGAL_ACCOUNTS->"ILLEGAL_ACCOUNTS"|MISMATCHED_BILLINGGROUP_ARN->"MISMATCHED_BILLINGGROUP_ARN"|MISSING_BILLINGGROUP->"MISSING_BILLINGGROUP"|MISMATCHED_CUSTOMLINEITEM_ARN->"MISMATCHED_CUSTOMLINEITEM_ARN"|ILLEGAL_BILLING_PERIOD->"ILLEGAL_BILLING_PERIOD"|ILLEGAL_BILLING_PERIOD_RANGE->"ILLEGAL_BILLING_PERIOD_RANGE"|TOO_MANY_ACCOUNTS_IN_REQUEST->"TOO_MANY_ACCOUNTS_IN_REQUEST"|DUPLICATE_ACCOUNT->"DUPLICATE_ACCOUNT"|INVALID_BILLING_GROUP_STATUS->"INVALID_BILLING_GROUP_STATUS"|MISMATCHED_PRICINGPLAN_ARN->"MISMATCHED_PRICINGPLAN_ARN"|MISSING_PRICINGPLAN->"MISSING_PRICINGPLAN"|MISMATCHED_PRICINGRULE_ARN->"MISMATCHED_PRICINGRULE_ARN"|DUPLICATE_PRICINGRULE_ARNS->"DUPLICATE_PRICINGRULE_ARNS"|MISSING_COSTCATEGORY->"MISSING_COSTCATEGORY"|ILLEGAL_EXPRESSION->"ILLEGAL_EXPRESSION"|ILLEGAL_SCOPE->"ILLEGAL_SCOPE"|ILLEGAL_SERVICE->"ILLEGAL_SERVICE"|PRICINGRULES_NOT_EXIST->"PRICINGRULES_NOT_EXIST"|PRICINGRULES_ALREADY_ASSOCIATED->"PRICINGRULES_ALREADY_ASSOCIATED"|PRICINGRULES_NOT_ASSOCIATED->"PRICINGRULES_NOT_ASSOCIATED"|INVALID_TIME_RANGE->"INVALID_TIME_RANGE"|INVALID_BILLINGVIEW_ARN->"INVALID_BILLINGVIEW_ARN"|MISMATCHED_BILLINGVIEW_ARN->"MISMATCHED_BILLINGVIEW_ARN"|ILLEGAL_CUSTOMLINEITEM->"ILLEGAL_CUSTOMLINEITEM"|MISSING_CUSTOMLINEITEM->"MISSING_CUSTOMLINEITEM"|ILLEGAL_CUSTOMLINEITEM_UPDATE->"ILLEGAL_CUSTOMLINEITEM_UPDATE"|TOO_MANY_CUSTOMLINEITEMS_IN_REQUEST->"TOO_MANY_CUSTOMLINEITEMS_IN_REQUEST"|ILLEGAL_CHARGE_DETAILS->"ILLEGAL_CHARGE_DETAILS"|ILLEGAL_UPDATE_CHARGE_DETAILS->"ILLEGAL_UPDATE_CHARGE_DETAILS"|INVALID_ARN->"INVALID_ARN"|ILLEGAL_RESOURCE_ARNS->"ILLEGAL_RESOURCE_ARNS"|ILLEGAL_CUSTOMLINEITEM_MODIFICATION->"ILLEGAL_CUSTOMLINEITEM_MODIFICATION"|MISSING_LINKED_ACCOUNT_IDS->"MISSING_LINKED_ACCOUNT_IDS"|MULTIPLE_LINKED_ACCOUNT_IDS->"MULTIPLE_LINKED_ACCOUNT_IDS"|MISSING_PRICING_PLAN_ARN->"MISSING_PRICING_PLAN_ARN"|MULTIPLE_PRICING_PLAN_ARN->"MULTIPLE_PRICING_PLAN_ARN"|ILLEGAL_CHILD_ASSOCIATE_RESOURCE->"ILLEGAL_CHILD_ASSOCIATE_RESOURCE"|CUSTOM_LINE_ITEM_ASSOCIATION_EXISTS->"CUSTOM_LINE_ITEM_ASSOCIATION_EXISTS"|INVALID_BILLING_GROUP->"INVALID_BILLING_GROUP"|INVALID_BILLING_PERIOD_FOR_OPERATION->"INVALID_BILLING_PERIOD_FOR_OPERATION"|ILLEGAL_BILLING_ENTITY->"ILLEGAL_BILLING_ENTITY"|ILLEGAL_MODIFIER_PERCENTAGE->"ILLEGAL_MODIFIER_PERCENTAGE"|ILLEGAL_TYPE->"ILLEGAL_TYPE"|ILLEGAL_BILLING_GROUP_TYPE->"ILLEGAL_BILLING_GROUP_TYPE"|ILLEGAL_BILLING_GROUP_PRICING_PLAN->"ILLEGAL_BILLING_GROUP_PRICING_PLAN"|ILLEGAL_ENDED_BILLINGGROUP->"ILLEGAL_ENDED_BILLINGGROUP"|ILLEGAL_TIERING_INPUT->"ILLEGAL_TIERING_INPUT"|ILLEGAL_OPERATION->"ILLEGAL_OPERATION"|ILLEGAL_USAGE_TYPE->"ILLEGAL_USAGE_TYPE"|INVALID_SKU_COMBO->"INVALID_SKU_COMBO"|INVALID_FILTER->"INVALID_FILTER"|TOO_MANY_AUTO_ASSOCIATE_BILLING_GROUPS->"TOO_MANY_AUTO_ASSOCIATE_BILLING_GROUPS"|CANNOT_DELETE_AUTO_ASSOCIATE_BILLING_GROUP->"CANNOT_DELETE_AUTO_ASSOCIATE_BILLING_GROUP"|ILLEGAL_ACCOUNT_ID->"ILLEGAL_ACCOUNT_ID"|BILLING_GROUP_ALREADY_EXIST_IN_CURRENT_BILLING_PERIOD->"BILLING_GROUP_ALREADY_EXIST_IN_CURRENT_BILLING_PERIOD"|ILLEGAL_COMPUTATION_RULE->"ILLEGAL_COMPUTATION_RULE"|ILLEGAL_LINE_ITEM_FILTER->"ILLEGAL_LINE_ITEM_FILTER"|Non_static_ids->sletof_string=function|"UNKNOWN_OPERATION"->UNKNOWN_OPERATION|"CANNOT_PARSE"->CANNOT_PARSE|"FIELD_VALIDATION_FAILED"->FIELD_VALIDATION_FAILED|"OTHER"->OTHER|"PRIMARY_NOT_ASSOCIATED"->PRIMARY_NOT_ASSOCIATED|"PRIMARY_CANNOT_DISASSOCIATE"->PRIMARY_CANNOT_DISASSOCIATE|"ACCOUNTS_NOT_ASSOCIATED"->ACCOUNTS_NOT_ASSOCIATED|"ACCOUNTS_ALREADY_ASSOCIATED"->ACCOUNTS_ALREADY_ASSOCIATED|"ILLEGAL_PRIMARY_ACCOUNT"->ILLEGAL_PRIMARY_ACCOUNT|"ILLEGAL_ACCOUNTS"->ILLEGAL_ACCOUNTS|"MISMATCHED_BILLINGGROUP_ARN"->MISMATCHED_BILLINGGROUP_ARN|"MISSING_BILLINGGROUP"->MISSING_BILLINGGROUP|"MISMATCHED_CUSTOMLINEITEM_ARN"->MISMATCHED_CUSTOMLINEITEM_ARN|"ILLEGAL_BILLING_PERIOD"->ILLEGAL_BILLING_PERIOD|"ILLEGAL_BILLING_PERIOD_RANGE"->ILLEGAL_BILLING_PERIOD_RANGE|"TOO_MANY_ACCOUNTS_IN_REQUEST"->TOO_MANY_ACCOUNTS_IN_REQUEST|"DUPLICATE_ACCOUNT"->DUPLICATE_ACCOUNT|"INVALID_BILLING_GROUP_STATUS"->INVALID_BILLING_GROUP_STATUS|"MISMATCHED_PRICINGPLAN_ARN"->MISMATCHED_PRICINGPLAN_ARN|"MISSING_PRICINGPLAN"->MISSING_PRICINGPLAN|"MISMATCHED_PRICINGRULE_ARN"->MISMATCHED_PRICINGRULE_ARN|"DUPLICATE_PRICINGRULE_ARNS"->DUPLICATE_PRICINGRULE_ARNS|"MISSING_COSTCATEGORY"->MISSING_COSTCATEGORY|"ILLEGAL_EXPRESSION"->ILLEGAL_EXPRESSION|"ILLEGAL_SCOPE"->ILLEGAL_SCOPE|"ILLEGAL_SERVICE"->ILLEGAL_SERVICE|"PRICINGRULES_NOT_EXIST"->PRICINGRULES_NOT_EXIST|"PRICINGRULES_ALREADY_ASSOCIATED"->PRICINGRULES_ALREADY_ASSOCIATED|"PRICINGRULES_NOT_ASSOCIATED"->PRICINGRULES_NOT_ASSOCIATED|"INVALID_TIME_RANGE"->INVALID_TIME_RANGE|"INVALID_BILLINGVIEW_ARN"->INVALID_BILLINGVIEW_ARN|"MISMATCHED_BILLINGVIEW_ARN"->MISMATCHED_BILLINGVIEW_ARN|"ILLEGAL_CUSTOMLINEITEM"->ILLEGAL_CUSTOMLINEITEM|"MISSING_CUSTOMLINEITEM"->MISSING_CUSTOMLINEITEM|"ILLEGAL_CUSTOMLINEITEM_UPDATE"->ILLEGAL_CUSTOMLINEITEM_UPDATE|"TOO_MANY_CUSTOMLINEITEMS_IN_REQUEST"->TOO_MANY_CUSTOMLINEITEMS_IN_REQUEST|"ILLEGAL_CHARGE_DETAILS"->ILLEGAL_CHARGE_DETAILS|"ILLEGAL_UPDATE_CHARGE_DETAILS"->ILLEGAL_UPDATE_CHARGE_DETAILS|"INVALID_ARN"->INVALID_ARN|"ILLEGAL_RESOURCE_ARNS"->ILLEGAL_RESOURCE_ARNS|"ILLEGAL_CUSTOMLINEITEM_MODIFICATION"->ILLEGAL_CUSTOMLINEITEM_MODIFICATION|"MISSING_LINKED_ACCOUNT_IDS"->MISSING_LINKED_ACCOUNT_IDS|"MULTIPLE_LINKED_ACCOUNT_IDS"->MULTIPLE_LINKED_ACCOUNT_IDS|"MISSING_PRICING_PLAN_ARN"->MISSING_PRICING_PLAN_ARN|"MULTIPLE_PRICING_PLAN_ARN"->MULTIPLE_PRICING_PLAN_ARN|"ILLEGAL_CHILD_ASSOCIATE_RESOURCE"->ILLEGAL_CHILD_ASSOCIATE_RESOURCE|"CUSTOM_LINE_ITEM_ASSOCIATION_EXISTS"->CUSTOM_LINE_ITEM_ASSOCIATION_EXISTS|"INVALID_BILLING_GROUP"->INVALID_BILLING_GROUP|"INVALID_BILLING_PERIOD_FOR_OPERATION"->INVALID_BILLING_PERIOD_FOR_OPERATION|"ILLEGAL_BILLING_ENTITY"->ILLEGAL_BILLING_ENTITY|"ILLEGAL_MODIFIER_PERCENTAGE"->ILLEGAL_MODIFIER_PERCENTAGE|"ILLEGAL_TYPE"->ILLEGAL_TYPE|"ILLEGAL_BILLING_GROUP_TYPE"->ILLEGAL_BILLING_GROUP_TYPE|"ILLEGAL_BILLING_GROUP_PRICING_PLAN"->ILLEGAL_BILLING_GROUP_PRICING_PLAN|"ILLEGAL_ENDED_BILLINGGROUP"->ILLEGAL_ENDED_BILLINGGROUP|"ILLEGAL_TIERING_INPUT"->ILLEGAL_TIERING_INPUT|"ILLEGAL_OPERATION"->ILLEGAL_OPERATION|"ILLEGAL_USAGE_TYPE"->ILLEGAL_USAGE_TYPE|"INVALID_SKU_COMBO"->INVALID_SKU_COMBO|"INVALID_FILTER"->INVALID_FILTER|"TOO_MANY_AUTO_ASSOCIATE_BILLING_GROUPS"->TOO_MANY_AUTO_ASSOCIATE_BILLING_GROUPS|"CANNOT_DELETE_AUTO_ASSOCIATE_BILLING_GROUP"->CANNOT_DELETE_AUTO_ASSOCIATE_BILLING_GROUP|"ILLEGAL_ACCOUNT_ID"->ILLEGAL_ACCOUNT_ID|"BILLING_GROUP_ALREADY_EXIST_IN_CURRENT_BILLING_PERIOD"->BILLING_GROUP_ALREADY_EXIST_IN_CURRENT_BILLING_PERIOD|"ILLEGAL_COMPUTATION_RULE"->ILLEGAL_COMPUTATION_RULE|"ILLEGAL_LINE_ITEM_FILTER"->ILLEGAL_LINE_ITEM_FILTER|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_valueendmoduleUpdateCustomLineItemFlatChargeDetails=structtypenonrect={chargeValue:CustomLineItemChargeValue.t[@ocaml.doc"The custom line item's new fixed charge value in USD."]}letcontext_="UpdateCustomLineItemFlatChargeDetails"letmake~chargeValue=fun()->{chargeValue}letto_valuex=structure_to_value[("ChargeValue",(Some(CustomLineItemChargeValue.to_valuex.chargeValue)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letchargeValue=CustomLineItemChargeValue.of_xml(Xml.child_exn~context:context_xml_arg0"ChargeValue")inmake~chargeValue()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letchargeValue=field_map_exnjson__"ChargeValue"CustomLineItemChargeValue.of_jsoninmake~chargeValue()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A representation of the new charge details that are associated with a flat custom line item."]moduleUpdateCustomLineItemPercentageChargeDetails=structtypenonrect={percentageValue:CustomLineItemPercentageChargeValue.t[@ocaml.doc"The custom line item's new percentage value. This will be multiplied against the combined value of its associated resources to determine its charge value."]}letcontext_="UpdateCustomLineItemPercentageChargeDetails"letmake~percentageValue=fun()->{percentageValue}letto_valuex=structure_to_value[("PercentageValue",(Some(CustomLineItemPercentageChargeValue.to_valuex.percentageValue)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpercentageValue=CustomLineItemPercentageChargeValue.of_xml(Xml.child_exn~context:context_xml_arg0"PercentageValue")inmake~percentageValue()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpercentageValue=field_map_exnjson__"PercentageValue"CustomLineItemPercentageChargeValue.of_jsoninmake~percentageValue()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A representation of the new charge details that are associated with a percentage custom line item."]moduleTagKey=structtypenonrect=stringletcontext_="TagKey"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:128)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"TagKey"jletto_json=simple_to_jsonto_valueendmoduleTagValue=structtypenonrect=stringletcontext_="TagValue"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:256)>>=(fun()->check_string_mini~min:0));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"TagValue"jletto_json=simple_to_jsonto_valueendmoduleListResourcesAssociatedToCustomLineItemResponseElement=structtypenonrect={arn:CustomLineItemAssociationElement.toption[@ocaml.doc"The ARN of the associated resource."];relationship:CustomLineItemRelationship.toption[@ocaml.doc"The type of relationship between the custom line item and the associated resource."];endBillingPeriod:BillingPeriod.toption[@ocaml.doc"The end billing period of the associated resource."]}letmake?arn=fun?relationship->fun?endBillingPeriod->fun()->{arn;relationship;endBillingPeriod}letto_valuex=structure_to_value[("Arn",(Option.mapx.arn~f:CustomLineItemAssociationElement.to_value));("Relationship",(Option.mapx.relationship~f:CustomLineItemRelationship.to_value));("EndBillingPeriod",(Option.mapx.endBillingPeriod~f:BillingPeriod.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letendBillingPeriod=(Option.map~f:BillingPeriod.of_xml)(Xml.childxml_arg0"EndBillingPeriod")inletrelationship=(Option.map~f:CustomLineItemRelationship.of_xml)(Xml.childxml_arg0"Relationship")inletarn=(Option.map~f:CustomLineItemAssociationElement.of_xml)(Xml.childxml_arg0"Arn")inmake?endBillingPeriod?relationship?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letendBillingPeriod=field_mapjson__"EndBillingPeriod"BillingPeriod.of_jsoninletrelationship=field_mapjson__"Relationship"CustomLineItemRelationship.of_jsoninletarn=field_mapjson__"Arn"CustomLineItemAssociationElement.of_jsoninmake?endBillingPeriod?relationship?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A representation of a resource association for a custom line item."]modulePricingRuleListElement=structtypenonrect={name:PricingRuleName.toption[@ocaml.doc"The name of a pricing rule."];arn:PricingRuleArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) used to uniquely identify a pricing rule."];description:PricingRuleDescription.toption[@ocaml.doc"The pricing rule description."];scope:PricingRuleScope.toption[@ocaml.doc"The scope of pricing rule that indicates if it is globally applicable, or if it is service-specific."];type_:PricingRuleType.toption[@ocaml.doc"The type of pricing rule."];modifierPercentage:ModifierPercentage.toption[@ocaml.doc"A percentage modifier applied on the public pricing rates."];service:Service.toption[@ocaml.doc"If the Scope attribute is SERVICE, this attribute indicates which service the PricingRule is applicable for."];associatedPricingPlanCount:NumberOfPricingPlansAssociatedWith.toption[@ocaml.doc"The pricing plans count that this pricing rule is associated with."];creationTime:Instant.toption[@ocaml.doc"The time when the pricing rule was created."];lastModifiedTime:Instant.toption[@ocaml.doc"The most recent time when the pricing rule was modified."];billingEntity:BillingEntity.toption[@ocaml.doc"The seller of services provided by Amazon Web Services, their affiliates, or third-party providers selling services via Amazon Web Services Marketplace."];tiering:Tiering.toption[@ocaml.doc"The set of tiering configurations for the pricing rule."];usageType:UsageType.toption[@ocaml.doc"Usage type is the unit that each service uses to measure the usage of a specific type of resource. If the Scope attribute is set to SKU, this attribute indicates which usage type the PricingRule is modifying. For example, USW2-BoxUsage:m2.2xlarge describes an M2 High Memory Double Extra Large instance in the US West (Oregon) Region."];operation:Operation.toption[@ocaml.doc"Operation is the specific Amazon Web Services action covered by this line item. This describes the specific usage of the line item. If the Scope attribute is set to SKU, this attribute indicates which operation the PricingRule is modifying. For example, a value of RunInstances:0202 indicates the operation of running an Amazon EC2 instance."]}letmake?name=fun?arn->fun?description->fun?scope->fun?type_->fun?modifierPercentage->fun?service->fun?associatedPricingPlanCount->fun?creationTime->fun?lastModifiedTime->fun?billingEntity->fun?tiering->fun?usageType->fun?operation->fun()->{name;arn;description;scope;type_;modifierPercentage;service;associatedPricingPlanCount;creationTime;lastModifiedTime;billingEntity;tiering;usageType;operation}letto_valuex=structure_to_value[("Name",(Option.mapx.name~f:PricingRuleName.to_value));("Arn",(Option.mapx.arn~f:PricingRuleArn.to_value));("Description",(Option.mapx.description~f:PricingRuleDescription.to_value));("Scope",(Option.mapx.scope~f:PricingRuleScope.to_value));("Type",(Option.mapx.type_~f:PricingRuleType.to_value));("ModifierPercentage",(Option.mapx.modifierPercentage~f:ModifierPercentage.to_value));("Service",(Option.mapx.service~f:Service.to_value));("AssociatedPricingPlanCount",(Option.mapx.associatedPricingPlanCount~f:NumberOfPricingPlansAssociatedWith.to_value));("CreationTime",(Option.mapx.creationTime~f:Instant.to_value));("LastModifiedTime",(Option.mapx.lastModifiedTime~f:Instant.to_value));("BillingEntity",(Option.mapx.billingEntity~f:BillingEntity.to_value));("Tiering",(Option.mapx.tiering~f:Tiering.to_value));("UsageType",(Option.mapx.usageType~f:UsageType.to_value));("Operation",(Option.mapx.operation~f:Operation.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letoperation=(Option.map~f:Operation.of_xml)(Xml.childxml_arg0"Operation")inletusageType=(Option.map~f:UsageType.of_xml)(Xml.childxml_arg0"UsageType")inlettiering=(Option.map~f:Tiering.of_xml)(Xml.childxml_arg0"Tiering")inletbillingEntity=(Option.map~f:BillingEntity.of_xml)(Xml.childxml_arg0"BillingEntity")inletlastModifiedTime=(Option.map~f:Instant.of_xml)(Xml.childxml_arg0"LastModifiedTime")inletcreationTime=(Option.map~f:Instant.of_xml)(Xml.childxml_arg0"CreationTime")inletassociatedPricingPlanCount=(Option.map~f:NumberOfPricingPlansAssociatedWith.of_xml)(Xml.childxml_arg0"AssociatedPricingPlanCount")inletservice=(Option.map~f:Service.of_xml)(Xml.childxml_arg0"Service")inletmodifierPercentage=(Option.map~f:ModifierPercentage.of_xml)(Xml.childxml_arg0"ModifierPercentage")inlettype_=(Option.map~f:PricingRuleType.of_xml)(Xml.childxml_arg0"Type")inletscope=(Option.map~f:PricingRuleScope.of_xml)(Xml.childxml_arg0"Scope")inletdescription=(Option.map~f:PricingRuleDescription.of_xml)(Xml.childxml_arg0"Description")inletarn=(Option.map~f:PricingRuleArn.of_xml)(Xml.childxml_arg0"Arn")inletname=(Option.map~f:PricingRuleName.of_xml)(Xml.childxml_arg0"Name")inmake?operation?usageType?tiering?billingEntity?lastModifiedTime?creationTime?associatedPricingPlanCount?service?modifierPercentage?type_?scope?description?arn?name()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letoperation=field_mapjson__"Operation"Operation.of_jsoninletusageType=field_mapjson__"UsageType"UsageType.of_jsoninlettiering=field_mapjson__"Tiering"Tiering.of_jsoninletbillingEntity=field_mapjson__"BillingEntity"BillingEntity.of_jsoninletlastModifiedTime=field_mapjson__"LastModifiedTime"Instant.of_jsoninletcreationTime=field_mapjson__"CreationTime"Instant.of_jsoninletassociatedPricingPlanCount=field_mapjson__"AssociatedPricingPlanCount"NumberOfPricingPlansAssociatedWith.of_jsoninletservice=field_mapjson__"Service"Service.of_jsoninletmodifierPercentage=field_mapjson__"ModifierPercentage"ModifierPercentage.of_jsoninlettype_=field_mapjson__"Type"PricingRuleType.of_jsoninletscope=field_mapjson__"Scope"PricingRuleScope.of_jsoninletdescription=field_mapjson__"Description"PricingRuleDescription.of_jsoninletarn=field_mapjson__"Arn"PricingRuleArn.of_jsoninletname=field_mapjson__"Name"PricingRuleName.of_jsoninmake?operation?usageType?tiering?billingEntity?lastModifiedTime?creationTime?associatedPricingPlanCount?service?modifierPercentage?type_?scope?description?arn?name()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A representation of a pricing rule."]modulePricingRuleArns=structtypenonrect=PricingRuleArn.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:100)>>=(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:PricingRuleArn.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:PricingRuleArn.of_xml)letof_jsonj=list_of_json~kind:"PricingRuleArns"~of_json:PricingRuleArn.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmodulePricingPlanListElement=structtypenonrect={name:PricingPlanName.toption[@ocaml.doc"The name of a pricing plan."];arn:PricingPlanArn.toption[@ocaml.doc"The pricing plan Amazon Resource Names (ARN). This can be used to uniquely identify a pricing plan."];description:PricingPlanDescription.toption[@ocaml.doc"The pricing plan description."];size:NumberOfAssociatedPricingRules.toption[@ocaml.doc"The pricing rules count that's currently associated with this pricing plan list element."];creationTime:Instant.toption[@ocaml.doc"The time when the pricing plan was created."];lastModifiedTime:Instant.toption[@ocaml.doc"The most recent time when the pricing plan was modified."]}letmake?name=fun?arn->fun?description->fun?size->fun?creationTime->fun?lastModifiedTime->fun()->{name;arn;description;size;creationTime;lastModifiedTime}letto_valuex=structure_to_value[("Name",(Option.mapx.name~f:PricingPlanName.to_value));("Arn",(Option.mapx.arn~f:PricingPlanArn.to_value));("Description",(Option.mapx.description~f:PricingPlanDescription.to_value));("Size",(Option.mapx.size~f:NumberOfAssociatedPricingRules.to_value));("CreationTime",(Option.mapx.creationTime~f:Instant.to_value));("LastModifiedTime",(Option.mapx.lastModifiedTime~f:Instant.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlastModifiedTime=(Option.map~f:Instant.of_xml)(Xml.childxml_arg0"LastModifiedTime")inletcreationTime=(Option.map~f:Instant.of_xml)(Xml.childxml_arg0"CreationTime")inletsize=(Option.map~f:NumberOfAssociatedPricingRules.of_xml)(Xml.childxml_arg0"Size")inletdescription=(Option.map~f:PricingPlanDescription.of_xml)(Xml.childxml_arg0"Description")inletarn=(Option.map~f:PricingPlanArn.of_xml)(Xml.childxml_arg0"Arn")inletname=(Option.map~f:PricingPlanName.of_xml)(Xml.childxml_arg0"Name")inmake?lastModifiedTime?creationTime?size?description?arn?name()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlastModifiedTime=field_mapjson__"LastModifiedTime"Instant.of_jsoninletcreationTime=field_mapjson__"CreationTime"Instant.of_jsoninletsize=field_mapjson__"Size"NumberOfAssociatedPricingRules.of_jsoninletdescription=field_mapjson__"Description"PricingPlanDescription.of_jsoninletarn=field_mapjson__"Arn"PricingPlanArn.of_jsoninletname=field_mapjson__"Name"PricingPlanName.of_jsoninmake?lastModifiedTime?creationTime?size?description?arn?name()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A representation of a pricing plan."]modulePricingPlanArns=structtypenonrect=PricingPlanArn.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:100)>>=(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:PricingPlanArn.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:PricingPlanArn.of_xml)letof_jsonj=list_of_json~kind:"PricingPlanArns"~of_json:PricingPlanArn.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleCustomLineItemListElement=structtypenonrect={arn:CustomLineItemArn.toption[@ocaml.doc"The Amazon Resource Names (ARNs) for custom line items."];name:CustomLineItemName.toption[@ocaml.doc"The custom line item's name."];chargeDetails:ListCustomLineItemChargeDetails.toption[@ocaml.doc"A ListCustomLineItemChargeDetails that describes the charge details of a custom line item."];currencyCode:CurrencyCode.toption[@ocaml.doc"The custom line item's charge value currency. Only one of the valid values can be used."];description:CustomLineItemDescription.toption[@ocaml.doc"The custom line item's description. This is shown on the Bills page in association with the charge value."];productCode:CustomLineItemProductCode.toption[@ocaml.doc"The product code that's associated with the custom line item."];billingGroupArn:BillingGroupArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) that references the billing group where the custom line item applies to."];creationTime:Instant.toption[@ocaml.doc"The time created."];lastModifiedTime:Instant.toption[@ocaml.doc"The most recent time when the custom line item was modified."];associationSize:NumberOfAssociations.toption[@ocaml.doc"The number of resources that are associated to the custom line item."];accountId:AccountId.toption[@ocaml.doc"The Amazon Web Services account in which this custom line item will be applied to."];computationRule:ComputationRuleEnum.toption[@ocaml.doc"The computation rule that determines how the custom line item charges are computed and reflected in the bill."];presentationDetails:PresentationObject.toption[@ocaml.doc"Configuration details specifying how the custom line item charges are presented, including which service the charges are shown under."]}letmake?arn=fun?name->fun?chargeDetails->fun?currencyCode->fun?description->fun?productCode->fun?billingGroupArn->fun?creationTime->fun?lastModifiedTime->fun?associationSize->fun?accountId->fun?computationRule->fun?presentationDetails->fun()->{arn;name;chargeDetails;currencyCode;description;productCode;billingGroupArn;creationTime;lastModifiedTime;associationSize;accountId;computationRule;presentationDetails}letto_valuex=structure_to_value[("Arn",(Option.mapx.arn~f:CustomLineItemArn.to_value));("Name",(Option.mapx.name~f:CustomLineItemName.to_value));("ChargeDetails",(Option.mapx.chargeDetails~f:ListCustomLineItemChargeDetails.to_value));("CurrencyCode",(Option.mapx.currencyCode~f:CurrencyCode.to_value));("Description",(Option.mapx.description~f:CustomLineItemDescription.to_value));("ProductCode",(Option.mapx.productCode~f:CustomLineItemProductCode.to_value));("BillingGroupArn",(Option.mapx.billingGroupArn~f:BillingGroupArn.to_value));("CreationTime",(Option.mapx.creationTime~f:Instant.to_value));("LastModifiedTime",(Option.mapx.lastModifiedTime~f:Instant.to_value));("AssociationSize",(Option.mapx.associationSize~f:NumberOfAssociations.to_value));("AccountId",(Option.mapx.accountId~f:AccountId.to_value));("ComputationRule",(Option.mapx.computationRule~f:ComputationRuleEnum.to_value));("PresentationDetails",(Option.mapx.presentationDetails~f:PresentationObject.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpresentationDetails=(Option.map~f:PresentationObject.of_xml)(Xml.childxml_arg0"PresentationDetails")inletcomputationRule=(Option.map~f:ComputationRuleEnum.of_xml)(Xml.childxml_arg0"ComputationRule")inletaccountId=(Option.map~f:AccountId.of_xml)(Xml.childxml_arg0"AccountId")inletassociationSize=(Option.map~f:NumberOfAssociations.of_xml)(Xml.childxml_arg0"AssociationSize")inletlastModifiedTime=(Option.map~f:Instant.of_xml)(Xml.childxml_arg0"LastModifiedTime")inletcreationTime=(Option.map~f:Instant.of_xml)(Xml.childxml_arg0"CreationTime")inletbillingGroupArn=(Option.map~f:BillingGroupArn.of_xml)(Xml.childxml_arg0"BillingGroupArn")inletproductCode=(Option.map~f:CustomLineItemProductCode.of_xml)(Xml.childxml_arg0"ProductCode")inletdescription=(Option.map~f:CustomLineItemDescription.of_xml)(Xml.childxml_arg0"Description")inletcurrencyCode=(Option.map~f:CurrencyCode.of_xml)(Xml.childxml_arg0"CurrencyCode")inletchargeDetails=(Option.map~f:ListCustomLineItemChargeDetails.of_xml)(Xml.childxml_arg0"ChargeDetails")inletname=(Option.map~f:CustomLineItemName.of_xml)(Xml.childxml_arg0"Name")inletarn=(Option.map~f:CustomLineItemArn.of_xml)(Xml.childxml_arg0"Arn")inmake?presentationDetails?computationRule?accountId?associationSize?lastModifiedTime?creationTime?billingGroupArn?productCode?description?currencyCode?chargeDetails?name?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpresentationDetails=field_mapjson__"PresentationDetails"PresentationObject.of_jsoninletcomputationRule=field_mapjson__"ComputationRule"ComputationRuleEnum.of_jsoninletaccountId=field_mapjson__"AccountId"AccountId.of_jsoninletassociationSize=field_mapjson__"AssociationSize"NumberOfAssociations.of_jsoninletlastModifiedTime=field_mapjson__"LastModifiedTime"Instant.of_jsoninletcreationTime=field_mapjson__"CreationTime"Instant.of_jsoninletbillingGroupArn=field_mapjson__"BillingGroupArn"BillingGroupArn.of_jsoninletproductCode=field_mapjson__"ProductCode"CustomLineItemProductCode.of_jsoninletdescription=field_mapjson__"Description"CustomLineItemDescription.of_jsoninletcurrencyCode=field_mapjson__"CurrencyCode"CurrencyCode.of_jsoninletchargeDetails=field_mapjson__"ChargeDetails"ListCustomLineItemChargeDetails.of_jsoninletname=field_mapjson__"Name"CustomLineItemName.of_jsoninletarn=field_mapjson__"Arn"CustomLineItemArn.of_jsoninmake?presentationDetails?computationRule?accountId?associationSize?lastModifiedTime?creationTime?billingGroupArn?productCode?description?currencyCode?chargeDetails?name?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A representation of a custom line item."]moduleAccountIdList=structtypenonrect=AccountId.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:30)>>=(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:AccountId.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:AccountId.of_xml)letof_jsonj=list_of_json~kind:"AccountIdList"~of_json:AccountId.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleBillingGroupArnList=structtypenonrect=BillingGroupArn.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:100)>>=(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:BillingGroupArn.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:BillingGroupArn.of_xml)letof_jsonj=list_of_json~kind:"BillingGroupArnList"~of_json:BillingGroupArn.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleCustomLineItemArns=structtypenonrect=CustomLineItemArn.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:100)>>=(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:CustomLineItemArn.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:CustomLineItemArn.of_xml)letof_jsonj=list_of_json~kind:"CustomLineItemArns"~of_json:CustomLineItemArn.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleCustomLineItemNameList=structtypenonrect=CustomLineItemName.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:100)>>=(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:CustomLineItemName.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:CustomLineItemName.of_xml)letof_jsonj=list_of_json~kind:"CustomLineItemNameList"~of_json:CustomLineItemName.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleCustomLineItemVersionListElement=structtypenonrect={name:CustomLineItemName.toption[@ocaml.doc"The name of the custom line item."];chargeDetails:ListCustomLineItemChargeDetails.toption;currencyCode:CurrencyCode.toption[@ocaml.doc"The charge value currency of the custom line item."];description:CustomLineItemDescription.toption[@ocaml.doc"The description of the custom line item."];productCode:CustomLineItemProductCode.toption[@ocaml.doc"The product code that\226\128\153s associated with the custom line item."];billingGroupArn:BillingGroupArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the billing group that the custom line item applies to."];creationTime:Instant.toption[@ocaml.doc"The time when the custom line item version was created."];lastModifiedTime:Instant.toption[@ocaml.doc"The most recent time that the custom line item version was modified."];associationSize:NumberOfAssociations.toption[@ocaml.doc"The number of resources that are associated with the custom line item."];startBillingPeriod:BillingPeriod.toption[@ocaml.doc"The start billing period of the custom line item version."];endBillingPeriod:BillingPeriod.toption[@ocaml.doc"The end billing period of the custom line item version."];arn:CustomLineItemArn.toption[@ocaml.doc"A list of custom line item Amazon Resource Names (ARNs) to retrieve information."];startTime:Instant.toption[@ocaml.doc"The inclusive start time."];accountId:AccountId.toption[@ocaml.doc"The Amazon Web Services account in which this custom line item will be applied to."];computationRule:ComputationRuleEnum.toption[@ocaml.doc"The computation rule for a specific version of a custom line item, determining how charges are computed and reflected in the bill."];presentationDetails:PresentationObject.toption[@ocaml.doc"Presentation configuration for a specific version of a custom line item, specifying how charges are displayed in the bill."]}letmake?name=fun?chargeDetails->fun?currencyCode->fun?description->fun?productCode->fun?billingGroupArn->fun?creationTime->fun?lastModifiedTime->fun?associationSize->fun?startBillingPeriod->fun?endBillingPeriod->fun?arn->fun?startTime->fun?accountId->fun?computationRule->fun?presentationDetails->fun()->{name;chargeDetails;currencyCode;description;productCode;billingGroupArn;creationTime;lastModifiedTime;associationSize;startBillingPeriod;endBillingPeriod;arn;startTime;accountId;computationRule;presentationDetails}letto_valuex=structure_to_value[("Name",(Option.mapx.name~f:CustomLineItemName.to_value));("ChargeDetails",(Option.mapx.chargeDetails~f:ListCustomLineItemChargeDetails.to_value));("CurrencyCode",(Option.mapx.currencyCode~f:CurrencyCode.to_value));("Description",(Option.mapx.description~f:CustomLineItemDescription.to_value));("ProductCode",(Option.mapx.productCode~f:CustomLineItemProductCode.to_value));("BillingGroupArn",(Option.mapx.billingGroupArn~f:BillingGroupArn.to_value));("CreationTime",(Option.mapx.creationTime~f:Instant.to_value));("LastModifiedTime",(Option.mapx.lastModifiedTime~f:Instant.to_value));("AssociationSize",(Option.mapx.associationSize~f:NumberOfAssociations.to_value));("StartBillingPeriod",(Option.mapx.startBillingPeriod~f:BillingPeriod.to_value));("EndBillingPeriod",(Option.mapx.endBillingPeriod~f:BillingPeriod.to_value));("Arn",(Option.mapx.arn~f:CustomLineItemArn.to_value));("StartTime",(Option.mapx.startTime~f:Instant.to_value));("AccountId",(Option.mapx.accountId~f:AccountId.to_value));("ComputationRule",(Option.mapx.computationRule~f:ComputationRuleEnum.to_value));("PresentationDetails",(Option.mapx.presentationDetails~f:PresentationObject.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpresentationDetails=(Option.map~f:PresentationObject.of_xml)(Xml.childxml_arg0"PresentationDetails")inletcomputationRule=(Option.map~f:ComputationRuleEnum.of_xml)(Xml.childxml_arg0"ComputationRule")inletaccountId=(Option.map~f:AccountId.of_xml)(Xml.childxml_arg0"AccountId")inletstartTime=(Option.map~f:Instant.of_xml)(Xml.childxml_arg0"StartTime")inletarn=(Option.map~f:CustomLineItemArn.of_xml)(Xml.childxml_arg0"Arn")inletendBillingPeriod=(Option.map~f:BillingPeriod.of_xml)(Xml.childxml_arg0"EndBillingPeriod")inletstartBillingPeriod=(Option.map~f:BillingPeriod.of_xml)(Xml.childxml_arg0"StartBillingPeriod")inletassociationSize=(Option.map~f:NumberOfAssociations.of_xml)(Xml.childxml_arg0"AssociationSize")inletlastModifiedTime=(Option.map~f:Instant.of_xml)(Xml.childxml_arg0"LastModifiedTime")inletcreationTime=(Option.map~f:Instant.of_xml)(Xml.childxml_arg0"CreationTime")inletbillingGroupArn=(Option.map~f:BillingGroupArn.of_xml)(Xml.childxml_arg0"BillingGroupArn")inletproductCode=(Option.map~f:CustomLineItemProductCode.of_xml)(Xml.childxml_arg0"ProductCode")inletdescription=(Option.map~f:CustomLineItemDescription.of_xml)(Xml.childxml_arg0"Description")inletcurrencyCode=(Option.map~f:CurrencyCode.of_xml)(Xml.childxml_arg0"CurrencyCode")inletchargeDetails=(Option.map~f:ListCustomLineItemChargeDetails.of_xml)(Xml.childxml_arg0"ChargeDetails")inletname=(Option.map~f:CustomLineItemName.of_xml)(Xml.childxml_arg0"Name")inmake?presentationDetails?computationRule?accountId?startTime?arn?endBillingPeriod?startBillingPeriod?associationSize?lastModifiedTime?creationTime?billingGroupArn?productCode?description?currencyCode?chargeDetails?name()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpresentationDetails=field_mapjson__"PresentationDetails"PresentationObject.of_jsoninletcomputationRule=field_mapjson__"ComputationRule"ComputationRuleEnum.of_jsoninletaccountId=field_mapjson__"AccountId"AccountId.of_jsoninletstartTime=field_mapjson__"StartTime"Instant.of_jsoninletarn=field_mapjson__"Arn"CustomLineItemArn.of_jsoninletendBillingPeriod=field_mapjson__"EndBillingPeriod"BillingPeriod.of_jsoninletstartBillingPeriod=field_mapjson__"StartBillingPeriod"BillingPeriod.of_jsoninletassociationSize=field_mapjson__"AssociationSize"NumberOfAssociations.of_jsoninletlastModifiedTime=field_mapjson__"LastModifiedTime"Instant.of_jsoninletcreationTime=field_mapjson__"CreationTime"Instant.of_jsoninletbillingGroupArn=field_mapjson__"BillingGroupArn"BillingGroupArn.of_jsoninletproductCode=field_mapjson__"ProductCode"CustomLineItemProductCode.of_jsoninletdescription=field_mapjson__"Description"CustomLineItemDescription.of_jsoninletcurrencyCode=field_mapjson__"CurrencyCode"CurrencyCode.of_jsoninletchargeDetails=field_mapjson__"ChargeDetails"ListCustomLineItemChargeDetails.of_jsoninletname=field_mapjson__"Name"CustomLineItemName.of_jsoninmake?presentationDetails?computationRule?accountId?startTime?arn?endBillingPeriod?startBillingPeriod?associationSize?lastModifiedTime?creationTime?billingGroupArn?productCode?description?currencyCode?chargeDetails?name()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A representation of a custom line item version."]moduleListCustomLineItemVersionsBillingPeriodRangeFilter=structtypenonrect={startBillingPeriod:BillingPeriod.toption[@ocaml.doc"The inclusive start billing period that defines a billing period range where a custom line item version is applied."];endBillingPeriod:BillingPeriod.toption[@ocaml.doc"The exclusive end billing period that defines a billing period range where a custom line item version is applied."]}letmake?startBillingPeriod=fun?endBillingPeriod->fun()->{startBillingPeriod;endBillingPeriod}letto_valuex=structure_to_value[("StartBillingPeriod",(Option.mapx.startBillingPeriod~f:BillingPeriod.to_value));("EndBillingPeriod",(Option.mapx.endBillingPeriod~f:BillingPeriod.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letendBillingPeriod=(Option.map~f:BillingPeriod.of_xml)(Xml.childxml_arg0"EndBillingPeriod")inletstartBillingPeriod=(Option.map~f:BillingPeriod.of_xml)(Xml.childxml_arg0"StartBillingPeriod")inmake?endBillingPeriod?startBillingPeriod()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letendBillingPeriod=field_mapjson__"EndBillingPeriod"BillingPeriod.of_jsoninletstartBillingPeriod=field_mapjson__"StartBillingPeriod"BillingPeriod.of_jsoninmake?endBillingPeriod?startBillingPeriod()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A billing period filter that specifies the custom line item versions to retrieve."]moduleBillingGroupListElement=structtypenonrect={name:BillingGroupName.toption[@ocaml.doc"The name of the billing group."];arn:BillingGroupArn.toption[@ocaml.doc"The Amazon Resource Number (ARN) that can be used to uniquely identify the billing group."];description:BillingGroupDescription.toption[@ocaml.doc"The description of the billing group."];primaryAccountId:AccountId.toption[@ocaml.doc"The account ID that serves as the main account in a billing group."];computationPreference:ComputationPreference.toption;size:NumberOfAccounts.toption[@ocaml.doc"The number of accounts in the particular billing group."];creationTime:Instant.toption[@ocaml.doc"The time when the billing group was created."];lastModifiedTime:Instant.toption[@ocaml.doc"The most recent time when the billing group was modified."];status:BillingGroupStatus.toption[@ocaml.doc"The billing group status. Only one of the valid values can be used."];statusReason:BillingGroupStatusReason.toption[@ocaml.doc"The reason why the billing group is in its current status."];accountGrouping:ListBillingGroupAccountGrouping.toption[@ocaml.doc"Specifies if the billing group has automatic account association (AutoAssociate) enabled."];billingGroupType:BillingGroupType.toption[@ocaml.doc"The type of billing group."]}letmake?name=fun?arn->fun?description->fun?primaryAccountId->fun?computationPreference->fun?size->fun?creationTime->fun?lastModifiedTime->fun?status->fun?statusReason->fun?accountGrouping->fun?billingGroupType->fun()->{name;arn;description;primaryAccountId;computationPreference;size;creationTime;lastModifiedTime;status;statusReason;accountGrouping;billingGroupType}letto_valuex=structure_to_value[("Name",(Option.mapx.name~f:BillingGroupName.to_value));("Arn",(Option.mapx.arn~f:BillingGroupArn.to_value));("Description",(Option.mapx.description~f:BillingGroupDescription.to_value));("PrimaryAccountId",(Option.mapx.primaryAccountId~f:AccountId.to_value));("ComputationPreference",(Option.mapx.computationPreference~f:ComputationPreference.to_value));("Size",(Option.mapx.size~f:NumberOfAccounts.to_value));("CreationTime",(Option.mapx.creationTime~f:Instant.to_value));("LastModifiedTime",(Option.mapx.lastModifiedTime~f:Instant.to_value));("Status",(Option.mapx.status~f:BillingGroupStatus.to_value));("StatusReason",(Option.mapx.statusReason~f:BillingGroupStatusReason.to_value));("AccountGrouping",(Option.mapx.accountGrouping~f:ListBillingGroupAccountGrouping.to_value));("BillingGroupType",(Option.mapx.billingGroupType~f:BillingGroupType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letbillingGroupType=(Option.map~f:BillingGroupType.of_xml)(Xml.childxml_arg0"BillingGroupType")inletaccountGrouping=(Option.map~f:ListBillingGroupAccountGrouping.of_xml)(Xml.childxml_arg0"AccountGrouping")inletstatusReason=(Option.map~f:BillingGroupStatusReason.of_xml)(Xml.childxml_arg0"StatusReason")inletstatus=(Option.map~f:BillingGroupStatus.of_xml)(Xml.childxml_arg0"Status")inletlastModifiedTime=(Option.map~f:Instant.of_xml)(Xml.childxml_arg0"LastModifiedTime")inletcreationTime=(Option.map~f:Instant.of_xml)(Xml.childxml_arg0"CreationTime")inletsize=(Option.map~f:NumberOfAccounts.of_xml)(Xml.childxml_arg0"Size")inletcomputationPreference=(Option.map~f:ComputationPreference.of_xml)(Xml.childxml_arg0"ComputationPreference")inletprimaryAccountId=(Option.map~f:AccountId.of_xml)(Xml.childxml_arg0"PrimaryAccountId")inletdescription=(Option.map~f:BillingGroupDescription.of_xml)(Xml.childxml_arg0"Description")inletarn=(Option.map~f:BillingGroupArn.of_xml)(Xml.childxml_arg0"Arn")inletname=(Option.map~f:BillingGroupName.of_xml)(Xml.childxml_arg0"Name")inmake?billingGroupType?accountGrouping?statusReason?status?lastModifiedTime?creationTime?size?computationPreference?primaryAccountId?description?arn?name()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letbillingGroupType=field_mapjson__"BillingGroupType"BillingGroupType.of_jsoninletaccountGrouping=field_mapjson__"AccountGrouping"ListBillingGroupAccountGrouping.of_jsoninletstatusReason=field_mapjson__"StatusReason"BillingGroupStatusReason.of_jsoninletstatus=field_mapjson__"Status"BillingGroupStatus.of_jsoninletlastModifiedTime=field_mapjson__"LastModifiedTime"Instant.of_jsoninletcreationTime=field_mapjson__"CreationTime"Instant.of_jsoninletsize=field_mapjson__"Size"NumberOfAccounts.of_jsoninletcomputationPreference=field_mapjson__"ComputationPreference"ComputationPreference.of_jsoninletprimaryAccountId=field_mapjson__"PrimaryAccountId"AccountId.of_jsoninletdescription=field_mapjson__"Description"BillingGroupDescription.of_jsoninletarn=field_mapjson__"Arn"BillingGroupArn.of_jsoninletname=field_mapjson__"Name"BillingGroupName.of_jsoninmake?billingGroupType?accountGrouping?statusReason?status?lastModifiedTime?creationTime?size?computationPreference?primaryAccountId?description?arn?name()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A representation of a billing group."]moduleBillingGroupStatusList=structtypenonrect=BillingGroupStatus.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:2)>>=(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:BillingGroupStatus.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:BillingGroupStatus.of_xml)letof_jsonj=list_of_json~kind:"BillingGroupStatusList"~of_json:BillingGroupStatus.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleBillingGroupTypeList=structtypenonrect=BillingGroupType.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:2)>>=(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:BillingGroupType.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:BillingGroupType.of_xml)letof_jsonj=list_of_json~kind:"BillingGroupTypeList"~of_json:BillingGroupType.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmodulePrimaryAccountIdList=structtypenonrect=AccountId.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:100)>>=(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:AccountId.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:AccountId.of_xml)letof_jsonj=list_of_json~kind:"PrimaryAccountIdList"~of_json:AccountId.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleResponsibilityTransferArnsList=structtypenonrect=ResponsibilityTransferArn.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:30)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ResponsibilityTransferArn.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:ResponsibilityTransferArn.of_xml)letof_jsonj=list_of_json~kind:"ResponsibilityTransferArnsList"~of_json:ResponsibilityTransferArn.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleStringSearches=structtypenonrect=StringSearch.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:1)>>=(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:StringSearch.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:StringSearch.of_xml)letof_jsonj=list_of_json~kind:"StringSearches"~of_json:StringSearch.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleBillingGroupCostReportElement=structtypenonrect={arn:BillingGroupArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of a billing group."];aWSCost:AWSCost.toption[@ocaml.doc"The actual Amazon Web Services charges for the billing group."];proformaCost:ProformaCost.toption[@ocaml.doc"The hypothetical Amazon Web Services charges based on the associated pricing plan of a billing group."];margin:Margin.toption[@ocaml.doc"The billing group margin."];marginPercentage:MarginPercentage.toption[@ocaml.doc"The percentage of billing group margin."];currency:Currency.toption[@ocaml.doc"The displayed currency."]}letmake?arn=fun?aWSCost->fun?proformaCost->fun?margin->fun?marginPercentage->fun?currency->fun()->{arn;aWSCost;proformaCost;margin;marginPercentage;currency}letto_valuex=structure_to_value[("Arn",(Option.mapx.arn~f:BillingGroupArn.to_value));("AWSCost",(Option.mapx.aWSCost~f:AWSCost.to_value));("ProformaCost",(Option.mapx.proformaCost~f:ProformaCost.to_value));("Margin",(Option.mapx.margin~f:Margin.to_value));("MarginPercentage",(Option.mapx.marginPercentage~f:MarginPercentage.to_value));("Currency",(Option.mapx.currency~f:Currency.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcurrency=(Option.map~f:Currency.of_xml)(Xml.childxml_arg0"Currency")inletmarginPercentage=(Option.map~f:MarginPercentage.of_xml)(Xml.childxml_arg0"MarginPercentage")inletmargin=(Option.map~f:Margin.of_xml)(Xml.childxml_arg0"Margin")inletproformaCost=(Option.map~f:ProformaCost.of_xml)(Xml.childxml_arg0"ProformaCost")inletaWSCost=(Option.map~f:AWSCost.of_xml)(Xml.childxml_arg0"AWSCost")inletarn=(Option.map~f:BillingGroupArn.of_xml)(Xml.childxml_arg0"Arn")inmake?currency?marginPercentage?margin?proformaCost?aWSCost?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcurrency=field_mapjson__"Currency"Currency.of_jsoninletmarginPercentage=field_mapjson__"MarginPercentage"MarginPercentage.of_jsoninletmargin=field_mapjson__"Margin"Margin.of_jsoninletproformaCost=field_mapjson__"ProformaCost"ProformaCost.of_jsoninletaWSCost=field_mapjson__"AWSCost"AWSCost.of_jsoninletarn=field_mapjson__"Arn"BillingGroupArn.of_jsoninmake?currency?marginPercentage?margin?proformaCost?aWSCost?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A summary report of actual Amazon Web Services charges and calculated Amazon Web Services charges, based on the associated pricing plan of a billing group."]moduleAccountAssociationsListElement=structtypenonrect={accountId:AccountId.toption[@ocaml.doc"The associating array of account IDs."];billingGroupArn:BillingGroupArn.toption[@ocaml.doc"The Billing Group Arn that the linked account is associated to."];accountName:AccountName.toption[@ocaml.doc"The Amazon Web Services account name."];accountEmail:AccountEmail.toption[@ocaml.doc"The Amazon Web Services account email."]}letmake?accountId=fun?billingGroupArn->fun?accountName->fun?accountEmail->fun()->{accountId;billingGroupArn;accountName;accountEmail}letto_valuex=structure_to_value[("AccountId",(Option.mapx.accountId~f:AccountId.to_value));("BillingGroupArn",(Option.mapx.billingGroupArn~f:BillingGroupArn.to_value));("AccountName",(Option.mapx.accountName~f:AccountName.to_value));("AccountEmail",(Option.mapx.accountEmail~f:AccountEmail.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letaccountEmail=(Option.map~f:AccountEmail.of_xml)(Xml.childxml_arg0"AccountEmail")inletaccountName=(Option.map~f:AccountName.of_xml)(Xml.childxml_arg0"AccountName")inletbillingGroupArn=(Option.map~f:BillingGroupArn.of_xml)(Xml.childxml_arg0"BillingGroupArn")inletaccountId=(Option.map~f:AccountId.of_xml)(Xml.childxml_arg0"AccountId")inmake?accountEmail?accountName?billingGroupArn?accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letaccountEmail=field_mapjson__"AccountEmail"AccountEmail.of_jsoninletaccountName=field_mapjson__"AccountName"AccountName.of_jsoninletbillingGroupArn=field_mapjson__"BillingGroupArn"BillingGroupArn.of_jsoninletaccountId=field_mapjson__"AccountId"AccountId.of_jsoninmake?accountEmail?accountName?billingGroupArn?accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A representation of a linked account."]moduleAccountIdFilterList=structtypenonrect=AccountId.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:30)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:AccountId.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:AccountId.of_xml)letof_jsonj=list_of_json~kind:"AccountIdFilterList"~of_json:AccountId.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAssociation=structtypenonrect=stringletcontext_="Association"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"((arn:aws(-cn)?:billingconductor::[0-9]{12}:billinggroup/)?[a-zA-Z0-9]{10,12}|MONITORED|UNMONITORED)");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"Association"jletto_json=simple_to_jsonto_valueendmoduleBillingGroupCostReportResultElement=structtypenonrect={arn:BillingGroupArn.toption[@ocaml.doc"The Amazon Resource Number (ARN) that uniquely identifies the billing group."];aWSCost:AWSCost.toption[@ocaml.doc"The actual Amazon Web Services charges for the billing group."];proformaCost:ProformaCost.toption[@ocaml.doc"The hypothetical Amazon Web Services charges based on the associated pricing plan of a billing group."];margin:Margin.toption[@ocaml.doc"The billing group margin."];marginPercentage:MarginPercentage.toption[@ocaml.doc"The percentage of the billing group margin."];currency:Currency.toption[@ocaml.doc"The displayed currency."];attributes:AttributesList.toption[@ocaml.doc"The list of key-value pairs that represent the attributes by which the BillingGroupCostReportResults are grouped. For example, if you want the Amazon S3 service-level breakdown of a billing group for November 2023, the attributes list will contain a key-value pair of \"PRODUCT_NAME\" and \"S3\" and a key-value pair of \"BILLING_PERIOD\" and \"Nov 2023\"."]}letmake?arn=fun?aWSCost->fun?proformaCost->fun?margin->fun?marginPercentage->fun?currency->fun?attributes->fun()->{arn;aWSCost;proformaCost;margin;marginPercentage;currency;attributes}letto_valuex=structure_to_value[("Arn",(Option.mapx.arn~f:BillingGroupArn.to_value));("AWSCost",(Option.mapx.aWSCost~f:AWSCost.to_value));("ProformaCost",(Option.mapx.proformaCost~f:ProformaCost.to_value));("Margin",(Option.mapx.margin~f:Margin.to_value));("MarginPercentage",(Option.mapx.marginPercentage~f:MarginPercentage.to_value));("Currency",(Option.mapx.currency~f:Currency.to_value));("Attributes",(Option.mapx.attributes~f:AttributesList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letattributes=(Option.map~f:AttributesList.of_xml)(Xml.childxml_arg0"Attributes")inletcurrency=(Option.map~f:Currency.of_xml)(Xml.childxml_arg0"Currency")inletmarginPercentage=(Option.map~f:MarginPercentage.of_xml)(Xml.childxml_arg0"MarginPercentage")inletmargin=(Option.map~f:Margin.of_xml)(Xml.childxml_arg0"Margin")inletproformaCost=(Option.map~f:ProformaCost.of_xml)(Xml.childxml_arg0"ProformaCost")inletaWSCost=(Option.map~f:AWSCost.of_xml)(Xml.childxml_arg0"AWSCost")inletarn=(Option.map~f:BillingGroupArn.of_xml)(Xml.childxml_arg0"Arn")inmake?attributes?currency?marginPercentage?margin?proformaCost?aWSCost?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letattributes=field_mapjson__"Attributes"AttributesList.of_jsoninletcurrency=field_mapjson__"Currency"Currency.of_jsoninletmarginPercentage=field_mapjson__"MarginPercentage"MarginPercentage.of_jsoninletmargin=field_mapjson__"Margin"Margin.of_jsoninletproformaCost=field_mapjson__"ProformaCost"ProformaCost.of_jsoninletaWSCost=field_mapjson__"AWSCost"AWSCost.of_jsoninletarn=field_mapjson__"Arn"BillingGroupArn.of_jsoninmake?attributes?currency?marginPercentage?margin?proformaCost?aWSCost?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A paginated call to retrieve a list of summary reports of actual Amazon Web Services charges and the calculated Amazon Web Services charges, broken down by attributes."]moduleGroupByAttributeName=structtypenonrect=|PRODUCT_NAME|BILLING_PERIOD|Non_static_idofstringletmakei=iletto_string=function|PRODUCT_NAME->"PRODUCT_NAME"|BILLING_PERIOD->"BILLING_PERIOD"|Non_static_ids->sletof_string=function|"PRODUCT_NAME"->PRODUCT_NAME|"BILLING_PERIOD"->BILLING_PERIOD|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 GroupByAttributeName"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"GroupByAttributeName"j)letto_json=simple_to_jsonto_valueendmoduleCreateFreeTierConfig=structtypenonrect={activated:TieringActivated.t[@ocaml.doc"Activate or deactivate Amazon Web Services Free Tier."]}letcontext_="CreateFreeTierConfig"letmake~activated=fun()->{activated}letto_valuex=structure_to_value[("Activated",(Some(TieringActivated.to_valuex.activated)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letactivated=TieringActivated.of_xml(Xml.child_exn~context:context_xml_arg0"Activated")inmake~activated()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letactivated=field_map_exnjson__"Activated"TieringActivated.of_jsoninmake~activated()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The possible Amazon Web Services Free Tier configurations."]moduleCustomLineItemFlatChargeDetails=structtypenonrect={chargeValue:CustomLineItemChargeValue.t[@ocaml.doc"The custom line item's fixed charge value in USD."]}letcontext_="CustomLineItemFlatChargeDetails"letmake~chargeValue=fun()->{chargeValue}letto_valuex=structure_to_value[("ChargeValue",(Some(CustomLineItemChargeValue.to_valuex.chargeValue)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letchargeValue=CustomLineItemChargeValue.of_xml(Xml.child_exn~context:context_xml_arg0"ChargeValue")inmake~chargeValue()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letchargeValue=field_map_exnjson__"ChargeValue"CustomLineItemChargeValue.of_jsoninmake~chargeValue()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A representation of the charge details that are associated with a flat custom line item."]moduleCustomLineItemPercentageChargeDetails=structtypenonrect={percentageValue:CustomLineItemPercentageChargeValue.t[@ocaml.doc"The custom line item's percentage value. This will be multiplied against the combined value of its associated resources to determine its charge value."];associatedValues:CustomLineItemAssociationsList.toption[@ocaml.doc"A list of resource ARNs to associate to the percentage custom line item."]}letcontext_="CustomLineItemPercentageChargeDetails"letmake?associatedValues=fun~percentageValue->fun()->{associatedValues;percentageValue}letto_valuex=structure_to_value[("PercentageValue",(Some(CustomLineItemPercentageChargeValue.to_valuex.percentageValue)));("AssociatedValues",(Option.mapx.associatedValues~f:CustomLineItemAssociationsList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letassociatedValues=(Option.map~f:CustomLineItemAssociationsList.of_xml)(Xml.childxml_arg0"AssociatedValues")inletpercentageValue=CustomLineItemPercentageChargeValue.of_xml(Xml.child_exn~context:context_xml_arg0"PercentageValue")inmake?associatedValues~percentageValue()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letassociatedValues=field_mapjson__"AssociatedValues"CustomLineItemAssociationsList.of_jsoninletpercentageValue=field_map_exnjson__"PercentageValue"CustomLineItemPercentageChargeValue.of_jsoninmake?associatedValues~percentageValue()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A representation of the charge details that are associated with a percentage custom line item."]moduleDisassociateResourceResponseElement=structtypenonrect={arn:CustomLineItemAssociationElement.toption[@ocaml.doc"The resource ARN that was disassociated from the custom line item."];error:AssociateResourceError.toption[@ocaml.doc"An AssociateResourceError that's shown if the resource disassociation fails."]}letmake?arn=fun?error->fun()->{arn;error}letto_valuex=structure_to_value[("Arn",(Option.mapx.arn~f:CustomLineItemAssociationElement.to_value));("Error",(Option.mapx.error~f:AssociateResourceError.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=leterror=(Option.map~f:AssociateResourceError.of_xml)(Xml.childxml_arg0"Error")inletarn=(Option.map~f:CustomLineItemAssociationElement.of_xml)(Xml.childxml_arg0"Arn")inmake?error?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=leterror=field_mapjson__"Error"AssociateResourceError.of_jsoninletarn=field_mapjson__"Arn"CustomLineItemAssociationElement.of_jsoninmake?error?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A resource disassociation result for a percentage custom line item."]moduleAssociateResourceResponseElement=structtypenonrect={arn:CustomLineItemAssociationElement.toption[@ocaml.doc"The resource ARN that was associated to the custom line item."];error:AssociateResourceError.toption[@ocaml.doc"An AssociateResourceError that will populate if the resource association fails."]}letmake?arn=fun?error->fun()->{arn;error}letto_valuex=structure_to_value[("Arn",(Option.mapx.arn~f:CustomLineItemAssociationElement.to_value));("Error",(Option.mapx.error~f:AssociateResourceError.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=leterror=(Option.map~f:AssociateResourceError.of_xml)(Xml.childxml_arg0"Error")inletarn=(Option.map~f:CustomLineItemAssociationElement.of_xml)(Xml.childxml_arg0"Arn")inmake?error?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=leterror=field_mapjson__"Error"AssociateResourceError.of_jsoninletarn=field_mapjson__"Arn"CustomLineItemAssociationElement.of_jsoninmake?error?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A resource association result for a percentage custom line item."]moduleAccessDeniedException=structtypenonrect={message:String_.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("Message",(Option.mapx.message~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"Message"String_.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"You do not have sufficient access to perform this action."]moduleConflictException=structtypenonrect={message:String_.toption;resourceId:String_.toption[@ocaml.doc"Identifier of the resource in use."];resourceType:String_.toption[@ocaml.doc"Type of the resource in use."];reason:ConflictExceptionReason.toption[@ocaml.doc"Reason for the inconsistent state."]}letmake?message=fun?resourceId->fun?resourceType->fun?reason->fun()->{message;resourceId;resourceType;reason}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));("Reason",(Option.mapx.reason~f:ConflictExceptionReason.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letreason=(Option.map~f:ConflictExceptionReason.of_xml)(Xml.childxml_arg0"Reason")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?reason?resourceType?resourceId?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letreason=field_mapjson__"Reason"ConflictExceptionReason.of_jsoninletresourceType=field_mapjson__"ResourceType"String_.of_jsoninletresourceId=field_mapjson__"ResourceId"String_.of_jsoninletmessage=field_mapjson__"Message"String_.of_jsoninmake?reason?resourceType?resourceId?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"You can cause an inconsistent state by updating or deleting a resource."]moduleInternalServerException=structtypenonrect={message:String_.toption;retryAfterSeconds:RetryAfterSeconds.toption[@ocaml.doc"Number of seconds you can retry after the call."]}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:RetryAfterSeconds.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letretryAfterSeconds=(Option.map~f:RetryAfterSeconds.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"RetryAfterSeconds.of_jsoninletmessage=field_mapjson__"Message"String_.of_jsoninmake?retryAfterSeconds?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"An unexpected error occurred while processing a request."]moduleResourceNotFoundException=structtypenonrect={message:String_.toption;resourceId:String_.toption[@ocaml.doc"Resource identifier that was not found."];resourceType:String_.toption[@ocaml.doc"Resource type that was not found."]}letmake?message=fun?resourceId->fun?resourceType->fun()->{message;resourceId;resourceType}letto_valuex=structure_to_value[("Message",(Option.mapx.message~f:String_.to_value));("ResourceId",(Option.mapx.resourceId~f:String_.to_value));("ResourceType",(Option.mapx.resourceType~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceType=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ResourceType")inletresourceId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ResourceId")inletmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Message")inmake?resourceType?resourceId?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceType=field_mapjson__"ResourceType"String_.of_jsoninletresourceId=field_mapjson__"ResourceId"String_.of_jsoninletmessage=field_mapjson__"Message"String_.of_jsoninmake?resourceType?resourceId?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The request references a resource that doesn't exist."]moduleThrottlingException=structtypenonrect={message:String_.toption;retryAfterSeconds:RetryAfterSeconds.toption[@ocaml.doc"Number of seconds you can safely retry after the call."]}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:RetryAfterSeconds.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letretryAfterSeconds=(Option.map~f:RetryAfterSeconds.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"RetryAfterSeconds.of_jsoninletmessage=field_mapjson__"Message"String_.of_jsoninmake?retryAfterSeconds?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The request was denied due to request throttling."]moduleUpdateTieringInput=structtypenonrect={freeTier:UpdateFreeTierConfig.t[@ocaml.doc"The possible Amazon Web Services Free Tier configurations."]}letcontext_="UpdateTieringInput"letmake~freeTier=fun()->{freeTier}letto_valuex=structure_to_value[("FreeTier",(Some(UpdateFreeTierConfig.to_valuex.freeTier)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfreeTier=UpdateFreeTierConfig.of_xml(Xml.child_exn~context:context_xml_arg0"FreeTier")inmake~freeTier()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfreeTier=field_map_exnjson__"FreeTier"UpdateFreeTierConfig.of_jsoninmake~freeTier()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The set of tiering configurations for the pricing rule."]moduleValidationException=structtypenonrect={message:String_.toption;reason:ValidationExceptionReason.toption[@ocaml.doc"The reason the request's validation failed."];fields:ValidationExceptionFieldList.toption[@ocaml.doc"The fields that caused the error, if applicable."]}letmake?message=fun?reason->fun?fields->fun()->{message;reason;fields}letto_valuex=structure_to_value[("Message",(Option.mapx.message~f:String_.to_value));("Reason",(Option.mapx.reason~f:ValidationExceptionReason.to_value));("Fields",(Option.mapx.fields~f:ValidationExceptionFieldList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfields=(Option.map~f:ValidationExceptionFieldList.of_xml)(Xml.childxml_arg0"Fields")inletreason=(Option.map~f:ValidationExceptionReason.of_xml)(Xml.childxml_arg0"Reason")inletmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Message")inmake?fields?reason?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfields=field_mapjson__"Fields"ValidationExceptionFieldList.of_jsoninletreason=field_mapjson__"Reason"ValidationExceptionReason.of_jsoninletmessage=field_mapjson__"Message"String_.of_jsoninmake?fields?reason?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The input doesn't match with the constraints specified by Amazon Web Services services."]moduleBillingGroupFullArn=structtypenonrect=stringletcontext_="BillingGroupFullArn"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"arn:aws(-cn)?:billingconductor::[0-9]{12}:billinggroup/[a-zA-Z0-9]{10,12}");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"BillingGroupFullArn"jletto_json=simple_to_jsonto_valueendmoduleCustomLineItemBillingPeriodRange=structtypenonrect={inclusiveStartBillingPeriod:BillingPeriod.t[@ocaml.doc"The inclusive start billing period that defines a billing period range where a custom line is applied."];exclusiveEndBillingPeriod:BillingPeriod.toption[@ocaml.doc"The inclusive end billing period that defines a billing period range where a custom line is applied."]}letcontext_="CustomLineItemBillingPeriodRange"letmake?exclusiveEndBillingPeriod=fun~inclusiveStartBillingPeriod->fun()->{exclusiveEndBillingPeriod;inclusiveStartBillingPeriod}letto_valuex=structure_to_value[("InclusiveStartBillingPeriod",(Some(BillingPeriod.to_valuex.inclusiveStartBillingPeriod)));("ExclusiveEndBillingPeriod",(Option.mapx.exclusiveEndBillingPeriod~f:BillingPeriod.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letexclusiveEndBillingPeriod=(Option.map~f:BillingPeriod.of_xml)(Xml.childxml_arg0"ExclusiveEndBillingPeriod")inletinclusiveStartBillingPeriod=BillingPeriod.of_xml(Xml.child_exn~context:context_xml_arg0"InclusiveStartBillingPeriod")inmake?exclusiveEndBillingPeriod~inclusiveStartBillingPeriod()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letexclusiveEndBillingPeriod=field_mapjson__"ExclusiveEndBillingPeriod"BillingPeriod.of_jsoninletinclusiveStartBillingPeriod=field_map_exnjson__"InclusiveStartBillingPeriod"BillingPeriod.of_jsoninmake?exclusiveEndBillingPeriod~inclusiveStartBillingPeriod()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The billing period range in which the custom line item request will be applied."]moduleUpdateCustomLineItemChargeDetails=structtypenonrect={flat:UpdateCustomLineItemFlatChargeDetails.toption[@ocaml.doc"An UpdateCustomLineItemFlatChargeDetails that describes the new charge details of a flat custom line item."];percentage:UpdateCustomLineItemPercentageChargeDetails.toption[@ocaml.doc"An UpdateCustomLineItemPercentageChargeDetails that describes the new charge details of a percentage custom line item."];lineItemFilters:LineItemFiltersList.toption[@ocaml.doc"A representation of the line item filter."]}letmake?flat=fun?percentage->fun?lineItemFilters->fun()->{flat;percentage;lineItemFilters}letto_valuex=structure_to_value[("Flat",(Option.mapx.flat~f:UpdateCustomLineItemFlatChargeDetails.to_value));("Percentage",(Option.mapx.percentage~f:UpdateCustomLineItemPercentageChargeDetails.to_value));("LineItemFilters",(Option.mapx.lineItemFilters~f:LineItemFiltersList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlineItemFilters=(Option.map~f:LineItemFiltersList.of_xml)(Xml.childxml_arg0"LineItemFilters")inletpercentage=(Option.map~f:UpdateCustomLineItemPercentageChargeDetails.of_xml)(Xml.childxml_arg0"Percentage")inletflat=(Option.map~f:UpdateCustomLineItemFlatChargeDetails.of_xml)(Xml.childxml_arg0"Flat")inmake?lineItemFilters?percentage?flat()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlineItemFilters=field_mapjson__"LineItemFilters"LineItemFiltersList.of_jsoninletpercentage=field_mapjson__"Percentage"UpdateCustomLineItemPercentageChargeDetails.of_jsoninletflat=field_mapjson__"Flat"UpdateCustomLineItemFlatChargeDetails.of_jsoninmake?lineItemFilters?percentage?flat()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A representation of the new charge details of a custom line item. This should contain only one of Flat or Percentage."]moduleUpdateBillingGroupAccountGrouping=structtypenonrect={autoAssociate:Boolean.toption[@ocaml.doc"Specifies if this billing group will automatically associate newly added Amazon Web Services accounts that join your consolidated billing family."];responsibilityTransferArn:ResponsibilityTransferArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) that identifies the transfer relationship. Note: Modifications to the ResponsibilityTransferArn are not permitted for existing billing groups."]}letmake?autoAssociate=fun?responsibilityTransferArn->fun()->{autoAssociate;responsibilityTransferArn}letto_valuex=structure_to_value[("AutoAssociate",(Option.mapx.autoAssociate~f:Boolean.to_value));("ResponsibilityTransferArn",(Option.mapx.responsibilityTransferArn~f:ResponsibilityTransferArn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresponsibilityTransferArn=(Option.map~f:ResponsibilityTransferArn.of_xml)(Xml.childxml_arg0"ResponsibilityTransferArn")inletautoAssociate=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"AutoAssociate")inmake?responsibilityTransferArn?autoAssociate()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresponsibilityTransferArn=field_mapjson__"ResponsibilityTransferArn"ResponsibilityTransferArn.of_jsoninletautoAssociate=field_mapjson__"AutoAssociate"Boolean.of_jsoninmake?responsibilityTransferArn?autoAssociate()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Specifies if the billing group has the following features enabled."]moduleArn=structtypenonrect=stringletcontext_="Arn"letmakei=letopenResultinok_or_failwith((check_string_mini~min:0)>>=(fun()->(check_string_maxi~max:100)>>=(fun()->check_patterni~pattern:"arn:aws(-cn)?:billingconductor::[0-9]{12}:billinggroup/?[0-9]{12}$|^arn:aws(-cn)?:billingconductor::[0-9]{12}:pricingplan/[a-zA-Z0-9]{10}$|^arn:aws(-cn)?:billingconductor::[0-9]{12}:pricingrule/[a-zA-Z0-9]{10}$|^(arn:aws(-cn)?:billingconductor::[0-9]{12}:customlineitem/)?[a-zA-Z0-9]{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:"Arn"jletto_json=simple_to_jsonto_valueendmoduleTagKeyList=structtypenonrect=TagKey.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:200)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:TagKey.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:TagKey.of_xml)letof_jsonj=list_of_json~kind:"TagKeyList"~of_json:TagKey.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleTagMap=structtypenonrect=(TagKey.t*TagValue.t)listletmakei=letopenResultinok_or_failwith((check_list_maxi~max:200)>>=(fun()->check_list_mini~min:1));iletof_headerxs=make(List.filter_mapxs~f:(fun(k,v)->(Base.String.chop_prefixk~prefix:"x-amz-meta-")|>(Option.map~f:(funchopped->((TagKey.of_stringchopped),(TagValue.of_stringv))))))letto_valuexs=(xs|>(List.map~f:(fun(x,y)->(TagKey.to_valuex)|>(funx->(TagValue.to_valuey)|>(funy->(x,y))))))|>(funx->`Mapx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for Map_shape objects"()letof_xml_=failwith"of_xml_converter_of_shape: Map_shape case not implemented"letof_jsonj=object_of_json~key_of_string:TagKey.of_string~of_json:TagValue.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleListResourcesAssociatedToCustomLineItemResponseList=structtypenonrect=ListResourcesAssociatedToCustomLineItemResponseElement.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ListResourcesAssociatedToCustomLineItemResponseElement.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:ListResourcesAssociatedToCustomLineItemResponseElement.of_xml)letof_jsonj=list_of_json~kind:"ListResourcesAssociatedToCustomLineItemResponseList"~of_json:ListResourcesAssociatedToCustomLineItemResponseElement.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleToken=structtypenonrect=stringletcontext_="Token"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:"Token"jletto_json=simple_to_jsonto_valueendmoduleListResourcesAssociatedToCustomLineItemFilter=structtypenonrect={relationship:CustomLineItemRelationship.toption[@ocaml.doc"The type of relationship between the custom line item and the associated resource."]}letmake?relationship=fun()->{relationship}letto_valuex=structure_to_value[("Relationship",(Option.mapx.relationship~f:CustomLineItemRelationship.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letrelationship=(Option.map~f:CustomLineItemRelationship.of_xml)(Xml.childxml_arg0"Relationship")inmake?relationship()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letrelationship=field_mapjson__"Relationship"CustomLineItemRelationship.of_jsoninmake?relationship()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A filter that specifies the type of resource associations that should be retrieved for a custom line item."]moduleMaxCustomLineItemResults=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 MaxCustomLineItemResults"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmodulePricingRuleList=structtypenonrect=PricingRuleListElement.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:PricingRuleListElement.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:PricingRuleListElement.of_xml)letof_jsonj=list_of_json~kind:"PricingRuleList"~of_json:PricingRuleListElement.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleListPricingRulesFilter=structtypenonrect={arns:PricingRuleArns.toption[@ocaml.doc"A list containing the pricing rule Amazon Resource Names (ARNs) to include in the API response."]}letmake?arns=fun()->{arns}letto_valuex=structure_to_value[("Arns",(Option.mapx.arns~f:PricingRuleArns.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letarns=(Option.map~f:PricingRuleArns.of_xml)(Xml.childxml_arg0"Arns")inmake?arns()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letarns=field_mapjson__"Arns"PricingRuleArns.of_jsoninmake?arns()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The filter that specifies criteria that the pricing rules returned by the ListPricingRules API will adhere to."]moduleMaxPricingRuleResults=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 MaxPricingRuleResults"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleMaxPricingPlanResults=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 MaxPricingPlanResults"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmodulePricingPlanList=structtypenonrect=PricingPlanListElement.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:PricingPlanListElement.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:PricingPlanListElement.of_xml)letof_jsonj=list_of_json~kind:"PricingPlanList"~of_json:PricingPlanListElement.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleListPricingPlansFilter=structtypenonrect={arns:PricingPlanArns.toption[@ocaml.doc"A list of pricing plan Amazon Resource Names (ARNs) to retrieve information."]}letmake?arns=fun()->{arns}letto_valuex=structure_to_value[("Arns",(Option.mapx.arns~f:PricingPlanArns.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letarns=(Option.map~f:PricingPlanArns.of_xml)(Xml.childxml_arg0"Arns")inmake?arns()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letarns=field_mapjson__"Arns"PricingPlanArns.of_jsoninmake?arns()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The filter that specifies the Amazon Resource Names (ARNs) of pricing plans, to retrieve pricing plan information."]moduleCustomLineItemList=structtypenonrect=CustomLineItemListElement.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:CustomLineItemListElement.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:CustomLineItemListElement.of_xml)letof_jsonj=list_of_json~kind:"CustomLineItemList"~of_json:CustomLineItemListElement.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleListCustomLineItemsFilter=structtypenonrect={names:CustomLineItemNameList.toption[@ocaml.doc"A list of custom line items to retrieve information."];billingGroups:BillingGroupArnList.toption[@ocaml.doc"The billing group Amazon Resource Names (ARNs) to retrieve information."];arns:CustomLineItemArns.toption[@ocaml.doc"A list of custom line item ARNs to retrieve information."];accountIds:AccountIdList.toption[@ocaml.doc"The Amazon Web Services accounts in which this custom line item will be applied to."]}letmake?names=fun?billingGroups->fun?arns->fun?accountIds->fun()->{names;billingGroups;arns;accountIds}letto_valuex=structure_to_value[("Names",(Option.mapx.names~f:CustomLineItemNameList.to_value));("BillingGroups",(Option.mapx.billingGroups~f:BillingGroupArnList.to_value));("Arns",(Option.mapx.arns~f:CustomLineItemArns.to_value));("AccountIds",(Option.mapx.accountIds~f:AccountIdList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letaccountIds=(Option.map~f:AccountIdList.of_xml)(Xml.childxml_arg0"AccountIds")inletarns=(Option.map~f:CustomLineItemArns.of_xml)(Xml.childxml_arg0"Arns")inletbillingGroups=(Option.map~f:BillingGroupArnList.of_xml)(Xml.childxml_arg0"BillingGroups")inletnames=(Option.map~f:CustomLineItemNameList.of_xml)(Xml.childxml_arg0"Names")inmake?accountIds?arns?billingGroups?names()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letaccountIds=field_mapjson__"AccountIds"AccountIdList.of_jsoninletarns=field_mapjson__"Arns"CustomLineItemArns.of_jsoninletbillingGroups=field_mapjson__"BillingGroups"BillingGroupArnList.of_jsoninletnames=field_mapjson__"Names"CustomLineItemNameList.of_jsoninmake?accountIds?arns?billingGroups?names()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A filter that specifies the custom line items and billing groups to retrieve FFLI information."]moduleCustomLineItemVersionList=structtypenonrect=CustomLineItemVersionListElement.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:CustomLineItemVersionListElement.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:CustomLineItemVersionListElement.of_xml)letof_jsonj=list_of_json~kind:"CustomLineItemVersionList"~of_json:CustomLineItemVersionListElement.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleListCustomLineItemVersionsFilter=structtypenonrect={billingPeriodRange:ListCustomLineItemVersionsBillingPeriodRangeFilter.toption[@ocaml.doc"The billing period range in which the custom line item version is applied."]}letmake?billingPeriodRange=fun()->{billingPeriodRange}letto_valuex=structure_to_value[("BillingPeriodRange",(Option.mapx.billingPeriodRange~f:ListCustomLineItemVersionsBillingPeriodRangeFilter.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letbillingPeriodRange=(Option.map~f:ListCustomLineItemVersionsBillingPeriodRangeFilter.of_xml)(Xml.childxml_arg0"BillingPeriodRange")inmake?billingPeriodRange()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letbillingPeriodRange=field_mapjson__"BillingPeriodRange"ListCustomLineItemVersionsBillingPeriodRangeFilter.of_jsoninmake?billingPeriodRange()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A filter that specifies the billing period range where the custom line item versions reside."]moduleBillingGroupList=structtypenonrect=BillingGroupListElement.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:BillingGroupListElement.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:BillingGroupListElement.of_xml)letof_jsonj=list_of_json~kind:"BillingGroupList"~of_json:BillingGroupListElement.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleListBillingGroupsFilter=structtypenonrect={arns:BillingGroupArnList.toption[@ocaml.doc"The list of billing group Amazon Resource Names (ARNs) to retrieve information."];pricingPlan:PricingPlanFullArn.toption[@ocaml.doc"The pricing plan Amazon Resource Names (ARNs) to retrieve information."];statuses:BillingGroupStatusList.toption[@ocaml.doc"A list of billing groups to retrieve their current status for a specific time range"];autoAssociate:Boolean.toption[@ocaml.doc"Specifies if this billing group will automatically associate newly added Amazon Web Services accounts that join your consolidated billing family."];primaryAccountIds:PrimaryAccountIdList.toption[@ocaml.doc"A list of primary account IDs to filter the billing groups."];billingGroupTypes:BillingGroupTypeList.toption[@ocaml.doc"Filter billing groups by their type."];names:StringSearches.toption[@ocaml.doc"Filter billing groups by their names."];responsibilityTransferArns:ResponsibilityTransferArnsList.toption[@ocaml.doc"Filter billing groups by their responsibility transfer ARNs."]}letmake?arns=fun?pricingPlan->fun?statuses->fun?autoAssociate->fun?primaryAccountIds->fun?billingGroupTypes->fun?names->fun?responsibilityTransferArns->fun()->{arns;pricingPlan;statuses;autoAssociate;primaryAccountIds;billingGroupTypes;names;responsibilityTransferArns}letto_valuex=structure_to_value[("Arns",(Option.mapx.arns~f:BillingGroupArnList.to_value));("PricingPlan",(Option.mapx.pricingPlan~f:PricingPlanFullArn.to_value));("Statuses",(Option.mapx.statuses~f:BillingGroupStatusList.to_value));("AutoAssociate",(Option.mapx.autoAssociate~f:Boolean.to_value));("PrimaryAccountIds",(Option.mapx.primaryAccountIds~f:PrimaryAccountIdList.to_value));("BillingGroupTypes",(Option.mapx.billingGroupTypes~f:BillingGroupTypeList.to_value));("Names",(Option.mapx.names~f:StringSearches.to_value));("ResponsibilityTransferArns",(Option.mapx.responsibilityTransferArns~f:ResponsibilityTransferArnsList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresponsibilityTransferArns=(Option.map~f:ResponsibilityTransferArnsList.of_xml)(Xml.childxml_arg0"ResponsibilityTransferArns")inletnames=(Option.map~f:StringSearches.of_xml)(Xml.childxml_arg0"Names")inletbillingGroupTypes=(Option.map~f:BillingGroupTypeList.of_xml)(Xml.childxml_arg0"BillingGroupTypes")inletprimaryAccountIds=(Option.map~f:PrimaryAccountIdList.of_xml)(Xml.childxml_arg0"PrimaryAccountIds")inletautoAssociate=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"AutoAssociate")inletstatuses=(Option.map~f:BillingGroupStatusList.of_xml)(Xml.childxml_arg0"Statuses")inletpricingPlan=(Option.map~f:PricingPlanFullArn.of_xml)(Xml.childxml_arg0"PricingPlan")inletarns=(Option.map~f:BillingGroupArnList.of_xml)(Xml.childxml_arg0"Arns")inmake?responsibilityTransferArns?names?billingGroupTypes?primaryAccountIds?autoAssociate?statuses?pricingPlan?arns()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresponsibilityTransferArns=field_mapjson__"ResponsibilityTransferArns"ResponsibilityTransferArnsList.of_jsoninletnames=field_mapjson__"Names"StringSearches.of_jsoninletbillingGroupTypes=field_mapjson__"BillingGroupTypes"BillingGroupTypeList.of_jsoninletprimaryAccountIds=field_mapjson__"PrimaryAccountIds"PrimaryAccountIdList.of_jsoninletautoAssociate=field_mapjson__"AutoAssociate"Boolean.of_jsoninletstatuses=field_mapjson__"Statuses"BillingGroupStatusList.of_jsoninletpricingPlan=field_mapjson__"PricingPlan"PricingPlanFullArn.of_jsoninletarns=field_mapjson__"Arns"BillingGroupArnList.of_jsoninmake?responsibilityTransferArns?names?billingGroupTypes?primaryAccountIds?autoAssociate?statuses?pricingPlan?arns()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The filter that specifies the billing groups and pricing plans to retrieve billing group information."]moduleMaxBillingGroupResults=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 MaxBillingGroupResults"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleBillingGroupCostReportList=structtypenonrect=BillingGroupCostReportElement.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:BillingGroupCostReportElement.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:BillingGroupCostReportElement.of_xml)letof_jsonj=list_of_json~kind:"BillingGroupCostReportList"~of_json:BillingGroupCostReportElement.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleListBillingGroupCostReportsFilter=structtypenonrect={billingGroupArns:BillingGroupArnList.toption[@ocaml.doc"The list of Amazon Resource Names (ARNs) used to filter billing groups to retrieve reports."]}letmake?billingGroupArns=fun()->{billingGroupArns}letto_valuex=structure_to_value[("BillingGroupArns",(Option.mapx.billingGroupArns~f:BillingGroupArnList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letbillingGroupArns=(Option.map~f:BillingGroupArnList.of_xml)(Xml.childxml_arg0"BillingGroupArns")inmake?billingGroupArns()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letbillingGroupArns=field_mapjson__"BillingGroupArns"BillingGroupArnList.of_jsoninmake?billingGroupArns()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The filter used to retrieve specific BillingGroupCostReportElements."]moduleAccountAssociationsList=structtypenonrect=AccountAssociationsListElement.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:AccountAssociationsListElement.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:AccountAssociationsListElement.of_xml)letof_jsonj=list_of_json~kind:"AccountAssociationsList"~of_json:AccountAssociationsListElement.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleListAccountAssociationsFilter=structtypenonrect={association:Association.toption[@ocaml.doc"MONITORED: linked accounts that are associated to billing groups. UNMONITORED: linked accounts that are not associated to billing groups. Billing Group Arn: linked accounts that are associated to the provided Billing Group Arn."];accountId:AccountId.toption[@ocaml.doc"The Amazon Web Services account ID to filter on."];accountIds:AccountIdFilterList.toption[@ocaml.doc"The list of Amazon Web Services IDs to retrieve their associated billing group for a given time range."]}letmake?association=fun?accountId->fun?accountIds->fun()->{association;accountId;accountIds}letto_valuex=structure_to_value[("Association",(Option.mapx.association~f:Association.to_value));("AccountId",(Option.mapx.accountId~f:AccountId.to_value));("AccountIds",(Option.mapx.accountIds~f:AccountIdFilterList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letaccountIds=(Option.map~f:AccountIdFilterList.of_xml)(Xml.childxml_arg0"AccountIds")inletaccountId=(Option.map~f:AccountId.of_xml)(Xml.childxml_arg0"AccountId")inletassociation=(Option.map~f:Association.of_xml)(Xml.childxml_arg0"Association")inmake?accountIds?accountId?association()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letaccountIds=field_mapjson__"AccountIds"AccountIdFilterList.of_jsoninletaccountId=field_mapjson__"AccountId"AccountId.of_jsoninletassociation=field_mapjson__"Association"Association.of_jsoninmake?accountIds?accountId?association()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The filter on the account ID of the linked account, or any of the following: MONITORED: linked accounts that are associated to billing groups. UNMONITORED: linked accounts that are not associated to billing groups. Billing Group Arn: linked accounts that are associated to the provided Billing Group Arn."]moduleBillingGroupCostReportResultsList=structtypenonrect=BillingGroupCostReportResultElement.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:BillingGroupCostReportResultElement.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:BillingGroupCostReportResultElement.of_xml)letof_jsonj=list_of_json~kind:"BillingGroupCostReportResultsList"~of_json:BillingGroupCostReportResultElement.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleBillingPeriodRange=structtypenonrect={inclusiveStartBillingPeriod:BillingPeriod.t[@ocaml.doc"The inclusive start billing period that defines a billing period range for the margin summary."];exclusiveEndBillingPeriod:BillingPeriod.t[@ocaml.doc"The exclusive end billing period that defines a billing period range for the margin summary. For example, if you choose a billing period that starts in October 2023 and ends in December 2023, the margin summary will only include data from October 2023 and November 2023."]}letcontext_="BillingPeriodRange"letmake~inclusiveStartBillingPeriod=fun~exclusiveEndBillingPeriod->fun()->{inclusiveStartBillingPeriod;exclusiveEndBillingPeriod}letto_valuex=structure_to_value[("InclusiveStartBillingPeriod",(Some(BillingPeriod.to_valuex.inclusiveStartBillingPeriod)));("ExclusiveEndBillingPeriod",(Some(BillingPeriod.to_valuex.exclusiveEndBillingPeriod)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letexclusiveEndBillingPeriod=BillingPeriod.of_xml(Xml.child_exn~context:context_xml_arg0"ExclusiveEndBillingPeriod")inletinclusiveStartBillingPeriod=BillingPeriod.of_xml(Xml.child_exn~context:context_xml_arg0"InclusiveStartBillingPeriod")inmake~exclusiveEndBillingPeriod~inclusiveStartBillingPeriod()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letexclusiveEndBillingPeriod=field_map_exnjson__"ExclusiveEndBillingPeriod"BillingPeriod.of_jsoninletinclusiveStartBillingPeriod=field_map_exnjson__"InclusiveStartBillingPeriod"BillingPeriod.of_jsoninmake~exclusiveEndBillingPeriod~inclusiveStartBillingPeriod()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A time range for which the margin summary is effective. The time range can be up to 12 months."]moduleGroupByAttributesList=structtypenonrect=GroupByAttributeName.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:GroupByAttributeName.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:GroupByAttributeName.of_xml)letof_jsonj=list_of_json~kind:"GroupByAttributesList"~of_json:GroupByAttributeName.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleMaxBillingGroupCostReportResults=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:300)>>=(fun()->check_int_mini~min:200));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 MaxBillingGroupCostReportResults"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmodulePricingRuleArnsNonEmptyInput=structtypenonrect=PricingRuleArn.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:30)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:PricingRuleArn.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:PricingRuleArn.of_xml)letof_jsonj=list_of_json~kind:"PricingRuleArnsNonEmptyInput"~of_json:PricingRuleArn.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleServiceLimitExceededException=structtypenonrect={message:String_.toption;resourceId:String_.toption[@ocaml.doc"Identifier of the resource affected."];resourceType:String_.toption[@ocaml.doc"Type of the resource affected."];limitCode:String_.toption[@ocaml.doc"The unique code identifier of the service limit that is being exceeded."];serviceCode:String_.toption[@ocaml.doc"The unique code for the service of the limit that is being exceeded."]}letmake?message=fun?resourceId->fun?resourceType->fun?limitCode->fun?serviceCode->fun()->{message;resourceId;resourceType;limitCode;serviceCode}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));("LimitCode",(Option.mapx.limitCode~f:String_.to_value));("ServiceCode",(Option.mapx.serviceCode~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letserviceCode=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ServiceCode")inletlimitCode=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"LimitCode")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?serviceCode?limitCode?resourceType?resourceId?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letserviceCode=field_mapjson__"ServiceCode"String_.of_jsoninletlimitCode=field_mapjson__"LimitCode"String_.of_jsoninletresourceType=field_mapjson__"ResourceType"String_.of_jsoninletresourceId=field_mapjson__"ResourceId"String_.of_jsoninletmessage=field_mapjson__"Message"String_.of_jsoninmake?serviceCode?limitCode?resourceType?resourceId?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The request would cause a service limit to exceed."]moduleClientToken=structtypenonrect=stringletcontext_="ClientToken"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:64)>>=(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:"ClientToken"jletto_json=simple_to_jsonto_valueendmoduleCreateTieringInput=structtypenonrect={freeTier:CreateFreeTierConfig.t[@ocaml.doc"The possible Amazon Web Services Free Tier configurations."]}letcontext_="CreateTieringInput"letmake~freeTier=fun()->{freeTier}letto_valuex=structure_to_value[("FreeTier",(Some(CreateFreeTierConfig.to_valuex.freeTier)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfreeTier=CreateFreeTierConfig.of_xml(Xml.child_exn~context:context_xml_arg0"FreeTier")inmake~freeTier()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfreeTier=field_map_exnjson__"FreeTier"CreateFreeTierConfig.of_jsoninmake~freeTier()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The set of tiering configurations for the pricing rule."]modulePricingRuleArnsInput=structtypenonrect=PricingRuleArn.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:30)>>=(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:PricingRuleArn.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:PricingRuleArn.of_xml)letof_jsonj=list_of_json~kind:"PricingRuleArnsInput"~of_json:PricingRuleArn.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleCustomLineItemChargeDetails=structtypenonrect={flat:CustomLineItemFlatChargeDetails.toption[@ocaml.doc"A CustomLineItemFlatChargeDetails that describes the charge details of a flat custom line item."];percentage:CustomLineItemPercentageChargeDetails.toption[@ocaml.doc"A CustomLineItemPercentageChargeDetails that describes the charge details of a percentage custom line item."];type_:CustomLineItemType.t[@ocaml.doc"The type of the custom line item that indicates whether the charge is a fee or credit."];lineItemFilters:LineItemFiltersList.toption[@ocaml.doc"A representation of the line item filter."]}letcontext_="CustomLineItemChargeDetails"letmake?flat=fun?percentage->fun?lineItemFilters->fun~type_->fun()->{flat;percentage;lineItemFilters;type_}letto_valuex=structure_to_value[("Flat",(Option.mapx.flat~f:CustomLineItemFlatChargeDetails.to_value));("Percentage",(Option.mapx.percentage~f:CustomLineItemPercentageChargeDetails.to_value));("Type",(Some(CustomLineItemType.to_valuex.type_)));("LineItemFilters",(Option.mapx.lineItemFilters~f:LineItemFiltersList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlineItemFilters=(Option.map~f:LineItemFiltersList.of_xml)(Xml.childxml_arg0"LineItemFilters")inlettype_=CustomLineItemType.of_xml(Xml.child_exn~context:context_xml_arg0"Type")inletpercentage=(Option.map~f:CustomLineItemPercentageChargeDetails.of_xml)(Xml.childxml_arg0"Percentage")inletflat=(Option.map~f:CustomLineItemFlatChargeDetails.of_xml)(Xml.childxml_arg0"Flat")inmake?lineItemFilters~type_?percentage?flat()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlineItemFilters=field_mapjson__"LineItemFilters"LineItemFiltersList.of_jsoninlettype_=field_map_exnjson__"Type"CustomLineItemType.of_jsoninletpercentage=field_mapjson__"Percentage"CustomLineItemPercentageChargeDetails.of_jsoninletflat=field_mapjson__"Flat"CustomLineItemFlatChargeDetails.of_jsoninmake?lineItemFilters~type_?percentage?flat()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The charge details of a custom line item. It should contain only one of Flat or Percentage."]moduleAccountGrouping=structtypenonrect={linkedAccountIds:AccountIdList.toption[@ocaml.doc"The account IDs that make up the billing group. Account IDs must be a part of the consolidated billing family, and not associated with another billing group."];autoAssociate:Boolean.toption[@ocaml.doc"Specifies if this billing group will automatically associate newly added Amazon Web Services accounts that join your consolidated billing family."];responsibilityTransferArn:ResponsibilityTransferArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) that identifies the transfer relationship owned by the Bill Transfer account (caller account). When specified, the PrimaryAccountId is no longer required."]}letmake?linkedAccountIds=fun?autoAssociate->fun?responsibilityTransferArn->fun()->{linkedAccountIds;autoAssociate;responsibilityTransferArn}letto_valuex=structure_to_value[("LinkedAccountIds",(Option.mapx.linkedAccountIds~f:AccountIdList.to_value));("AutoAssociate",(Option.mapx.autoAssociate~f:Boolean.to_value));("ResponsibilityTransferArn",(Option.mapx.responsibilityTransferArn~f:ResponsibilityTransferArn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresponsibilityTransferArn=(Option.map~f:ResponsibilityTransferArn.of_xml)(Xml.childxml_arg0"ResponsibilityTransferArn")inletautoAssociate=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"AutoAssociate")inletlinkedAccountIds=(Option.map~f:AccountIdList.of_xml)(Xml.childxml_arg0"LinkedAccountIds")inmake?responsibilityTransferArn?autoAssociate?linkedAccountIds()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresponsibilityTransferArn=field_mapjson__"ResponsibilityTransferArn"ResponsibilityTransferArn.of_jsoninletautoAssociate=field_mapjson__"AutoAssociate"Boolean.of_jsoninletlinkedAccountIds=field_mapjson__"LinkedAccountIds"AccountIdList.of_jsoninmake?responsibilityTransferArn?autoAssociate?linkedAccountIds()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The set of accounts that will be under the billing group. The set of accounts resemble the linked accounts in a consolidated billing family."]moduleDisassociateResourcesResponseList=structtypenonrect=DisassociateResourceResponseElement.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:DisassociateResourceResponseElement.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:DisassociateResourceResponseElement.of_xml)letof_jsonj=list_of_json~kind:"DisassociateResourcesResponseList"~of_json:DisassociateResourceResponseElement.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleCustomLineItemBatchDisassociationsList=structtypenonrect=CustomLineItemAssociationElement.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:30)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:CustomLineItemAssociationElement.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:CustomLineItemAssociationElement.of_xml)letof_jsonj=list_of_json~kind:"CustomLineItemBatchDisassociationsList"~of_json:CustomLineItemAssociationElement.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAssociateResourcesResponseList=structtypenonrect=AssociateResourceResponseElement.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:AssociateResourceResponseElement.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:AssociateResourceResponseElement.of_xml)letof_jsonj=list_of_json~kind:"AssociateResourcesResponseList"~of_json:AssociateResourceResponseElement.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleCustomLineItemBatchAssociationsList=structtypenonrect=CustomLineItemAssociationElement.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:30)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:CustomLineItemAssociationElement.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:CustomLineItemAssociationElement.of_xml)letof_jsonj=list_of_json~kind:"CustomLineItemBatchAssociationsList"~of_json:CustomLineItemAssociationElement.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleUpdatePricingRuleOutput=structtypenonrect={arn:PricingRuleArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the successfully updated pricing rule."];name:PricingRuleName.toption[@ocaml.doc"The new name of the pricing rule. The name must be unique to each pricing rule."];description:PricingRuleDescription.toption[@ocaml.doc"The new description for the pricing rule."];scope:PricingRuleScope.toption[@ocaml.doc"The scope of pricing rule that indicates if it's globally applicable, or it's service-specific."];type_:PricingRuleType.toption[@ocaml.doc"The new pricing rule type."];modifierPercentage:ModifierPercentage.toption[@ocaml.doc"The new modifier to show pricing plan rates as a percentage."];service:Service.toption[@ocaml.doc"If the Scope attribute is set to SERVICE, the attribute indicates which service the PricingRule is applicable for."];associatedPricingPlanCount:NumberOfPricingPlansAssociatedWith.toption[@ocaml.doc"The pricing plans count that this pricing rule is associated with."];lastModifiedTime:Instant.toption[@ocaml.doc"The most recent time the pricing rule was modified."];billingEntity:BillingEntity.toption[@ocaml.doc"The seller of services provided by Amazon Web Services, their affiliates, or third-party providers selling services via Amazon Web Services Marketplace."];tiering:UpdateTieringInput.toption[@ocaml.doc"The set of tiering configurations for the pricing rule."];usageType:UsageType.toption[@ocaml.doc"Usage type is the unit that each service uses to measure the usage of a specific type of resource. If the Scope attribute is set to SKU, this attribute indicates which usage type the PricingRule is modifying. For example, USW2-BoxUsage:m2.2xlarge describes an M2 High Memory Double Extra Large instance in the US West (Oregon) Region."];operation:Operation.toption[@ocaml.doc"Operation refers to the specific Amazon Web Services covered by this line item. This describes the specific usage of the line item. If the Scope attribute is set to SKU, this attribute indicates which operation the PricingRule is modifying. For example, a value of RunInstances:0202 indicates the operation of running an Amazon EC2 instance."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?arn=fun?name->fun?description->fun?scope->fun?type_->fun?modifierPercentage->fun?service->fun?associatedPricingPlanCount->fun?lastModifiedTime->fun?billingEntity->fun?tiering->fun?usageType->fun?operation->fun()->{arn;name;description;scope;type_;modifierPercentage;service;associatedPricingPlanCount;lastModifiedTime;billingEntity;tiering;usageType;operation}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[("Arn",(Option.mapx.arn~f:PricingRuleArn.to_value));("Name",(Option.mapx.name~f:PricingRuleName.to_value));("Description",(Option.mapx.description~f:PricingRuleDescription.to_value));("Scope",(Option.mapx.scope~f:PricingRuleScope.to_value));("Type",(Option.mapx.type_~f:PricingRuleType.to_value));("ModifierPercentage",(Option.mapx.modifierPercentage~f:ModifierPercentage.to_value));("Service",(Option.mapx.service~f:Service.to_value));("AssociatedPricingPlanCount",(Option.mapx.associatedPricingPlanCount~f:NumberOfPricingPlansAssociatedWith.to_value));("LastModifiedTime",(Option.mapx.lastModifiedTime~f:Instant.to_value));("BillingEntity",(Option.mapx.billingEntity~f:BillingEntity.to_value));("Tiering",(Option.mapx.tiering~f:UpdateTieringInput.to_value));("UsageType",(Option.mapx.usageType~f:UsageType.to_value));("Operation",(Option.mapx.operation~f:Operation.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letoperation=(Option.map~f:Operation.of_xml)(Xml.childxml_arg0"Operation")inletusageType=(Option.map~f:UsageType.of_xml)(Xml.childxml_arg0"UsageType")inlettiering=(Option.map~f:UpdateTieringInput.of_xml)(Xml.childxml_arg0"Tiering")inletbillingEntity=(Option.map~f:BillingEntity.of_xml)(Xml.childxml_arg0"BillingEntity")inletlastModifiedTime=(Option.map~f:Instant.of_xml)(Xml.childxml_arg0"LastModifiedTime")inletassociatedPricingPlanCount=(Option.map~f:NumberOfPricingPlansAssociatedWith.of_xml)(Xml.childxml_arg0"AssociatedPricingPlanCount")inletservice=(Option.map~f:Service.of_xml)(Xml.childxml_arg0"Service")inletmodifierPercentage=(Option.map~f:ModifierPercentage.of_xml)(Xml.childxml_arg0"ModifierPercentage")inlettype_=(Option.map~f:PricingRuleType.of_xml)(Xml.childxml_arg0"Type")inletscope=(Option.map~f:PricingRuleScope.of_xml)(Xml.childxml_arg0"Scope")inletdescription=(Option.map~f:PricingRuleDescription.of_xml)(Xml.childxml_arg0"Description")inletname=(Option.map~f:PricingRuleName.of_xml)(Xml.childxml_arg0"Name")inletarn=(Option.map~f:PricingRuleArn.of_xml)(Xml.childxml_arg0"Arn")inmake?operation?usageType?tiering?billingEntity?lastModifiedTime?associatedPricingPlanCount?service?modifierPercentage?type_?scope?description?name?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letoperation=field_mapjson__"Operation"Operation.of_jsoninletusageType=field_mapjson__"UsageType"UsageType.of_jsoninlettiering=field_mapjson__"Tiering"UpdateTieringInput.of_jsoninletbillingEntity=field_mapjson__"BillingEntity"BillingEntity.of_jsoninletlastModifiedTime=field_mapjson__"LastModifiedTime"Instant.of_jsoninletassociatedPricingPlanCount=field_mapjson__"AssociatedPricingPlanCount"NumberOfPricingPlansAssociatedWith.of_jsoninletservice=field_mapjson__"Service"Service.of_jsoninletmodifierPercentage=field_mapjson__"ModifierPercentage"ModifierPercentage.of_jsoninlettype_=field_mapjson__"Type"PricingRuleType.of_jsoninletscope=field_mapjson__"Scope"PricingRuleScope.of_jsoninletdescription=field_mapjson__"Description"PricingRuleDescription.of_jsoninletname=field_mapjson__"Name"PricingRuleName.of_jsoninletarn=field_mapjson__"Arn"PricingRuleArn.of_jsoninmake?operation?usageType?tiering?billingEntity?lastModifiedTime?associatedPricingPlanCount?service?modifierPercentage?type_?scope?description?name?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates an existing pricing rule."]moduleUpdatePricingRuleInput=structtypenonrect={arn:PricingRuleArn.t[@ocaml.doc"The Amazon Resource Name (ARN) of the pricing rule to update."];name:PricingRuleName.toption[@ocaml.doc"The new name of the pricing rule. The name must be unique to each pricing rule."];description:PricingRuleDescription.toption[@ocaml.doc"The new description for the pricing rule."];type_:PricingRuleType.toption[@ocaml.doc"The new pricing rule type."];modifierPercentage:ModifierPercentage.toption[@ocaml.doc"The new modifier to show pricing plan rates as a percentage. Your entry will be rounded to the nearest 2 decimal places."];tiering:UpdateTieringInput.toption[@ocaml.doc"The set of tiering configurations for the pricing rule."]}letcontext_="UpdatePricingRuleInput"letmake?name=fun?description->fun?type_->fun?modifierPercentage->fun?tiering->fun~arn->fun()->{name;description;type_;modifierPercentage;tiering;arn}letto_valuex=structure_to_value[("Arn",(Some(PricingRuleArn.to_valuex.arn)));("Name",(Option.mapx.name~f:PricingRuleName.to_value));("Description",(Option.mapx.description~f:PricingRuleDescription.to_value));("Type",(Option.mapx.type_~f:PricingRuleType.to_value));("ModifierPercentage",(Option.mapx.modifierPercentage~f:ModifierPercentage.to_value));("Tiering",(Option.mapx.tiering~f:UpdateTieringInput.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettiering=(Option.map~f:UpdateTieringInput.of_xml)(Xml.childxml_arg0"Tiering")inletmodifierPercentage=(Option.map~f:ModifierPercentage.of_xml)(Xml.childxml_arg0"ModifierPercentage")inlettype_=(Option.map~f:PricingRuleType.of_xml)(Xml.childxml_arg0"Type")inletdescription=(Option.map~f:PricingRuleDescription.of_xml)(Xml.childxml_arg0"Description")inletname=(Option.map~f:PricingRuleName.of_xml)(Xml.childxml_arg0"Name")inletarn=PricingRuleArn.of_xml(Xml.child_exn~context:context_xml_arg0"Arn")inmake?tiering?modifierPercentage?type_?description?name~arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettiering=field_mapjson__"Tiering"UpdateTieringInput.of_jsoninletmodifierPercentage=field_mapjson__"ModifierPercentage"ModifierPercentage.of_jsoninlettype_=field_mapjson__"Type"PricingRuleType.of_jsoninletdescription=field_mapjson__"Description"PricingRuleDescription.of_jsoninletname=field_mapjson__"Name"PricingRuleName.of_jsoninletarn=field_map_exnjson__"Arn"PricingRuleArn.of_jsoninmake?tiering?modifierPercentage?type_?description?name~arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates an existing pricing rule."]moduleUpdatePricingPlanOutput=structtypenonrect={arn:PricingPlanArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the updated pricing plan."];name:PricingPlanName.toption[@ocaml.doc"The name of the pricing plan. The name must be unique to each pricing plan."];description:PricingPlanDescription.toption[@ocaml.doc"The new description for the pricing rule."];size:NumberOfAssociatedPricingRules.toption[@ocaml.doc"The pricing rules count that's currently associated with this pricing plan list."];lastModifiedTime:Instant.toption[@ocaml.doc"The most recent time when the pricing plan was modified."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?arn=fun?name->fun?description->fun?size->fun?lastModifiedTime->fun()->{arn;name;description;size;lastModifiedTime}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[("Arn",(Option.mapx.arn~f:PricingPlanArn.to_value));("Name",(Option.mapx.name~f:PricingPlanName.to_value));("Description",(Option.mapx.description~f:PricingPlanDescription.to_value));("Size",(Option.mapx.size~f:NumberOfAssociatedPricingRules.to_value));("LastModifiedTime",(Option.mapx.lastModifiedTime~f:Instant.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlastModifiedTime=(Option.map~f:Instant.of_xml)(Xml.childxml_arg0"LastModifiedTime")inletsize=(Option.map~f:NumberOfAssociatedPricingRules.of_xml)(Xml.childxml_arg0"Size")inletdescription=(Option.map~f:PricingPlanDescription.of_xml)(Xml.childxml_arg0"Description")inletname=(Option.map~f:PricingPlanName.of_xml)(Xml.childxml_arg0"Name")inletarn=(Option.map~f:PricingPlanArn.of_xml)(Xml.childxml_arg0"Arn")inmake?lastModifiedTime?size?description?name?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlastModifiedTime=field_mapjson__"LastModifiedTime"Instant.of_jsoninletsize=field_mapjson__"Size"NumberOfAssociatedPricingRules.of_jsoninletdescription=field_mapjson__"Description"PricingPlanDescription.of_jsoninletname=field_mapjson__"Name"PricingPlanName.of_jsoninletarn=field_mapjson__"Arn"PricingPlanArn.of_jsoninmake?lastModifiedTime?size?description?name?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"This updates an existing pricing plan."]moduleUpdatePricingPlanInput=structtypenonrect={arn:PricingPlanArn.t[@ocaml.doc"The Amazon Resource Name (ARN) of the pricing plan that you're updating."];name:PricingPlanName.toption[@ocaml.doc"The name of the pricing plan. The name must be unique to each pricing plan."];description:PricingPlanDescription.toption[@ocaml.doc"The description of the pricing plan."]}letcontext_="UpdatePricingPlanInput"letmake?name=fun?description->fun~arn->fun()->{name;description;arn}letto_valuex=structure_to_value[("Arn",(Some(PricingPlanArn.to_valuex.arn)));("Name",(Option.mapx.name~f:PricingPlanName.to_value));("Description",(Option.mapx.description~f:PricingPlanDescription.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letdescription=(Option.map~f:PricingPlanDescription.of_xml)(Xml.childxml_arg0"Description")inletname=(Option.map~f:PricingPlanName.of_xml)(Xml.childxml_arg0"Name")inletarn=PricingPlanArn.of_xml(Xml.child_exn~context:context_xml_arg0"Arn")inmake?description?name~arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letdescription=field_mapjson__"Description"PricingPlanDescription.of_jsoninletname=field_mapjson__"Name"PricingPlanName.of_jsoninletarn=field_map_exnjson__"Arn"PricingPlanArn.of_jsoninmake?description?name~arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"This updates an existing pricing plan."]moduleUpdateCustomLineItemOutput=structtypenonrect={arn:CustomLineItemArn.toption[@ocaml.doc"The ARN of the successfully updated custom line item."];billingGroupArn:BillingGroupFullArn.toption[@ocaml.doc"The ARN of the billing group that the custom line item is applied to."];name:CustomLineItemName.toption[@ocaml.doc"The name of the successfully updated custom line item."];description:CustomLineItemDescription.toption[@ocaml.doc"The description of the successfully updated custom line item."];chargeDetails:ListCustomLineItemChargeDetails.toption[@ocaml.doc"A ListCustomLineItemChargeDetails containing the charge details of the successfully updated custom line item."];lastModifiedTime:Instant.toption[@ocaml.doc"The most recent time when the custom line item was modified."];associationSize:NumberOfAssociations.toption[@ocaml.doc"The number of resources that are associated to the custom line item."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?arn=fun?billingGroupArn->fun?name->fun?description->fun?chargeDetails->fun?lastModifiedTime->fun?associationSize->fun()->{arn;billingGroupArn;name;description;chargeDetails;lastModifiedTime;associationSize}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[("Arn",(Option.mapx.arn~f:CustomLineItemArn.to_value));("BillingGroupArn",(Option.mapx.billingGroupArn~f:BillingGroupFullArn.to_value));("Name",(Option.mapx.name~f:CustomLineItemName.to_value));("Description",(Option.mapx.description~f:CustomLineItemDescription.to_value));("ChargeDetails",(Option.mapx.chargeDetails~f:ListCustomLineItemChargeDetails.to_value));("LastModifiedTime",(Option.mapx.lastModifiedTime~f:Instant.to_value));("AssociationSize",(Option.mapx.associationSize~f:NumberOfAssociations.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letassociationSize=(Option.map~f:NumberOfAssociations.of_xml)(Xml.childxml_arg0"AssociationSize")inletlastModifiedTime=(Option.map~f:Instant.of_xml)(Xml.childxml_arg0"LastModifiedTime")inletchargeDetails=(Option.map~f:ListCustomLineItemChargeDetails.of_xml)(Xml.childxml_arg0"ChargeDetails")inletdescription=(Option.map~f:CustomLineItemDescription.of_xml)(Xml.childxml_arg0"Description")inletname=(Option.map~f:CustomLineItemName.of_xml)(Xml.childxml_arg0"Name")inletbillingGroupArn=(Option.map~f:BillingGroupFullArn.of_xml)(Xml.childxml_arg0"BillingGroupArn")inletarn=(Option.map~f:CustomLineItemArn.of_xml)(Xml.childxml_arg0"Arn")inmake?associationSize?lastModifiedTime?chargeDetails?description?name?billingGroupArn?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letassociationSize=field_mapjson__"AssociationSize"NumberOfAssociations.of_jsoninletlastModifiedTime=field_mapjson__"LastModifiedTime"Instant.of_jsoninletchargeDetails=field_mapjson__"ChargeDetails"ListCustomLineItemChargeDetails.of_jsoninletdescription=field_mapjson__"Description"CustomLineItemDescription.of_jsoninletname=field_mapjson__"Name"CustomLineItemName.of_jsoninletbillingGroupArn=field_mapjson__"BillingGroupArn"BillingGroupFullArn.of_jsoninletarn=field_mapjson__"Arn"CustomLineItemArn.of_jsoninmake?associationSize?lastModifiedTime?chargeDetails?description?name?billingGroupArn?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Update an existing custom line item in the current or previous billing period."]moduleUpdateCustomLineItemInput=structtypenonrect={arn:CustomLineItemArn.t[@ocaml.doc"The ARN of the custom line item to be updated."];name:CustomLineItemName.toption[@ocaml.doc"The new name for the custom line item."];description:CustomLineItemDescription.toption[@ocaml.doc"The new line item description of the custom line item."];chargeDetails:UpdateCustomLineItemChargeDetails.toption[@ocaml.doc"A ListCustomLineItemChargeDetails containing the new charge details for the custom line item."];billingPeriodRange:CustomLineItemBillingPeriodRange.toption}letcontext_="UpdateCustomLineItemInput"letmake?name=fun?description->fun?chargeDetails->fun?billingPeriodRange->fun~arn->fun()->{name;description;chargeDetails;billingPeriodRange;arn}letto_valuex=structure_to_value[("Arn",(Some(CustomLineItemArn.to_valuex.arn)));("Name",(Option.mapx.name~f:CustomLineItemName.to_value));("Description",(Option.mapx.description~f:CustomLineItemDescription.to_value));("ChargeDetails",(Option.mapx.chargeDetails~f:UpdateCustomLineItemChargeDetails.to_value));("BillingPeriodRange",(Option.mapx.billingPeriodRange~f:CustomLineItemBillingPeriodRange.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letbillingPeriodRange=(Option.map~f:CustomLineItemBillingPeriodRange.of_xml)(Xml.childxml_arg0"BillingPeriodRange")inletchargeDetails=(Option.map~f:UpdateCustomLineItemChargeDetails.of_xml)(Xml.childxml_arg0"ChargeDetails")inletdescription=(Option.map~f:CustomLineItemDescription.of_xml)(Xml.childxml_arg0"Description")inletname=(Option.map~f:CustomLineItemName.of_xml)(Xml.childxml_arg0"Name")inletarn=CustomLineItemArn.of_xml(Xml.child_exn~context:context_xml_arg0"Arn")inmake?billingPeriodRange?chargeDetails?description?name~arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letbillingPeriodRange=field_mapjson__"BillingPeriodRange"CustomLineItemBillingPeriodRange.of_jsoninletchargeDetails=field_mapjson__"ChargeDetails"UpdateCustomLineItemChargeDetails.of_jsoninletdescription=field_mapjson__"Description"CustomLineItemDescription.of_jsoninletname=field_mapjson__"Name"CustomLineItemName.of_jsoninletarn=field_map_exnjson__"Arn"CustomLineItemArn.of_jsoninmake?billingPeriodRange?chargeDetails?description?name~arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Update an existing custom line item in the current or previous billing period."]moduleUpdateBillingGroupOutput=structtypenonrect={arn:BillingGroupArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the billing group that was updated."];name:BillingGroupName.toption[@ocaml.doc"The name of the billing group. The names must be unique to each billing group."];description:BillingGroupDescription.toption[@ocaml.doc"A description of the billing group."];primaryAccountId:AccountId.toption[@ocaml.doc"The account ID that serves as the main account in a billing group."];pricingPlanArn:PricingPlanArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the pricing plan to compute Amazon Web Services charges for the billing group."];size:NumberOfAccounts.toption[@ocaml.doc"The number of accounts in the particular billing group."];lastModifiedTime:Instant.toption[@ocaml.doc"The most recent time when the billing group was modified."];status:BillingGroupStatus.toption[@ocaml.doc"The status of the billing group. Only one of the valid values can be used."];statusReason:BillingGroupStatusReason.toption[@ocaml.doc"The reason why the billing group is in its current status."];accountGrouping:UpdateBillingGroupAccountGrouping.toption[@ocaml.doc"Specifies if the billing group has automatic account association (AutoAssociate) enabled."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?arn=fun?name->fun?description->fun?primaryAccountId->fun?pricingPlanArn->fun?size->fun?lastModifiedTime->fun?status->fun?statusReason->fun?accountGrouping->fun()->{arn;name;description;primaryAccountId;pricingPlanArn;size;lastModifiedTime;status;statusReason;accountGrouping}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[("Arn",(Option.mapx.arn~f:BillingGroupArn.to_value));("Name",(Option.mapx.name~f:BillingGroupName.to_value));("Description",(Option.mapx.description~f:BillingGroupDescription.to_value));("PrimaryAccountId",(Option.mapx.primaryAccountId~f:AccountId.to_value));("PricingPlanArn",(Option.mapx.pricingPlanArn~f:PricingPlanArn.to_value));("Size",(Option.mapx.size~f:NumberOfAccounts.to_value));("LastModifiedTime",(Option.mapx.lastModifiedTime~f:Instant.to_value));("Status",(Option.mapx.status~f:BillingGroupStatus.to_value));("StatusReason",(Option.mapx.statusReason~f:BillingGroupStatusReason.to_value));("AccountGrouping",(Option.mapx.accountGrouping~f:UpdateBillingGroupAccountGrouping.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letaccountGrouping=(Option.map~f:UpdateBillingGroupAccountGrouping.of_xml)(Xml.childxml_arg0"AccountGrouping")inletstatusReason=(Option.map~f:BillingGroupStatusReason.of_xml)(Xml.childxml_arg0"StatusReason")inletstatus=(Option.map~f:BillingGroupStatus.of_xml)(Xml.childxml_arg0"Status")inletlastModifiedTime=(Option.map~f:Instant.of_xml)(Xml.childxml_arg0"LastModifiedTime")inletsize=(Option.map~f:NumberOfAccounts.of_xml)(Xml.childxml_arg0"Size")inletpricingPlanArn=(Option.map~f:PricingPlanArn.of_xml)(Xml.childxml_arg0"PricingPlanArn")inletprimaryAccountId=(Option.map~f:AccountId.of_xml)(Xml.childxml_arg0"PrimaryAccountId")inletdescription=(Option.map~f:BillingGroupDescription.of_xml)(Xml.childxml_arg0"Description")inletname=(Option.map~f:BillingGroupName.of_xml)(Xml.childxml_arg0"Name")inletarn=(Option.map~f:BillingGroupArn.of_xml)(Xml.childxml_arg0"Arn")inmake?accountGrouping?statusReason?status?lastModifiedTime?size?pricingPlanArn?primaryAccountId?description?name?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letaccountGrouping=field_mapjson__"AccountGrouping"UpdateBillingGroupAccountGrouping.of_jsoninletstatusReason=field_mapjson__"StatusReason"BillingGroupStatusReason.of_jsoninletstatus=field_mapjson__"Status"BillingGroupStatus.of_jsoninletlastModifiedTime=field_mapjson__"LastModifiedTime"Instant.of_jsoninletsize=field_mapjson__"Size"NumberOfAccounts.of_jsoninletpricingPlanArn=field_mapjson__"PricingPlanArn"PricingPlanArn.of_jsoninletprimaryAccountId=field_mapjson__"PrimaryAccountId"AccountId.of_jsoninletdescription=field_mapjson__"Description"BillingGroupDescription.of_jsoninletname=field_mapjson__"Name"BillingGroupName.of_jsoninletarn=field_mapjson__"Arn"BillingGroupArn.of_jsoninmake?accountGrouping?statusReason?status?lastModifiedTime?size?pricingPlanArn?primaryAccountId?description?name?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"This updates an existing billing group."]moduleUpdateBillingGroupInput=structtypenonrect={arn:BillingGroupArn.t[@ocaml.doc"The Amazon Resource Name (ARN) of the billing group being updated."];name:BillingGroupName.toption[@ocaml.doc"The name of the billing group. The names must be unique to each billing group."];status:BillingGroupStatus.toption[@ocaml.doc"The status of the billing group. Only one of the valid values can be used."];computationPreference:ComputationPreference.toption[@ocaml.doc"The preferences and settings that will be used to compute the Amazon Web Services charges for a billing group."];description:BillingGroupDescription.toption[@ocaml.doc"A description of the billing group."];accountGrouping:UpdateBillingGroupAccountGrouping.toption[@ocaml.doc"Specifies if the billing group has automatic account association (AutoAssociate) enabled."]}letcontext_="UpdateBillingGroupInput"letmake?name=fun?status->fun?computationPreference->fun?description->fun?accountGrouping->fun~arn->fun()->{name;status;computationPreference;description;accountGrouping;arn}letto_valuex=structure_to_value[("Arn",(Some(BillingGroupArn.to_valuex.arn)));("Name",(Option.mapx.name~f:BillingGroupName.to_value));("Status",(Option.mapx.status~f:BillingGroupStatus.to_value));("ComputationPreference",(Option.mapx.computationPreference~f:ComputationPreference.to_value));("Description",(Option.mapx.description~f:BillingGroupDescription.to_value));("AccountGrouping",(Option.mapx.accountGrouping~f:UpdateBillingGroupAccountGrouping.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letaccountGrouping=(Option.map~f:UpdateBillingGroupAccountGrouping.of_xml)(Xml.childxml_arg0"AccountGrouping")inletdescription=(Option.map~f:BillingGroupDescription.of_xml)(Xml.childxml_arg0"Description")inletcomputationPreference=(Option.map~f:ComputationPreference.of_xml)(Xml.childxml_arg0"ComputationPreference")inletstatus=(Option.map~f:BillingGroupStatus.of_xml)(Xml.childxml_arg0"Status")inletname=(Option.map~f:BillingGroupName.of_xml)(Xml.childxml_arg0"Name")inletarn=BillingGroupArn.of_xml(Xml.child_exn~context:context_xml_arg0"Arn")inmake?accountGrouping?description?computationPreference?status?name~arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letaccountGrouping=field_mapjson__"AccountGrouping"UpdateBillingGroupAccountGrouping.of_jsoninletdescription=field_mapjson__"Description"BillingGroupDescription.of_jsoninletcomputationPreference=field_mapjson__"ComputationPreference"ComputationPreference.of_jsoninletstatus=field_mapjson__"Status"BillingGroupStatus.of_jsoninletname=field_mapjson__"Name"BillingGroupName.of_jsoninletarn=field_map_exnjson__"Arn"BillingGroupArn.of_jsoninmake?accountGrouping?description?computationPreference?status?name~arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"This updates an existing billing group."]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"Deletes specified tags from a resource."]moduleUntagResourceRequest=structtypenonrect={resourceArn:Arn.t[@ocaml.doc"The Amazon Resource Name (ARN) of the resource to which to delete tags."];tagKeys:TagKeyList.t[@ocaml.doc"The tags to delete from the resource as a list of key-value pairs."]}letcontext_="UntagResourceRequest"letmake~resourceArn=fun~tagKeys->fun()->{resourceArn;tagKeys}letto_valuex=structure_to_value[("ResourceArn",(Some(Arn.to_valuex.resourceArn)));("tagKeys",(Some(TagKeyList.to_valuex.tagKeys)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettagKeys=TagKeyList.of_xml(Xml.child_exn~context:context_xml_arg0"tagKeys")inletresourceArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"ResourceArn")inmake~tagKeys~resourceArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettagKeys=field_map_exnjson__"TagKeys"TagKeyList.of_jsoninletresourceArn=field_map_exnjson__"ResourceArn"Arn.of_jsoninmake~tagKeys~resourceArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes specified tags from a resource."]moduleTagResourceResponse=structtypenonrect=unittypenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake()=()leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource are not specified in the request parameters, they are not changed."]moduleTagResourceRequest=structtypenonrect={resourceArn:Arn.t[@ocaml.doc"The Amazon Resource Name (ARN) of the resource to which to add tags."];tags:TagMap.t[@ocaml.doc"The tags to add to the resource as a list of key-value pairs."]}letcontext_="TagResourceRequest"letmake~resourceArn=fun~tags->fun()->{resourceArn;tags}letto_valuex=structure_to_value[("ResourceArn",(Some(Arn.to_valuex.resourceArn)));("Tags",(Some(TagMap.to_valuex.tags)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=TagMap.of_xml(Xml.child_exn~context:context_xml_arg0"Tags")inletresourceArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"ResourceArn")inmake~tags~resourceArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_map_exnjson__"Tags"TagMap.of_jsoninletresourceArn=field_map_exnjson__"ResourceArn"Arn.of_jsoninmake~tags~resourceArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource are not specified in the request parameters, they are not changed."]moduleListTagsForResourceResponse=structtypenonrect={tags:TagMap.toption[@ocaml.doc"The tags for 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"A list the tags for a resource."]moduleListTagsForResourceRequest=structtypenonrect={resourceArn:Arn.t[@ocaml.doc"The Amazon Resource Name (ARN) that identifies the resource to list the tags."]}letcontext_="ListTagsForResourceRequest"letmake~resourceArn=fun()->{resourceArn}letto_valuex=structure_to_value[("ResourceArn",(Some(Arn.to_valuex.resourceArn)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceArn=Arn.of_xml(Xml.child_exn~context:context_xml_arg0"ResourceArn")inmake~resourceArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceArn=field_map_exnjson__"ResourceArn"Arn.of_jsoninmake~resourceArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A list the tags for a resource."]moduleListResourcesAssociatedToCustomLineItemOutput=structtypenonrect={arn:CustomLineItemArn.toption[@ocaml.doc"The custom line item ARN for which the resource associations are listed."];associatedResources:ListResourcesAssociatedToCustomLineItemResponseList.toption[@ocaml.doc"A list of ListResourcesAssociatedToCustomLineItemResponseElement for each resource association retrieved."];nextToken:Token.toption[@ocaml.doc"The pagination token to be used in subsequent requests to retrieve additional results."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?arn=fun?associatedResources->fun?nextToken->fun()->{arn;associatedResources;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Arn",(Option.mapx.arn~f:CustomLineItemArn.to_value));("AssociatedResources",(Option.mapx.associatedResources~f:ListResourcesAssociatedToCustomLineItemResponseList.to_value));("NextToken",(Option.mapx.nextToken~f:Token.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:Token.of_xml)(Xml.childxml_arg0"NextToken")inletassociatedResources=(Option.map~f:ListResourcesAssociatedToCustomLineItemResponseList.of_xml)(Xml.childxml_arg0"AssociatedResources")inletarn=(Option.map~f:CustomLineItemArn.of_xml)(Xml.childxml_arg0"Arn")inmake?nextToken?associatedResources?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"Token.of_jsoninletassociatedResources=field_mapjson__"AssociatedResources"ListResourcesAssociatedToCustomLineItemResponseList.of_jsoninletarn=field_mapjson__"Arn"CustomLineItemArn.of_jsoninmake?nextToken?associatedResources?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"List the resources that are associated to a custom line item."]moduleListResourcesAssociatedToCustomLineItemInput=structtypenonrect={billingPeriod:BillingPeriod.toption[@ocaml.doc"The billing period for which the resource associations will be listed."];arn:CustomLineItemArn.t[@ocaml.doc"The ARN of the custom line item for which the resource associations will be listed."];maxResults:MaxCustomLineItemResults.toption[@ocaml.doc"(Optional) The maximum number of resource associations to be retrieved."];nextToken:Token.toption[@ocaml.doc"(Optional) The pagination token that's returned by a previous request."];filters:ListResourcesAssociatedToCustomLineItemFilter.toption[@ocaml.doc"(Optional) A ListResourcesAssociatedToCustomLineItemFilter that can specify the types of resources that should be retrieved."]}letcontext_="ListResourcesAssociatedToCustomLineItemInput"letmake?billingPeriod=fun?maxResults->fun?nextToken->fun?filters->fun~arn->fun()->{billingPeriod;maxResults;nextToken;filters;arn}letto_valuex=structure_to_value[("BillingPeriod",(Option.mapx.billingPeriod~f:BillingPeriod.to_value));("Arn",(Some(CustomLineItemArn.to_valuex.arn)));("MaxResults",(Option.mapx.maxResults~f:MaxCustomLineItemResults.to_value));("NextToken",(Option.mapx.nextToken~f:Token.to_value));("Filters",(Option.mapx.filters~f:ListResourcesAssociatedToCustomLineItemFilter.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfilters=(Option.map~f:ListResourcesAssociatedToCustomLineItemFilter.of_xml)(Xml.childxml_arg0"Filters")inletnextToken=(Option.map~f:Token.of_xml)(Xml.childxml_arg0"NextToken")inletmaxResults=(Option.map~f:MaxCustomLineItemResults.of_xml)(Xml.childxml_arg0"MaxResults")inletarn=CustomLineItemArn.of_xml(Xml.child_exn~context:context_xml_arg0"Arn")inletbillingPeriod=(Option.map~f:BillingPeriod.of_xml)(Xml.childxml_arg0"BillingPeriod")inmake?filters?nextToken?maxResults~arn?billingPeriod()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfilters=field_mapjson__"Filters"ListResourcesAssociatedToCustomLineItemFilter.of_jsoninletnextToken=field_mapjson__"NextToken"Token.of_jsoninletmaxResults=field_mapjson__"MaxResults"MaxCustomLineItemResults.of_jsoninletarn=field_map_exnjson__"Arn"CustomLineItemArn.of_jsoninletbillingPeriod=field_mapjson__"BillingPeriod"BillingPeriod.of_jsoninmake?filters?nextToken?maxResults~arn?billingPeriod()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"List the resources that are associated to a custom line item."]moduleListPricingRulesOutput=structtypenonrect={billingPeriod:BillingPeriod.toption[@ocaml.doc"The billing period for which the described pricing rules are applicable."];pricingRules:PricingRuleList.toption[@ocaml.doc"A list containing the described pricing rules."];nextToken:Token.toption[@ocaml.doc"The pagination token that's used on subsequent calls to get pricing rules."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?billingPeriod=fun?pricingRules->fun?nextToken->fun()->{billingPeriod;pricingRules;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("BillingPeriod",(Option.mapx.billingPeriod~f:BillingPeriod.to_value));("PricingRules",(Option.mapx.pricingRules~f:PricingRuleList.to_value));("NextToken",(Option.mapx.nextToken~f:Token.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:Token.of_xml)(Xml.childxml_arg0"NextToken")inletpricingRules=(Option.map~f:PricingRuleList.of_xml)(Xml.childxml_arg0"PricingRules")inletbillingPeriod=(Option.map~f:BillingPeriod.of_xml)(Xml.childxml_arg0"BillingPeriod")inmake?nextToken?pricingRules?billingPeriod()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"Token.of_jsoninletpricingRules=field_mapjson__"PricingRules"PricingRuleList.of_jsoninletbillingPeriod=field_mapjson__"BillingPeriod"BillingPeriod.of_jsoninmake?nextToken?pricingRules?billingPeriod()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a pricing rule that can be associated to a pricing plan, or set of pricing plans."]moduleListPricingRulesInput=structtypenonrect={billingPeriod:BillingPeriod.toption[@ocaml.doc"The preferred billing period to get the pricing plan."];filters:ListPricingRulesFilter.toption[@ocaml.doc"A DescribePricingRuleFilter that specifies the Amazon Resource Name (ARNs) of pricing rules to retrieve pricing rules information."];maxResults:MaxPricingRuleResults.toption[@ocaml.doc"The maximum number of pricing rules to retrieve."];nextToken:Token.toption[@ocaml.doc"The pagination token that's used on subsequent call to get pricing rules."]}letmake?billingPeriod=fun?filters->fun?maxResults->fun?nextToken->fun()->{billingPeriod;filters;maxResults;nextToken}letto_valuex=structure_to_value[("BillingPeriod",(Option.mapx.billingPeriod~f:BillingPeriod.to_value));("Filters",(Option.mapx.filters~f:ListPricingRulesFilter.to_value));("MaxResults",(Option.mapx.maxResults~f:MaxPricingRuleResults.to_value));("NextToken",(Option.mapx.nextToken~f:Token.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:Token.of_xml)(Xml.childxml_arg0"NextToken")inletmaxResults=(Option.map~f:MaxPricingRuleResults.of_xml)(Xml.childxml_arg0"MaxResults")inletfilters=(Option.map~f:ListPricingRulesFilter.of_xml)(Xml.childxml_arg0"Filters")inletbillingPeriod=(Option.map~f:BillingPeriod.of_xml)(Xml.childxml_arg0"BillingPeriod")inmake?nextToken?maxResults?filters?billingPeriod()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"Token.of_jsoninletmaxResults=field_mapjson__"MaxResults"MaxPricingRuleResults.of_jsoninletfilters=field_mapjson__"Filters"ListPricingRulesFilter.of_jsoninletbillingPeriod=field_mapjson__"BillingPeriod"BillingPeriod.of_jsoninmake?nextToken?maxResults?filters?billingPeriod()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a pricing rule that can be associated to a pricing plan, or set of pricing plans."]moduleListPricingRulesAssociatedToPricingPlanOutput=structtypenonrect={billingPeriod:BillingPeriod.toption[@ocaml.doc"The billing period for which the pricing rule associations are listed."];pricingPlanArn:PricingPlanArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the pricing plan for which associations are listed."];pricingRuleArns:PricingRuleArns.toption[@ocaml.doc"A list containing pricing rules that are associated with the requested pricing plan."];nextToken:Token.toption[@ocaml.doc"The pagination token to be used on subsequent calls."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?billingPeriod=fun?pricingPlanArn->fun?pricingRuleArns->fun?nextToken->fun()->{billingPeriod;pricingPlanArn;pricingRuleArns;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("BillingPeriod",(Option.mapx.billingPeriod~f:BillingPeriod.to_value));("PricingPlanArn",(Option.mapx.pricingPlanArn~f:PricingPlanArn.to_value));("PricingRuleArns",(Option.mapx.pricingRuleArns~f:PricingRuleArns.to_value));("NextToken",(Option.mapx.nextToken~f:Token.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:Token.of_xml)(Xml.childxml_arg0"NextToken")inletpricingRuleArns=(Option.map~f:PricingRuleArns.of_xml)(Xml.childxml_arg0"PricingRuleArns")inletpricingPlanArn=(Option.map~f:PricingPlanArn.of_xml)(Xml.childxml_arg0"PricingPlanArn")inletbillingPeriod=(Option.map~f:BillingPeriod.of_xml)(Xml.childxml_arg0"BillingPeriod")inmake?nextToken?pricingRuleArns?pricingPlanArn?billingPeriod()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"Token.of_jsoninletpricingRuleArns=field_mapjson__"PricingRuleArns"PricingRuleArns.of_jsoninletpricingPlanArn=field_mapjson__"PricingPlanArn"PricingPlanArn.of_jsoninletbillingPeriod=field_mapjson__"BillingPeriod"BillingPeriod.of_jsoninmake?nextToken?pricingRuleArns?pricingPlanArn?billingPeriod()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the pricing rules that are associated with a pricing plan."]moduleListPricingRulesAssociatedToPricingPlanInput=structtypenonrect={billingPeriod:BillingPeriod.toption[@ocaml.doc"The billing period for which the pricing rule associations are to be listed."];pricingPlanArn:PricingPlanArn.t[@ocaml.doc"The Amazon Resource Name (ARN) of the pricing plan for which associations are to be listed."];maxResults:MaxPricingPlanResults.toption[@ocaml.doc"The optional maximum number of pricing rule associations to retrieve."];nextToken:Token.toption[@ocaml.doc"The optional pagination token returned by a previous call."]}letcontext_="ListPricingRulesAssociatedToPricingPlanInput"letmake?billingPeriod=fun?maxResults->fun?nextToken->fun~pricingPlanArn->fun()->{billingPeriod;maxResults;nextToken;pricingPlanArn}letto_valuex=structure_to_value[("BillingPeriod",(Option.mapx.billingPeriod~f:BillingPeriod.to_value));("PricingPlanArn",(Some(PricingPlanArn.to_valuex.pricingPlanArn)));("MaxResults",(Option.mapx.maxResults~f:MaxPricingPlanResults.to_value));("NextToken",(Option.mapx.nextToken~f:Token.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:Token.of_xml)(Xml.childxml_arg0"NextToken")inletmaxResults=(Option.map~f:MaxPricingPlanResults.of_xml)(Xml.childxml_arg0"MaxResults")inletpricingPlanArn=PricingPlanArn.of_xml(Xml.child_exn~context:context_xml_arg0"PricingPlanArn")inletbillingPeriod=(Option.map~f:BillingPeriod.of_xml)(Xml.childxml_arg0"BillingPeriod")inmake?nextToken?maxResults~pricingPlanArn?billingPeriod()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"Token.of_jsoninletmaxResults=field_mapjson__"MaxResults"MaxPricingPlanResults.of_jsoninletpricingPlanArn=field_map_exnjson__"PricingPlanArn"PricingPlanArn.of_jsoninletbillingPeriod=field_mapjson__"BillingPeriod"BillingPeriod.of_jsoninmake?nextToken?maxResults~pricingPlanArn?billingPeriod()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the pricing rules that are associated with a pricing plan."]moduleListPricingPlansOutput=structtypenonrect={billingPeriod:BillingPeriod.toption[@ocaml.doc"The billing period for which the described pricing plans are applicable."];pricingPlans:PricingPlanList.toption[@ocaml.doc"A list of PricingPlanListElement retrieved."];nextToken:Token.toption[@ocaml.doc"The pagination token that's used on subsequent calls to get pricing plans."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?billingPeriod=fun?pricingPlans->fun?nextToken->fun()->{billingPeriod;pricingPlans;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("BillingPeriod",(Option.mapx.billingPeriod~f:BillingPeriod.to_value));("PricingPlans",(Option.mapx.pricingPlans~f:PricingPlanList.to_value));("NextToken",(Option.mapx.nextToken~f:Token.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:Token.of_xml)(Xml.childxml_arg0"NextToken")inletpricingPlans=(Option.map~f:PricingPlanList.of_xml)(Xml.childxml_arg0"PricingPlans")inletbillingPeriod=(Option.map~f:BillingPeriod.of_xml)(Xml.childxml_arg0"BillingPeriod")inmake?nextToken?pricingPlans?billingPeriod()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"Token.of_jsoninletpricingPlans=field_mapjson__"PricingPlans"PricingPlanList.of_jsoninletbillingPeriod=field_mapjson__"BillingPeriod"BillingPeriod.of_jsoninmake?nextToken?pricingPlans?billingPeriod()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A paginated call to get pricing plans for the given billing period. If you don't provide a billing period, the current billing period is used."]moduleListPricingPlansInput=structtypenonrect={billingPeriod:BillingPeriod.toption[@ocaml.doc"The preferred billing period to get pricing plan."];filters:ListPricingPlansFilter.toption[@ocaml.doc"A ListPricingPlansFilter that specifies the Amazon Resource Name (ARNs) of pricing plans to retrieve pricing plans information."];maxResults:MaxPricingPlanResults.toption[@ocaml.doc"The maximum number of pricing plans to retrieve."];nextToken:Token.toption[@ocaml.doc"The pagination token that's used on subsequent call to get pricing plans."]}letmake?billingPeriod=fun?filters->fun?maxResults->fun?nextToken->fun()->{billingPeriod;filters;maxResults;nextToken}letto_valuex=structure_to_value[("BillingPeriod",(Option.mapx.billingPeriod~f:BillingPeriod.to_value));("Filters",(Option.mapx.filters~f:ListPricingPlansFilter.to_value));("MaxResults",(Option.mapx.maxResults~f:MaxPricingPlanResults.to_value));("NextToken",(Option.mapx.nextToken~f:Token.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:Token.of_xml)(Xml.childxml_arg0"NextToken")inletmaxResults=(Option.map~f:MaxPricingPlanResults.of_xml)(Xml.childxml_arg0"MaxResults")inletfilters=(Option.map~f:ListPricingPlansFilter.of_xml)(Xml.childxml_arg0"Filters")inletbillingPeriod=(Option.map~f:BillingPeriod.of_xml)(Xml.childxml_arg0"BillingPeriod")inmake?nextToken?maxResults?filters?billingPeriod()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"Token.of_jsoninletmaxResults=field_mapjson__"MaxResults"MaxPricingPlanResults.of_jsoninletfilters=field_mapjson__"Filters"ListPricingPlansFilter.of_jsoninletbillingPeriod=field_mapjson__"BillingPeriod"BillingPeriod.of_jsoninmake?nextToken?maxResults?filters?billingPeriod()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A paginated call to get pricing plans for the given billing period. If you don't provide a billing period, the current billing period is used."]moduleListPricingPlansAssociatedWithPricingRuleOutput=structtypenonrect={billingPeriod:BillingPeriod.toption[@ocaml.doc"The pricing plan billing period for which associations will be listed."];pricingRuleArn:PricingRuleArn.toption[@ocaml.doc"The pricing rule Amazon Resource Name (ARN) for which associations will be listed."];pricingPlanArns:PricingPlanArns.toption[@ocaml.doc"The list containing pricing plans that are associated with the requested pricing rule."];nextToken:Token.toption[@ocaml.doc"The pagination token to be used on subsequent calls."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?billingPeriod=fun?pricingRuleArn->fun?pricingPlanArns->fun?nextToken->fun()->{billingPeriod;pricingRuleArn;pricingPlanArns;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("BillingPeriod",(Option.mapx.billingPeriod~f:BillingPeriod.to_value));("PricingRuleArn",(Option.mapx.pricingRuleArn~f:PricingRuleArn.to_value));("PricingPlanArns",(Option.mapx.pricingPlanArns~f:PricingPlanArns.to_value));("NextToken",(Option.mapx.nextToken~f:Token.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:Token.of_xml)(Xml.childxml_arg0"NextToken")inletpricingPlanArns=(Option.map~f:PricingPlanArns.of_xml)(Xml.childxml_arg0"PricingPlanArns")inletpricingRuleArn=(Option.map~f:PricingRuleArn.of_xml)(Xml.childxml_arg0"PricingRuleArn")inletbillingPeriod=(Option.map~f:BillingPeriod.of_xml)(Xml.childxml_arg0"BillingPeriod")inmake?nextToken?pricingPlanArns?pricingRuleArn?billingPeriod()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"Token.of_jsoninletpricingPlanArns=field_mapjson__"PricingPlanArns"PricingPlanArns.of_jsoninletpricingRuleArn=field_mapjson__"PricingRuleArn"PricingRuleArn.of_jsoninletbillingPeriod=field_mapjson__"BillingPeriod"BillingPeriod.of_jsoninmake?nextToken?pricingPlanArns?pricingRuleArn?billingPeriod()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A list of the pricing plans that are associated with a pricing rule."]moduleListPricingPlansAssociatedWithPricingRuleInput=structtypenonrect={billingPeriod:BillingPeriod.toption[@ocaml.doc"The pricing plan billing period for which associations will be listed."];pricingRuleArn:PricingRuleArn.t[@ocaml.doc"The pricing rule Amazon Resource Name (ARN) for which associations will be listed."];maxResults:MaxPricingRuleResults.toption[@ocaml.doc"The optional maximum number of pricing rule associations to retrieve."];nextToken:Token.toption[@ocaml.doc"The optional pagination token returned by a previous call."]}letcontext_="ListPricingPlansAssociatedWithPricingRuleInput"letmake?billingPeriod=fun?maxResults->fun?nextToken->fun~pricingRuleArn->fun()->{billingPeriod;maxResults;nextToken;pricingRuleArn}letto_valuex=structure_to_value[("BillingPeriod",(Option.mapx.billingPeriod~f:BillingPeriod.to_value));("PricingRuleArn",(Some(PricingRuleArn.to_valuex.pricingRuleArn)));("MaxResults",(Option.mapx.maxResults~f:MaxPricingRuleResults.to_value));("NextToken",(Option.mapx.nextToken~f:Token.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:Token.of_xml)(Xml.childxml_arg0"NextToken")inletmaxResults=(Option.map~f:MaxPricingRuleResults.of_xml)(Xml.childxml_arg0"MaxResults")inletpricingRuleArn=PricingRuleArn.of_xml(Xml.child_exn~context:context_xml_arg0"PricingRuleArn")inletbillingPeriod=(Option.map~f:BillingPeriod.of_xml)(Xml.childxml_arg0"BillingPeriod")inmake?nextToken?maxResults~pricingRuleArn?billingPeriod()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"Token.of_jsoninletmaxResults=field_mapjson__"MaxResults"MaxPricingRuleResults.of_jsoninletpricingRuleArn=field_map_exnjson__"PricingRuleArn"PricingRuleArn.of_jsoninletbillingPeriod=field_mapjson__"BillingPeriod"BillingPeriod.of_jsoninmake?nextToken?maxResults~pricingRuleArn?billingPeriod()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A list of the pricing plans that are associated with a pricing rule."]moduleListCustomLineItemsOutput=structtypenonrect={customLineItems:CustomLineItemList.toption[@ocaml.doc"A list of FreeFormLineItemListElements received."];nextToken:Token.toption[@ocaml.doc"The pagination token that's used on subsequent calls to get custom line items (FFLIs)."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?customLineItems=fun?nextToken->fun()->{customLineItems;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("CustomLineItems",(Option.mapx.customLineItems~f:CustomLineItemList.to_value));("NextToken",(Option.mapx.nextToken~f:Token.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:Token.of_xml)(Xml.childxml_arg0"NextToken")inletcustomLineItems=(Option.map~f:CustomLineItemList.of_xml)(Xml.childxml_arg0"CustomLineItems")inmake?nextToken?customLineItems()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"Token.of_jsoninletcustomLineItems=field_mapjson__"CustomLineItems"CustomLineItemList.of_jsoninmake?nextToken?customLineItems()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A paginated call to get a list of all custom line items (FFLIs) for the given billing period. If you don't provide a billing period, the current billing period is used."]moduleListCustomLineItemsInput=structtypenonrect={billingPeriod:BillingPeriod.toption[@ocaml.doc"The preferred billing period to get custom line items (FFLIs)."];maxResults:MaxCustomLineItemResults.toption[@ocaml.doc"The maximum number of billing groups to retrieve."];nextToken:Token.toption[@ocaml.doc"The pagination token that's used on subsequent calls to get custom line items (FFLIs)."];filters:ListCustomLineItemsFilter.toption[@ocaml.doc"A ListCustomLineItemsFilter that specifies the custom line item names and/or billing group Amazon Resource Names (ARNs) to retrieve FFLI information."]}letmake?billingPeriod=fun?maxResults->fun?nextToken->fun?filters->fun()->{billingPeriod;maxResults;nextToken;filters}letto_valuex=structure_to_value[("BillingPeriod",(Option.mapx.billingPeriod~f:BillingPeriod.to_value));("MaxResults",(Option.mapx.maxResults~f:MaxCustomLineItemResults.to_value));("NextToken",(Option.mapx.nextToken~f:Token.to_value));("Filters",(Option.mapx.filters~f:ListCustomLineItemsFilter.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfilters=(Option.map~f:ListCustomLineItemsFilter.of_xml)(Xml.childxml_arg0"Filters")inletnextToken=(Option.map~f:Token.of_xml)(Xml.childxml_arg0"NextToken")inletmaxResults=(Option.map~f:MaxCustomLineItemResults.of_xml)(Xml.childxml_arg0"MaxResults")inletbillingPeriod=(Option.map~f:BillingPeriod.of_xml)(Xml.childxml_arg0"BillingPeriod")inmake?filters?nextToken?maxResults?billingPeriod()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfilters=field_mapjson__"Filters"ListCustomLineItemsFilter.of_jsoninletnextToken=field_mapjson__"NextToken"Token.of_jsoninletmaxResults=field_mapjson__"MaxResults"MaxCustomLineItemResults.of_jsoninletbillingPeriod=field_mapjson__"BillingPeriod"BillingPeriod.of_jsoninmake?filters?nextToken?maxResults?billingPeriod()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A paginated call to get a list of all custom line items (FFLIs) for the given billing period. If you don't provide a billing period, the current billing period is used."]moduleListCustomLineItemVersionsOutput=structtypenonrect={customLineItemVersions:CustomLineItemVersionList.toption[@ocaml.doc"A list of CustomLineItemVersionListElements that are received."];nextToken:Token.toption[@ocaml.doc"The pagination token that's used on subsequent calls to retrieve custom line item versions."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?customLineItemVersions=fun?nextToken->fun()->{customLineItemVersions;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("CustomLineItemVersions",(Option.mapx.customLineItemVersions~f:CustomLineItemVersionList.to_value));("NextToken",(Option.mapx.nextToken~f:Token.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:Token.of_xml)(Xml.childxml_arg0"NextToken")inletcustomLineItemVersions=(Option.map~f:CustomLineItemVersionList.of_xml)(Xml.childxml_arg0"CustomLineItemVersions")inmake?nextToken?customLineItemVersions()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"Token.of_jsoninletcustomLineItemVersions=field_mapjson__"CustomLineItemVersions"CustomLineItemVersionList.of_jsoninmake?nextToken?customLineItemVersions()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A paginated call to get a list of all custom line item versions."]moduleListCustomLineItemVersionsInput=structtypenonrect={arn:CustomLineItemArn.t[@ocaml.doc"The Amazon Resource Name (ARN) for the custom line item."];maxResults:MaxCustomLineItemResults.toption[@ocaml.doc"The maximum number of custom line item versions to retrieve."];nextToken:Token.toption[@ocaml.doc"The pagination token that's used on subsequent calls to retrieve custom line item versions."];filters:ListCustomLineItemVersionsFilter.toption[@ocaml.doc"A ListCustomLineItemVersionsFilter that specifies the billing period range in which the custom line item versions are applied."]}letcontext_="ListCustomLineItemVersionsInput"letmake?maxResults=fun?nextToken->fun?filters->fun~arn->fun()->{maxResults;nextToken;filters;arn}letto_valuex=structure_to_value[("Arn",(Some(CustomLineItemArn.to_valuex.arn)));("MaxResults",(Option.mapx.maxResults~f:MaxCustomLineItemResults.to_value));("NextToken",(Option.mapx.nextToken~f:Token.to_value));("Filters",(Option.mapx.filters~f:ListCustomLineItemVersionsFilter.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfilters=(Option.map~f:ListCustomLineItemVersionsFilter.of_xml)(Xml.childxml_arg0"Filters")inletnextToken=(Option.map~f:Token.of_xml)(Xml.childxml_arg0"NextToken")inletmaxResults=(Option.map~f:MaxCustomLineItemResults.of_xml)(Xml.childxml_arg0"MaxResults")inletarn=CustomLineItemArn.of_xml(Xml.child_exn~context:context_xml_arg0"Arn")inmake?filters?nextToken?maxResults~arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfilters=field_mapjson__"Filters"ListCustomLineItemVersionsFilter.of_jsoninletnextToken=field_mapjson__"NextToken"Token.of_jsoninletmaxResults=field_mapjson__"MaxResults"MaxCustomLineItemResults.of_jsoninletarn=field_map_exnjson__"Arn"CustomLineItemArn.of_jsoninmake?filters?nextToken?maxResults~arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A paginated call to get a list of all custom line item versions."]moduleListBillingGroupsOutput=structtypenonrect={billingGroups:BillingGroupList.toption[@ocaml.doc"A list of BillingGroupListElement retrieved."];nextToken:Token.toption[@ocaml.doc"The pagination token that's used on subsequent calls to get billing groups."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?billingGroups=fun?nextToken->fun()->{billingGroups;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("BillingGroups",(Option.mapx.billingGroups~f:BillingGroupList.to_value));("NextToken",(Option.mapx.nextToken~f:Token.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:Token.of_xml)(Xml.childxml_arg0"NextToken")inletbillingGroups=(Option.map~f:BillingGroupList.of_xml)(Xml.childxml_arg0"BillingGroups")inmake?nextToken?billingGroups()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"Token.of_jsoninletbillingGroups=field_mapjson__"BillingGroups"BillingGroupList.of_jsoninmake?nextToken?billingGroups()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A paginated call to retrieve a list of billing groups for the given billing period. If you don't provide a billing group, the current billing period is used."]moduleListBillingGroupsInput=structtypenonrect={billingPeriod:BillingPeriod.toption[@ocaml.doc"The preferred billing period to get billing groups."];maxResults:MaxBillingGroupResults.toption[@ocaml.doc"The maximum number of billing groups to retrieve."];nextToken:Token.toption[@ocaml.doc"The pagination token that's used on subsequent calls to get billing groups."];filters:ListBillingGroupsFilter.toption[@ocaml.doc"A ListBillingGroupsFilter that specifies the billing group and pricing plan to retrieve billing group information."]}letmake?billingPeriod=fun?maxResults->fun?nextToken->fun?filters->fun()->{billingPeriod;maxResults;nextToken;filters}letto_valuex=structure_to_value[("BillingPeriod",(Option.mapx.billingPeriod~f:BillingPeriod.to_value));("MaxResults",(Option.mapx.maxResults~f:MaxBillingGroupResults.to_value));("NextToken",(Option.mapx.nextToken~f:Token.to_value));("Filters",(Option.mapx.filters~f:ListBillingGroupsFilter.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfilters=(Option.map~f:ListBillingGroupsFilter.of_xml)(Xml.childxml_arg0"Filters")inletnextToken=(Option.map~f:Token.of_xml)(Xml.childxml_arg0"NextToken")inletmaxResults=(Option.map~f:MaxBillingGroupResults.of_xml)(Xml.childxml_arg0"MaxResults")inletbillingPeriod=(Option.map~f:BillingPeriod.of_xml)(Xml.childxml_arg0"BillingPeriod")inmake?filters?nextToken?maxResults?billingPeriod()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfilters=field_mapjson__"Filters"ListBillingGroupsFilter.of_jsoninletnextToken=field_mapjson__"NextToken"Token.of_jsoninletmaxResults=field_mapjson__"MaxResults"MaxBillingGroupResults.of_jsoninletbillingPeriod=field_mapjson__"BillingPeriod"BillingPeriod.of_jsoninmake?filters?nextToken?maxResults?billingPeriod()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A paginated call to retrieve a list of billing groups for the given billing period. If you don't provide a billing group, the current billing period is used."]moduleListBillingGroupCostReportsOutput=structtypenonrect={billingGroupCostReports:BillingGroupCostReportList.toption[@ocaml.doc"A list of BillingGroupCostReportElement retrieved."];nextToken:Token.toption[@ocaml.doc"The pagination token that's used on subsequent calls to get reports."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?billingGroupCostReports=fun?nextToken->fun()->{billingGroupCostReports;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("BillingGroupCostReports",(Option.mapx.billingGroupCostReports~f:BillingGroupCostReportList.to_value));("NextToken",(Option.mapx.nextToken~f:Token.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:Token.of_xml)(Xml.childxml_arg0"NextToken")inletbillingGroupCostReports=(Option.map~f:BillingGroupCostReportList.of_xml)(Xml.childxml_arg0"BillingGroupCostReports")inmake?nextToken?billingGroupCostReports()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"Token.of_jsoninletbillingGroupCostReports=field_mapjson__"BillingGroupCostReports"BillingGroupCostReportList.of_jsoninmake?nextToken?billingGroupCostReports()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A paginated call to retrieve a summary report of actual Amazon Web Services charges and the calculated Amazon Web Services charges based on the associated pricing plan of a billing group."]moduleListBillingGroupCostReportsInput=structtypenonrect={billingPeriod:BillingPeriod.toption[@ocaml.doc"The preferred billing period for your report."];maxResults:MaxBillingGroupResults.toption[@ocaml.doc"The maximum number of reports to retrieve."];nextToken:Token.toption[@ocaml.doc"The pagination token that's used on subsequent calls to get reports."];filters:ListBillingGroupCostReportsFilter.toption[@ocaml.doc"A ListBillingGroupCostReportsFilter to specify billing groups to retrieve reports from."]}letmake?billingPeriod=fun?maxResults->fun?nextToken->fun?filters->fun()->{billingPeriod;maxResults;nextToken;filters}letto_valuex=structure_to_value[("BillingPeriod",(Option.mapx.billingPeriod~f:BillingPeriod.to_value));("MaxResults",(Option.mapx.maxResults~f:MaxBillingGroupResults.to_value));("NextToken",(Option.mapx.nextToken~f:Token.to_value));("Filters",(Option.mapx.filters~f:ListBillingGroupCostReportsFilter.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfilters=(Option.map~f:ListBillingGroupCostReportsFilter.of_xml)(Xml.childxml_arg0"Filters")inletnextToken=(Option.map~f:Token.of_xml)(Xml.childxml_arg0"NextToken")inletmaxResults=(Option.map~f:MaxBillingGroupResults.of_xml)(Xml.childxml_arg0"MaxResults")inletbillingPeriod=(Option.map~f:BillingPeriod.of_xml)(Xml.childxml_arg0"BillingPeriod")inmake?filters?nextToken?maxResults?billingPeriod()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfilters=field_mapjson__"Filters"ListBillingGroupCostReportsFilter.of_jsoninletnextToken=field_mapjson__"NextToken"Token.of_jsoninletmaxResults=field_mapjson__"MaxResults"MaxBillingGroupResults.of_jsoninletbillingPeriod=field_mapjson__"BillingPeriod"BillingPeriod.of_jsoninmake?filters?nextToken?maxResults?billingPeriod()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A paginated call to retrieve a summary report of actual Amazon Web Services charges and the calculated Amazon Web Services charges based on the associated pricing plan of a billing group."]moduleListAccountAssociationsOutput=structtypenonrect={linkedAccounts:AccountAssociationsList.toption[@ocaml.doc"The list of linked accounts in the payer account."];nextToken:Token.toption[@ocaml.doc"The pagination token that's used on subsequent calls to get accounts."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?linkedAccounts=fun?nextToken->fun()->{linkedAccounts;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("LinkedAccounts",(Option.mapx.linkedAccounts~f:AccountAssociationsList.to_value));("NextToken",(Option.mapx.nextToken~f:Token.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:Token.of_xml)(Xml.childxml_arg0"NextToken")inletlinkedAccounts=(Option.map~f:AccountAssociationsList.of_xml)(Xml.childxml_arg0"LinkedAccounts")inmake?nextToken?linkedAccounts()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"Token.of_jsoninletlinkedAccounts=field_mapjson__"LinkedAccounts"AccountAssociationsList.of_jsoninmake?nextToken?linkedAccounts()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"This is a paginated call to list linked accounts that are linked to the payer account for the specified time period. If no information is provided, the current billing period is used. The response will optionally include the billing group that's associated with the linked account."]moduleListAccountAssociationsInput=structtypenonrect={billingPeriod:BillingPeriod.toption[@ocaml.doc"The preferred billing period to get account associations."];filters:ListAccountAssociationsFilter.toption[@ocaml.doc"The filter on the account ID of the linked account, or any of the following: MONITORED: linked accounts that are associated to billing groups. UNMONITORED: linked accounts that aren't associated to billing groups. Billing Group Arn: linked accounts that are associated to the provided billing group Arn."];nextToken:Token.toption[@ocaml.doc"The pagination token that's used on subsequent calls to retrieve accounts."]}letmake?billingPeriod=fun?filters->fun?nextToken->fun()->{billingPeriod;filters;nextToken}letto_valuex=structure_to_value[("BillingPeriod",(Option.mapx.billingPeriod~f:BillingPeriod.to_value));("Filters",(Option.mapx.filters~f:ListAccountAssociationsFilter.to_value));("NextToken",(Option.mapx.nextToken~f:Token.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:Token.of_xml)(Xml.childxml_arg0"NextToken")inletfilters=(Option.map~f:ListAccountAssociationsFilter.of_xml)(Xml.childxml_arg0"Filters")inletbillingPeriod=(Option.map~f:BillingPeriod.of_xml)(Xml.childxml_arg0"BillingPeriod")inmake?nextToken?filters?billingPeriod()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"Token.of_jsoninletfilters=field_mapjson__"Filters"ListAccountAssociationsFilter.of_jsoninletbillingPeriod=field_mapjson__"BillingPeriod"BillingPeriod.of_jsoninmake?nextToken?filters?billingPeriod()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"This is a paginated call to list linked accounts that are linked to the payer account for the specified time period. If no information is provided, the current billing period is used. The response will optionally include the billing group that's associated with the linked account."]moduleGetBillingGroupCostReportOutput=structtypenonrect={billingGroupCostReportResults:BillingGroupCostReportResultsList.toption[@ocaml.doc"The list of margin summary reports."];nextToken:Token.toption[@ocaml.doc"The pagination token used on subsequent calls to get reports."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?billingGroupCostReportResults=fun?nextToken->fun()->{billingGroupCostReportResults;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("BillingGroupCostReportResults",(Option.mapx.billingGroupCostReportResults~f:BillingGroupCostReportResultsList.to_value));("NextToken",(Option.mapx.nextToken~f:Token.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:Token.of_xml)(Xml.childxml_arg0"NextToken")inletbillingGroupCostReportResults=(Option.map~f:BillingGroupCostReportResultsList.of_xml)(Xml.childxml_arg0"BillingGroupCostReportResults")inmake?nextToken?billingGroupCostReportResults()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"Token.of_jsoninletbillingGroupCostReportResults=field_mapjson__"BillingGroupCostReportResults"BillingGroupCostReportResultsList.of_jsoninmake?nextToken?billingGroupCostReportResults()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Retrieves the margin summary report, which includes the Amazon Web Services cost and charged amount (pro forma cost) by Amazon Web Services service for a specific billing group."]moduleGetBillingGroupCostReportInput=structtypenonrect={arn:BillingGroupArn.t[@ocaml.doc"The Amazon Resource Number (ARN) that uniquely identifies the billing group."];billingPeriodRange:BillingPeriodRange.toption[@ocaml.doc"A time range for which the margin summary is effective. You can specify up to 12 months."];groupBy:GroupByAttributesList.toption[@ocaml.doc"A list of strings that specify the attributes that are used to break down costs in the margin summary reports for the billing group. For example, you can view your costs by the Amazon Web Services service name or the billing period."];maxResults:MaxBillingGroupCostReportResults.toption[@ocaml.doc"The maximum number of margin summary reports to retrieve."];nextToken:Token.toption[@ocaml.doc"The pagination token used on subsequent calls to get reports."]}letcontext_="GetBillingGroupCostReportInput"letmake?billingPeriodRange=fun?groupBy->fun?maxResults->fun?nextToken->fun~arn->fun()->{billingPeriodRange;groupBy;maxResults;nextToken;arn}letto_valuex=structure_to_value[("Arn",(Some(BillingGroupArn.to_valuex.arn)));("BillingPeriodRange",(Option.mapx.billingPeriodRange~f:BillingPeriodRange.to_value));("GroupBy",(Option.mapx.groupBy~f:GroupByAttributesList.to_value));("MaxResults",(Option.mapx.maxResults~f:MaxBillingGroupCostReportResults.to_value));("NextToken",(Option.mapx.nextToken~f:Token.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:Token.of_xml)(Xml.childxml_arg0"NextToken")inletmaxResults=(Option.map~f:MaxBillingGroupCostReportResults.of_xml)(Xml.childxml_arg0"MaxResults")inletgroupBy=(Option.map~f:GroupByAttributesList.of_xml)(Xml.childxml_arg0"GroupBy")inletbillingPeriodRange=(Option.map~f:BillingPeriodRange.of_xml)(Xml.childxml_arg0"BillingPeriodRange")inletarn=BillingGroupArn.of_xml(Xml.child_exn~context:context_xml_arg0"Arn")inmake?nextToken?maxResults?groupBy?billingPeriodRange~arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"Token.of_jsoninletmaxResults=field_mapjson__"MaxResults"MaxBillingGroupCostReportResults.of_jsoninletgroupBy=field_mapjson__"GroupBy"GroupByAttributesList.of_jsoninletbillingPeriodRange=field_mapjson__"BillingPeriodRange"BillingPeriodRange.of_jsoninletarn=field_map_exnjson__"Arn"BillingGroupArn.of_jsoninmake?nextToken?maxResults?groupBy?billingPeriodRange~arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Retrieves the margin summary report, which includes the Amazon Web Services cost and charged amount (pro forma cost) by Amazon Web Services service for a specific billing group."]moduleDisassociatePricingRulesOutput=structtypenonrect={arn:PricingPlanArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the pricing plan that the pricing rules successfully disassociated from."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?arn=fun()->{arn}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[("Arn",(Option.mapx.arn~f:PricingPlanArn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letarn=(Option.map~f:PricingPlanArn.of_xml)(Xml.childxml_arg0"Arn")inmake?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letarn=field_mapjson__"Arn"PricingPlanArn.of_jsoninmake?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Disassociates a list of pricing rules from a pricing plan."]moduleDisassociatePricingRulesInput=structtypenonrect={arn:PricingPlanArn.t[@ocaml.doc"The pricing plan Amazon Resource Name (ARN) to disassociate pricing rules from."];pricingRuleArns:PricingRuleArnsNonEmptyInput.t[@ocaml.doc"A list containing the Amazon Resource Name (ARN) of the pricing rules that will be disassociated."]}letcontext_="DisassociatePricingRulesInput"letmake~arn=fun~pricingRuleArns->fun()->{arn;pricingRuleArns}letto_valuex=structure_to_value[("Arn",(Some(PricingPlanArn.to_valuex.arn)));("PricingRuleArns",(Some(PricingRuleArnsNonEmptyInput.to_valuex.pricingRuleArns)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpricingRuleArns=PricingRuleArnsNonEmptyInput.of_xml(Xml.child_exn~context:context_xml_arg0"PricingRuleArns")inletarn=PricingPlanArn.of_xml(Xml.child_exn~context:context_xml_arg0"Arn")inmake~pricingRuleArns~arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpricingRuleArns=field_map_exnjson__"PricingRuleArns"PricingRuleArnsNonEmptyInput.of_jsoninletarn=field_map_exnjson__"Arn"PricingPlanArn.of_jsoninmake~pricingRuleArns~arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Disassociates a list of pricing rules from a pricing plan."]moduleDisassociateAccountsOutput=structtypenonrect={arn:BillingGroupArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the billing group that the array of account IDs is disassociated from."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?arn=fun()->{arn}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[("Arn",(Option.mapx.arn~f:BillingGroupArn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letarn=(Option.map~f:BillingGroupArn.of_xml)(Xml.childxml_arg0"Arn")inmake?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letarn=field_mapjson__"Arn"BillingGroupArn.of_jsoninmake?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Removes the specified list of account IDs from the given billing group."]moduleDisassociateAccountsInput=structtypenonrect={arn:BillingGroupArn.t[@ocaml.doc"The Amazon Resource Name (ARN) of the billing group that the array of account IDs will disassociate from."];accountIds:AccountIdList.t[@ocaml.doc"The array of account IDs to disassociate."]}letcontext_="DisassociateAccountsInput"letmake~arn=fun~accountIds->fun()->{arn;accountIds}letto_valuex=structure_to_value[("Arn",(Some(BillingGroupArn.to_valuex.arn)));("AccountIds",(Some(AccountIdList.to_valuex.accountIds)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letaccountIds=AccountIdList.of_xml(Xml.child_exn~context:context_xml_arg0"AccountIds")inletarn=BillingGroupArn.of_xml(Xml.child_exn~context:context_xml_arg0"Arn")inmake~accountIds~arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letaccountIds=field_map_exnjson__"AccountIds"AccountIdList.of_jsoninletarn=field_map_exnjson__"Arn"BillingGroupArn.of_jsoninmake~accountIds~arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Removes the specified list of account IDs from the given billing group."]moduleDeletePricingRuleOutput=structtypenonrect={arn:PricingRuleArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the deleted pricing rule."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?arn=fun()->{arn}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Arn",(Option.mapx.arn~f:PricingRuleArn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letarn=(Option.map~f:PricingRuleArn.of_xml)(Xml.childxml_arg0"Arn")inmake?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letarn=field_mapjson__"Arn"PricingRuleArn.of_jsoninmake?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes the pricing rule that's identified by the input Amazon Resource Name (ARN)."]moduleDeletePricingRuleInput=structtypenonrect={arn:PricingRuleArn.t[@ocaml.doc"The Amazon Resource Name (ARN) of the pricing rule that you are deleting."]}letcontext_="DeletePricingRuleInput"letmake~arn=fun()->{arn}letto_valuex=structure_to_value[("Arn",(Some(PricingRuleArn.to_valuex.arn)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letarn=PricingRuleArn.of_xml(Xml.child_exn~context:context_xml_arg0"Arn")inmake~arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letarn=field_map_exnjson__"Arn"PricingRuleArn.of_jsoninmake~arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes the pricing rule that's identified by the input Amazon Resource Name (ARN)."]moduleDeletePricingPlanOutput=structtypenonrect={arn:PricingPlanArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the deleted pricing plan."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?arn=fun()->{arn}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Arn",(Option.mapx.arn~f:PricingPlanArn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letarn=(Option.map~f:PricingPlanArn.of_xml)(Xml.childxml_arg0"Arn")inmake?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letarn=field_mapjson__"Arn"PricingPlanArn.of_jsoninmake?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a pricing plan. The pricing plan must not be associated with any billing groups to delete successfully."]moduleDeletePricingPlanInput=structtypenonrect={arn:PricingPlanArn.t[@ocaml.doc"The Amazon Resource Name (ARN) of the pricing plan that you're deleting."]}letcontext_="DeletePricingPlanInput"letmake~arn=fun()->{arn}letto_valuex=structure_to_value[("Arn",(Some(PricingPlanArn.to_valuex.arn)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letarn=PricingPlanArn.of_xml(Xml.child_exn~context:context_xml_arg0"Arn")inmake~arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letarn=field_map_exnjson__"Arn"PricingPlanArn.of_jsoninmake~arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a pricing plan. The pricing plan must not be associated with any billing groups to delete successfully."]moduleDeleteCustomLineItemOutput=structtypenonrect={arn:CustomLineItemArn.toption[@ocaml.doc"The ARN of the deleted custom line item."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?arn=fun()->{arn}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Arn",(Option.mapx.arn~f:CustomLineItemArn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letarn=(Option.map~f:CustomLineItemArn.of_xml)(Xml.childxml_arg0"Arn")inmake?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letarn=field_mapjson__"Arn"CustomLineItemArn.of_jsoninmake?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes the custom line item identified by the given ARN in the current, or previous billing period."]moduleDeleteCustomLineItemInput=structtypenonrect={arn:CustomLineItemArn.t[@ocaml.doc"The ARN of the custom line item to be deleted."];billingPeriodRange:CustomLineItemBillingPeriodRange.toption}letcontext_="DeleteCustomLineItemInput"letmake?billingPeriodRange=fun~arn->fun()->{billingPeriodRange;arn}letto_valuex=structure_to_value[("Arn",(Some(CustomLineItemArn.to_valuex.arn)));("BillingPeriodRange",(Option.mapx.billingPeriodRange~f:CustomLineItemBillingPeriodRange.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letbillingPeriodRange=(Option.map~f:CustomLineItemBillingPeriodRange.of_xml)(Xml.childxml_arg0"BillingPeriodRange")inletarn=CustomLineItemArn.of_xml(Xml.child_exn~context:context_xml_arg0"Arn")inmake?billingPeriodRange~arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letbillingPeriodRange=field_mapjson__"BillingPeriodRange"CustomLineItemBillingPeriodRange.of_jsoninletarn=field_map_exnjson__"Arn"CustomLineItemArn.of_jsoninmake?billingPeriodRange~arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes the custom line item identified by the given ARN in the current, or previous billing period."]moduleDeleteBillingGroupOutput=structtypenonrect={arn:BillingGroupArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the deleted billing group."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?arn=fun()->{arn}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Arn",(Option.mapx.arn~f:BillingGroupArn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letarn=(Option.map~f:BillingGroupArn.of_xml)(Xml.childxml_arg0"Arn")inmake?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letarn=field_mapjson__"Arn"BillingGroupArn.of_jsoninmake?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a billing group."]moduleDeleteBillingGroupInput=structtypenonrect={arn:BillingGroupArn.t[@ocaml.doc"The Amazon Resource Name (ARN) of the billing group that you're deleting."]}letcontext_="DeleteBillingGroupInput"letmake~arn=fun()->{arn}letto_valuex=structure_to_value[("Arn",(Some(BillingGroupArn.to_valuex.arn)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letarn=BillingGroupArn.of_xml(Xml.child_exn~context:context_xml_arg0"Arn")inmake~arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letarn=field_map_exnjson__"Arn"BillingGroupArn.of_jsoninmake~arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a billing group."]moduleCreatePricingRuleOutput=structtypenonrect={arn:PricingRuleArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the created pricing rule."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ServiceLimitExceededExceptionofServiceLimitExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?arn=fun()->{arn}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ServiceLimitExceededException"->`ServiceLimitExceededException(ServiceLimitExceededException.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)|"ServiceLimitExceededException"->`ServiceLimitExceededException(ServiceLimitExceededException.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))]|`ServiceLimitExceededExceptione->`Assoc[("error",(`String"ServiceLimitExceededException"));("details",(ServiceLimitExceededException.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[("Arn",(Option.mapx.arn~f:PricingRuleArn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letarn=(Option.map~f:PricingRuleArn.of_xml)(Xml.childxml_arg0"Arn")inmake?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letarn=field_mapjson__"Arn"PricingRuleArn.of_jsoninmake?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a pricing rule can be associated to a pricing plan, or a set of pricing plans."]moduleCreatePricingRuleInput=structtypenonrect={clientToken:ClientToken.toption[@ocaml.doc"A unique, case-sensitive identifier that you specify to ensure idempotency of the request. Idempotency ensures that an API request completes no more than one time. With an idempotent request, if the original request completes successfully, any subsequent retries complete successfully without performing any further actions."];name:PricingRuleName.t[@ocaml.doc"The pricing rule name. The names must be unique to each pricing rule."];description:PricingRuleDescription.toption[@ocaml.doc"The pricing rule description."];scope:PricingRuleScope.t[@ocaml.doc"The scope of pricing rule that indicates if it's globally applicable, or it's service-specific."];type_:PricingRuleType.t[@ocaml.doc"The type of pricing rule."];modifierPercentage:ModifierPercentage.toption[@ocaml.doc"A percentage modifier that's applied on the public pricing rates. Your entry will be rounded to the nearest 2 decimal places."];service:Service.toption[@ocaml.doc"If the Scope attribute is set to SERVICE or SKU, the attribute indicates which service the PricingRule is applicable for."];tags:TagMap.toption[@ocaml.doc"A map that contains tag keys and tag values that are attached to a pricing rule."];billingEntity:BillingEntity.toption[@ocaml.doc"The seller of services provided by Amazon Web Services, their affiliates, or third-party providers selling services via Amazon Web Services Marketplace."];tiering:CreateTieringInput.toption[@ocaml.doc"The set of tiering configurations for the pricing rule."];usageType:UsageType.toption[@ocaml.doc"Usage type is the unit that each service uses to measure the usage of a specific type of resource. If the Scope attribute is set to SKU, this attribute indicates which usage type the PricingRule is modifying. For example, USW2-BoxUsage:m2.2xlarge describes an M2 High Memory Double Extra Large instance in the US West (Oregon) Region."];operation:Operation.toption[@ocaml.doc"Operation is the specific Amazon Web Services action covered by this line item. This describes the specific usage of the line item. If the Scope attribute is set to SKU, this attribute indicates which operation the PricingRule is modifying. For example, a value of RunInstances:0202 indicates the operation of running an Amazon EC2 instance."]}letcontext_="CreatePricingRuleInput"letmake?clientToken=fun?description->fun?modifierPercentage->fun?service->fun?tags->fun?billingEntity->fun?tiering->fun?usageType->fun?operation->fun~name->fun~scope->fun~type_->fun()->{clientToken;description;modifierPercentage;service;tags;billingEntity;tiering;usageType;operation;name;scope;type_}letto_valuex=structure_to_value[("X-Amzn-Client-Token",(Option.mapx.clientToken~f:ClientToken.to_value));("Name",(Some(PricingRuleName.to_valuex.name)));("Description",(Option.mapx.description~f:PricingRuleDescription.to_value));("Scope",(Some(PricingRuleScope.to_valuex.scope)));("Type",(Some(PricingRuleType.to_valuex.type_)));("ModifierPercentage",(Option.mapx.modifierPercentage~f:ModifierPercentage.to_value));("Service",(Option.mapx.service~f:Service.to_value));("Tags",(Option.mapx.tags~f:TagMap.to_value));("BillingEntity",(Option.mapx.billingEntity~f:BillingEntity.to_value));("Tiering",(Option.mapx.tiering~f:CreateTieringInput.to_value));("UsageType",(Option.mapx.usageType~f:UsageType.to_value));("Operation",(Option.mapx.operation~f:Operation.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letoperation=(Option.map~f:Operation.of_xml)(Xml.childxml_arg0"Operation")inletusageType=(Option.map~f:UsageType.of_xml)(Xml.childxml_arg0"UsageType")inlettiering=(Option.map~f:CreateTieringInput.of_xml)(Xml.childxml_arg0"Tiering")inletbillingEntity=(Option.map~f:BillingEntity.of_xml)(Xml.childxml_arg0"BillingEntity")inlettags=(Option.map~f:TagMap.of_xml)(Xml.childxml_arg0"Tags")inletservice=(Option.map~f:Service.of_xml)(Xml.childxml_arg0"Service")inletmodifierPercentage=(Option.map~f:ModifierPercentage.of_xml)(Xml.childxml_arg0"ModifierPercentage")inlettype_=PricingRuleType.of_xml(Xml.child_exn~context:context_xml_arg0"Type")inletscope=PricingRuleScope.of_xml(Xml.child_exn~context:context_xml_arg0"Scope")inletdescription=(Option.map~f:PricingRuleDescription.of_xml)(Xml.childxml_arg0"Description")inletname=PricingRuleName.of_xml(Xml.child_exn~context:context_xml_arg0"Name")inletclientToken=(Option.map~f:ClientToken.of_xml)(Xml.childxml_arg0"X-Amzn-Client-Token")inmake?operation?usageType?tiering?billingEntity?tags?service?modifierPercentage~type_~scope?description~name?clientToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letoperation=field_mapjson__"Operation"Operation.of_jsoninletusageType=field_mapjson__"UsageType"UsageType.of_jsoninlettiering=field_mapjson__"Tiering"CreateTieringInput.of_jsoninletbillingEntity=field_mapjson__"BillingEntity"BillingEntity.of_jsoninlettags=field_mapjson__"Tags"TagMap.of_jsoninletservice=field_mapjson__"Service"Service.of_jsoninletmodifierPercentage=field_mapjson__"ModifierPercentage"ModifierPercentage.of_jsoninlettype_=field_map_exnjson__"Type"PricingRuleType.of_jsoninletscope=field_map_exnjson__"Scope"PricingRuleScope.of_jsoninletdescription=field_mapjson__"Description"PricingRuleDescription.of_jsoninletname=field_map_exnjson__"Name"PricingRuleName.of_jsoninletclientToken=field_mapjson__"ClientToken"ClientToken.of_jsoninmake?operation?usageType?tiering?billingEntity?tags?service?modifierPercentage~type_~scope?description~name?clientToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a pricing rule can be associated to a pricing plan, or a set of pricing plans."]moduleCreatePricingPlanOutput=structtypenonrect={arn:PricingPlanArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the created pricing plan."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceLimitExceededExceptionofServiceLimitExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?arn=fun()->{arn}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceLimitExceededException"->`ServiceLimitExceededException(ServiceLimitExceededException.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)|"ServiceLimitExceededException"->`ServiceLimitExceededException(ServiceLimitExceededException.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))]|`ServiceLimitExceededExceptione->`Assoc[("error",(`String"ServiceLimitExceededException"));("details",(ServiceLimitExceededException.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[("Arn",(Option.mapx.arn~f:PricingPlanArn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letarn=(Option.map~f:PricingPlanArn.of_xml)(Xml.childxml_arg0"Arn")inmake?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letarn=field_mapjson__"Arn"PricingPlanArn.of_jsoninmake?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a pricing plan that is used for computing Amazon Web Services charges for billing groups."]moduleCreatePricingPlanInput=structtypenonrect={clientToken:ClientToken.toption[@ocaml.doc"A unique, case-sensitive identifier that you specify to ensure idempotency of the request. Idempotency ensures that an API request completes no more than one time. With an idempotent request, if the original request completes successfully, any subsequent retries complete successfully without performing any further actions."];name:PricingPlanName.t[@ocaml.doc"The name of the pricing plan. The names must be unique to each pricing plan."];description:PricingPlanDescription.toption[@ocaml.doc"The description of the pricing plan."];pricingRuleArns:PricingRuleArnsInput.toption[@ocaml.doc"A list of Amazon Resource Names (ARNs) that define the pricing plan parameters."];tags:TagMap.toption[@ocaml.doc"A map that contains tag keys and tag values that are attached to a pricing plan."]}letcontext_="CreatePricingPlanInput"letmake?clientToken=fun?description->fun?pricingRuleArns->fun?tags->fun~name->fun()->{clientToken;description;pricingRuleArns;tags;name}letto_valuex=structure_to_value[("X-Amzn-Client-Token",(Option.mapx.clientToken~f:ClientToken.to_value));("Name",(Some(PricingPlanName.to_valuex.name)));("Description",(Option.mapx.description~f:PricingPlanDescription.to_value));("PricingRuleArns",(Option.mapx.pricingRuleArns~f:PricingRuleArnsInput.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")inletpricingRuleArns=(Option.map~f:PricingRuleArnsInput.of_xml)(Xml.childxml_arg0"PricingRuleArns")inletdescription=(Option.map~f:PricingPlanDescription.of_xml)(Xml.childxml_arg0"Description")inletname=PricingPlanName.of_xml(Xml.child_exn~context:context_xml_arg0"Name")inletclientToken=(Option.map~f:ClientToken.of_xml)(Xml.childxml_arg0"X-Amzn-Client-Token")inmake?tags?pricingRuleArns?description~name?clientToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"Tags"TagMap.of_jsoninletpricingRuleArns=field_mapjson__"PricingRuleArns"PricingRuleArnsInput.of_jsoninletdescription=field_mapjson__"Description"PricingPlanDescription.of_jsoninletname=field_map_exnjson__"Name"PricingPlanName.of_jsoninletclientToken=field_mapjson__"ClientToken"ClientToken.of_jsoninmake?tags?pricingRuleArns?description~name?clientToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a pricing plan that is used for computing Amazon Web Services charges for billing groups."]moduleCreateCustomLineItemOutput=structtypenonrect={arn:CustomLineItemArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the created custom line item."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ServiceLimitExceededExceptionofServiceLimitExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?arn=fun()->{arn}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ServiceLimitExceededException"->`ServiceLimitExceededException(ServiceLimitExceededException.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)|"ServiceLimitExceededException"->`ServiceLimitExceededException(ServiceLimitExceededException.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))]|`ServiceLimitExceededExceptione->`Assoc[("error",(`String"ServiceLimitExceededException"));("details",(ServiceLimitExceededException.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[("Arn",(Option.mapx.arn~f:CustomLineItemArn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letarn=(Option.map~f:CustomLineItemArn.of_xml)(Xml.childxml_arg0"Arn")inmake?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letarn=field_mapjson__"Arn"CustomLineItemArn.of_jsoninmake?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a custom line item that can be used to create a one-time fixed charge that can be applied to a single billing group for the current or previous billing period. The one-time fixed charge is either a fee or discount."]moduleCreateCustomLineItemInput=structtypenonrect={clientToken:ClientToken.toption[@ocaml.doc"A unique, case-sensitive identifier that you specify to ensure idempotency of the request. Idempotency ensures that an API request completes no more than one time. With an idempotent request, if the original request completes successfully, any subsequent retries complete successfully without performing any further actions."];name:CustomLineItemName.t[@ocaml.doc"The name of the custom line item."];description:CustomLineItemDescription.t[@ocaml.doc"The description of the custom line item. This is shown on the Bills page in association with the charge value."];billingGroupArn:BillingGroupArn.t[@ocaml.doc"The Amazon Resource Name (ARN) that references the billing group where the custom line item applies to."];billingPeriodRange:CustomLineItemBillingPeriodRange.toption[@ocaml.doc"A time range for which the custom line item is effective."];tags:TagMap.toption[@ocaml.doc"A map that contains tag keys and tag values that are attached to a custom line item."];chargeDetails:CustomLineItemChargeDetails.t[@ocaml.doc"A CustomLineItemChargeDetails that describes the charge details for a custom line item."];accountId:AccountId.toption[@ocaml.doc"The Amazon Web Services account in which this custom line item will be applied to."];computationRule:ComputationRuleEnum.toption[@ocaml.doc"Specifies how the custom line item charges are computed."];presentationDetails:PresentationObject.toption[@ocaml.doc"Details controlling how the custom line item charges are presented in the bill. Contains specifications for which service the charges will be shown under."]}letcontext_="CreateCustomLineItemInput"letmake?clientToken=fun?billingPeriodRange->fun?tags->fun?accountId->fun?computationRule->fun?presentationDetails->fun~name->fun~description->fun~billingGroupArn->fun~chargeDetails->fun()->{clientToken;billingPeriodRange;tags;accountId;computationRule;presentationDetails;name;description;billingGroupArn;chargeDetails}letto_valuex=structure_to_value[("X-Amzn-Client-Token",(Option.mapx.clientToken~f:ClientToken.to_value));("Name",(Some(CustomLineItemName.to_valuex.name)));("Description",(Some(CustomLineItemDescription.to_valuex.description)));("BillingGroupArn",(Some(BillingGroupArn.to_valuex.billingGroupArn)));("BillingPeriodRange",(Option.mapx.billingPeriodRange~f:CustomLineItemBillingPeriodRange.to_value));("Tags",(Option.mapx.tags~f:TagMap.to_value));("ChargeDetails",(Some(CustomLineItemChargeDetails.to_valuex.chargeDetails)));("AccountId",(Option.mapx.accountId~f:AccountId.to_value));("ComputationRule",(Option.mapx.computationRule~f:ComputationRuleEnum.to_value));("PresentationDetails",(Option.mapx.presentationDetails~f:PresentationObject.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpresentationDetails=(Option.map~f:PresentationObject.of_xml)(Xml.childxml_arg0"PresentationDetails")inletcomputationRule=(Option.map~f:ComputationRuleEnum.of_xml)(Xml.childxml_arg0"ComputationRule")inletaccountId=(Option.map~f:AccountId.of_xml)(Xml.childxml_arg0"AccountId")inletchargeDetails=CustomLineItemChargeDetails.of_xml(Xml.child_exn~context:context_xml_arg0"ChargeDetails")inlettags=(Option.map~f:TagMap.of_xml)(Xml.childxml_arg0"Tags")inletbillingPeriodRange=(Option.map~f:CustomLineItemBillingPeriodRange.of_xml)(Xml.childxml_arg0"BillingPeriodRange")inletbillingGroupArn=BillingGroupArn.of_xml(Xml.child_exn~context:context_xml_arg0"BillingGroupArn")inletdescription=CustomLineItemDescription.of_xml(Xml.child_exn~context:context_xml_arg0"Description")inletname=CustomLineItemName.of_xml(Xml.child_exn~context:context_xml_arg0"Name")inletclientToken=(Option.map~f:ClientToken.of_xml)(Xml.childxml_arg0"X-Amzn-Client-Token")inmake?presentationDetails?computationRule?accountId~chargeDetails?tags?billingPeriodRange~billingGroupArn~description~name?clientToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpresentationDetails=field_mapjson__"PresentationDetails"PresentationObject.of_jsoninletcomputationRule=field_mapjson__"ComputationRule"ComputationRuleEnum.of_jsoninletaccountId=field_mapjson__"AccountId"AccountId.of_jsoninletchargeDetails=field_map_exnjson__"ChargeDetails"CustomLineItemChargeDetails.of_jsoninlettags=field_mapjson__"Tags"TagMap.of_jsoninletbillingPeriodRange=field_mapjson__"BillingPeriodRange"CustomLineItemBillingPeriodRange.of_jsoninletbillingGroupArn=field_map_exnjson__"BillingGroupArn"BillingGroupArn.of_jsoninletdescription=field_map_exnjson__"Description"CustomLineItemDescription.of_jsoninletname=field_map_exnjson__"Name"CustomLineItemName.of_jsoninletclientToken=field_mapjson__"ClientToken"ClientToken.of_jsoninmake?presentationDetails?computationRule?accountId~chargeDetails?tags?billingPeriodRange~billingGroupArn~description~name?clientToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a custom line item that can be used to create a one-time fixed charge that can be applied to a single billing group for the current or previous billing period. The one-time fixed charge is either a fee or discount."]moduleCreateBillingGroupOutput=structtypenonrect={arn:BillingGroupArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the created billing group."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ServiceLimitExceededExceptionofServiceLimitExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?arn=fun()->{arn}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ServiceLimitExceededException"->`ServiceLimitExceededException(ServiceLimitExceededException.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)|"ServiceLimitExceededException"->`ServiceLimitExceededException(ServiceLimitExceededException.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))]|`ServiceLimitExceededExceptione->`Assoc[("error",(`String"ServiceLimitExceededException"));("details",(ServiceLimitExceededException.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[("Arn",(Option.mapx.arn~f:BillingGroupArn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letarn=(Option.map~f:BillingGroupArn.of_xml)(Xml.childxml_arg0"Arn")inmake?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letarn=field_mapjson__"Arn"BillingGroupArn.of_jsoninmake?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a billing group that resembles a consolidated billing family that Amazon Web Services charges, based off of the predefined pricing plan computation."]moduleCreateBillingGroupInput=structtypenonrect={clientToken:ClientToken.toption[@ocaml.doc"A unique, case-sensitive identifier that you specify to ensure idempotency of the request. Idempotency ensures that an API request completes no more than one time. With an idempotent request, if the original request completes successfully, any subsequent retries complete successfully without performing any further actions."];name:BillingGroupName.t[@ocaml.doc"The billing group name. The names must be unique."];accountGrouping:AccountGrouping.t[@ocaml.doc"The set of accounts that will be under the billing group. The set of accounts resemble the linked accounts in a consolidated billing family."];computationPreference:ComputationPreference.t[@ocaml.doc"The preferences and settings that will be used to compute the Amazon Web Services charges for a billing group."];primaryAccountId:AccountId.toption[@ocaml.doc"The account ID that serves as the main account in a billing group."];description:BillingGroupDescription.toption[@ocaml.doc"The description of the billing group."];tags:TagMap.toption[@ocaml.doc"A map that contains tag keys and tag values that are attached to a billing group. This feature isn't available during the beta."]}letcontext_="CreateBillingGroupInput"letmake?clientToken=fun?primaryAccountId->fun?description->fun?tags->fun~name->fun~accountGrouping->fun~computationPreference->fun()->{clientToken;primaryAccountId;description;tags;name;accountGrouping;computationPreference}letto_valuex=structure_to_value[("X-Amzn-Client-Token",(Option.mapx.clientToken~f:ClientToken.to_value));("Name",(Some(BillingGroupName.to_valuex.name)));("AccountGrouping",(Some(AccountGrouping.to_valuex.accountGrouping)));("ComputationPreference",(Some(ComputationPreference.to_valuex.computationPreference)));("PrimaryAccountId",(Option.mapx.primaryAccountId~f:AccountId.to_value));("Description",(Option.mapx.description~f:BillingGroupDescription.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")inletdescription=(Option.map~f:BillingGroupDescription.of_xml)(Xml.childxml_arg0"Description")inletprimaryAccountId=(Option.map~f:AccountId.of_xml)(Xml.childxml_arg0"PrimaryAccountId")inletcomputationPreference=ComputationPreference.of_xml(Xml.child_exn~context:context_xml_arg0"ComputationPreference")inletaccountGrouping=AccountGrouping.of_xml(Xml.child_exn~context:context_xml_arg0"AccountGrouping")inletname=BillingGroupName.of_xml(Xml.child_exn~context:context_xml_arg0"Name")inletclientToken=(Option.map~f:ClientToken.of_xml)(Xml.childxml_arg0"X-Amzn-Client-Token")inmake?tags?description?primaryAccountId~computationPreference~accountGrouping~name?clientToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"Tags"TagMap.of_jsoninletdescription=field_mapjson__"Description"BillingGroupDescription.of_jsoninletprimaryAccountId=field_mapjson__"PrimaryAccountId"AccountId.of_jsoninletcomputationPreference=field_map_exnjson__"ComputationPreference"ComputationPreference.of_jsoninletaccountGrouping=field_map_exnjson__"AccountGrouping"AccountGrouping.of_jsoninletname=field_map_exnjson__"Name"BillingGroupName.of_jsoninletclientToken=field_mapjson__"ClientToken"ClientToken.of_jsoninmake?tags?description?primaryAccountId~computationPreference~accountGrouping~name?clientToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a billing group that resembles a consolidated billing family that Amazon Web Services charges, based off of the predefined pricing plan computation."]moduleBatchDisassociateResourcesFromCustomLineItemOutput=structtypenonrect={successfullyDisassociatedResources:DisassociateResourcesResponseList.toption[@ocaml.doc"A list of DisassociateResourceResponseElement for each resource that's been disassociated from a percentage custom line item successfully."];failedDisassociatedResources:DisassociateResourcesResponseList.toption[@ocaml.doc"A list of DisassociateResourceResponseElement for each resource that failed disassociation from a percentage custom line item."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?successfullyDisassociatedResources=fun?failedDisassociatedResources->fun()->{successfullyDisassociatedResources;failedDisassociatedResources}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[("SuccessfullyDisassociatedResources",(Option.mapx.successfullyDisassociatedResources~f:DisassociateResourcesResponseList.to_value));("FailedDisassociatedResources",(Option.mapx.failedDisassociatedResources~f:DisassociateResourcesResponseList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfailedDisassociatedResources=(Option.map~f:DisassociateResourcesResponseList.of_xml)(Xml.childxml_arg0"FailedDisassociatedResources")inletsuccessfullyDisassociatedResources=(Option.map~f:DisassociateResourcesResponseList.of_xml)(Xml.childxml_arg0"SuccessfullyDisassociatedResources")inmake?failedDisassociatedResources?successfullyDisassociatedResources()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfailedDisassociatedResources=field_mapjson__"FailedDisassociatedResources"DisassociateResourcesResponseList.of_jsoninletsuccessfullyDisassociatedResources=field_mapjson__"SuccessfullyDisassociatedResources"DisassociateResourcesResponseList.of_jsoninmake?failedDisassociatedResources?successfullyDisassociatedResources()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Disassociates a batch of resources from a percentage custom line item."]moduleBatchDisassociateResourcesFromCustomLineItemInput=structtypenonrect={targetArn:CustomLineItemArn.t[@ocaml.doc"A percentage custom line item ARN to disassociate the resources from."];resourceArns:CustomLineItemBatchDisassociationsList.t[@ocaml.doc"A list containing the ARNs of resources to be disassociated."];billingPeriodRange:CustomLineItemBillingPeriodRange.toption}letcontext_="BatchDisassociateResourcesFromCustomLineItemInput"letmake?billingPeriodRange=fun~targetArn->fun~resourceArns->fun()->{billingPeriodRange;targetArn;resourceArns}letto_valuex=structure_to_value[("TargetArn",(Some(CustomLineItemArn.to_valuex.targetArn)));("ResourceArns",(Some(CustomLineItemBatchDisassociationsList.to_valuex.resourceArns)));("BillingPeriodRange",(Option.mapx.billingPeriodRange~f:CustomLineItemBillingPeriodRange.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letbillingPeriodRange=(Option.map~f:CustomLineItemBillingPeriodRange.of_xml)(Xml.childxml_arg0"BillingPeriodRange")inletresourceArns=CustomLineItemBatchDisassociationsList.of_xml(Xml.child_exn~context:context_xml_arg0"ResourceArns")inlettargetArn=CustomLineItemArn.of_xml(Xml.child_exn~context:context_xml_arg0"TargetArn")inmake?billingPeriodRange~resourceArns~targetArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letbillingPeriodRange=field_mapjson__"BillingPeriodRange"CustomLineItemBillingPeriodRange.of_jsoninletresourceArns=field_map_exnjson__"ResourceArns"CustomLineItemBatchDisassociationsList.of_jsoninlettargetArn=field_map_exnjson__"TargetArn"CustomLineItemArn.of_jsoninmake?billingPeriodRange~resourceArns~targetArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Disassociates a batch of resources from a percentage custom line item."]moduleBatchAssociateResourcesToCustomLineItemOutput=structtypenonrect={successfullyAssociatedResources:AssociateResourcesResponseList.toption[@ocaml.doc"A list of AssociateResourceResponseElement for each resource that's been associated to a percentage custom line item successfully."];failedAssociatedResources:AssociateResourcesResponseList.toption[@ocaml.doc"A list of AssociateResourceResponseElement for each resource that failed association to a percentage custom line item."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceLimitExceededExceptionofServiceLimitExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?successfullyAssociatedResources=fun?failedAssociatedResources->fun()->{successfullyAssociatedResources;failedAssociatedResources}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceLimitExceededException"->`ServiceLimitExceededException(ServiceLimitExceededException.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)|"ServiceLimitExceededException"->`ServiceLimitExceededException(ServiceLimitExceededException.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))]|`ServiceLimitExceededExceptione->`Assoc[("error",(`String"ServiceLimitExceededException"));("details",(ServiceLimitExceededException.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[("SuccessfullyAssociatedResources",(Option.mapx.successfullyAssociatedResources~f:AssociateResourcesResponseList.to_value));("FailedAssociatedResources",(Option.mapx.failedAssociatedResources~f:AssociateResourcesResponseList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfailedAssociatedResources=(Option.map~f:AssociateResourcesResponseList.of_xml)(Xml.childxml_arg0"FailedAssociatedResources")inletsuccessfullyAssociatedResources=(Option.map~f:AssociateResourcesResponseList.of_xml)(Xml.childxml_arg0"SuccessfullyAssociatedResources")inmake?failedAssociatedResources?successfullyAssociatedResources()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfailedAssociatedResources=field_mapjson__"FailedAssociatedResources"AssociateResourcesResponseList.of_jsoninletsuccessfullyAssociatedResources=field_mapjson__"SuccessfullyAssociatedResources"AssociateResourcesResponseList.of_jsoninmake?failedAssociatedResources?successfullyAssociatedResources()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Associates a batch of resources to a percentage custom line item."]moduleBatchAssociateResourcesToCustomLineItemInput=structtypenonrect={targetArn:CustomLineItemArn.t[@ocaml.doc"A percentage custom line item ARN to associate the resources to."];resourceArns:CustomLineItemBatchAssociationsList.t[@ocaml.doc"A list containing the ARNs of the resources to be associated."];billingPeriodRange:CustomLineItemBillingPeriodRange.toption}letcontext_="BatchAssociateResourcesToCustomLineItemInput"letmake?billingPeriodRange=fun~targetArn->fun~resourceArns->fun()->{billingPeriodRange;targetArn;resourceArns}letto_valuex=structure_to_value[("TargetArn",(Some(CustomLineItemArn.to_valuex.targetArn)));("ResourceArns",(Some(CustomLineItemBatchAssociationsList.to_valuex.resourceArns)));("BillingPeriodRange",(Option.mapx.billingPeriodRange~f:CustomLineItemBillingPeriodRange.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letbillingPeriodRange=(Option.map~f:CustomLineItemBillingPeriodRange.of_xml)(Xml.childxml_arg0"BillingPeriodRange")inletresourceArns=CustomLineItemBatchAssociationsList.of_xml(Xml.child_exn~context:context_xml_arg0"ResourceArns")inlettargetArn=CustomLineItemArn.of_xml(Xml.child_exn~context:context_xml_arg0"TargetArn")inmake?billingPeriodRange~resourceArns~targetArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letbillingPeriodRange=field_mapjson__"BillingPeriodRange"CustomLineItemBillingPeriodRange.of_jsoninletresourceArns=field_map_exnjson__"ResourceArns"CustomLineItemBatchAssociationsList.of_jsoninlettargetArn=field_map_exnjson__"TargetArn"CustomLineItemArn.of_jsoninmake?billingPeriodRange~resourceArns~targetArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Associates a batch of resources to a percentage custom line item."]moduleAssociatePricingRulesOutput=structtypenonrect={arn:PricingPlanArn.toption[@ocaml.doc"The PricingPlanArn that the PricingRuleArns are associated with."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceLimitExceededExceptionofServiceLimitExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?arn=fun()->{arn}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceLimitExceededException"->`ServiceLimitExceededException(ServiceLimitExceededException.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)|"ServiceLimitExceededException"->`ServiceLimitExceededException(ServiceLimitExceededException.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))]|`ServiceLimitExceededExceptione->`Assoc[("error",(`String"ServiceLimitExceededException"));("details",(ServiceLimitExceededException.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[("Arn",(Option.mapx.arn~f:PricingPlanArn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letarn=(Option.map~f:PricingPlanArn.of_xml)(Xml.childxml_arg0"Arn")inmake?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letarn=field_mapjson__"Arn"PricingPlanArn.of_jsoninmake?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Connects an array of PricingRuleArns to a defined PricingPlan. The maximum number PricingRuleArn that can be associated in one call is 30."]moduleAssociatePricingRulesInput=structtypenonrect={arn:PricingPlanArn.t[@ocaml.doc"The PricingPlanArn that the PricingRuleArns are associated with."];pricingRuleArns:PricingRuleArnsNonEmptyInput.t[@ocaml.doc"The PricingRuleArns that are associated with the Pricing Plan."]}letcontext_="AssociatePricingRulesInput"letmake~arn=fun~pricingRuleArns->fun()->{arn;pricingRuleArns}letto_valuex=structure_to_value[("Arn",(Some(PricingPlanArn.to_valuex.arn)));("PricingRuleArns",(Some(PricingRuleArnsNonEmptyInput.to_valuex.pricingRuleArns)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpricingRuleArns=PricingRuleArnsNonEmptyInput.of_xml(Xml.child_exn~context:context_xml_arg0"PricingRuleArns")inletarn=PricingPlanArn.of_xml(Xml.child_exn~context:context_xml_arg0"Arn")inmake~pricingRuleArns~arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpricingRuleArns=field_map_exnjson__"PricingRuleArns"PricingRuleArnsNonEmptyInput.of_jsoninletarn=field_map_exnjson__"Arn"PricingPlanArn.of_jsoninmake~pricingRuleArns~arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Connects an array of PricingRuleArns to a defined PricingPlan. The maximum number PricingRuleArn that can be associated in one call is 30."]moduleAssociateAccountsOutput=structtypenonrect={arn:BillingGroupArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the billing group that associates the array of account IDs."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceLimitExceededExceptionofServiceLimitExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?arn=fun()->{arn}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceLimitExceededException"->`ServiceLimitExceededException(ServiceLimitExceededException.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)|"ServiceLimitExceededException"->`ServiceLimitExceededException(ServiceLimitExceededException.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))]|`ServiceLimitExceededExceptione->`Assoc[("error",(`String"ServiceLimitExceededException"));("details",(ServiceLimitExceededException.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[("Arn",(Option.mapx.arn~f:BillingGroupArn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letarn=(Option.map~f:BillingGroupArn.of_xml)(Xml.childxml_arg0"Arn")inmake?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letarn=field_mapjson__"Arn"BillingGroupArn.of_jsoninmake?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Connects an array of account IDs in a consolidated billing family to a predefined billing group. The account IDs must be a part of the consolidated billing family during the current month, and not already associated with another billing group. The maximum number of accounts that can be associated in one call is 30."]moduleAssociateAccountsInput=structtypenonrect={arn:BillingGroupArn.t[@ocaml.doc"The Amazon Resource Name (ARN) of the billing group that associates the array of account IDs."];accountIds:AccountIdList.t[@ocaml.doc"The associating array of account IDs."]}letcontext_="AssociateAccountsInput"letmake~arn=fun~accountIds->fun()->{arn;accountIds}letto_valuex=structure_to_value[("Arn",(Some(BillingGroupArn.to_valuex.arn)));("AccountIds",(Some(AccountIdList.to_valuex.accountIds)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letaccountIds=AccountIdList.of_xml(Xml.child_exn~context:context_xml_arg0"AccountIds")inletarn=BillingGroupArn.of_xml(Xml.child_exn~context:context_xml_arg0"Arn")inmake~accountIds~arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letaccountIds=field_map_exnjson__"AccountIds"AccountIdList.of_jsoninletarn=field_map_exnjson__"Arn"BillingGroupArn.of_jsoninmake~accountIds~arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Connects an array of account IDs in a consolidated billing family to a predefined billing group. The account IDs must be a part of the consolidated billing family during the current month, and not already associated with another billing group. The maximum number of accounts that can be associated in one call is 30."]