123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748(* 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.glacierletapiVersion="2012-06-01"letendpointPrefix="glacier"letserviceFullName="Amazon Glacier"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[]))])moduleType=structtypenonrect=|AmazonCustomerByEmail|CanonicalUser|Group|Non_static_idofstringletmakei=iletto_string=function|AmazonCustomerByEmail->"AmazonCustomerByEmail"|CanonicalUser->"CanonicalUser"|Group->"Group"|Non_static_ids->sletof_string=function|"AmazonCustomerByEmail"->AmazonCustomerByEmail|"CanonicalUser"->CanonicalUser|"Group"->Group|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration Type"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"Type"j)letto_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_valueendmoduleGrantee=structtypenonrect={type_:Type.t[@ocaml.doc"Type of grantee"];displayName:String_.toption[@ocaml.doc"Screen name of the grantee."];uRI:String_.toption[@ocaml.doc"URI of the grantee group."];iD:String_.toption[@ocaml.doc"The canonical user ID of the grantee."];emailAddress:String_.toption[@ocaml.doc"Email address of the grantee."]}letcontext_="Grantee"letmake?displayName=fun?uRI->fun?iD->fun?emailAddress->fun~type_->fun()->{displayName;uRI;iD;emailAddress;type_}letto_valuex=structure_to_value[("Type",(Some(Type.to_valuex.type_)));("DisplayName",(Option.mapx.displayName~f:String_.to_value));("URI",(Option.mapx.uRI~f:String_.to_value));("ID",(Option.mapx.iD~f:String_.to_value));("EmailAddress",(Option.mapx.emailAddress~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letemailAddress=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"EmailAddress")inletiD=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ID")inletuRI=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"URI")inletdisplayName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"DisplayName")inlettype_=Type.of_xml(Xml.child_exn~context:context_xml_arg0"Type")inmake?emailAddress?iD?uRI?displayName~type_()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letemailAddress=field_mapjson__"EmailAddress"String_.of_jsoninletiD=field_mapjson__"ID"String_.of_jsoninletuRI=field_mapjson__"URI"String_.of_jsoninletdisplayName=field_mapjson__"DisplayName"String_.of_jsoninlettype_=field_map_exnjson__"Type"Type.of_jsoninmake?emailAddress?iD?uRI?displayName~type_()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains information about the grantee."]modulePermission=structtypenonrect=|FULL_CONTROL|WRITE|WRITE_ACP|READ|READ_ACP|Non_static_idofstringletmakei=iletto_string=function|FULL_CONTROL->"FULL_CONTROL"|WRITE->"WRITE"|WRITE_ACP->"WRITE_ACP"|READ->"READ"|READ_ACP->"READ_ACP"|Non_static_ids->sletof_string=function|"FULL_CONTROL"->FULL_CONTROL|"WRITE"->WRITE|"WRITE_ACP"->WRITE_ACP|"READ"->READ|"READ_ACP"->READ_ACP|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 Permission"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"Permission"j)letto_json=simple_to_jsonto_valueendmoduleGrant=structtypenonrect={grantee:Grantee.toption[@ocaml.doc"The grantee."];permission:Permission.toption[@ocaml.doc"Specifies the permission given to the grantee."]}letmake?grantee=fun?permission->fun()->{grantee;permission}letto_valuex=structure_to_value[("Grantee",(Option.mapx.grantee~f:Grantee.to_value));("Permission",(Option.mapx.permission~f:Permission.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpermission=(Option.map~f:Permission.of_xml)(Xml.childxml_arg0"Permission")inletgrantee=(Option.map~f:Grantee.of_xml)(Xml.childxml_arg0"Grantee")inmake?permission?grantee()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpermission=field_mapjson__"Permission"Permission.of_jsoninletgrantee=field_mapjson__"Grantee"Grantee.of_jsoninmake?permission?grantee()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains information about a grant."]moduleEncryptionType=structtypenonrect=|Aws_kms|AES256|Non_static_idofstringletmakei=iletto_string=function|Aws_kms->"aws:kms"|AES256->"AES256"|Non_static_ids->sletof_string=function|"aws:kms"->Aws_kms|"AES256"->AES256|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 EncryptionType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"EncryptionType"j)letto_json=simple_to_jsonto_valueendmoduleFileHeaderInfo=structtypenonrect=|USE|IGNORE|NONE|Non_static_idofstringletmakei=iletto_string=function|USE->"USE"|IGNORE->"IGNORE"|NONE->"NONE"|Non_static_ids->sletof_string=function|"USE"->USE|"IGNORE"->IGNORE|"NONE"->NONE|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration FileHeaderInfo"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"FileHeaderInfo"j)letto_json=simple_to_jsonto_valueendmoduleQuoteFields=structtypenonrect=|ALWAYS|ASNEEDED|Non_static_idofstringletmakei=iletto_string=function|ALWAYS->"ALWAYS"|ASNEEDED->"ASNEEDED"|Non_static_ids->sletof_string=function|"ALWAYS"->ALWAYS|"ASNEEDED"->ASNEEDED|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 QuoteFields"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"QuoteFields"j)letto_json=simple_to_jsonto_valueendmoduleAccessControlPolicyList=structtypenonrect=Grant.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Grant.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:Grant.of_xml)letof_jsonj=list_of_json~kind:"AccessControlPolicyList"~of_json:Grant.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleCannedACL=structtypenonrect=|Private|Public_read|Public_read_write|Aws_exec_read|Authenticated_read|Bucket_owner_read|Bucket_owner_full_control|Non_static_idofstringletmakei=iletto_string=function|Private->"private"|Public_read->"public-read"|Public_read_write->"public-read-write"|Aws_exec_read->"aws-exec-read"|Authenticated_read->"authenticated-read"|Bucket_owner_read->"bucket-owner-read"|Bucket_owner_full_control->"bucket-owner-full-control"|Non_static_ids->sletof_string=function|"private"->Private|"public-read"->Public_read|"public-read-write"->Public_read_write|"aws-exec-read"->Aws_exec_read|"authenticated-read"->Authenticated_read|"bucket-owner-read"->Bucket_owner_read|"bucket-owner-full-control"->Bucket_owner_full_control|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 CannedACL"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"CannedACL"j)letto_json=simple_to_jsonto_valueendmoduleEncryption=structtypenonrect={encryptionType:EncryptionType.toption[@ocaml.doc"The server-side encryption algorithm used when storing job results in Amazon S3, for example AES256 or aws:kms."];kMSKeyId:String_.toption[@ocaml.doc"The AWS KMS key ID to use for object encryption. All GET and PUT requests for an object protected by AWS KMS fail if not made by using Secure Sockets Layer (SSL) or Signature Version 4."];kMSContext:String_.toption[@ocaml.doc"Optional. If the encryption type is aws:kms, you can use this value to specify the encryption context for the job results."]}letmake?encryptionType=fun?kMSKeyId->fun?kMSContext->fun()->{encryptionType;kMSKeyId;kMSContext}letto_valuex=structure_to_value[("EncryptionType",(Option.mapx.encryptionType~f:EncryptionType.to_value));("KMSKeyId",(Option.mapx.kMSKeyId~f:String_.to_value));("KMSContext",(Option.mapx.kMSContext~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letkMSContext=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"KMSContext")inletkMSKeyId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"KMSKeyId")inletencryptionType=(Option.map~f:EncryptionType.of_xml)(Xml.childxml_arg0"EncryptionType")inmake?kMSContext?kMSKeyId?encryptionType()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letkMSContext=field_mapjson__"KMSContext"String_.of_jsoninletkMSKeyId=field_mapjson__"KMSKeyId"String_.of_jsoninletencryptionType=field_mapjson__"EncryptionType"EncryptionType.of_jsoninmake?kMSContext?kMSKeyId?encryptionType()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains information about the encryption used to store the job results in Amazon S3."]moduleStorageClass=structtypenonrect=|STANDARD|REDUCED_REDUNDANCY|STANDARD_IA|Non_static_idofstringletmakei=iletto_string=function|STANDARD->"STANDARD"|REDUCED_REDUNDANCY->"REDUCED_REDUNDANCY"|STANDARD_IA->"STANDARD_IA"|Non_static_ids->sletof_string=function|"STANDARD"->STANDARD|"REDUCED_REDUNDANCY"->REDUCED_REDUNDANCY|"STANDARD_IA"->STANDARD_IA|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 StorageClass"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"StorageClass"j)letto_json=simple_to_jsonto_valueendmoduleHashmap=structtypenonrect=(String_.t*String_.t)listletmakei=iletof_headerxs=make(List.filter_mapxs~f:(fun(k,v)->(Base.String.chop_prefixk~prefix:"x-amz-meta-")|>(Option.map~f:(funchopped->((String_.of_stringchopped),(String_.of_stringv))))))letto_valuexs=(xs|>(List.map~f:(fun(x,y)->(String_.to_valuex)|>(funx->(String_.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:String_.of_string~of_json:String_.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleCSVInput=structtypenonrect={fileHeaderInfo:FileHeaderInfo.toption[@ocaml.doc"Describes the first line of input. Valid values are None, Ignore, and Use."];comments:String_.toption[@ocaml.doc"A single character used to indicate that a row should be ignored when the character is present at the start of that row."];quoteEscapeCharacter:String_.toption[@ocaml.doc"A single character used for escaping the quotation-mark character inside an already escaped value."];recordDelimiter:String_.toption[@ocaml.doc"A value used to separate individual records from each other."];fieldDelimiter:String_.toption[@ocaml.doc"A value used to separate individual fields from each other within a record."];quoteCharacter:String_.toption[@ocaml.doc"A value used as an escape character where the field delimiter is part of the value."]}letmake?fileHeaderInfo=fun?comments->fun?quoteEscapeCharacter->fun?recordDelimiter->fun?fieldDelimiter->fun?quoteCharacter->fun()->{fileHeaderInfo;comments;quoteEscapeCharacter;recordDelimiter;fieldDelimiter;quoteCharacter}letto_valuex=structure_to_value[("FileHeaderInfo",(Option.mapx.fileHeaderInfo~f:FileHeaderInfo.to_value));("Comments",(Option.mapx.comments~f:String_.to_value));("QuoteEscapeCharacter",(Option.mapx.quoteEscapeCharacter~f:String_.to_value));("RecordDelimiter",(Option.mapx.recordDelimiter~f:String_.to_value));("FieldDelimiter",(Option.mapx.fieldDelimiter~f:String_.to_value));("QuoteCharacter",(Option.mapx.quoteCharacter~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letquoteCharacter=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"QuoteCharacter")inletfieldDelimiter=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"FieldDelimiter")inletrecordDelimiter=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"RecordDelimiter")inletquoteEscapeCharacter=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"QuoteEscapeCharacter")inletcomments=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Comments")inletfileHeaderInfo=(Option.map~f:FileHeaderInfo.of_xml)(Xml.childxml_arg0"FileHeaderInfo")inmake?quoteCharacter?fieldDelimiter?recordDelimiter?quoteEscapeCharacter?comments?fileHeaderInfo()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letquoteCharacter=field_mapjson__"QuoteCharacter"String_.of_jsoninletfieldDelimiter=field_mapjson__"FieldDelimiter"String_.of_jsoninletrecordDelimiter=field_mapjson__"RecordDelimiter"String_.of_jsoninletquoteEscapeCharacter=field_mapjson__"QuoteEscapeCharacter"String_.of_jsoninletcomments=field_mapjson__"Comments"String_.of_jsoninletfileHeaderInfo=field_mapjson__"FileHeaderInfo"FileHeaderInfo.of_jsoninmake?quoteCharacter?fieldDelimiter?recordDelimiter?quoteEscapeCharacter?comments?fileHeaderInfo()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains information about the comma-separated value (CSV) file to select from."]moduleCSVOutput=structtypenonrect={quoteFields:QuoteFields.toption[@ocaml.doc"A value that indicates whether all output fields should be contained within quotation marks."];quoteEscapeCharacter:String_.toption[@ocaml.doc"A single character used for escaping the quotation-mark character inside an already escaped value."];recordDelimiter:String_.toption[@ocaml.doc"A value used to separate individual records from each other."];fieldDelimiter:String_.toption[@ocaml.doc"A value used to separate individual fields from each other within a record."];quoteCharacter:String_.toption[@ocaml.doc"A value used as an escape character where the field delimiter is part of the value."]}letmake?quoteFields=fun?quoteEscapeCharacter->fun?recordDelimiter->fun?fieldDelimiter->fun?quoteCharacter->fun()->{quoteFields;quoteEscapeCharacter;recordDelimiter;fieldDelimiter;quoteCharacter}letto_valuex=structure_to_value[("QuoteFields",(Option.mapx.quoteFields~f:QuoteFields.to_value));("QuoteEscapeCharacter",(Option.mapx.quoteEscapeCharacter~f:String_.to_value));("RecordDelimiter",(Option.mapx.recordDelimiter~f:String_.to_value));("FieldDelimiter",(Option.mapx.fieldDelimiter~f:String_.to_value));("QuoteCharacter",(Option.mapx.quoteCharacter~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letquoteCharacter=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"QuoteCharacter")inletfieldDelimiter=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"FieldDelimiter")inletrecordDelimiter=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"RecordDelimiter")inletquoteEscapeCharacter=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"QuoteEscapeCharacter")inletquoteFields=(Option.map~f:QuoteFields.of_xml)(Xml.childxml_arg0"QuoteFields")inmake?quoteCharacter?fieldDelimiter?recordDelimiter?quoteEscapeCharacter?quoteFields()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letquoteCharacter=field_mapjson__"QuoteCharacter"String_.of_jsoninletfieldDelimiter=field_mapjson__"FieldDelimiter"String_.of_jsoninletrecordDelimiter=field_mapjson__"RecordDelimiter"String_.of_jsoninletquoteEscapeCharacter=field_mapjson__"QuoteEscapeCharacter"String_.of_jsoninletquoteFields=field_mapjson__"QuoteFields"QuoteFields.of_jsoninmake?quoteCharacter?fieldDelimiter?recordDelimiter?quoteEscapeCharacter?quoteFields()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains information about the comma-separated value (CSV) file that the job results are stored in."]moduleNullableLong=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_valueendmoduleDateTime=structtypenonrect=stringletcontext_="DateTime"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:"DateTime"jletto_json=simple_to_jsonto_valueendmoduleS3Location=structtypenonrect={bucketName:String_.toption[@ocaml.doc"The name of the Amazon S3 bucket where the job results are stored."];prefix:String_.toption[@ocaml.doc"The prefix that is prepended to the results for this request."];encryption:Encryption.toption[@ocaml.doc"Contains information about the encryption used to store the job results in Amazon S3."];cannedACL:CannedACL.toption[@ocaml.doc"The canned access control list (ACL) to apply to the job results."];accessControlList:AccessControlPolicyList.toption[@ocaml.doc"A list of grants that control access to the staged results."];tagging:Hashmap.toption[@ocaml.doc"The tag-set that is applied to the job results."];userMetadata:Hashmap.toption[@ocaml.doc"A map of metadata to store with the job results in Amazon S3."];storageClass:StorageClass.toption[@ocaml.doc"The storage class used to store the job results."]}letmake?bucketName=fun?prefix->fun?encryption->fun?cannedACL->fun?accessControlList->fun?tagging->fun?userMetadata->fun?storageClass->fun()->{bucketName;prefix;encryption;cannedACL;accessControlList;tagging;userMetadata;storageClass}letto_valuex=structure_to_value[("BucketName",(Option.mapx.bucketName~f:String_.to_value));("Prefix",(Option.mapx.prefix~f:String_.to_value));("Encryption",(Option.mapx.encryption~f:Encryption.to_value));("CannedACL",(Option.mapx.cannedACL~f:CannedACL.to_value));("AccessControlList",(Option.mapx.accessControlList~f:AccessControlPolicyList.to_value));("Tagging",(Option.mapx.tagging~f:Hashmap.to_value));("UserMetadata",(Option.mapx.userMetadata~f:Hashmap.to_value));("StorageClass",(Option.mapx.storageClass~f:StorageClass.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstorageClass=(Option.map~f:StorageClass.of_xml)(Xml.childxml_arg0"StorageClass")inletuserMetadata=(Option.map~f:Hashmap.of_xml)(Xml.childxml_arg0"UserMetadata")inlettagging=(Option.map~f:Hashmap.of_xml)(Xml.childxml_arg0"Tagging")inletaccessControlList=(Option.map~f:AccessControlPolicyList.of_xml)(Xml.childxml_arg0"AccessControlList")inletcannedACL=(Option.map~f:CannedACL.of_xml)(Xml.childxml_arg0"CannedACL")inletencryption=(Option.map~f:Encryption.of_xml)(Xml.childxml_arg0"Encryption")inletprefix=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Prefix")inletbucketName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"BucketName")inmake?storageClass?userMetadata?tagging?accessControlList?cannedACL?encryption?prefix?bucketName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstorageClass=field_mapjson__"StorageClass"StorageClass.of_jsoninletuserMetadata=field_mapjson__"UserMetadata"Hashmap.of_jsoninlettagging=field_mapjson__"Tagging"Hashmap.of_jsoninletaccessControlList=field_mapjson__"AccessControlList"AccessControlPolicyList.of_jsoninletcannedACL=field_mapjson__"CannedACL"CannedACL.of_jsoninletencryption=field_mapjson__"Encryption"Encryption.of_jsoninletprefix=field_mapjson__"Prefix"String_.of_jsoninletbucketName=field_mapjson__"BucketName"String_.of_jsoninmake?storageClass?userMetadata?tagging?accessControlList?cannedACL?encryption?prefix?bucketName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains information about the location in Amazon S3 where the select job results are stored."]moduleExpressionType=structtypenonrect=|SQL|Non_static_idofstringletmakei=iletto_string=function|SQL->"SQL"|Non_static_ids->sletof_string=function|"SQL"->SQL|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 ExpressionType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ExpressionType"j)letto_json=simple_to_jsonto_valueendmoduleInputSerialization=structtypenonrect={csv:CSVInput.toption[@ocaml.doc"Describes the serialization of a CSV-encoded object."]}letmake?csv=fun()->{csv}letto_valuex=structure_to_value[("csv",(Option.mapx.csv~f:CSVInput.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcsv=(Option.map~f:CSVInput.of_xml)(Xml.childxml_arg0"csv")inmake?csv()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcsv=field_mapjson__"csv"CSVInput.of_jsoninmake?csv()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes how the archive is serialized."]moduleOutputSerialization=structtypenonrect={csv:CSVOutput.toption[@ocaml.doc"Describes the serialization of CSV-encoded query results."]}letmake?csv=fun()->{csv}letto_valuex=structure_to_value[("csv",(Option.mapx.csv~f:CSVOutput.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcsv=(Option.map~f:CSVOutput.of_xml)(Xml.childxml_arg0"csv")inmake?csv()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcsv=field_mapjson__"csv"CSVOutput.of_jsoninmake?csv()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes how the select output is serialized."]moduleDataRetrievalRule=structtypenonrect={strategy:String_.toption[@ocaml.doc"The type of data retrieval policy to set. Valid values: BytesPerHour|FreeTier|None"];bytesPerHour:NullableLong.toption[@ocaml.doc"The maximum number of bytes that can be retrieved in an hour. This field is required only if the value of the Strategy field is BytesPerHour. Your PUT operation will be rejected if the Strategy field is not set to BytesPerHour and you set this field."]}letmake?strategy=fun?bytesPerHour->fun()->{strategy;bytesPerHour}letto_valuex=structure_to_value[("Strategy",(Option.mapx.strategy~f:String_.to_value));("BytesPerHour",(Option.mapx.bytesPerHour~f:NullableLong.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letbytesPerHour=(Option.map~f:NullableLong.of_xml)(Xml.childxml_arg0"BytesPerHour")inletstrategy=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Strategy")inmake?bytesPerHour?strategy()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letbytesPerHour=field_mapjson__"BytesPerHour"NullableLong.of_jsoninletstrategy=field_mapjson__"Strategy"String_.of_jsoninmake?bytesPerHour?strategy()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Data retrieval policy rule."]moduleInvalidParameterValueException=structtypenonrect={type_:String_.toption[@ocaml.doc"Client"];code:String_.toption[@ocaml.doc"400 Bad Request"];message:String_.toption[@ocaml.doc"Returned if a parameter of the request is incorrectly specified."]}letmake?type_=fun?code->fun?message->fun()->{type_;code;message}letto_valuex=structure_to_value[("type",(Option.mapx.type_~f:String_.to_value));("code",(Option.mapx.code~f:String_.to_value));("message",(Option.mapx.message~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inletcode=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"code")inlettype_=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"type")inmake?message?code?type_()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"String_.of_jsoninletcode=field_mapjson__"code"String_.of_jsoninlettype_=field_mapjson__"type"String_.of_jsoninmake?message?code?type_()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returned if a parameter of the request is incorrectly specified."]moduleMissingParameterValueException=structtypenonrect={type_:String_.toption[@ocaml.doc"Client."];code:String_.toption[@ocaml.doc"400 Bad Request"];message:String_.toption[@ocaml.doc"Returned if no authentication data is found for the request."]}letmake?type_=fun?code->fun?message->fun()->{type_;code;message}letto_valuex=structure_to_value[("type",(Option.mapx.type_~f:String_.to_value));("code",(Option.mapx.code~f:String_.to_value));("message",(Option.mapx.message~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inletcode=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"code")inlettype_=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"type")inmake?message?code?type_()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"String_.of_jsoninletcode=field_mapjson__"code"String_.of_jsoninlettype_=field_mapjson__"type"String_.of_jsoninmake?message?code?type_()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returned if a required header or parameter is missing from the request."]moduleNoLongerSupportedException=structtypenonrect={type_:String_.toption[@ocaml.doc"Client"];code:String_.toption[@ocaml.doc"400 Bad Request"];message:String_.toption[@ocaml.doc"This API is no longer supported for new accounts. Please use Amazon S3 Glacier storage classes instead."]}letmake?type_=fun?code->fun?message->fun()->{type_;code;message}letto_valuex=structure_to_value[("type",(Option.mapx.type_~f:String_.to_value));("code",(Option.mapx.code~f:String_.to_value));("message",(Option.mapx.message~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inletcode=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"code")inlettype_=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"type")inmake?message?code?type_()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"String_.of_jsoninletcode=field_mapjson__"code"String_.of_jsoninlettype_=field_mapjson__"type"String_.of_jsoninmake?message?code?type_()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returned if the request was made by a customer with no Amazon Glacier storage. The request is denied as the API is no longer supported for new customers. Please use Amazon S3 Glacier storage classes instead."]moduleResourceNotFoundException=structtypenonrect={type_:String_.toption[@ocaml.doc"Client"];code:String_.toption[@ocaml.doc"404 Not Found"];message:String_.toption[@ocaml.doc"Returned if the specified resource (such as a vault, upload ID, or job ID) doesn't exist."]}letmake?type_=fun?code->fun?message->fun()->{type_;code;message}letto_valuex=structure_to_value[("type",(Option.mapx.type_~f:String_.to_value));("code",(Option.mapx.code~f:String_.to_value));("message",(Option.mapx.message~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inletcode=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"code")inlettype_=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"type")inmake?message?code?type_()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"String_.of_jsoninletcode=field_mapjson__"code"String_.of_jsoninlettype_=field_mapjson__"type"String_.of_jsoninmake?message?code?type_()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returned if the specified resource (such as a vault, upload ID, or job ID) doesn't exist."]moduleServiceUnavailableException=structtypenonrect={type_:String_.toption[@ocaml.doc"Server"];code:String_.toption[@ocaml.doc"500 Internal Server Error"];message:String_.toption[@ocaml.doc"Returned if the service cannot complete the request."]}letmake?type_=fun?code->fun?message->fun()->{type_;code;message}letto_valuex=structure_to_value[("type",(Option.mapx.type_~f:String_.to_value));("code",(Option.mapx.code~f:String_.to_value));("message",(Option.mapx.message~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inletcode=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"code")inlettype_=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"type")inmake?message?code?type_()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"String_.of_jsoninletcode=field_mapjson__"code"String_.of_jsoninlettype_=field_mapjson__"type"String_.of_jsoninmake?message?code?type_()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returned if the service cannot complete the request."]moduleLong=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_valueendmoduleActionCode=structtypenonrect=|ArchiveRetrieval|InventoryRetrieval|Select|Non_static_idofstringletmakei=iletto_string=function|ArchiveRetrieval->"ArchiveRetrieval"|InventoryRetrieval->"InventoryRetrieval"|Select->"Select"|Non_static_ids->sletof_string=function|"ArchiveRetrieval"->ArchiveRetrieval|"InventoryRetrieval"->InventoryRetrieval|"Select"->Select|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 ActionCode"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ActionCode"j)letto_json=simple_to_jsonto_valueendmoduleInventoryRetrievalJobDescription=structtypenonrect={format:String_.toption[@ocaml.doc"The output format for the vault inventory list, which is set by the InitiateJob request when initiating a job to retrieve a vault inventory. Valid values are CSV and JSON."];startDate:DateTime.toption[@ocaml.doc"The start of the date range in Universal Coordinated Time (UTC) for vault inventory retrieval that includes archives created on or after this date. This value should be a string in the ISO 8601 date format, for example 2013-03-20T17:03:43Z."];endDate:DateTime.toption[@ocaml.doc"The end of the date range in UTC for vault inventory retrieval that includes archives created before this date. This value should be a string in the ISO 8601 date format, for example 2013-03-20T17:03:43Z."];limit:String_.toption[@ocaml.doc"The maximum number of inventory items returned per vault inventory retrieval request. This limit is set when initiating the job with the a InitiateJob request."];marker:String_.toption[@ocaml.doc"An opaque string that represents where to continue pagination of the vault inventory retrieval results. You use the marker in a new InitiateJob request to obtain additional inventory items. If there are no more inventory items, this value is null. For more information, see Range Inventory Retrieval."]}letmake?format=fun?startDate->fun?endDate->fun?limit->fun?marker->fun()->{format;startDate;endDate;limit;marker}letto_valuex=structure_to_value[("Format",(Option.mapx.format~f:String_.to_value));("StartDate",(Option.mapx.startDate~f:DateTime.to_value));("EndDate",(Option.mapx.endDate~f:DateTime.to_value));("Limit",(Option.mapx.limit~f:String_.to_value));("Marker",(Option.mapx.marker~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmarker=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Marker")inletlimit=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Limit")inletendDate=(Option.map~f:DateTime.of_xml)(Xml.childxml_arg0"EndDate")inletstartDate=(Option.map~f:DateTime.of_xml)(Xml.childxml_arg0"StartDate")inletformat=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Format")inmake?marker?limit?endDate?startDate?format()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmarker=field_mapjson__"Marker"String_.of_jsoninletlimit=field_mapjson__"Limit"String_.of_jsoninletendDate=field_mapjson__"EndDate"DateTime.of_jsoninletstartDate=field_mapjson__"StartDate"DateTime.of_jsoninletformat=field_mapjson__"Format"String_.of_jsoninmake?marker?limit?endDate?startDate?format()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the options for a range inventory retrieval job."]moduleOutputLocation=structtypenonrect={s3:S3Location.toption[@ocaml.doc"Describes an S3 location that will receive the results of the job request."]}letmake?s3=fun()->{s3}letto_valuex=structure_to_value[("S3",(Option.mapx.s3~f:S3Location.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lets3=(Option.map~f:S3Location.of_xml)(Xml.childxml_arg0"S3")inmake?s3()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lets3=field_mapjson__"S3"S3Location.of_jsoninmake?s3()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains information about the location where the select job results are stored."]moduleSelectParameters=structtypenonrect={inputSerialization:InputSerialization.toption[@ocaml.doc"Describes the serialization format of the object."];expressionType:ExpressionType.toption[@ocaml.doc"The type of the provided expression, for example SQL."];expression:String_.toption[@ocaml.doc"The expression that is used to select the object."];outputSerialization:OutputSerialization.toption[@ocaml.doc"Describes how the results of the select job are serialized."]}letmake?inputSerialization=fun?expressionType->fun?expression->fun?outputSerialization->fun()->{inputSerialization;expressionType;expression;outputSerialization}letto_valuex=structure_to_value[("InputSerialization",(Option.mapx.inputSerialization~f:InputSerialization.to_value));("ExpressionType",(Option.mapx.expressionType~f:ExpressionType.to_value));("Expression",(Option.mapx.expression~f:String_.to_value));("OutputSerialization",(Option.mapx.outputSerialization~f:OutputSerialization.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letoutputSerialization=(Option.map~f:OutputSerialization.of_xml)(Xml.childxml_arg0"OutputSerialization")inletexpression=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Expression")inletexpressionType=(Option.map~f:ExpressionType.of_xml)(Xml.childxml_arg0"ExpressionType")inletinputSerialization=(Option.map~f:InputSerialization.of_xml)(Xml.childxml_arg0"InputSerialization")inmake?outputSerialization?expression?expressionType?inputSerialization()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letoutputSerialization=field_mapjson__"OutputSerialization"OutputSerialization.of_jsoninletexpression=field_mapjson__"Expression"String_.of_jsoninletexpressionType=field_mapjson__"ExpressionType"ExpressionType.of_jsoninletinputSerialization=field_mapjson__"InputSerialization"InputSerialization.of_jsoninmake?outputSerialization?expression?expressionType?inputSerialization()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains information about the parameters used for a select."]moduleSize=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_valueendmoduleStatusCode=structtypenonrect=|InProgress|Succeeded|Failed|Non_static_idofstringletmakei=iletto_string=function|InProgress->"InProgress"|Succeeded->"Succeeded"|Failed->"Failed"|Non_static_ids->sletof_string=function|"InProgress"->InProgress|"Succeeded"->Succeeded|"Failed"->Failed|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration StatusCode"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"StatusCode"j)letto_json=simple_to_jsonto_valueendmoduleBoolean=structtypenonrect=boolletmakei=iletof_string=Bool.of_stringletto_valuex=`Booleanxletto_queryv=to_queryto_valuevletto_headerx=Bool.to_stringxletof_xmlxml_arg0=Bool.of_string(string_of_xml~kind:"a boolean"xml_arg0)letof_json=bool_of_jsonletto_json=simple_to_jsonto_valueendmoduleNotificationEventList=structtypenonrect=String_.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:String_.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:String_.of_xml)letof_jsonj=list_of_json~kind:"NotificationEventList"~of_json:String_.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleDataRetrievalRulesList=structtypenonrect=DataRetrievalRule.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:DataRetrievalRule.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:DataRetrievalRule.of_xml)letof_jsonj=list_of_json~kind:"DataRetrievalRulesList"~of_json:DataRetrievalRule.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleDescribeVaultOutput=structtypenonrect={vaultARN:String_.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the vault."];vaultName:String_.toption[@ocaml.doc"The name of the vault."];creationDate:String_.toption[@ocaml.doc"The Universal Coordinated Time (UTC) date when the vault was created. This value should be a string in the ISO 8601 date format, for example 2012-03-20T17:03:43.221Z."];lastInventoryDate:String_.toption[@ocaml.doc"The Universal Coordinated Time (UTC) date when Amazon Glacier completed the last vault inventory. This value should be a string in the ISO 8601 date format, for example 2012-03-20T17:03:43.221Z."];numberOfArchives:Long.toption[@ocaml.doc"The number of archives in the vault as of the last inventory date. This field will return null if an inventory has not yet run on the vault, for example if you just created the vault."];sizeInBytes:Long.toption[@ocaml.doc"Total size, in bytes, of the archives in the vault as of the last inventory date. This field will return null if an inventory has not yet run on the vault, for example if you just created the vault."]}typenonrecerror=[`InvalidParameterValueExceptionofInvalidParameterValueException.t|`MissingParameterValueExceptionofMissingParameterValueException.t|`NoLongerSupportedExceptionofNoLongerSupportedException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`Unknown_operation_errorof(string*stringoption)]letmake?vaultARN=fun?vaultName->fun?creationDate->fun?lastInventoryDate->fun?numberOfArchives->fun?sizeInBytes->fun()->{vaultARN;vaultName;creationDate;lastInventoryDate;numberOfArchives;sizeInBytes}leterror_of_jsonnamejson=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_jsonjson)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_jsonjson)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_xmlxml)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_xmlxml)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InvalidParameterValueExceptione->`Assoc[("error",(`String"InvalidParameterValueException"));("details",(InvalidParameterValueException.to_jsone))]|`MissingParameterValueExceptione->`Assoc[("error",(`String"MissingParameterValueException"));("details",(MissingParameterValueException.to_jsone))]|`NoLongerSupportedExceptione->`Assoc[("error",(`String"NoLongerSupportedException"));("details",(NoLongerSupportedException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("VaultARN",(Option.mapx.vaultARN~f:String_.to_value));("VaultName",(Option.mapx.vaultName~f:String_.to_value));("CreationDate",(Option.mapx.creationDate~f:String_.to_value));("LastInventoryDate",(Option.mapx.lastInventoryDate~f:String_.to_value));("NumberOfArchives",(Option.mapx.numberOfArchives~f:Long.to_value));("SizeInBytes",(Option.mapx.sizeInBytes~f:Long.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsizeInBytes=(Option.map~f:Long.of_xml)(Xml.childxml_arg0"SizeInBytes")inletnumberOfArchives=(Option.map~f:Long.of_xml)(Xml.childxml_arg0"NumberOfArchives")inletlastInventoryDate=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"LastInventoryDate")inletcreationDate=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"CreationDate")inletvaultName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"VaultName")inletvaultARN=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"VaultARN")inmake?sizeInBytes?numberOfArchives?lastInventoryDate?creationDate?vaultName?vaultARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsizeInBytes=field_mapjson__"SizeInBytes"Long.of_jsoninletnumberOfArchives=field_mapjson__"NumberOfArchives"Long.of_jsoninletlastInventoryDate=field_mapjson__"LastInventoryDate"String_.of_jsoninletcreationDate=field_mapjson__"CreationDate"String_.of_jsoninletvaultName=field_mapjson__"VaultName"String_.of_jsoninletvaultARN=field_mapjson__"VaultARN"String_.of_jsoninmake?sizeInBytes?numberOfArchives?lastInventoryDate?creationDate?vaultName?vaultARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains the Amazon Glacier response to your request."]moduleTagKey=structtypenonrect=stringletcontext_="TagKey"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:"TagKey"jletto_json=simple_to_jsonto_valueendmoduleTagValue=structtypenonrect=stringletcontext_="TagValue"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:"TagValue"jletto_json=simple_to_jsonto_valueendmoduleProvisionedCapacityDescription=structtypenonrect={capacityId:String_.toption[@ocaml.doc"The ID that identifies the provisioned capacity unit."];startDate:String_.toption[@ocaml.doc"The date that the provisioned capacity unit was purchased, in Universal Coordinated Time (UTC)."];expirationDate:String_.toption[@ocaml.doc"The date that the provisioned capacity unit expires, in Universal Coordinated Time (UTC)."]}letmake?capacityId=fun?startDate->fun?expirationDate->fun()->{capacityId;startDate;expirationDate}letto_valuex=structure_to_value[("CapacityId",(Option.mapx.capacityId~f:String_.to_value));("StartDate",(Option.mapx.startDate~f:String_.to_value));("ExpirationDate",(Option.mapx.expirationDate~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letexpirationDate=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ExpirationDate")inletstartDate=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"StartDate")inletcapacityId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"CapacityId")inmake?expirationDate?startDate?capacityId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letexpirationDate=field_mapjson__"ExpirationDate"String_.of_jsoninletstartDate=field_mapjson__"StartDate"String_.of_jsoninletcapacityId=field_mapjson__"CapacityId"String_.of_jsoninmake?expirationDate?startDate?capacityId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The definition for a provisioned capacity unit."]modulePartListElement=structtypenonrect={rangeInBytes:String_.toption[@ocaml.doc"The byte range of a part, inclusive of the upper value of the range."];sHA256TreeHash:String_.toption[@ocaml.doc"The SHA256 tree hash value that Amazon Glacier calculated for the part. This field is never null."]}letmake?rangeInBytes=fun?sHA256TreeHash->fun()->{rangeInBytes;sHA256TreeHash}letto_valuex=structure_to_value[("RangeInBytes",(Option.mapx.rangeInBytes~f:String_.to_value));("SHA256TreeHash",(Option.mapx.sHA256TreeHash~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsHA256TreeHash=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"SHA256TreeHash")inletrangeInBytes=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"RangeInBytes")inmake?sHA256TreeHash?rangeInBytes()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsHA256TreeHash=field_mapjson__"SHA256TreeHash"String_.of_jsoninletrangeInBytes=field_mapjson__"RangeInBytes"String_.of_jsoninmake?sHA256TreeHash?rangeInBytes()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A list of the part sizes of the multipart upload."]moduleUploadListElement=structtypenonrect={multipartUploadId:String_.toption[@ocaml.doc"The ID of a multipart upload."];vaultARN:String_.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the vault that contains the archive."];archiveDescription:String_.toption[@ocaml.doc"The description of the archive that was specified in the Initiate Multipart Upload request."];partSizeInBytes:Long.toption[@ocaml.doc"The part size, in bytes, specified in the Initiate Multipart Upload request. This is the size of all the parts in the upload except the last part, which may be smaller than this size."];creationDate:String_.toption[@ocaml.doc"The UTC time at which the multipart upload was initiated."]}letmake?multipartUploadId=fun?vaultARN->fun?archiveDescription->fun?partSizeInBytes->fun?creationDate->fun()->{multipartUploadId;vaultARN;archiveDescription;partSizeInBytes;creationDate}letto_valuex=structure_to_value[("MultipartUploadId",(Option.mapx.multipartUploadId~f:String_.to_value));("VaultARN",(Option.mapx.vaultARN~f:String_.to_value));("ArchiveDescription",(Option.mapx.archiveDescription~f:String_.to_value));("PartSizeInBytes",(Option.mapx.partSizeInBytes~f:Long.to_value));("CreationDate",(Option.mapx.creationDate~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcreationDate=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"CreationDate")inletpartSizeInBytes=(Option.map~f:Long.of_xml)(Xml.childxml_arg0"PartSizeInBytes")inletarchiveDescription=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ArchiveDescription")inletvaultARN=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"VaultARN")inletmultipartUploadId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"MultipartUploadId")inmake?creationDate?partSizeInBytes?archiveDescription?vaultARN?multipartUploadId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcreationDate=field_mapjson__"CreationDate"String_.of_jsoninletpartSizeInBytes=field_mapjson__"PartSizeInBytes"Long.of_jsoninletarchiveDescription=field_mapjson__"ArchiveDescription"String_.of_jsoninletvaultARN=field_mapjson__"VaultARN"String_.of_jsoninletmultipartUploadId=field_mapjson__"MultipartUploadId"String_.of_jsoninmake?creationDate?partSizeInBytes?archiveDescription?vaultARN?multipartUploadId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A list of in-progress multipart uploads for a vault."]moduleGlacierJobDescription=structtypenonrect={jobId:String_.toption[@ocaml.doc"An opaque string that identifies an Amazon S3 Glacier job."];jobDescription:String_.toption[@ocaml.doc"The job description provided when initiating the job."];action:ActionCode.toption[@ocaml.doc"The job type. This value is either ArchiveRetrieval, InventoryRetrieval, or Select."];archiveId:String_.toption[@ocaml.doc"The archive ID requested for a select job or archive retrieval. Otherwise, this field is null."];vaultARN:String_.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the vault from which an archive retrieval was requested."];creationDate:String_.toption[@ocaml.doc"The UTC date when the job was created. This value is a string representation of ISO 8601 date format, for example \"2012-03-20T17:03:43.221Z\"."];completed:Boolean.toption[@ocaml.doc"The job status. When a job is completed, you get the job's output using Get Job Output (GET output)."];statusCode:StatusCode.toption[@ocaml.doc"The status code can be InProgress, Succeeded, or Failed, and indicates the status of the job."];statusMessage:String_.toption[@ocaml.doc"A friendly message that describes the job status."];archiveSizeInBytes:Size.toption[@ocaml.doc"For an archive retrieval job, this value is the size in bytes of the archive being requested for download. For an inventory retrieval or select job, this value is null."];inventorySizeInBytes:Size.toption[@ocaml.doc"For an inventory retrieval job, this value is the size in bytes of the inventory requested for download. For an archive retrieval or select job, this value is null."];sNSTopic:String_.toption[@ocaml.doc"An Amazon SNS topic that receives notification."];completionDate:String_.toption[@ocaml.doc"The UTC time that the job request completed. While the job is in progress, the value is null."];sHA256TreeHash:String_.toption[@ocaml.doc"For an archive retrieval job, this value is the checksum of the archive. Otherwise, this value is null. The SHA256 tree hash value for the requested range of an archive. If the InitiateJob request for an archive specified a tree-hash aligned range, then this field returns a value. If the whole archive is retrieved, this value is the same as the ArchiveSHA256TreeHash value. This field is null for the following: Archive retrieval jobs that specify a range that is not tree-hash aligned Archival jobs that specify a range that is equal to the whole archive, when the job status is InProgress Inventory jobs Select jobs"];archiveSHA256TreeHash:String_.toption[@ocaml.doc"The SHA256 tree hash of the entire archive for an archive retrieval. For inventory retrieval or select jobs, this field is null."];retrievalByteRange:String_.toption[@ocaml.doc"The retrieved byte range for archive retrieval jobs in the form StartByteValue-EndByteValue. If no range was specified in the archive retrieval, then the whole archive is retrieved. In this case, StartByteValue equals 0 and EndByteValue equals the size of the archive minus 1. For inventory retrieval or select jobs, this field is null."];tier:String_.toption[@ocaml.doc"The tier to use for a select or an archive retrieval. Valid values are Expedited, Standard, or Bulk. Standard is the default."];inventoryRetrievalParameters:InventoryRetrievalJobDescription.toption[@ocaml.doc"Parameters used for range inventory retrieval."];jobOutputPath:String_.toption[@ocaml.doc"Contains the job output location."];selectParameters:SelectParameters.toption[@ocaml.doc"Contains the parameters used for a select."];outputLocation:OutputLocation.toption[@ocaml.doc"Contains the location where the data from the select job is stored."]}typenonrecerror=[`InvalidParameterValueExceptionofInvalidParameterValueException.t|`MissingParameterValueExceptionofMissingParameterValueException.t|`NoLongerSupportedExceptionofNoLongerSupportedException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`Unknown_operation_errorof(string*stringoption)]letmake?jobId=fun?jobDescription->fun?action->fun?archiveId->fun?vaultARN->fun?creationDate->fun?completed->fun?statusCode->fun?statusMessage->fun?archiveSizeInBytes->fun?inventorySizeInBytes->fun?sNSTopic->fun?completionDate->fun?sHA256TreeHash->fun?archiveSHA256TreeHash->fun?retrievalByteRange->fun?tier->fun?inventoryRetrievalParameters->fun?jobOutputPath->fun?selectParameters->fun?outputLocation->fun()->{jobId;jobDescription;action;archiveId;vaultARN;creationDate;completed;statusCode;statusMessage;archiveSizeInBytes;inventorySizeInBytes;sNSTopic;completionDate;sHA256TreeHash;archiveSHA256TreeHash;retrievalByteRange;tier;inventoryRetrievalParameters;jobOutputPath;selectParameters;outputLocation}leterror_of_jsonnamejson=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_jsonjson)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_jsonjson)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_xmlxml)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_xmlxml)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InvalidParameterValueExceptione->`Assoc[("error",(`String"InvalidParameterValueException"));("details",(InvalidParameterValueException.to_jsone))]|`MissingParameterValueExceptione->`Assoc[("error",(`String"MissingParameterValueException"));("details",(MissingParameterValueException.to_jsone))]|`NoLongerSupportedExceptione->`Assoc[("error",(`String"NoLongerSupportedException"));("details",(NoLongerSupportedException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("JobId",(Option.mapx.jobId~f:String_.to_value));("JobDescription",(Option.mapx.jobDescription~f:String_.to_value));("Action",(Option.mapx.action~f:ActionCode.to_value));("ArchiveId",(Option.mapx.archiveId~f:String_.to_value));("VaultARN",(Option.mapx.vaultARN~f:String_.to_value));("CreationDate",(Option.mapx.creationDate~f:String_.to_value));("Completed",(Option.mapx.completed~f:Boolean.to_value));("StatusCode",(Option.mapx.statusCode~f:StatusCode.to_value));("StatusMessage",(Option.mapx.statusMessage~f:String_.to_value));("ArchiveSizeInBytes",(Option.mapx.archiveSizeInBytes~f:Size.to_value));("InventorySizeInBytes",(Option.mapx.inventorySizeInBytes~f:Size.to_value));("SNSTopic",(Option.mapx.sNSTopic~f:String_.to_value));("CompletionDate",(Option.mapx.completionDate~f:String_.to_value));("SHA256TreeHash",(Option.mapx.sHA256TreeHash~f:String_.to_value));("ArchiveSHA256TreeHash",(Option.mapx.archiveSHA256TreeHash~f:String_.to_value));("RetrievalByteRange",(Option.mapx.retrievalByteRange~f:String_.to_value));("Tier",(Option.mapx.tier~f:String_.to_value));("InventoryRetrievalParameters",(Option.mapx.inventoryRetrievalParameters~f:InventoryRetrievalJobDescription.to_value));("JobOutputPath",(Option.mapx.jobOutputPath~f:String_.to_value));("SelectParameters",(Option.mapx.selectParameters~f:SelectParameters.to_value));("OutputLocation",(Option.mapx.outputLocation~f:OutputLocation.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letoutputLocation=(Option.map~f:OutputLocation.of_xml)(Xml.childxml_arg0"OutputLocation")inletselectParameters=(Option.map~f:SelectParameters.of_xml)(Xml.childxml_arg0"SelectParameters")inletjobOutputPath=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"JobOutputPath")inletinventoryRetrievalParameters=(Option.map~f:InventoryRetrievalJobDescription.of_xml)(Xml.childxml_arg0"InventoryRetrievalParameters")inlettier=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Tier")inletretrievalByteRange=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"RetrievalByteRange")inletarchiveSHA256TreeHash=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ArchiveSHA256TreeHash")inletsHA256TreeHash=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"SHA256TreeHash")inletcompletionDate=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"CompletionDate")inletsNSTopic=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"SNSTopic")inletinventorySizeInBytes=(Option.map~f:Size.of_xml)(Xml.childxml_arg0"InventorySizeInBytes")inletarchiveSizeInBytes=(Option.map~f:Size.of_xml)(Xml.childxml_arg0"ArchiveSizeInBytes")inletstatusMessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"StatusMessage")inletstatusCode=(Option.map~f:StatusCode.of_xml)(Xml.childxml_arg0"StatusCode")inletcompleted=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"Completed")inletcreationDate=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"CreationDate")inletvaultARN=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"VaultARN")inletarchiveId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ArchiveId")inletaction=(Option.map~f:ActionCode.of_xml)(Xml.childxml_arg0"Action")inletjobDescription=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"JobDescription")inletjobId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"JobId")inmake?outputLocation?selectParameters?jobOutputPath?inventoryRetrievalParameters?tier?retrievalByteRange?archiveSHA256TreeHash?sHA256TreeHash?completionDate?sNSTopic?inventorySizeInBytes?archiveSizeInBytes?statusMessage?statusCode?completed?creationDate?vaultARN?archiveId?action?jobDescription?jobId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letoutputLocation=field_mapjson__"OutputLocation"OutputLocation.of_jsoninletselectParameters=field_mapjson__"SelectParameters"SelectParameters.of_jsoninletjobOutputPath=field_mapjson__"JobOutputPath"String_.of_jsoninletinventoryRetrievalParameters=field_mapjson__"InventoryRetrievalParameters"InventoryRetrievalJobDescription.of_jsoninlettier=field_mapjson__"Tier"String_.of_jsoninletretrievalByteRange=field_mapjson__"RetrievalByteRange"String_.of_jsoninletarchiveSHA256TreeHash=field_mapjson__"ArchiveSHA256TreeHash"String_.of_jsoninletsHA256TreeHash=field_mapjson__"SHA256TreeHash"String_.of_jsoninletcompletionDate=field_mapjson__"CompletionDate"String_.of_jsoninletsNSTopic=field_mapjson__"SNSTopic"String_.of_jsoninletinventorySizeInBytes=field_mapjson__"InventorySizeInBytes"Size.of_jsoninletarchiveSizeInBytes=field_mapjson__"ArchiveSizeInBytes"Size.of_jsoninletstatusMessage=field_mapjson__"StatusMessage"String_.of_jsoninletstatusCode=field_mapjson__"StatusCode"StatusCode.of_jsoninletcompleted=field_mapjson__"Completed"Boolean.of_jsoninletcreationDate=field_mapjson__"CreationDate"String_.of_jsoninletvaultARN=field_mapjson__"VaultARN"String_.of_jsoninletarchiveId=field_mapjson__"ArchiveId"String_.of_jsoninletaction=field_mapjson__"Action"ActionCode.of_jsoninletjobDescription=field_mapjson__"JobDescription"String_.of_jsoninletjobId=field_mapjson__"JobId"String_.of_jsoninmake?outputLocation?selectParameters?jobOutputPath?inventoryRetrievalParameters?tier?retrievalByteRange?archiveSHA256TreeHash?sHA256TreeHash?completionDate?sNSTopic?inventorySizeInBytes?archiveSizeInBytes?statusMessage?statusCode?completed?creationDate?vaultARN?archiveId?action?jobDescription?jobId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains the description of an Amazon S3 Glacier job."]moduleInventoryRetrievalJobInput=structtypenonrect={startDate:String_.toption[@ocaml.doc"The start of the date range in UTC for vault inventory retrieval that includes archives created on or after this date. This value should be a string in the ISO 8601 date format, for example 2013-03-20T17:03:43Z."];endDate:String_.toption[@ocaml.doc"The end of the date range in UTC for vault inventory retrieval that includes archives created before this date. This value should be a string in the ISO 8601 date format, for example 2013-03-20T17:03:43Z."];limit:String_.toption[@ocaml.doc"Specifies the maximum number of inventory items returned per vault inventory retrieval request. Valid values are greater than or equal to 1."];marker:String_.toption[@ocaml.doc"An opaque string that represents where to continue pagination of the vault inventory retrieval results. You use the marker in a new InitiateJob request to obtain additional inventory items. If there are no more inventory items, this value is null."]}letmake?startDate=fun?endDate->fun?limit->fun?marker->fun()->{startDate;endDate;limit;marker}letto_valuex=structure_to_value[("StartDate",(Option.mapx.startDate~f:String_.to_value));("EndDate",(Option.mapx.endDate~f:String_.to_value));("Limit",(Option.mapx.limit~f:String_.to_value));("Marker",(Option.mapx.marker~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmarker=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Marker")inletlimit=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Limit")inletendDate=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"EndDate")inletstartDate=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"StartDate")inmake?marker?limit?endDate?startDate()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmarker=field_mapjson__"Marker"String_.of_jsoninletlimit=field_mapjson__"Limit"String_.of_jsoninletendDate=field_mapjson__"EndDate"String_.of_jsoninletstartDate=field_mapjson__"StartDate"String_.of_jsoninmake?marker?limit?endDate?startDate()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Provides options for specifying a range inventory retrieval job."]moduleRequestTimeoutException=structtypenonrect={type_:String_.toption[@ocaml.doc"Client"];code:String_.toption[@ocaml.doc"408 Request Timeout"];message:String_.toption[@ocaml.doc"Returned if, when uploading an archive, Amazon Glacier times out while receiving the upload."]}letmake?type_=fun?code->fun?message->fun()->{type_;code;message}letto_valuex=structure_to_value[("type",(Option.mapx.type_~f:String_.to_value));("code",(Option.mapx.code~f:String_.to_value));("message",(Option.mapx.message~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inletcode=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"code")inlettype_=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"type")inmake?message?code?type_()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"String_.of_jsoninletcode=field_mapjson__"code"String_.of_jsoninlettype_=field_mapjson__"type"String_.of_jsoninmake?message?code?type_()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returned if, when uploading an archive, Amazon Glacier times out while receiving the upload."]moduleStream=structtypenonrect=stringletmakei=iletof_stringx=xletto_valuex=`Blobxletto_queryv=to_queryto_valuevletto_headerx=xletof_xmlxml_arg0=string_of_xml~kind:"a blob"xml_arg0letof_jsonj=string_of_json~kind:"a blob"jletto_json=simple_to_jsonto_valueendmoduleVaultNotificationConfig=structtypenonrect={sNSTopic:String_.toption[@ocaml.doc"The Amazon Simple Notification Service (Amazon SNS) topic Amazon Resource Name (ARN)."];events:NotificationEventList.toption[@ocaml.doc"A list of one or more events for which Amazon Glacier will send a notification to the specified Amazon SNS topic."]}letmake?sNSTopic=fun?events->fun()->{sNSTopic;events}letto_valuex=structure_to_value[("SNSTopic",(Option.mapx.sNSTopic~f:String_.to_value));("Events",(Option.mapx.events~f:NotificationEventList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letevents=(Option.map~f:NotificationEventList.of_xml)(Xml.childxml_arg0"Events")inletsNSTopic=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"SNSTopic")inmake?events?sNSTopic()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letevents=field_mapjson__"Events"NotificationEventList.of_jsoninletsNSTopic=field_mapjson__"SNSTopic"String_.of_jsoninmake?events?sNSTopic()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Represents a vault's notification configuration."]moduleVaultAccessPolicy=structtypenonrect={policy:String_.toption[@ocaml.doc"The vault access policy."]}letmake?policy=fun()->{policy}letto_valuex=structure_to_value[("Policy",(Option.mapx.policy~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpolicy=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Policy")inmake?policy()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpolicy=field_mapjson__"Policy"String_.of_jsoninmake?policy()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains the vault access policy."]moduleDataRetrievalPolicy=structtypenonrect={rules:DataRetrievalRulesList.toption[@ocaml.doc"The policy rule. Although this is a list type, currently there must be only one rule, which contains a Strategy field and optionally a BytesPerHour field."]}letmake?rules=fun()->{rules}letto_valuex=structure_to_value[("Rules",(Option.mapx.rules~f:DataRetrievalRulesList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letrules=(Option.map~f:DataRetrievalRulesList.of_xml)(Xml.childxml_arg0"Rules")inmake?rules()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letrules=field_mapjson__"Rules"DataRetrievalRulesList.of_jsoninmake?rules()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Data retrieval policy."]moduleTagKeyList=structtypenonrect=String_.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:String_.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:String_.of_xml)letof_jsonj=list_of_json~kind:"TagKeyList"~of_json:String_.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleLimitExceededException=structtypenonrect={type_:String_.toption[@ocaml.doc"Client"];code:String_.toption[@ocaml.doc"400 Bad Request"];message:String_.toption[@ocaml.doc"Returned if the request results in a vault limit or tags limit being exceeded."]}letmake?type_=fun?code->fun?message->fun()->{type_;code;message}letto_valuex=structure_to_value[("type",(Option.mapx.type_~f:String_.to_value));("code",(Option.mapx.code~f:String_.to_value));("message",(Option.mapx.message~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inletcode=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"code")inlettype_=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"type")inmake?message?code?type_()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"String_.of_jsoninletcode=field_mapjson__"code"String_.of_jsoninlettype_=field_mapjson__"type"String_.of_jsoninmake?message?code?type_()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returned if the request results in a vault or account limit being exceeded."]moduleVaultList=structtypenonrect=DescribeVaultOutput.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:DescribeVaultOutput.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:DescribeVaultOutput.of_xml)letof_jsonj=list_of_json~kind:"VaultList"~of_json:DescribeVaultOutput.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleTagMap=structtypenonrect=(TagKey.t*TagValue.t)listletmakei=iletof_headerxs=make(List.filter_mapxs~f:(fun(k,v)->(Base.String.chop_prefixk~prefix:"x-amz-meta-")|>(Option.map~f:(funchopped->((TagKey.of_stringchopped),(TagValue.of_stringv))))))letto_valuexs=(xs|>(List.map~f:(fun(x,y)->(TagKey.to_valuex)|>(funx->(TagValue.to_valuey)|>(funy->(x,y))))))|>(funx->`Mapx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for Map_shape objects"()letof_xml_=failwith"of_xml_converter_of_shape: Map_shape case not implemented"letof_jsonj=object_of_json~key_of_string:TagKey.of_string~of_json:TagValue.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleProvisionedCapacityList=structtypenonrect=ProvisionedCapacityDescription.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ProvisionedCapacityDescription.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:ProvisionedCapacityDescription.of_xml)letof_jsonj=list_of_json~kind:"ProvisionedCapacityList"~of_json:ProvisionedCapacityDescription.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmodulePartList=structtypenonrect=PartListElement.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:PartListElement.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:PartListElement.of_xml)letof_jsonj=list_of_json~kind:"PartList"~of_json:PartListElement.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleUploadsList=structtypenonrect=UploadListElement.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:UploadListElement.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:UploadListElement.of_xml)letof_jsonj=list_of_json~kind:"UploadsList"~of_json:UploadListElement.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleJobList=structtypenonrect=GlacierJobDescription.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:GlacierJobDescription.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:GlacierJobDescription.of_xml)letof_jsonj=list_of_json~kind:"JobList"~of_json:GlacierJobDescription.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleVaultLockPolicy=structtypenonrect={policy:String_.toption[@ocaml.doc"The vault lock policy."]}letmake?policy=fun()->{policy}letto_valuex=structure_to_value[("Policy",(Option.mapx.policy~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpolicy=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Policy")inmake?policy()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpolicy=field_mapjson__"Policy"String_.of_jsoninmake?policy()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains the vault lock policy."]moduleInsufficientCapacityException=structtypenonrect={type_:String_.toption;code:String_.toption;message:String_.toption}letmake?type_=fun?code->fun?message->fun()->{type_;code;message}letto_valuex=structure_to_value[("type",(Option.mapx.type_~f:String_.to_value));("code",(Option.mapx.code~f:String_.to_value));("message",(Option.mapx.message~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inletcode=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"code")inlettype_=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"type")inmake?message?code?type_()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"String_.of_jsoninletcode=field_mapjson__"code"String_.of_jsoninlettype_=field_mapjson__"type"String_.of_jsoninmake?message?code?type_()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returned if there is insufficient capacity to process this expedited request. This error only applies to expedited retrievals and not to standard or bulk retrievals."]modulePolicyEnforcedException=structtypenonrect={type_:String_.toption[@ocaml.doc"Client"];code:String_.toption[@ocaml.doc"PolicyEnforcedException"];message:String_.toption[@ocaml.doc"InitiateJob request denied by current data retrieval policy."]}letmake?type_=fun?code->fun?message->fun()->{type_;code;message}letto_valuex=structure_to_value[("type",(Option.mapx.type_~f:String_.to_value));("code",(Option.mapx.code~f:String_.to_value));("message",(Option.mapx.message~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inletcode=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"code")inlettype_=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"type")inmake?message?code?type_()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"String_.of_jsoninletcode=field_mapjson__"code"String_.of_jsoninlettype_=field_mapjson__"type"String_.of_jsoninmake?message?code?type_()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returned if a retrieval job would exceed the current data policy's retrieval rate limit. For more information about data retrieval policies,"]moduleJobParameters=structtypenonrect={format:String_.toption[@ocaml.doc"When initiating a job to retrieve a vault inventory, you can optionally add this parameter to your request to specify the output format. If you are initiating an inventory job and do not specify a Format field, JSON is the default format. Valid values are \"CSV\" and \"JSON\"."];type_:String_.toption[@ocaml.doc"The job type. You can initiate a job to perform a select query on an archive, retrieve an archive, or get an inventory of a vault. Valid values are \"select\", \"archive-retrieval\" and \"inventory-retrieval\"."];archiveId:String_.toption[@ocaml.doc"The ID of the archive that you want to retrieve. This field is required only if Type is set to select or archive-retrievalcode>. An error occurs if you specify this request parameter for an inventory retrieval job request."];description:String_.toption[@ocaml.doc"The optional description for the job. The description must be less than or equal to 1,024 bytes. The allowable characters are 7-bit ASCII without control codes-specifically, ASCII values 32-126 decimal or 0x20-0x7E hexadecimal."];sNSTopic:String_.toption[@ocaml.doc"The Amazon SNS topic ARN to which Amazon Glacier sends a notification when the job is completed and the output is ready for you to download. The specified topic publishes the notification to its subscribers. The SNS topic must exist."];retrievalByteRange:String_.toption[@ocaml.doc"The byte range to retrieve for an archive retrieval. in the form \"StartByteValue-EndByteValue\" If not specified, the whole archive is retrieved. If specified, the byte range must be megabyte (1024*1024) aligned which means that StartByteValue must be divisible by 1 MB and EndByteValue plus 1 must be divisible by 1 MB or be the end of the archive specified as the archive byte size value minus 1. If RetrievalByteRange is not megabyte aligned, this operation returns a 400 response. An error occurs if you specify this field for an inventory retrieval job request."];tier:String_.toption[@ocaml.doc"The tier to use for a select or an archive retrieval job. Valid values are Expedited, Standard, or Bulk. Standard is the default."];inventoryRetrievalParameters:InventoryRetrievalJobInput.toption[@ocaml.doc"Input parameters used for range inventory retrieval."];selectParameters:SelectParameters.toption[@ocaml.doc"Contains the parameters that define a job."];outputLocation:OutputLocation.toption[@ocaml.doc"Contains information about the location where the select job results are stored."]}letmake?format=fun?type_->fun?archiveId->fun?description->fun?sNSTopic->fun?retrievalByteRange->fun?tier->fun?inventoryRetrievalParameters->fun?selectParameters->fun?outputLocation->fun()->{format;type_;archiveId;description;sNSTopic;retrievalByteRange;tier;inventoryRetrievalParameters;selectParameters;outputLocation}letto_valuex=structure_to_value[("Format",(Option.mapx.format~f:String_.to_value));("Type",(Option.mapx.type_~f:String_.to_value));("ArchiveId",(Option.mapx.archiveId~f:String_.to_value));("Description",(Option.mapx.description~f:String_.to_value));("SNSTopic",(Option.mapx.sNSTopic~f:String_.to_value));("RetrievalByteRange",(Option.mapx.retrievalByteRange~f:String_.to_value));("Tier",(Option.mapx.tier~f:String_.to_value));("InventoryRetrievalParameters",(Option.mapx.inventoryRetrievalParameters~f:InventoryRetrievalJobInput.to_value));("SelectParameters",(Option.mapx.selectParameters~f:SelectParameters.to_value));("OutputLocation",(Option.mapx.outputLocation~f:OutputLocation.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letoutputLocation=(Option.map~f:OutputLocation.of_xml)(Xml.childxml_arg0"OutputLocation")inletselectParameters=(Option.map~f:SelectParameters.of_xml)(Xml.childxml_arg0"SelectParameters")inletinventoryRetrievalParameters=(Option.map~f:InventoryRetrievalJobInput.of_xml)(Xml.childxml_arg0"InventoryRetrievalParameters")inlettier=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Tier")inletretrievalByteRange=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"RetrievalByteRange")inletsNSTopic=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"SNSTopic")inletdescription=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Description")inletarchiveId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ArchiveId")inlettype_=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Type")inletformat=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Format")inmake?outputLocation?selectParameters?inventoryRetrievalParameters?tier?retrievalByteRange?sNSTopic?description?archiveId?type_?format()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letoutputLocation=field_mapjson__"OutputLocation"OutputLocation.of_jsoninletselectParameters=field_mapjson__"SelectParameters"SelectParameters.of_jsoninletinventoryRetrievalParameters=field_mapjson__"InventoryRetrievalParameters"InventoryRetrievalJobInput.of_jsoninlettier=field_mapjson__"Tier"String_.of_jsoninletretrievalByteRange=field_mapjson__"RetrievalByteRange"String_.of_jsoninletsNSTopic=field_mapjson__"SNSTopic"String_.of_jsoninletdescription=field_mapjson__"Description"String_.of_jsoninletarchiveId=field_mapjson__"ArchiveId"String_.of_jsoninlettype_=field_mapjson__"Type"String_.of_jsoninletformat=field_mapjson__"Format"String_.of_jsoninmake?outputLocation?selectParameters?inventoryRetrievalParameters?tier?retrievalByteRange?sNSTopic?description?archiveId?type_?format()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Provides options for defining a job."]moduleHttpstatus=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 httpstatus"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleUploadMultipartPartOutput=structtypenonrect={checksum:String_.toption[@ocaml.doc"The SHA256 tree hash that Amazon Glacier computed for the uploaded part."]}typenonrecerror=[`InvalidParameterValueExceptionofInvalidParameterValueException.t|`MissingParameterValueExceptionofMissingParameterValueException.t|`NoLongerSupportedExceptionofNoLongerSupportedException.t|`RequestTimeoutExceptionofRequestTimeoutException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`Unknown_operation_errorof(string*stringoption)]letmake?checksum=fun()->{checksum}leterror_of_jsonnamejson=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_jsonjson)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_jsonjson)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_jsonjson)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_xmlxml)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_xmlxml)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_xmlxml)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InvalidParameterValueExceptione->`Assoc[("error",(`String"InvalidParameterValueException"));("details",(InvalidParameterValueException.to_jsone))]|`MissingParameterValueExceptione->`Assoc[("error",(`String"MissingParameterValueException"));("details",(MissingParameterValueException.to_jsone))]|`NoLongerSupportedExceptione->`Assoc[("error",(`String"NoLongerSupportedException"));("details",(NoLongerSupportedException.to_jsone))]|`RequestTimeoutExceptione->`Assoc[("error",(`String"RequestTimeoutException"));("details",(RequestTimeoutException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make?checksum:(Option.map((List.Assoc.find~equal:String.Caseless.equal)xs"x-amz-sha256-tree-hash")~f:String_.of_string)())[@warning"-27"])letto_valuex=structure_to_value[("x-amz-sha256-tree-hash",(Option.mapx.checksum~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letchecksum=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"x-amz-sha256-tree-hash")inmake?checksum()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letchecksum=field_mapjson__"checksum"String_.of_jsoninmake?checksum()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains the Amazon Glacier response to your request."]moduleUploadMultipartPartInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID."];vaultName:String_.t[@ocaml.doc"The name of the vault."];uploadId:String_.t[@ocaml.doc"The upload ID of the multipart upload."];checksum:String_.toption[@ocaml.doc"The SHA256 tree hash of the data being uploaded."];range:String_.toption[@ocaml.doc"Identifies the range of bytes in the assembled archive that will be uploaded in this part. Amazon Glacier uses this information to assemble the archive in the proper sequence. The format of this header follows RFC 2616. An example header is Content-Range:bytes 0-4194303/*."];body:Stream.toption[@ocaml.doc"The data to upload."]}letcontext_="UploadMultipartPartInput"letmake?checksum=fun?range->fun?body->fun~accountId->fun~vaultName->fun~uploadId->fun()->{checksum;range;body;accountId;vaultName;uploadId}letof_header_and_body=((fun(xs,pipe)->make~accountId:(String_.of_string((List.Assoc.find_exn~equal:String.Caseless.equal)xs"accountId"))~vaultName:(String_.of_string((List.Assoc.find_exn~equal:String.Caseless.equal)xs"vaultName"))~uploadId:(String_.of_string((List.Assoc.find_exn~equal:String.Caseless.equal)xs"uploadId"))?checksum:(Option.map((List.Assoc.find~equal:String.Caseless.equal)xs"x-amz-sha256-tree-hash")~f:String_.of_string)?range:(Option.map((List.Assoc.find~equal:String.Caseless.equal)xs"Content-Range")~f:String_.of_string)?body:(Somepipe)())[@warning"-27"])letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("vaultName",(Some(String_.to_valuex.vaultName)));("uploadId",(Some(String_.to_valuex.uploadId)));("x-amz-sha256-tree-hash",(Option.mapx.checksum~f:String_.to_value));("Content-Range",(Option.mapx.range~f:String_.to_value));("body",(Option.mapx.body~f:Stream.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letbody=(Option.map~f:Stream.of_xml)(Xml.childxml_arg0"body")inletrange=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Content-Range")inletchecksum=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"x-amz-sha256-tree-hash")inletuploadId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"uploadId")inletvaultName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"vaultName")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake?body?range?checksum~uploadId~vaultName~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letbody=field_mapjson__"body"Stream.of_jsoninletrange=field_mapjson__"range"String_.of_jsoninletchecksum=field_mapjson__"checksum"String_.of_jsoninletuploadId=field_map_exnjson__"uploadId"String_.of_jsoninletvaultName=field_map_exnjson__"vaultName"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake?body?range?checksum~uploadId~vaultName~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Provides options to upload a part of an archive in a multipart upload operation."]moduleUploadArchiveInput=structtypenonrect={vaultName:String_.t[@ocaml.doc"The name of the vault."];accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID."];archiveDescription:String_.toption[@ocaml.doc"The optional description of the archive you are uploading."];checksum:String_.toption[@ocaml.doc"The SHA256 tree hash of the data being uploaded."];body:Stream.toption[@ocaml.doc"The data to upload."]}letcontext_="UploadArchiveInput"letmake?archiveDescription=fun?checksum->fun?body->fun~vaultName->fun~accountId->fun()->{archiveDescription;checksum;body;vaultName;accountId}letof_header_and_body=((fun(xs,pipe)->make~vaultName:(String_.of_string((List.Assoc.find_exn~equal:String.Caseless.equal)xs"vaultName"))~accountId:(String_.of_string((List.Assoc.find_exn~equal:String.Caseless.equal)xs"accountId"))?archiveDescription:(Option.map((List.Assoc.find~equal:String.Caseless.equal)xs"x-amz-archive-description")~f:String_.of_string)?checksum:(Option.map((List.Assoc.find~equal:String.Caseless.equal)xs"x-amz-sha256-tree-hash")~f:String_.of_string)?body:(Somepipe)())[@warning"-27"])letto_valuex=structure_to_value[("vaultName",(Some(String_.to_valuex.vaultName)));("accountId",(Some(String_.to_valuex.accountId)));("x-amz-archive-description",(Option.mapx.archiveDescription~f:String_.to_value));("x-amz-sha256-tree-hash",(Option.mapx.checksum~f:String_.to_value));("body",(Option.mapx.body~f:Stream.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letbody=(Option.map~f:Stream.of_xml)(Xml.childxml_arg0"body")inletchecksum=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"x-amz-sha256-tree-hash")inletarchiveDescription=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"x-amz-archive-description")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inletvaultName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"vaultName")inmake?body?checksum?archiveDescription~accountId~vaultName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letbody=field_mapjson__"body"Stream.of_jsoninletchecksum=field_mapjson__"checksum"String_.of_jsoninletarchiveDescription=field_mapjson__"archiveDescription"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninletvaultName=field_map_exnjson__"vaultName"String_.of_jsoninmake?body?checksum?archiveDescription~accountId~vaultName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Provides options to add an archive to a vault."]moduleSetVaultNotificationsInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID."];vaultName:String_.t[@ocaml.doc"The name of the vault."];vaultNotificationConfig:VaultNotificationConfig.toption[@ocaml.doc"Provides options for specifying notification configuration."]}letcontext_="SetVaultNotificationsInput"letmake?vaultNotificationConfig=fun~accountId->fun~vaultName->fun()->{vaultNotificationConfig;accountId;vaultName}letof_header_and_body=((fun(xs,pipe)->make~accountId:(String_.of_string((List.Assoc.find_exn~equal:String.Caseless.equal)xs"accountId"))~vaultName:(String_.of_string((List.Assoc.find_exn~equal:String.Caseless.equal)xs"vaultName"))?vaultNotificationConfig:(Somepipe)())[@warning"-27"])letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("vaultName",(Some(String_.to_valuex.vaultName)));("vaultNotificationConfig",(Option.mapx.vaultNotificationConfig~f:VaultNotificationConfig.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvaultNotificationConfig=(Option.map~f:VaultNotificationConfig.of_xml)(Xml.childxml_arg0"vaultNotificationConfig")inletvaultName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"vaultName")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake?vaultNotificationConfig~vaultName~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvaultNotificationConfig=field_mapjson__"vaultNotificationConfig"VaultNotificationConfig.of_jsoninletvaultName=field_map_exnjson__"vaultName"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake?vaultNotificationConfig~vaultName~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Provides options to configure notifications that will be sent when specific events happen to a vault."]moduleSetVaultAccessPolicyInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID."];vaultName:String_.t[@ocaml.doc"The name of the vault."];policy:VaultAccessPolicy.toption[@ocaml.doc"The vault access policy as a JSON string."]}letcontext_="SetVaultAccessPolicyInput"letmake?policy=fun~accountId->fun~vaultName->fun()->{policy;accountId;vaultName}letof_header_and_body=((fun(xs,pipe)->make~accountId:(String_.of_string((List.Assoc.find_exn~equal:String.Caseless.equal)xs"accountId"))~vaultName:(String_.of_string((List.Assoc.find_exn~equal:String.Caseless.equal)xs"vaultName"))?policy:(Somepipe)())[@warning"-27"])letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("vaultName",(Some(String_.to_valuex.vaultName)));("policy",(Option.mapx.policy~f:VaultAccessPolicy.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpolicy=(Option.map~f:VaultAccessPolicy.of_xml)(Xml.childxml_arg0"policy")inletvaultName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"vaultName")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake?policy~vaultName~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpolicy=field_mapjson__"policy"VaultAccessPolicy.of_jsoninletvaultName=field_map_exnjson__"vaultName"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake?policy~vaultName~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"SetVaultAccessPolicy input."]moduleSetDataRetrievalPolicyInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your account ID, do not include any hyphens ('-') in the ID."];policy:DataRetrievalPolicy.toption[@ocaml.doc"The data retrieval policy in JSON format."]}letcontext_="SetDataRetrievalPolicyInput"letmake?policy=fun~accountId->fun()->{policy;accountId}letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("Policy",(Option.mapx.policy~f:DataRetrievalPolicy.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpolicy=(Option.map~f:DataRetrievalPolicy.of_xml)(Xml.childxml_arg0"Policy")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake?policy~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpolicy=field_mapjson__"Policy"DataRetrievalPolicy.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake?policy~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"SetDataRetrievalPolicy input."]moduleRemoveTagsFromVaultInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID."];vaultName:String_.t[@ocaml.doc"The name of the vault."];tagKeys:TagKeyList.toption[@ocaml.doc"A list of tag keys. Each corresponding tag is removed from the vault."]}letcontext_="RemoveTagsFromVaultInput"letmake?tagKeys=fun~accountId->fun~vaultName->fun()->{tagKeys;accountId;vaultName}letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("vaultName",(Some(String_.to_valuex.vaultName)));("TagKeys",(Option.mapx.tagKeys~f:TagKeyList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettagKeys=(Option.map~f:TagKeyList.of_xml)(Xml.childxml_arg0"TagKeys")inletvaultName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"vaultName")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake?tagKeys~vaultName~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettagKeys=field_mapjson__"TagKeys"TagKeyList.of_jsoninletvaultName=field_map_exnjson__"vaultName"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake?tagKeys~vaultName~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The input value for RemoveTagsFromVaultInput."]modulePurchaseProvisionedCapacityOutput=structtypenonrect={capacityId:String_.toption[@ocaml.doc"The ID that identifies the provisioned capacity unit."]}typenonrecerror=[`InvalidParameterValueExceptionofInvalidParameterValueException.t|`LimitExceededExceptionofLimitExceededException.t|`MissingParameterValueExceptionofMissingParameterValueException.t|`NoLongerSupportedExceptionofNoLongerSupportedException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`Unknown_operation_errorof(string*stringoption)]letmake?capacityId=fun()->{capacityId}leterror_of_jsonnamejson=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_jsonjson)|"LimitExceededException"->`LimitExceededException(LimitExceededException.of_jsonjson)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_jsonjson)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_xmlxml)|"LimitExceededException"->`LimitExceededException(LimitExceededException.of_xmlxml)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_xmlxml)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InvalidParameterValueExceptione->`Assoc[("error",(`String"InvalidParameterValueException"));("details",(InvalidParameterValueException.to_jsone))]|`LimitExceededExceptione->`Assoc[("error",(`String"LimitExceededException"));("details",(LimitExceededException.to_jsone))]|`MissingParameterValueExceptione->`Assoc[("error",(`String"MissingParameterValueException"));("details",(MissingParameterValueException.to_jsone))]|`NoLongerSupportedExceptione->`Assoc[("error",(`String"NoLongerSupportedException"));("details",(NoLongerSupportedException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make?capacityId:(Option.map((List.Assoc.find~equal:String.Caseless.equal)xs"x-amz-capacity-id")~f:String_.of_string)())[@warning"-27"])letto_valuex=structure_to_value[("x-amz-capacity-id",(Option.mapx.capacityId~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcapacityId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"x-amz-capacity-id")inmake?capacityId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcapacityId=field_mapjson__"capacityId"String_.of_jsoninmake?capacityId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"This operation purchases a provisioned capacity unit for an AWS account."]modulePurchaseProvisionedCapacityInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, don't include any hyphens ('-') in the ID."]}letcontext_="PurchaseProvisionedCapacityInput"letmake~accountId=fun()->{accountId}letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"This operation purchases a provisioned capacity unit for an AWS account."]moduleListVaultsOutput=structtypenonrect={vaultList:VaultList.toption[@ocaml.doc"List of vaults."];marker:String_.toption[@ocaml.doc"The vault ARN at which to continue pagination of the results. You use the marker in another List Vaults request to obtain more vaults in the list."]}typenonrecerror=[`InvalidParameterValueExceptionofInvalidParameterValueException.t|`MissingParameterValueExceptionofMissingParameterValueException.t|`NoLongerSupportedExceptionofNoLongerSupportedException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`Unknown_operation_errorof(string*stringoption)]letmake?vaultList=fun?marker->fun()->{vaultList;marker}leterror_of_jsonnamejson=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_jsonjson)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_jsonjson)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_xmlxml)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_xmlxml)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InvalidParameterValueExceptione->`Assoc[("error",(`String"InvalidParameterValueException"));("details",(InvalidParameterValueException.to_jsone))]|`MissingParameterValueExceptione->`Assoc[("error",(`String"MissingParameterValueException"));("details",(MissingParameterValueException.to_jsone))]|`NoLongerSupportedExceptione->`Assoc[("error",(`String"NoLongerSupportedException"));("details",(NoLongerSupportedException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("VaultList",(Option.mapx.vaultList~f:VaultList.to_value));("Marker",(Option.mapx.marker~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmarker=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Marker")inletvaultList=(Option.map~f:VaultList.of_xml)(Xml.childxml_arg0"VaultList")inmake?marker?vaultList()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmarker=field_mapjson__"Marker"String_.of_jsoninletvaultList=field_mapjson__"VaultList"VaultList.of_jsoninmake?marker?vaultList()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains the Amazon Glacier response to your request."]moduleListVaultsInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your account ID, do not include any hyphens ('-') in the ID."];marker:String_.toption[@ocaml.doc"A string used for pagination. The marker specifies the vault ARN after which the listing of vaults should begin."];limit:String_.toption[@ocaml.doc"The maximum number of vaults to be returned. The default limit is 10. The number of vaults returned might be fewer than the specified limit, but the number of returned vaults never exceeds the limit."]}letcontext_="ListVaultsInput"letmake?marker=fun?limit->fun~accountId->fun()->{marker;limit;accountId}letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("marker",(Option.mapx.marker~f:String_.to_value));("limit",(Option.mapx.limit~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlimit=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"limit")inletmarker=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"marker")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake?limit?marker~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlimit=field_mapjson__"limit"String_.of_jsoninletmarker=field_mapjson__"marker"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake?limit?marker~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Provides options to retrieve the vault list owned by the calling user's account. The list provides metadata information for each vault."]moduleListTagsForVaultOutput=structtypenonrect={tags:TagMap.toption[@ocaml.doc"The tags attached to the vault. Each tag is composed of a key and a value."]}typenonrecerror=[`InvalidParameterValueExceptionofInvalidParameterValueException.t|`MissingParameterValueExceptionofMissingParameterValueException.t|`NoLongerSupportedExceptionofNoLongerSupportedException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`Unknown_operation_errorof(string*stringoption)]letmake?tags=fun()->{tags}leterror_of_jsonnamejson=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_jsonjson)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_jsonjson)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_xmlxml)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_xmlxml)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InvalidParameterValueExceptione->`Assoc[("error",(`String"InvalidParameterValueException"));("details",(InvalidParameterValueException.to_jsone))]|`MissingParameterValueExceptione->`Assoc[("error",(`String"MissingParameterValueException"));("details",(MissingParameterValueException.to_jsone))]|`NoLongerSupportedExceptione->`Assoc[("error",(`String"NoLongerSupportedException"));("details",(NoLongerSupportedException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.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"Contains the Amazon Glacier response to your request."]moduleListTagsForVaultInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID."];vaultName:String_.t[@ocaml.doc"The name of the vault."]}letcontext_="ListTagsForVaultInput"letmake~accountId=fun~vaultName->fun()->{accountId;vaultName}letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("vaultName",(Some(String_.to_valuex.vaultName)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvaultName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"vaultName")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake~vaultName~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvaultName=field_map_exnjson__"vaultName"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake~vaultName~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The input value for ListTagsForVaultInput."]moduleListProvisionedCapacityOutput=structtypenonrect={provisionedCapacityList:ProvisionedCapacityList.toption[@ocaml.doc"The response body contains the following JSON fields."]}typenonrecerror=[`InvalidParameterValueExceptionofInvalidParameterValueException.t|`MissingParameterValueExceptionofMissingParameterValueException.t|`NoLongerSupportedExceptionofNoLongerSupportedException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`Unknown_operation_errorof(string*stringoption)]letmake?provisionedCapacityList=fun()->{provisionedCapacityList}leterror_of_jsonnamejson=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_jsonjson)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_jsonjson)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_xmlxml)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_xmlxml)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InvalidParameterValueExceptione->`Assoc[("error",(`String"InvalidParameterValueException"));("details",(InvalidParameterValueException.to_jsone))]|`MissingParameterValueExceptione->`Assoc[("error",(`String"MissingParameterValueException"));("details",(MissingParameterValueException.to_jsone))]|`NoLongerSupportedExceptione->`Assoc[("error",(`String"NoLongerSupportedException"));("details",(NoLongerSupportedException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("ProvisionedCapacityList",(Option.mapx.provisionedCapacityList~f:ProvisionedCapacityList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letprovisionedCapacityList=(Option.map~f:ProvisionedCapacityList.of_xml)(Xml.childxml_arg0"ProvisionedCapacityList")inmake?provisionedCapacityList()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letprovisionedCapacityList=field_mapjson__"ProvisionedCapacityList"ProvisionedCapacityList.of_jsoninmake?provisionedCapacityList()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"This operation lists the provisioned capacity units for the specified AWS account."]moduleListProvisionedCapacityInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, don't include any hyphens ('-') in the ID."]}letcontext_="ListProvisionedCapacityInput"letmake~accountId=fun()->{accountId}letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"This operation lists the provisioned capacity units for the specified AWS account."]moduleListPartsOutput=structtypenonrect={multipartUploadId:String_.toption[@ocaml.doc"The ID of the upload to which the parts are associated."];vaultARN:String_.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the vault to which the multipart upload was initiated."];archiveDescription:String_.toption[@ocaml.doc"The description of the archive that was specified in the Initiate Multipart Upload request."];partSizeInBytes:Long.toption[@ocaml.doc"The part size in bytes. This is the same value that you specified in the Initiate Multipart Upload request."];creationDate:String_.toption[@ocaml.doc"The UTC time at which the multipart upload was initiated."];parts:PartList.toption[@ocaml.doc"A list of the part sizes of the multipart upload. Each object in the array contains a RangeBytes and sha256-tree-hash name/value pair."];marker:String_.toption[@ocaml.doc"An opaque string that represents where to continue pagination of the results. You use the marker in a new List Parts request to obtain more jobs in the list. If there are no more parts, this value is null."]}typenonrecerror=[`InvalidParameterValueExceptionofInvalidParameterValueException.t|`MissingParameterValueExceptionofMissingParameterValueException.t|`NoLongerSupportedExceptionofNoLongerSupportedException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`Unknown_operation_errorof(string*stringoption)]letmake?multipartUploadId=fun?vaultARN->fun?archiveDescription->fun?partSizeInBytes->fun?creationDate->fun?parts->fun?marker->fun()->{multipartUploadId;vaultARN;archiveDescription;partSizeInBytes;creationDate;parts;marker}leterror_of_jsonnamejson=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_jsonjson)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_jsonjson)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_xmlxml)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_xmlxml)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InvalidParameterValueExceptione->`Assoc[("error",(`String"InvalidParameterValueException"));("details",(InvalidParameterValueException.to_jsone))]|`MissingParameterValueExceptione->`Assoc[("error",(`String"MissingParameterValueException"));("details",(MissingParameterValueException.to_jsone))]|`NoLongerSupportedExceptione->`Assoc[("error",(`String"NoLongerSupportedException"));("details",(NoLongerSupportedException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("MultipartUploadId",(Option.mapx.multipartUploadId~f:String_.to_value));("VaultARN",(Option.mapx.vaultARN~f:String_.to_value));("ArchiveDescription",(Option.mapx.archiveDescription~f:String_.to_value));("PartSizeInBytes",(Option.mapx.partSizeInBytes~f:Long.to_value));("CreationDate",(Option.mapx.creationDate~f:String_.to_value));("Parts",(Option.mapx.parts~f:PartList.to_value));("Marker",(Option.mapx.marker~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmarker=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Marker")inletparts=(Option.map~f:PartList.of_xml)(Xml.childxml_arg0"Parts")inletcreationDate=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"CreationDate")inletpartSizeInBytes=(Option.map~f:Long.of_xml)(Xml.childxml_arg0"PartSizeInBytes")inletarchiveDescription=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ArchiveDescription")inletvaultARN=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"VaultARN")inletmultipartUploadId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"MultipartUploadId")inmake?marker?parts?creationDate?partSizeInBytes?archiveDescription?vaultARN?multipartUploadId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmarker=field_mapjson__"Marker"String_.of_jsoninletparts=field_mapjson__"Parts"PartList.of_jsoninletcreationDate=field_mapjson__"CreationDate"String_.of_jsoninletpartSizeInBytes=field_mapjson__"PartSizeInBytes"Long.of_jsoninletarchiveDescription=field_mapjson__"ArchiveDescription"String_.of_jsoninletvaultARN=field_mapjson__"VaultARN"String_.of_jsoninletmultipartUploadId=field_mapjson__"MultipartUploadId"String_.of_jsoninmake?marker?parts?creationDate?partSizeInBytes?archiveDescription?vaultARN?multipartUploadId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains the Amazon Glacier response to your request."]moduleListPartsInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID."];vaultName:String_.t[@ocaml.doc"The name of the vault."];uploadId:String_.t[@ocaml.doc"The upload ID of the multipart upload."];marker:String_.toption[@ocaml.doc"An opaque string used for pagination. This value specifies the part at which the listing of parts should begin. Get the marker value from the response of a previous List Parts response. You need only include the marker if you are continuing the pagination of results started in a previous List Parts request."];limit:String_.toption[@ocaml.doc"The maximum number of parts to be returned. The default limit is 50. The number of parts returned might be fewer than the specified limit, but the number of returned parts never exceeds the limit."]}letcontext_="ListPartsInput"letmake?marker=fun?limit->fun~accountId->fun~vaultName->fun~uploadId->fun()->{marker;limit;accountId;vaultName;uploadId}letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("vaultName",(Some(String_.to_valuex.vaultName)));("uploadId",(Some(String_.to_valuex.uploadId)));("marker",(Option.mapx.marker~f:String_.to_value));("limit",(Option.mapx.limit~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlimit=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"limit")inletmarker=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"marker")inletuploadId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"uploadId")inletvaultName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"vaultName")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake?limit?marker~uploadId~vaultName~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlimit=field_mapjson__"limit"String_.of_jsoninletmarker=field_mapjson__"marker"String_.of_jsoninletuploadId=field_map_exnjson__"uploadId"String_.of_jsoninletvaultName=field_map_exnjson__"vaultName"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake?limit?marker~uploadId~vaultName~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Provides options for retrieving a list of parts of an archive that have been uploaded in a specific multipart upload."]moduleListMultipartUploadsOutput=structtypenonrect={uploadsList:UploadsList.toption[@ocaml.doc"A list of in-progress multipart uploads."];marker:String_.toption[@ocaml.doc"An opaque string that represents where to continue pagination of the results. You use the marker in a new List Multipart Uploads request to obtain more uploads in the list. If there are no more uploads, this value is null."]}typenonrecerror=[`InvalidParameterValueExceptionofInvalidParameterValueException.t|`MissingParameterValueExceptionofMissingParameterValueException.t|`NoLongerSupportedExceptionofNoLongerSupportedException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`Unknown_operation_errorof(string*stringoption)]letmake?uploadsList=fun?marker->fun()->{uploadsList;marker}leterror_of_jsonnamejson=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_jsonjson)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_jsonjson)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_xmlxml)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_xmlxml)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InvalidParameterValueExceptione->`Assoc[("error",(`String"InvalidParameterValueException"));("details",(InvalidParameterValueException.to_jsone))]|`MissingParameterValueExceptione->`Assoc[("error",(`String"MissingParameterValueException"));("details",(MissingParameterValueException.to_jsone))]|`NoLongerSupportedExceptione->`Assoc[("error",(`String"NoLongerSupportedException"));("details",(NoLongerSupportedException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("UploadsList",(Option.mapx.uploadsList~f:UploadsList.to_value));("Marker",(Option.mapx.marker~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmarker=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Marker")inletuploadsList=(Option.map~f:UploadsList.of_xml)(Xml.childxml_arg0"UploadsList")inmake?marker?uploadsList()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmarker=field_mapjson__"Marker"String_.of_jsoninletuploadsList=field_mapjson__"UploadsList"UploadsList.of_jsoninmake?marker?uploadsList()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains the Amazon Glacier response to your request."]moduleListMultipartUploadsInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID."];vaultName:String_.t[@ocaml.doc"The name of the vault."];marker:String_.toption[@ocaml.doc"An opaque string used for pagination. This value specifies the upload at which the listing of uploads should begin. Get the marker value from a previous List Uploads response. You need only include the marker if you are continuing the pagination of results started in a previous List Uploads request."];limit:String_.toption[@ocaml.doc"Specifies the maximum number of uploads returned in the response body. If this value is not specified, the List Uploads operation returns up to 50 uploads."]}letcontext_="ListMultipartUploadsInput"letmake?marker=fun?limit->fun~accountId->fun~vaultName->fun()->{marker;limit;accountId;vaultName}letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("vaultName",(Some(String_.to_valuex.vaultName)));("marker",(Option.mapx.marker~f:String_.to_value));("limit",(Option.mapx.limit~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlimit=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"limit")inletmarker=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"marker")inletvaultName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"vaultName")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake?limit?marker~vaultName~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlimit=field_mapjson__"limit"String_.of_jsoninletmarker=field_mapjson__"marker"String_.of_jsoninletvaultName=field_map_exnjson__"vaultName"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake?limit?marker~vaultName~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Provides options for retrieving list of in-progress multipart uploads for an Amazon Glacier vault."]moduleListJobsOutput=structtypenonrect={jobList:JobList.toption[@ocaml.doc"A list of job objects. Each job object contains metadata describing the job."];marker:String_.toption[@ocaml.doc"An opaque string used for pagination that specifies the job at which the listing of jobs should begin. You get the marker value from a previous List Jobs response. You only need to include the marker if you are continuing the pagination of the results started in a previous List Jobs request."]}typenonrecerror=[`InvalidParameterValueExceptionofInvalidParameterValueException.t|`MissingParameterValueExceptionofMissingParameterValueException.t|`NoLongerSupportedExceptionofNoLongerSupportedException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`Unknown_operation_errorof(string*stringoption)]letmake?jobList=fun?marker->fun()->{jobList;marker}leterror_of_jsonnamejson=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_jsonjson)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_jsonjson)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_xmlxml)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_xmlxml)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InvalidParameterValueExceptione->`Assoc[("error",(`String"InvalidParameterValueException"));("details",(InvalidParameterValueException.to_jsone))]|`MissingParameterValueExceptione->`Assoc[("error",(`String"MissingParameterValueException"));("details",(MissingParameterValueException.to_jsone))]|`NoLongerSupportedExceptione->`Assoc[("error",(`String"NoLongerSupportedException"));("details",(NoLongerSupportedException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("JobList",(Option.mapx.jobList~f:JobList.to_value));("Marker",(Option.mapx.marker~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmarker=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Marker")inletjobList=(Option.map~f:JobList.of_xml)(Xml.childxml_arg0"JobList")inmake?marker?jobList()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmarker=field_mapjson__"Marker"String_.of_jsoninletjobList=field_mapjson__"JobList"JobList.of_jsoninmake?marker?jobList()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains the Amazon Glacier response to your request."]moduleListJobsInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID."];vaultName:String_.t[@ocaml.doc"The name of the vault."];limit:String_.toption[@ocaml.doc"The maximum number of jobs to be returned. The default limit is 50. The number of jobs returned might be fewer than the specified limit, but the number of returned jobs never exceeds the limit."];marker:String_.toption[@ocaml.doc"An opaque string used for pagination. This value specifies the job at which the listing of jobs should begin. Get the marker value from a previous List Jobs response. You only need to include the marker if you are continuing the pagination of results started in a previous List Jobs request."];statuscode:String_.toption[@ocaml.doc"The type of job status to return. You can specify the following values: InProgress, Succeeded, or Failed."];completed:String_.toption[@ocaml.doc"The state of the jobs to return. You can specify true or false."]}letcontext_="ListJobsInput"letmake?limit=fun?marker->fun?statuscode->fun?completed->fun~accountId->fun~vaultName->fun()->{limit;marker;statuscode;completed;accountId;vaultName}letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("vaultName",(Some(String_.to_valuex.vaultName)));("limit",(Option.mapx.limit~f:String_.to_value));("marker",(Option.mapx.marker~f:String_.to_value));("statuscode",(Option.mapx.statuscode~f:String_.to_value));("completed",(Option.mapx.completed~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcompleted=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"completed")inletstatuscode=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"statuscode")inletmarker=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"marker")inletlimit=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"limit")inletvaultName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"vaultName")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake?completed?statuscode?marker?limit~vaultName~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcompleted=field_mapjson__"completed"String_.of_jsoninletstatuscode=field_mapjson__"statuscode"String_.of_jsoninletmarker=field_mapjson__"marker"String_.of_jsoninletlimit=field_mapjson__"limit"String_.of_jsoninletvaultName=field_map_exnjson__"vaultName"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake?completed?statuscode?marker?limit~vaultName~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Provides options for retrieving a job list for an Amazon Glacier vault."]moduleInitiateVaultLockOutput=structtypenonrect={lockId:String_.toption[@ocaml.doc"The lock ID, which is used to complete the vault locking process."]}typenonrecerror=[`InvalidParameterValueExceptionofInvalidParameterValueException.t|`MissingParameterValueExceptionofMissingParameterValueException.t|`NoLongerSupportedExceptionofNoLongerSupportedException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`Unknown_operation_errorof(string*stringoption)]letmake?lockId=fun()->{lockId}leterror_of_jsonnamejson=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_jsonjson)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_jsonjson)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_xmlxml)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_xmlxml)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InvalidParameterValueExceptione->`Assoc[("error",(`String"InvalidParameterValueException"));("details",(InvalidParameterValueException.to_jsone))]|`MissingParameterValueExceptione->`Assoc[("error",(`String"MissingParameterValueException"));("details",(MissingParameterValueException.to_jsone))]|`NoLongerSupportedExceptione->`Assoc[("error",(`String"NoLongerSupportedException"));("details",(NoLongerSupportedException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make?lockId:(Option.map((List.Assoc.find~equal:String.Caseless.equal)xs"x-amz-lock-id")~f:String_.of_string)())[@warning"-27"])letto_valuex=structure_to_value[("x-amz-lock-id",(Option.mapx.lockId~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlockId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"x-amz-lock-id")inmake?lockId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlockId=field_mapjson__"lockId"String_.of_jsoninmake?lockId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains the Amazon Glacier response to your request."]moduleInitiateVaultLockInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your account ID, do not include any hyphens ('-') in the ID."];vaultName:String_.t[@ocaml.doc"The name of the vault."];policy:VaultLockPolicy.toption[@ocaml.doc"The vault lock policy as a JSON string, which uses \"\\\" as an escape character."]}letcontext_="InitiateVaultLockInput"letmake?policy=fun~accountId->fun~vaultName->fun()->{policy;accountId;vaultName}letof_header_and_body=((fun(xs,pipe)->make~accountId:(String_.of_string((List.Assoc.find_exn~equal:String.Caseless.equal)xs"accountId"))~vaultName:(String_.of_string((List.Assoc.find_exn~equal:String.Caseless.equal)xs"vaultName"))?policy:(Somepipe)())[@warning"-27"])letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("vaultName",(Some(String_.to_valuex.vaultName)));("policy",(Option.mapx.policy~f:VaultLockPolicy.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpolicy=(Option.map~f:VaultLockPolicy.of_xml)(Xml.childxml_arg0"policy")inletvaultName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"vaultName")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake?policy~vaultName~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpolicy=field_mapjson__"policy"VaultLockPolicy.of_jsoninletvaultName=field_map_exnjson__"vaultName"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake?policy~vaultName~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The input values for InitiateVaultLock."]moduleInitiateMultipartUploadOutput=structtypenonrect={location:String_.toption[@ocaml.doc"The relative URI path of the multipart upload ID Amazon Glacier created."];uploadId:String_.toption[@ocaml.doc"The ID of the multipart upload. This value is also included as part of the location."]}typenonrecerror=[`InvalidParameterValueExceptionofInvalidParameterValueException.t|`MissingParameterValueExceptionofMissingParameterValueException.t|`NoLongerSupportedExceptionofNoLongerSupportedException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`Unknown_operation_errorof(string*stringoption)]letmake?location=fun?uploadId->fun()->{location;uploadId}leterror_of_jsonnamejson=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_jsonjson)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_jsonjson)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_xmlxml)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_xmlxml)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InvalidParameterValueExceptione->`Assoc[("error",(`String"InvalidParameterValueException"));("details",(InvalidParameterValueException.to_jsone))]|`MissingParameterValueExceptione->`Assoc[("error",(`String"MissingParameterValueException"));("details",(MissingParameterValueException.to_jsone))]|`NoLongerSupportedExceptione->`Assoc[("error",(`String"NoLongerSupportedException"));("details",(NoLongerSupportedException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make?location:(Option.map((List.Assoc.find~equal:String.Caseless.equal)xs"Location")~f:String_.of_string)?uploadId:(Option.map((List.Assoc.find~equal:String.Caseless.equal)xs"x-amz-multipart-upload-id")~f:String_.of_string)())[@warning"-27"])letto_valuex=structure_to_value[("Location",(Option.mapx.location~f:String_.to_value));("x-amz-multipart-upload-id",(Option.mapx.uploadId~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letuploadId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"x-amz-multipart-upload-id")inletlocation=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Location")inmake?uploadId?location()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letuploadId=field_mapjson__"uploadId"String_.of_jsoninletlocation=field_mapjson__"location"String_.of_jsoninmake?uploadId?location()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The Amazon Glacier response to your request."]moduleInitiateMultipartUploadInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID."];vaultName:String_.t[@ocaml.doc"The name of the vault."];archiveDescription:String_.toption[@ocaml.doc"The archive description that you are uploading in parts. The part size must be a megabyte (1024 KB) multiplied by a power of 2, for example 1048576 (1 MB), 2097152 (2 MB), 4194304 (4 MB), 8388608 (8 MB), and so on. The minimum allowable part size is 1 MB, and the maximum is 4 GB (4096 MB)."];partSize:String_.toption[@ocaml.doc"The size of each part except the last, in bytes. The last part can be smaller than this part size."]}letcontext_="InitiateMultipartUploadInput"letmake?archiveDescription=fun?partSize->fun~accountId->fun~vaultName->fun()->{archiveDescription;partSize;accountId;vaultName}letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("vaultName",(Some(String_.to_valuex.vaultName)));("x-amz-archive-description",(Option.mapx.archiveDescription~f:String_.to_value));("x-amz-part-size",(Option.mapx.partSize~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpartSize=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"x-amz-part-size")inletarchiveDescription=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"x-amz-archive-description")inletvaultName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"vaultName")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake?partSize?archiveDescription~vaultName~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpartSize=field_mapjson__"partSize"String_.of_jsoninletarchiveDescription=field_mapjson__"archiveDescription"String_.of_jsoninletvaultName=field_map_exnjson__"vaultName"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake?partSize?archiveDescription~vaultName~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Provides options for initiating a multipart upload to an Amazon Glacier vault."]moduleInitiateJobOutput=structtypenonrect={location:String_.toption[@ocaml.doc"The relative URI path of the job."];jobId:String_.toption[@ocaml.doc"The ID of the job."];jobOutputPath:String_.toption[@ocaml.doc"The path to the location of where the select results are stored."]}typenonrecerror=[`InsufficientCapacityExceptionofInsufficientCapacityException.t|`InvalidParameterValueExceptionofInvalidParameterValueException.t|`MissingParameterValueExceptionofMissingParameterValueException.t|`NoLongerSupportedExceptionofNoLongerSupportedException.t|`PolicyEnforcedExceptionofPolicyEnforcedException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`Unknown_operation_errorof(string*stringoption)]letmake?location=fun?jobId->fun?jobOutputPath->fun()->{location;jobId;jobOutputPath}leterror_of_jsonnamejson=matchnamewith|"InsufficientCapacityException"->`InsufficientCapacityException(InsufficientCapacityException.of_jsonjson)|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_jsonjson)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_jsonjson)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_jsonjson)|"PolicyEnforcedException"->`PolicyEnforcedException(PolicyEnforcedException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InsufficientCapacityException"->`InsufficientCapacityException(InsufficientCapacityException.of_xmlxml)|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_xmlxml)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_xmlxml)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_xmlxml)|"PolicyEnforcedException"->`PolicyEnforcedException(PolicyEnforcedException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InsufficientCapacityExceptione->`Assoc[("error",(`String"InsufficientCapacityException"));("details",(InsufficientCapacityException.to_jsone))]|`InvalidParameterValueExceptione->`Assoc[("error",(`String"InvalidParameterValueException"));("details",(InvalidParameterValueException.to_jsone))]|`MissingParameterValueExceptione->`Assoc[("error",(`String"MissingParameterValueException"));("details",(MissingParameterValueException.to_jsone))]|`NoLongerSupportedExceptione->`Assoc[("error",(`String"NoLongerSupportedException"));("details",(NoLongerSupportedException.to_jsone))]|`PolicyEnforcedExceptione->`Assoc[("error",(`String"PolicyEnforcedException"));("details",(PolicyEnforcedException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make?location:(Option.map((List.Assoc.find~equal:String.Caseless.equal)xs"Location")~f:String_.of_string)?jobId:(Option.map((List.Assoc.find~equal:String.Caseless.equal)xs"x-amz-job-id")~f:String_.of_string)?jobOutputPath:(Option.map((List.Assoc.find~equal:String.Caseless.equal)xs"x-amz-job-output-path")~f:String_.of_string)())[@warning"-27"])letto_valuex=structure_to_value[("Location",(Option.mapx.location~f:String_.to_value));("x-amz-job-id",(Option.mapx.jobId~f:String_.to_value));("x-amz-job-output-path",(Option.mapx.jobOutputPath~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letjobOutputPath=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"x-amz-job-output-path")inletjobId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"x-amz-job-id")inletlocation=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Location")inmake?jobOutputPath?jobId?location()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letjobOutputPath=field_mapjson__"jobOutputPath"String_.of_jsoninletjobId=field_mapjson__"jobId"String_.of_jsoninletlocation=field_mapjson__"location"String_.of_jsoninmake?jobOutputPath?jobId?location()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains the Amazon Glacier response to your request."]moduleInitiateJobInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID."];vaultName:String_.t[@ocaml.doc"The name of the vault."];jobParameters:JobParameters.toption[@ocaml.doc"Provides options for specifying job information."]}letcontext_="InitiateJobInput"letmake?jobParameters=fun~accountId->fun~vaultName->fun()->{jobParameters;accountId;vaultName}letof_header_and_body=((fun(xs,pipe)->make~accountId:(String_.of_string((List.Assoc.find_exn~equal:String.Caseless.equal)xs"accountId"))~vaultName:(String_.of_string((List.Assoc.find_exn~equal:String.Caseless.equal)xs"vaultName"))?jobParameters:(Somepipe)())[@warning"-27"])letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("vaultName",(Some(String_.to_valuex.vaultName)));("jobParameters",(Option.mapx.jobParameters~f:JobParameters.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letjobParameters=(Option.map~f:JobParameters.of_xml)(Xml.childxml_arg0"jobParameters")inletvaultName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"vaultName")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake?jobParameters~vaultName~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letjobParameters=field_mapjson__"jobParameters"JobParameters.of_jsoninletvaultName=field_map_exnjson__"vaultName"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake?jobParameters~vaultName~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Provides options for initiating an Amazon Glacier job."]moduleGetVaultNotificationsOutput=structtypenonrect={vaultNotificationConfig:VaultNotificationConfig.toption[@ocaml.doc"Returns the notification configuration set on the vault."]}typenonrecerror=[`InvalidParameterValueExceptionofInvalidParameterValueException.t|`MissingParameterValueExceptionofMissingParameterValueException.t|`NoLongerSupportedExceptionofNoLongerSupportedException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`Unknown_operation_errorof(string*stringoption)]letmake?vaultNotificationConfig=fun()->{vaultNotificationConfig}leterror_of_jsonnamejson=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_jsonjson)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_jsonjson)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_xmlxml)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_xmlxml)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InvalidParameterValueExceptione->`Assoc[("error",(`String"InvalidParameterValueException"));("details",(InvalidParameterValueException.to_jsone))]|`MissingParameterValueExceptione->`Assoc[("error",(`String"MissingParameterValueException"));("details",(MissingParameterValueException.to_jsone))]|`NoLongerSupportedExceptione->`Assoc[("error",(`String"NoLongerSupportedException"));("details",(NoLongerSupportedException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make?vaultNotificationConfig:(Somepipe)())[@warning"-27"])letto_valuex=structure_to_value[("vaultNotificationConfig",(Option.mapx.vaultNotificationConfig~f:VaultNotificationConfig.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvaultNotificationConfig=(Option.map~f:VaultNotificationConfig.of_xml)(Xml.childxml_arg0"vaultNotificationConfig")inmake?vaultNotificationConfig()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvaultNotificationConfig=field_mapjson__"vaultNotificationConfig"VaultNotificationConfig.of_jsoninmake?vaultNotificationConfig()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains the Amazon Glacier response to your request."]moduleGetVaultNotificationsInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID."];vaultName:String_.t[@ocaml.doc"The name of the vault."]}letcontext_="GetVaultNotificationsInput"letmake~accountId=fun~vaultName->fun()->{accountId;vaultName}letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("vaultName",(Some(String_.to_valuex.vaultName)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvaultName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"vaultName")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake~vaultName~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvaultName=field_map_exnjson__"vaultName"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake~vaultName~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Provides options for retrieving the notification configuration set on an Amazon Glacier vault."]moduleGetVaultLockOutput=structtypenonrect={policy:String_.toption[@ocaml.doc"The vault lock policy as a JSON string, which uses \"\\\" as an escape character."];state:String_.toption[@ocaml.doc"The state of the vault lock. InProgress or Locked."];expirationDate:String_.toption[@ocaml.doc"The UTC date and time at which the lock ID expires. This value can be null if the vault lock is in a Locked state."];creationDate:String_.toption[@ocaml.doc"The UTC date and time at which the vault lock was put into the InProgress state."]}typenonrecerror=[`InvalidParameterValueExceptionofInvalidParameterValueException.t|`MissingParameterValueExceptionofMissingParameterValueException.t|`NoLongerSupportedExceptionofNoLongerSupportedException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`Unknown_operation_errorof(string*stringoption)]letmake?policy=fun?state->fun?expirationDate->fun?creationDate->fun()->{policy;state;expirationDate;creationDate}leterror_of_jsonnamejson=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_jsonjson)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_jsonjson)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_xmlxml)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_xmlxml)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InvalidParameterValueExceptione->`Assoc[("error",(`String"InvalidParameterValueException"));("details",(InvalidParameterValueException.to_jsone))]|`MissingParameterValueExceptione->`Assoc[("error",(`String"MissingParameterValueException"));("details",(MissingParameterValueException.to_jsone))]|`NoLongerSupportedExceptione->`Assoc[("error",(`String"NoLongerSupportedException"));("details",(NoLongerSupportedException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Policy",(Option.mapx.policy~f:String_.to_value));("State",(Option.mapx.state~f:String_.to_value));("ExpirationDate",(Option.mapx.expirationDate~f:String_.to_value));("CreationDate",(Option.mapx.creationDate~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcreationDate=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"CreationDate")inletexpirationDate=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"ExpirationDate")inletstate=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"State")inletpolicy=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Policy")inmake?creationDate?expirationDate?state?policy()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcreationDate=field_mapjson__"CreationDate"String_.of_jsoninletexpirationDate=field_mapjson__"ExpirationDate"String_.of_jsoninletstate=field_mapjson__"State"String_.of_jsoninletpolicy=field_mapjson__"Policy"String_.of_jsoninmake?creationDate?expirationDate?state?policy()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains the Amazon Glacier response to your request."]moduleGetVaultLockInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID."];vaultName:String_.t[@ocaml.doc"The name of the vault."]}letcontext_="GetVaultLockInput"letmake~accountId=fun~vaultName->fun()->{accountId;vaultName}letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("vaultName",(Some(String_.to_valuex.vaultName)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvaultName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"vaultName")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake~vaultName~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvaultName=field_map_exnjson__"vaultName"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake~vaultName~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The input values for GetVaultLock."]moduleGetVaultAccessPolicyOutput=structtypenonrect={policy:VaultAccessPolicy.toption[@ocaml.doc"Contains the returned vault access policy as a JSON string."]}typenonrecerror=[`InvalidParameterValueExceptionofInvalidParameterValueException.t|`MissingParameterValueExceptionofMissingParameterValueException.t|`NoLongerSupportedExceptionofNoLongerSupportedException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`Unknown_operation_errorof(string*stringoption)]letmake?policy=fun()->{policy}leterror_of_jsonnamejson=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_jsonjson)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_jsonjson)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_xmlxml)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_xmlxml)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InvalidParameterValueExceptione->`Assoc[("error",(`String"InvalidParameterValueException"));("details",(InvalidParameterValueException.to_jsone))]|`MissingParameterValueExceptione->`Assoc[("error",(`String"MissingParameterValueException"));("details",(MissingParameterValueException.to_jsone))]|`NoLongerSupportedExceptione->`Assoc[("error",(`String"NoLongerSupportedException"));("details",(NoLongerSupportedException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make?policy:(Somepipe)())[@warning"-27"])letto_valuex=structure_to_value[("policy",(Option.mapx.policy~f:VaultAccessPolicy.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpolicy=(Option.map~f:VaultAccessPolicy.of_xml)(Xml.childxml_arg0"policy")inmake?policy()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpolicy=field_mapjson__"policy"VaultAccessPolicy.of_jsoninmake?policy()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Output for GetVaultAccessPolicy."]moduleGetVaultAccessPolicyInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID."];vaultName:String_.t[@ocaml.doc"The name of the vault."]}letcontext_="GetVaultAccessPolicyInput"letmake~accountId=fun~vaultName->fun()->{accountId;vaultName}letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("vaultName",(Some(String_.to_valuex.vaultName)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvaultName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"vaultName")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake~vaultName~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvaultName=field_map_exnjson__"vaultName"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake~vaultName~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Input for GetVaultAccessPolicy."]moduleGetJobOutputOutput=structtypenonrect={body:Stream.toption[@ocaml.doc"The job data, either archive data or inventory data."];checksum:String_.toption[@ocaml.doc"The checksum of the data in the response. This header is returned only when retrieving the output for an archive retrieval job. Furthermore, this header appears only under the following conditions: You get the entire range of the archive. You request a range to return of the archive that starts and ends on a multiple of 1 MB. For example, if you have an 3.1 MB archive and you specify a range to return that starts at 1 MB and ends at 2 MB, then the x-amz-sha256-tree-hash is returned as a response header. You request a range of the archive to return that starts on a multiple of 1 MB and goes to the end of the archive. For example, if you have a 3.1 MB archive and you specify a range that starts at 2 MB and ends at 3.1 MB (the end of the archive), then the x-amz-sha256-tree-hash is returned as a response header."];status:Httpstatus.toption[@ocaml.doc"The HTTP response code for a job output request. The value depends on whether a range was specified in the request."];contentRange:String_.toption[@ocaml.doc"The range of bytes returned by Amazon Glacier. If only partial output is downloaded, the response provides the range of bytes Amazon Glacier returned. For example, bytes 0-1048575/8388608 returns the first 1 MB from 8 MB."];acceptRanges:String_.toption[@ocaml.doc"Indicates the range units accepted. For more information, see RFC2616."];contentType:String_.toption[@ocaml.doc"The Content-Type depends on whether the job output is an archive or a vault inventory. For archive data, the Content-Type is application/octet-stream. For vault inventory, if you requested CSV format when you initiated the job, the Content-Type is text/csv. Otherwise, by default, vault inventory is returned as JSON, and the Content-Type is application/json."];archiveDescription:String_.toption[@ocaml.doc"The description of an archive."]}typenonrecerror=[`InvalidParameterValueExceptionofInvalidParameterValueException.t|`MissingParameterValueExceptionofMissingParameterValueException.t|`NoLongerSupportedExceptionofNoLongerSupportedException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`Unknown_operation_errorof(string*stringoption)]letmake?body=fun?checksum->fun?status->fun?contentRange->fun?acceptRanges->fun?contentType->fun?archiveDescription->fun()->{body;checksum;status;contentRange;acceptRanges;contentType;archiveDescription}leterror_of_jsonnamejson=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_jsonjson)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_jsonjson)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_xmlxml)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_xmlxml)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InvalidParameterValueExceptione->`Assoc[("error",(`String"InvalidParameterValueException"));("details",(InvalidParameterValueException.to_jsone))]|`MissingParameterValueExceptione->`Assoc[("error",(`String"MissingParameterValueException"));("details",(MissingParameterValueException.to_jsone))]|`NoLongerSupportedExceptione->`Assoc[("error",(`String"NoLongerSupportedException"));("details",(NoLongerSupportedException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make?body:(Somepipe)?checksum:(Option.map((List.Assoc.find~equal:String.Caseless.equal)xs"x-amz-sha256-tree-hash")~f:String_.of_string)?status:(Option.map((List.Assoc.find~equal:String.Caseless.equal)xs"status")~f:Httpstatus.of_string)?contentRange:(Option.map((List.Assoc.find~equal:String.Caseless.equal)xs"Content-Range")~f:String_.of_string)?acceptRanges:(Option.map((List.Assoc.find~equal:String.Caseless.equal)xs"Accept-Ranges")~f:String_.of_string)?contentType:(Option.map((List.Assoc.find~equal:String.Caseless.equal)xs"Content-Type")~f:String_.of_string)?archiveDescription:(Option.map((List.Assoc.find~equal:String.Caseless.equal)xs"x-amz-archive-description")~f:String_.of_string)())[@warning"-27"])letto_valuex=structure_to_value[("body",(Option.mapx.body~f:Stream.to_value));("x-amz-sha256-tree-hash",(Option.mapx.checksum~f:String_.to_value));("status",(Option.mapx.status~f:Httpstatus.to_value));("Content-Range",(Option.mapx.contentRange~f:String_.to_value));("Accept-Ranges",(Option.mapx.acceptRanges~f:String_.to_value));("Content-Type",(Option.mapx.contentType~f:String_.to_value));("x-amz-archive-description",(Option.mapx.archiveDescription~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letarchiveDescription=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"x-amz-archive-description")inletcontentType=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Content-Type")inletacceptRanges=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Accept-Ranges")inletcontentRange=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Content-Range")inletstatus=(Option.map~f:Httpstatus.of_xml)(Xml.childxml_arg0"status")inletchecksum=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"x-amz-sha256-tree-hash")inletbody=(Option.map~f:Stream.of_xml)(Xml.childxml_arg0"body")inmake?archiveDescription?contentType?acceptRanges?contentRange?status?checksum?body()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letarchiveDescription=field_mapjson__"archiveDescription"String_.of_jsoninletcontentType=field_mapjson__"contentType"String_.of_jsoninletacceptRanges=field_mapjson__"acceptRanges"String_.of_jsoninletcontentRange=field_mapjson__"contentRange"String_.of_jsoninletstatus=field_mapjson__"status"Httpstatus.of_jsoninletchecksum=field_mapjson__"checksum"String_.of_jsoninletbody=field_mapjson__"body"Stream.of_jsoninmake?archiveDescription?contentType?acceptRanges?contentRange?status?checksum?body()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains the Amazon Glacier response to your request."]moduleGetJobOutputInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID."];vaultName:String_.t[@ocaml.doc"The name of the vault."];jobId:String_.t[@ocaml.doc"The job ID whose data is downloaded."];range:String_.toption[@ocaml.doc"The range of bytes to retrieve from the output. For example, if you want to download the first 1,048,576 bytes, specify the range as bytes=0-1048575. By default, this operation downloads the entire output. If the job output is large, then you can use a range to retrieve a portion of the output. This allows you to download the entire output in smaller chunks of bytes. For example, suppose you have 1 GB of job output you want to download and you decide to download 128 MB chunks of data at a time, which is a total of eight Get Job Output requests. You use the following process to download the job output: Download a 128 MB chunk of output by specifying the appropriate byte range. Verify that all 128 MB of data was received. Along with the data, the response includes a SHA256 tree hash of the payload. You compute the checksum of the payload on the client and compare it with the checksum you received in the response to ensure you received all the expected data. Repeat steps 1 and 2 for all the eight 128 MB chunks of output data, each time specifying the appropriate byte range. After downloading all the parts of the job output, you have a list of eight checksum values. Compute the tree hash of these values to find the checksum of the entire output. Using the DescribeJob API, obtain job information of the job that provided you the output. The response includes the checksum of the entire archive stored in Amazon Glacier. You compare this value with the checksum you computed to ensure you have downloaded the entire archive content with no errors."]}letcontext_="GetJobOutputInput"letmake?range=fun~accountId->fun~vaultName->fun~jobId->fun()->{range;accountId;vaultName;jobId}letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("vaultName",(Some(String_.to_valuex.vaultName)));("jobId",(Some(String_.to_valuex.jobId)));("Range",(Option.mapx.range~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letrange=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Range")inletjobId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"jobId")inletvaultName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"vaultName")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake?range~jobId~vaultName~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letrange=field_mapjson__"range"String_.of_jsoninletjobId=field_map_exnjson__"jobId"String_.of_jsoninletvaultName=field_map_exnjson__"vaultName"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake?range~jobId~vaultName~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Provides options for downloading output of an Amazon Glacier job."]moduleGetDataRetrievalPolicyOutput=structtypenonrect={policy:DataRetrievalPolicy.toption[@ocaml.doc"Contains the returned data retrieval policy in JSON format."]}typenonrecerror=[`InvalidParameterValueExceptionofInvalidParameterValueException.t|`MissingParameterValueExceptionofMissingParameterValueException.t|`NoLongerSupportedExceptionofNoLongerSupportedException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`Unknown_operation_errorof(string*stringoption)]letmake?policy=fun()->{policy}leterror_of_jsonnamejson=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_jsonjson)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_jsonjson)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_xmlxml)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_xmlxml)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InvalidParameterValueExceptione->`Assoc[("error",(`String"InvalidParameterValueException"));("details",(InvalidParameterValueException.to_jsone))]|`MissingParameterValueExceptione->`Assoc[("error",(`String"MissingParameterValueException"));("details",(MissingParameterValueException.to_jsone))]|`NoLongerSupportedExceptione->`Assoc[("error",(`String"NoLongerSupportedException"));("details",(NoLongerSupportedException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Policy",(Option.mapx.policy~f:DataRetrievalPolicy.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpolicy=(Option.map~f:DataRetrievalPolicy.of_xml)(Xml.childxml_arg0"Policy")inmake?policy()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpolicy=field_mapjson__"Policy"DataRetrievalPolicy.of_jsoninmake?policy()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains the Amazon Glacier response to the GetDataRetrievalPolicy request."]moduleGetDataRetrievalPolicyInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your account ID, do not include any hyphens ('-') in the ID."]}letcontext_="GetDataRetrievalPolicyInput"letmake~accountId=fun()->{accountId}letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Input for GetDataRetrievalPolicy."]moduleDescribeVaultInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID."];vaultName:String_.t[@ocaml.doc"The name of the vault."]}letcontext_="DescribeVaultInput"letmake~accountId=fun~vaultName->fun()->{accountId;vaultName}letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("vaultName",(Some(String_.to_valuex.vaultName)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvaultName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"vaultName")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake~vaultName~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvaultName=field_map_exnjson__"vaultName"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake~vaultName~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Provides options for retrieving metadata for a specific vault in Amazon Glacier."]moduleDescribeJobInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID."];vaultName:String_.t[@ocaml.doc"The name of the vault."];jobId:String_.t[@ocaml.doc"The ID of the job to describe."]}letcontext_="DescribeJobInput"letmake~accountId=fun~vaultName->fun~jobId->fun()->{accountId;vaultName;jobId}letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("vaultName",(Some(String_.to_valuex.vaultName)));("jobId",(Some(String_.to_valuex.jobId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letjobId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"jobId")inletvaultName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"vaultName")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake~jobId~vaultName~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letjobId=field_map_exnjson__"jobId"String_.of_jsoninletvaultName=field_map_exnjson__"vaultName"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake~jobId~vaultName~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Provides options for retrieving a job description."]moduleDeleteVaultNotificationsInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID."];vaultName:String_.t[@ocaml.doc"The name of the vault."]}letcontext_="DeleteVaultNotificationsInput"letmake~accountId=fun~vaultName->fun()->{accountId;vaultName}letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("vaultName",(Some(String_.to_valuex.vaultName)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvaultName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"vaultName")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake~vaultName~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvaultName=field_map_exnjson__"vaultName"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake~vaultName~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Provides options for deleting a vault notification configuration from an Amazon Glacier vault."]moduleDeleteVaultInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID."];vaultName:String_.t[@ocaml.doc"The name of the vault."]}letcontext_="DeleteVaultInput"letmake~accountId=fun~vaultName->fun()->{accountId;vaultName}letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("vaultName",(Some(String_.to_valuex.vaultName)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvaultName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"vaultName")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake~vaultName~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvaultName=field_map_exnjson__"vaultName"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake~vaultName~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Provides options for deleting a vault from Amazon Glacier."]moduleDeleteVaultAccessPolicyInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID."];vaultName:String_.t[@ocaml.doc"The name of the vault."]}letcontext_="DeleteVaultAccessPolicyInput"letmake~accountId=fun~vaultName->fun()->{accountId;vaultName}letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("vaultName",(Some(String_.to_valuex.vaultName)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvaultName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"vaultName")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake~vaultName~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvaultName=field_map_exnjson__"vaultName"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake~vaultName~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"DeleteVaultAccessPolicy input."]moduleDeleteArchiveInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID."];vaultName:String_.t[@ocaml.doc"The name of the vault."];archiveId:String_.t[@ocaml.doc"The ID of the archive to delete."]}letcontext_="DeleteArchiveInput"letmake~accountId=fun~vaultName->fun~archiveId->fun()->{accountId;vaultName;archiveId}letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("vaultName",(Some(String_.to_valuex.vaultName)));("archiveId",(Some(String_.to_valuex.archiveId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letarchiveId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"archiveId")inletvaultName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"vaultName")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake~archiveId~vaultName~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letarchiveId=field_map_exnjson__"archiveId"String_.of_jsoninletvaultName=field_map_exnjson__"vaultName"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake~archiveId~vaultName~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Provides options for deleting an archive from an Amazon Glacier vault."]moduleCreateVaultOutput=structtypenonrect={location:String_.toption[@ocaml.doc"The URI of the vault that was created."]}typenonrecerror=[`InvalidParameterValueExceptionofInvalidParameterValueException.t|`LimitExceededExceptionofLimitExceededException.t|`MissingParameterValueExceptionofMissingParameterValueException.t|`NoLongerSupportedExceptionofNoLongerSupportedException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`Unknown_operation_errorof(string*stringoption)]letmake?location=fun()->{location}leterror_of_jsonnamejson=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_jsonjson)|"LimitExceededException"->`LimitExceededException(LimitExceededException.of_jsonjson)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_jsonjson)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_xmlxml)|"LimitExceededException"->`LimitExceededException(LimitExceededException.of_xmlxml)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_xmlxml)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InvalidParameterValueExceptione->`Assoc[("error",(`String"InvalidParameterValueException"));("details",(InvalidParameterValueException.to_jsone))]|`LimitExceededExceptione->`Assoc[("error",(`String"LimitExceededException"));("details",(LimitExceededException.to_jsone))]|`MissingParameterValueExceptione->`Assoc[("error",(`String"MissingParameterValueException"));("details",(MissingParameterValueException.to_jsone))]|`NoLongerSupportedExceptione->`Assoc[("error",(`String"NoLongerSupportedException"));("details",(NoLongerSupportedException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make?location:(Option.map((List.Assoc.find~equal:String.Caseless.equal)xs"Location")~f:String_.of_string)())[@warning"-27"])letto_valuex=structure_to_value[("Location",(Option.mapx.location~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlocation=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Location")inmake?location()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlocation=field_mapjson__"location"String_.of_jsoninmake?location()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains the Amazon Glacier response to your request."]moduleCreateVaultInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon S3 Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your account ID, do not include any hyphens ('-') in the ID."];vaultName:String_.t[@ocaml.doc"The name of the vault."]}letcontext_="CreateVaultInput"letmake~accountId=fun~vaultName->fun()->{accountId;vaultName}letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("vaultName",(Some(String_.to_valuex.vaultName)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvaultName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"vaultName")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake~vaultName~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvaultName=field_map_exnjson__"vaultName"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake~vaultName~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Provides options to create a vault."]moduleCompleteVaultLockInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your account ID, do not include any hyphens ('-') in the ID."];vaultName:String_.t[@ocaml.doc"The name of the vault."];lockId:String_.t[@ocaml.doc"The lockId value is the lock ID obtained from a InitiateVaultLock request."]}letcontext_="CompleteVaultLockInput"letmake~accountId=fun~vaultName->fun~lockId->fun()->{accountId;vaultName;lockId}letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("vaultName",(Some(String_.to_valuex.vaultName)));("lockId",(Some(String_.to_valuex.lockId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlockId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"lockId")inletvaultName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"vaultName")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake~lockId~vaultName~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlockId=field_map_exnjson__"lockId"String_.of_jsoninletvaultName=field_map_exnjson__"vaultName"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake~lockId~vaultName~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The input values for CompleteVaultLock."]moduleCompleteMultipartUploadInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID."];vaultName:String_.t[@ocaml.doc"The name of the vault."];uploadId:String_.t[@ocaml.doc"The upload ID of the multipart upload."];archiveSize:String_.toption[@ocaml.doc"The total size, in bytes, of the entire archive. This value should be the sum of all the sizes of the individual parts that you uploaded."];checksum:String_.toption[@ocaml.doc"The SHA256 tree hash of the entire archive. It is the tree hash of SHA256 tree hash of the individual parts. If the value you specify in the request does not match the SHA256 tree hash of the final assembled archive as computed by Amazon Glacier (Glacier), Glacier returns an error and the request fails."]}letcontext_="CompleteMultipartUploadInput"letmake?archiveSize=fun?checksum->fun~accountId->fun~vaultName->fun~uploadId->fun()->{archiveSize;checksum;accountId;vaultName;uploadId}letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("vaultName",(Some(String_.to_valuex.vaultName)));("uploadId",(Some(String_.to_valuex.uploadId)));("x-amz-archive-size",(Option.mapx.archiveSize~f:String_.to_value));("x-amz-sha256-tree-hash",(Option.mapx.checksum~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letchecksum=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"x-amz-sha256-tree-hash")inletarchiveSize=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"x-amz-archive-size")inletuploadId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"uploadId")inletvaultName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"vaultName")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake?checksum?archiveSize~uploadId~vaultName~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letchecksum=field_mapjson__"checksum"String_.of_jsoninletarchiveSize=field_mapjson__"archiveSize"String_.of_jsoninletuploadId=field_map_exnjson__"uploadId"String_.of_jsoninletvaultName=field_map_exnjson__"vaultName"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake?checksum?archiveSize~uploadId~vaultName~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Provides options to complete a multipart upload operation. This informs Amazon Glacier that all the archive parts have been uploaded and Amazon Glacier (Glacier) can now assemble the archive from the uploaded parts. After assembling and saving the archive to the vault, Glacier returns the URI path of the newly created archive resource."]moduleArchiveCreationOutput=structtypenonrect={location:String_.toption[@ocaml.doc"The relative URI path of the newly added archive resource."];checksum:String_.toption[@ocaml.doc"The checksum of the archive computed by Amazon Glacier."];archiveId:String_.toption[@ocaml.doc"The ID of the archive. This value is also included as part of the location."]}typenonrecerror=[`InvalidParameterValueExceptionofInvalidParameterValueException.t|`MissingParameterValueExceptionofMissingParameterValueException.t|`NoLongerSupportedExceptionofNoLongerSupportedException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`Unknown_operation_errorof(string*stringoption)]letmake?location=fun?checksum->fun?archiveId->fun()->{location;checksum;archiveId}leterror_of_jsonnamejson=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_jsonjson)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_jsonjson)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InvalidParameterValueException"->`InvalidParameterValueException(InvalidParameterValueException.of_xmlxml)|"MissingParameterValueException"->`MissingParameterValueException(MissingParameterValueException.of_xmlxml)|"NoLongerSupportedException"->`NoLongerSupportedException(NoLongerSupportedException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InvalidParameterValueExceptione->`Assoc[("error",(`String"InvalidParameterValueException"));("details",(InvalidParameterValueException.to_jsone))]|`MissingParameterValueExceptione->`Assoc[("error",(`String"MissingParameterValueException"));("details",(MissingParameterValueException.to_jsone))]|`NoLongerSupportedExceptione->`Assoc[("error",(`String"NoLongerSupportedException"));("details",(NoLongerSupportedException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make?location:(Option.map((List.Assoc.find~equal:String.Caseless.equal)xs"Location")~f:String_.of_string)?checksum:(Option.map((List.Assoc.find~equal:String.Caseless.equal)xs"x-amz-sha256-tree-hash")~f:String_.of_string)?archiveId:(Option.map((List.Assoc.find~equal:String.Caseless.equal)xs"x-amz-archive-id")~f:String_.of_string)())[@warning"-27"])letto_valuex=structure_to_value[("Location",(Option.mapx.location~f:String_.to_value));("x-amz-sha256-tree-hash",(Option.mapx.checksum~f:String_.to_value));("x-amz-archive-id",(Option.mapx.archiveId~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letarchiveId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"x-amz-archive-id")inletchecksum=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"x-amz-sha256-tree-hash")inletlocation=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Location")inmake?archiveId?checksum?location()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letarchiveId=field_mapjson__"archiveId"String_.of_jsoninletchecksum=field_mapjson__"checksum"String_.of_jsoninletlocation=field_mapjson__"location"String_.of_jsoninmake?archiveId?checksum?location()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains the Amazon Glacier response to your request. For information about the underlying REST API, see Upload Archive. For conceptual information, see Working with Archives in Amazon Glacier."]moduleAddTagsToVaultInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID."];vaultName:String_.t[@ocaml.doc"The name of the vault."];tags:TagMap.toption[@ocaml.doc"The tags to add to the vault. Each tag is composed of a key and a value. The value can be an empty string."]}letcontext_="AddTagsToVaultInput"letmake?tags=fun~accountId->fun~vaultName->fun()->{tags;accountId;vaultName}letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("vaultName",(Some(String_.to_valuex.vaultName)));("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")inletvaultName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"vaultName")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake?tags~vaultName~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"Tags"TagMap.of_jsoninletvaultName=field_map_exnjson__"vaultName"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake?tags~vaultName~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The input values for AddTagsToVault."]moduleAbortVaultLockInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your account ID, do not include any hyphens ('-') in the ID."];vaultName:String_.t[@ocaml.doc"The name of the vault."]}letcontext_="AbortVaultLockInput"letmake~accountId=fun~vaultName->fun()->{accountId;vaultName}letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("vaultName",(Some(String_.to_valuex.vaultName)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvaultName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"vaultName")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake~vaultName~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvaultName=field_map_exnjson__"vaultName"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake~vaultName~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The input values for AbortVaultLock."]moduleAbortMultipartUploadInput=structtypenonrect={accountId:String_.t[@ocaml.doc"The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID."];vaultName:String_.t[@ocaml.doc"The name of the vault."];uploadId:String_.t[@ocaml.doc"The upload ID of the multipart upload to delete."]}letcontext_="AbortMultipartUploadInput"letmake~accountId=fun~vaultName->fun~uploadId->fun()->{accountId;vaultName;uploadId}letto_valuex=structure_to_value[("accountId",(Some(String_.to_valuex.accountId)));("vaultName",(Some(String_.to_valuex.vaultName)));("uploadId",(Some(String_.to_valuex.uploadId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letuploadId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"uploadId")inletvaultName=String_.of_xml(Xml.child_exn~context:context_xml_arg0"vaultName")inletaccountId=String_.of_xml(Xml.child_exn~context:context_xml_arg0"accountId")inmake~uploadId~vaultName~accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letuploadId=field_map_exnjson__"uploadId"String_.of_jsoninletvaultName=field_map_exnjson__"vaultName"String_.of_jsoninletaccountId=field_map_exnjson__"accountId"String_.of_jsoninmake~uploadId~vaultName~accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Provides options to abort a multipart upload identified by the upload ID. For information about the underlying REST API, see Abort Multipart Upload. For conceptual information, see Working with Archives in Amazon Glacier."]