12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761177621776317764177651776617767177681776917770177711777217773177741777517776177771777817779177801778117782177831778417785177861778717788177891779017791177921779317794177951779617797177981779917800178011780217803178041780517806178071780817809178101781117812178131781417815178161781717818178191782017821178221782317824178251782617827178281782917830178311783217833178341783517836178371783817839178401784117842178431784417845178461784717848178491785017851178521785317854178551785617857178581785917860178611786217863178641786517866178671786817869178701787117872178731787417875178761787717878178791788017881178821788317884178851788617887178881788917890178911789217893178941789517896178971789817899179001790117902179031790417905179061790717908179091791017911179121791317914179151791617917179181791917920179211792217923179241792517926179271792817929179301793117932179331793417935179361793717938179391794017941179421794317944179451794617947179481794917950179511795217953179541795517956179571795817959179601796117962179631796417965179661796717968179691797017971179721797317974179751797617977179781797917980179811798217983179841798517986179871798817989179901799117992179931799417995179961799717998179991800018001180021800318004180051800618007180081800918010180111801218013180141801518016180171801818019180201802118022180231802418025180261802718028180291803018031180321803318034180351803618037180381803918040180411804218043180441804518046180471804818049180501805118052180531805418055180561805718058180591806018061180621806318064180651806618067180681806918070180711807218073180741807518076180771807818079180801808118082180831808418085180861808718088180891809018091180921809318094180951809618097180981809918100181011810218103181041810518106181071810818109181101811118112181131811418115181161811718118181191812018121181221812318124181251812618127181281812918130181311813218133181341813518136181371813818139181401814118142181431814418145181461814718148181491815018151181521815318154181551815618157181581815918160181611816218163181641816518166181671816818169181701817118172181731817418175181761817718178181791818018181181821818318184181851818618187181881818918190181911819218193181941819518196181971819818199182001820118202182031820418205182061820718208182091821018211182121821318214182151821618217182181821918220182211822218223182241822518226182271822818229182301823118232182331823418235182361823718238182391824018241182421824318244182451824618247182481824918250182511825218253182541825518256182571825818259182601826118262182631826418265182661826718268182691827018271182721827318274182751827618277182781827918280182811828218283182841828518286182871828818289182901829118292182931829418295182961829718298182991830018301183021830318304183051830618307183081830918310183111831218313183141831518316183171831818319183201832118322183231832418325183261832718328183291833018331183321833318334183351833618337183381833918340183411834218343183441834518346183471834818349183501835118352183531835418355183561835718358183591836018361183621836318364183651836618367183681836918370183711837218373183741837518376183771837818379183801838118382183831838418385183861838718388183891839018391183921839318394183951839618397183981839918400184011840218403184041840518406184071840818409184101841118412184131841418415184161841718418184191842018421184221842318424184251842618427184281842918430184311843218433184341843518436184371843818439184401844118442184431844418445184461844718448184491845018451184521845318454184551845618457184581845918460184611846218463184641846518466184671846818469184701847118472184731847418475184761847718478184791848018481184821848318484184851848618487184881848918490184911849218493184941849518496184971849818499185001850118502185031850418505185061850718508185091851018511185121851318514185151851618517185181851918520185211852218523185241852518526185271852818529185301853118532185331853418535185361853718538185391854018541185421854318544185451854618547185481854918550185511855218553185541855518556185571855818559185601856118562185631856418565185661856718568185691857018571185721857318574185751857618577185781857918580185811858218583185841858518586185871858818589185901859118592185931859418595185961859718598185991860018601186021860318604186051860618607186081860918610186111861218613186141861518616186171861818619186201862118622186231862418625186261862718628186291863018631186321863318634186351863618637186381863918640186411864218643186441864518646186471864818649186501865118652186531865418655186561865718658186591866018661186621866318664186651866618667186681866918670186711867218673186741867518676186771867818679186801868118682186831868418685186861868718688186891869018691186921869318694186951869618697(* 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.storagegatewayletapiVersion="2013-06-30"letendpointPrefix="storagegateway"letserviceFullName="AWS Storage Gateway"letsignatureVersion="v4"letprotocol="json"letglobalEndpoint=endpointPrefix^".amazonaws.com"lettargetPrefix="StorageGateway_20130630"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[]))])moduleCacheReportFilterValue=structtypenonrect=stringletcontext_="CacheReportFilterValue"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:25)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"CacheReportFilterValue"jletto_json=simple_to_jsonto_valueendmoduleCacheReportFilterName=structtypenonrect=|UploadState|UploadFailureReason|Non_static_idofstringletmakei=iletto_string=function|UploadState->"UploadState"|UploadFailureReason->"UploadFailureReason"|Non_static_ids->sletof_string=function|"UploadState"->UploadState|"UploadFailureReason"->UploadFailureReason|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 CacheReportFilterName"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"CacheReportFilterName"j)letto_json=simple_to_jsonto_valueendmoduleCacheReportFilterValues=structtypenonrect=CacheReportFilterValue.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:CacheReportFilterValue.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:CacheReportFilterValue.of_xml)letof_jsonj=list_of_json~kind:"CacheReportFilterValues"~of_json:CacheReportFilterValue.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleTagKey=structtypenonrect=stringletcontext_="TagKey"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:128)>>=(fun()->check_patterni~pattern:"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"TagKey"jletto_json=simple_to_jsonto_valueendmoduleTagValue=structtypenonrect=stringletcontext_="TagValue"letmakei=letopenResultinok_or_failwith(check_string_maxi~max:256);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_valueendmoduleBoolean__lc1=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_valueendmoduleMinimumNumTapes=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:10)>>=(fun()->check_int_mini~min:1));iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for MinimumNumTapes"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmodulePoolId=structtypenonrect=stringletcontext_="PoolId"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:100)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"PoolId"jletto_json=simple_to_jsonto_valueendmoduleTapeBarcodePrefix=structtypenonrect=stringletcontext_="TapeBarcodePrefix"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:4)>>=(fun()->check_patterni~pattern:"^[A-Z]*$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"TapeBarcodePrefix"jletto_json=simple_to_jsonto_valueendmoduleTapeSize=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_valueendmoduleIPV4Address=structtypenonrect=stringletcontext_="IPV4Address"letmakei=letopenResultinok_or_failwith((check_string_mini~min:7)>>=(fun()->(check_string_maxi~max:15)>>=(fun()->check_patterni~pattern:"^((25[0-5]|(2[0-4]|1[0-9]|[1-9]|)[0-9])(\\.(?!$)|$)){4}")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"IPV4Address"jletto_json=simple_to_jsonto_valueendmoduleFileSystemAssociationSyncErrorCode=structtypenonrect=stringletcontext_="FileSystemAssociationSyncErrorCode"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:"FileSystemAssociationSyncErrorCode"jletto_json=simple_to_jsonto_valueendmoduleString_=structtypenonrect=stringletcontext_="string"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"string"jletto_json=simple_to_jsonto_valueendmoduleDayOfWeek=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:6)>>=(fun()->check_int_mini~min:0));iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for DayOfWeek"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleDiskAttribute=structtypenonrect=stringletcontext_="DiskAttribute"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:64)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"DiskAttribute"jletto_json=simple_to_jsonto_valueendmoduleCacheReportFilter=structtypenonrect={name:CacheReportFilterName.t[@ocaml.doc"The parameter name for a filter that determines which files are included or excluded from a cache report. Valid Names: UploadFailureReason | UploadState"];values:CacheReportFilterValues.t[@ocaml.doc"The parameter value for a filter that determines which files are included or excluded from a cache report. Valid UploadFailureReason Values: InaccessibleStorageClass | InvalidObjectState | ObjectMissing | S3AccessDenied Valid UploadState Values: FailingUpload"]}letcontext_="CacheReportFilter"letmake~name=fun~values->fun()->{name;values}letto_valuex=structure_to_value[("Name",(Some(CacheReportFilterName.to_valuex.name)));("Values",(Some(CacheReportFilterValues.to_valuex.values)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvalues=CacheReportFilterValues.of_xml(Xml.child_exn~context:context_xml_arg0"Values")inletname=CacheReportFilterName.of_xml(Xml.child_exn~context:context_xml_arg0"Name")inmake~values~name()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvalues=field_map_exnjson__"Values"CacheReportFilterValues.of_jsoninletname=field_map_exnjson__"Name"CacheReportFilterName.of_jsoninmake~values~name()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A list of filter parameters and associated values that determine which files are included or excluded from a cache report created by a StartCacheReport request. Multiple instances of the same filter parameter are combined with an OR operation, while different parameters are combined with an AND operation."]moduleTag=structtypenonrect={key:TagKey.t[@ocaml.doc"Tag key. The key can't start with aws:."];value:TagValue.t[@ocaml.doc"Value of the tag key."]}letcontext_="Tag"letmake~key=fun~value->fun()->{key;value}letto_valuex=structure_to_value[("Key",(Some(TagKey.to_valuex.key)));("Value",(Some(TagValue.to_valuex.value)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvalue=TagValue.of_xml(Xml.child_exn~context:context_xml_arg0"Value")inletkey=TagKey.of_xml(Xml.child_exn~context:context_xml_arg0"Key")inmake~value~key()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvalue=field_map_exnjson__"Value"TagValue.of_jsoninletkey=field_map_exnjson__"Key"TagKey.of_jsoninmake~value~key()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A key-value pair that helps you manage, filter, and search for your resource. Allowed characters: letters, white space, and numbers, representable in UTF-8, and the following characters: + - = . _ : /."]moduleAutomaticTapeCreationRule=structtypenonrect={tapeBarcodePrefix:TapeBarcodePrefix.t[@ocaml.doc"A prefix that you append to the barcode of the virtual tape that you are creating. This prefix makes the barcode unique. The prefix must be 1-4 characters in length and must be one of the uppercase letters from A to Z."];poolId:PoolId.t[@ocaml.doc"The ID of the pool that you want to add your tape to for archiving. The tape in this pool is archived in the Amazon S3 storage class that is associated with the pool. When you use your backup application to eject the tape, the tape is archived directly into the storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds to the pool."];tapeSizeInBytes:TapeSize.t[@ocaml.doc"The size, in bytes, of the virtual tape capacity."];minimumNumTapes:MinimumNumTapes.t[@ocaml.doc"The minimum number of available virtual tapes that the gateway maintains at all times. If the number of tapes on the gateway goes below this value, the gateway creates as many new tapes as are needed to have MinimumNumTapes on the gateway. For more information about automatic tape creation, see Creating Tapes Automatically."];worm:Boolean__lc1.toption[@ocaml.doc"Set to true to indicate that tapes are to be archived as write-once-read-many (WORM). Set to false when WORM is not enabled for tapes."]}letcontext_="AutomaticTapeCreationRule"letmake?worm=fun~tapeBarcodePrefix->fun~poolId->fun~tapeSizeInBytes->fun~minimumNumTapes->fun()->{worm;tapeBarcodePrefix;poolId;tapeSizeInBytes;minimumNumTapes}letto_valuex=structure_to_value[("TapeBarcodePrefix",(Some(TapeBarcodePrefix.to_valuex.tapeBarcodePrefix)));("PoolId",(Some(PoolId.to_valuex.poolId)));("TapeSizeInBytes",(Some(TapeSize.to_valuex.tapeSizeInBytes)));("MinimumNumTapes",(Some(MinimumNumTapes.to_valuex.minimumNumTapes)));("Worm",(Option.mapx.worm~f:Boolean__lc1.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworm=(Option.map~f:Boolean__lc1.of_xml)(Xml.childxml_arg0"Worm")inletminimumNumTapes=MinimumNumTapes.of_xml(Xml.child_exn~context:context_xml_arg0"MinimumNumTapes")inlettapeSizeInBytes=TapeSize.of_xml(Xml.child_exn~context:context_xml_arg0"TapeSizeInBytes")inletpoolId=PoolId.of_xml(Xml.child_exn~context:context_xml_arg0"PoolId")inlettapeBarcodePrefix=TapeBarcodePrefix.of_xml(Xml.child_exn~context:context_xml_arg0"TapeBarcodePrefix")inmake?worm~minimumNumTapes~tapeSizeInBytes~poolId~tapeBarcodePrefix()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworm=field_mapjson__"Worm"Boolean__lc1.of_jsoninletminimumNumTapes=field_map_exnjson__"MinimumNumTapes"MinimumNumTapes.of_jsoninlettapeSizeInBytes=field_map_exnjson__"TapeSizeInBytes"TapeSize.of_jsoninletpoolId=field_map_exnjson__"PoolId"PoolId.of_jsoninlettapeBarcodePrefix=field_map_exnjson__"TapeBarcodePrefix"TapeBarcodePrefix.of_jsoninmake?worm~minimumNumTapes~tapeSizeInBytes~poolId~tapeBarcodePrefix()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"An automatic tape creation policy consists of automatic tape creation rules where each rule defines when and how to create new tapes. For more information about automatic tape creation, see Creating Tapes Automatically."]moduleNetworkInterfaceId=structtypenonrect=stringletcontext_="NetworkInterfaceId"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"NetworkInterfaceId"jletto_json=simple_to_jsonto_valueendmoduleTargetARN=structtypenonrect=stringletcontext_="TargetARN"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:800)>>=(fun()->check_string_mini~min:50));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"TargetARN"jletto_json=simple_to_jsonto_valueendmoduleInteger=structtypenonrect=intletmakei=iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for integer"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmodulePositiveIntObject=structtypenonrect=intletmakei=letopenResultinok_or_failwith(check_int_mini~min:1);iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for PositiveIntObject"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleCacheStaleTimeoutInSeconds=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 CacheStaleTimeoutInSeconds"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleUserListUser=structtypenonrect=stringletcontext_="UserListUser"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:64)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"UserListUser"jletto_json=simple_to_jsonto_valueendmoduleIpv4OrIpv6AddressCIDR=structtypenonrect=stringletcontext_="Ipv4OrIpv6AddressCIDR"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^(?:(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(?:\\/(?:[0-9]|[1-2][0-9]|3[0-2]))?$|^(?:(?:(?:[A-Fa-f0-9]{1,4}:){6}|(?=(?:[A-Fa-f0-9]{0,4}:){0,6}(?:[0-9]{1,3}\\.){3}[0-9]{1,3}(?![:.\\w]))(?:(?:[0-9A-Fa-f]{1,4}:){0,5}|:)(?:(?::[0-9A-Fa-f]{1,4}){1,5}:|:)|::(?:[A-Fa-f0-9]{1,4}:){5})(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|(?:[A-Fa-f0-9]{1,4}:){7}[A-Fa-f0-9]{1,4}|(?=(?:[A-Fa-f0-9]{0,4}:){0,7}[A-Fa-f0-9]{0,4}(?![:.\\w]))(?:(?:[0-9A-Fa-f]{1,4}:){1,7}|:)(?:(:[0-9A-Fa-f]{1,4}){1,7}|:)|(?:[A-Fa-f0-9]{1,4}:){7}:|:(:[A-Fa-f0-9]{1,4}){7})(?:\\/(?:12[0-8]|1[01][0-9]|[1-9]?[0-9]))?$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"Ipv4OrIpv6AddressCIDR"jletto_json=simple_to_jsonto_valueendmodulePermissionId=structtypenonrect=Int64.tletmakei=letopenResultinok_or_failwith((check_int64_maxi~max:4294967294L)>>=(fun()->check_int64_mini~min:0L));iletof_string=Int64.of_stringletto_valuex=`Longxletto_queryv=to_queryto_valuevletto_headerx=Int64.to_stringxletof_xmlxml_arg0=Int64.of_string(string_of_xml~kind:"a long"xml_arg0)letof_jsonj=Int64.of_float(float_of_json~kind:"a long"j)letto_json=simple_to_jsonto_valueendmodulePermissionMode=structtypenonrect=stringletcontext_="PermissionMode"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:4)>>=(fun()->check_patterni~pattern:"^[0-7]{4}$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"PermissionMode"jletto_json=simple_to_jsonto_valueendmoduleIpAddressList=structtypenonrect=IPV4Address.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:1)>>=(fun()->check_list_mini~min:0));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:IPV4Address.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:IPV4Address.of_xml)letof_jsonj=list_of_json~kind:"IpAddressList"~of_json:IPV4Address.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleFileSystemAssociationStatusDetail=structtypenonrect={errorCode:FileSystemAssociationSyncErrorCode.toption[@ocaml.doc"The error code for a given file system association status."]}letmake?errorCode=fun()->{errorCode}letto_valuex=structure_to_value[("ErrorCode",(Option.mapx.errorCode~f:FileSystemAssociationSyncErrorCode.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=leterrorCode=(Option.map~f:FileSystemAssociationSyncErrorCode.of_xml)(Xml.childxml_arg0"ErrorCode")inmake?errorCode()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=leterrorCode=field_mapjson__"ErrorCode"FileSystemAssociationSyncErrorCode.of_jsoninmake?errorCode()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Detailed information on file system association status."]moduleErrorCode=structtypenonrect=|ActivationKeyExpired|ActivationKeyInvalid|ActivationKeyNotFound|GatewayInternalError|GatewayNotConnected|GatewayNotFound|GatewayProxyNetworkConnectionBusy|AuthenticationFailure|BandwidthThrottleScheduleNotFound|Blocked|CannotExportSnapshot|ChapCredentialNotFound|DiskAlreadyAllocated|DiskDoesNotExist|DiskSizeGreaterThanVolumeMaxSize|DiskSizeLessThanVolumeSize|DiskSizeNotGigAligned|DuplicateCertificateInfo|DuplicateSchedule|EndpointNotFound|IAMNotSupported|InitiatorInvalid|InitiatorNotFound|InternalError|InvalidGateway|InvalidEndpoint|InvalidParameters|InvalidSchedule|LocalStorageLimitExceeded|LunAlreadyAllocated_|LunInvalid|JoinDomainInProgress|MaximumContentLengthExceeded|MaximumTapeCartridgeCountExceeded|MaximumVolumeCountExceeded|NetworkConfigurationChanged|NoDisksAvailable|NotImplemented|NotSupported|OperationAborted|OutdatedGateway|ParametersNotImplemented|RegionInvalid|RequestTimeout|ServiceUnavailable|SnapshotDeleted|SnapshotIdInvalid|SnapshotInProgress|SnapshotNotFound|SnapshotScheduleNotFound|StagingAreaFull|StorageFailure|TapeCartridgeNotFound|TargetAlreadyExists|TargetInvalid|TargetNotFound|UnauthorizedOperation|VolumeAlreadyExists|VolumeIdInvalid|VolumeInUse|VolumeNotFound|VolumeNotReady|Non_static_idofstringletmakei=iletto_string=function|ActivationKeyExpired->"ActivationKeyExpired"|ActivationKeyInvalid->"ActivationKeyInvalid"|ActivationKeyNotFound->"ActivationKeyNotFound"|GatewayInternalError->"GatewayInternalError"|GatewayNotConnected->"GatewayNotConnected"|GatewayNotFound->"GatewayNotFound"|GatewayProxyNetworkConnectionBusy->"GatewayProxyNetworkConnectionBusy"|AuthenticationFailure->"AuthenticationFailure"|BandwidthThrottleScheduleNotFound->"BandwidthThrottleScheduleNotFound"|Blocked->"Blocked"|CannotExportSnapshot->"CannotExportSnapshot"|ChapCredentialNotFound->"ChapCredentialNotFound"|DiskAlreadyAllocated->"DiskAlreadyAllocated"|DiskDoesNotExist->"DiskDoesNotExist"|DiskSizeGreaterThanVolumeMaxSize->"DiskSizeGreaterThanVolumeMaxSize"|DiskSizeLessThanVolumeSize->"DiskSizeLessThanVolumeSize"|DiskSizeNotGigAligned->"DiskSizeNotGigAligned"|DuplicateCertificateInfo->"DuplicateCertificateInfo"|DuplicateSchedule->"DuplicateSchedule"|EndpointNotFound->"EndpointNotFound"|IAMNotSupported->"IAMNotSupported"|InitiatorInvalid->"InitiatorInvalid"|InitiatorNotFound->"InitiatorNotFound"|InternalError->"InternalError"|InvalidGateway->"InvalidGateway"|InvalidEndpoint->"InvalidEndpoint"|InvalidParameters->"InvalidParameters"|InvalidSchedule->"InvalidSchedule"|LocalStorageLimitExceeded->"LocalStorageLimitExceeded"|LunAlreadyAllocated_->"LunAlreadyAllocated "|LunInvalid->"LunInvalid"|JoinDomainInProgress->"JoinDomainInProgress"|MaximumContentLengthExceeded->"MaximumContentLengthExceeded"|MaximumTapeCartridgeCountExceeded->"MaximumTapeCartridgeCountExceeded"|MaximumVolumeCountExceeded->"MaximumVolumeCountExceeded"|NetworkConfigurationChanged->"NetworkConfigurationChanged"|NoDisksAvailable->"NoDisksAvailable"|NotImplemented->"NotImplemented"|NotSupported->"NotSupported"|OperationAborted->"OperationAborted"|OutdatedGateway->"OutdatedGateway"|ParametersNotImplemented->"ParametersNotImplemented"|RegionInvalid->"RegionInvalid"|RequestTimeout->"RequestTimeout"|ServiceUnavailable->"ServiceUnavailable"|SnapshotDeleted->"SnapshotDeleted"|SnapshotIdInvalid->"SnapshotIdInvalid"|SnapshotInProgress->"SnapshotInProgress"|SnapshotNotFound->"SnapshotNotFound"|SnapshotScheduleNotFound->"SnapshotScheduleNotFound"|StagingAreaFull->"StagingAreaFull"|StorageFailure->"StorageFailure"|TapeCartridgeNotFound->"TapeCartridgeNotFound"|TargetAlreadyExists->"TargetAlreadyExists"|TargetInvalid->"TargetInvalid"|TargetNotFound->"TargetNotFound"|UnauthorizedOperation->"UnauthorizedOperation"|VolumeAlreadyExists->"VolumeAlreadyExists"|VolumeIdInvalid->"VolumeIdInvalid"|VolumeInUse->"VolumeInUse"|VolumeNotFound->"VolumeNotFound"|VolumeNotReady->"VolumeNotReady"|Non_static_ids->sletof_string=function|"ActivationKeyExpired"->ActivationKeyExpired|"ActivationKeyInvalid"->ActivationKeyInvalid|"ActivationKeyNotFound"->ActivationKeyNotFound|"GatewayInternalError"->GatewayInternalError|"GatewayNotConnected"->GatewayNotConnected|"GatewayNotFound"->GatewayNotFound|"GatewayProxyNetworkConnectionBusy"->GatewayProxyNetworkConnectionBusy|"AuthenticationFailure"->AuthenticationFailure|"BandwidthThrottleScheduleNotFound"->BandwidthThrottleScheduleNotFound|"Blocked"->Blocked|"CannotExportSnapshot"->CannotExportSnapshot|"ChapCredentialNotFound"->ChapCredentialNotFound|"DiskAlreadyAllocated"->DiskAlreadyAllocated|"DiskDoesNotExist"->DiskDoesNotExist|"DiskSizeGreaterThanVolumeMaxSize"->DiskSizeGreaterThanVolumeMaxSize|"DiskSizeLessThanVolumeSize"->DiskSizeLessThanVolumeSize|"DiskSizeNotGigAligned"->DiskSizeNotGigAligned|"DuplicateCertificateInfo"->DuplicateCertificateInfo|"DuplicateSchedule"->DuplicateSchedule|"EndpointNotFound"->EndpointNotFound|"IAMNotSupported"->IAMNotSupported|"InitiatorInvalid"->InitiatorInvalid|"InitiatorNotFound"->InitiatorNotFound|"InternalError"->InternalError|"InvalidGateway"->InvalidGateway|"InvalidEndpoint"->InvalidEndpoint|"InvalidParameters"->InvalidParameters|"InvalidSchedule"->InvalidSchedule|"LocalStorageLimitExceeded"->LocalStorageLimitExceeded|"LunAlreadyAllocated "->LunAlreadyAllocated_|"LunInvalid"->LunInvalid|"JoinDomainInProgress"->JoinDomainInProgress|"MaximumContentLengthExceeded"->MaximumContentLengthExceeded|"MaximumTapeCartridgeCountExceeded"->MaximumTapeCartridgeCountExceeded|"MaximumVolumeCountExceeded"->MaximumVolumeCountExceeded|"NetworkConfigurationChanged"->NetworkConfigurationChanged|"NoDisksAvailable"->NoDisksAvailable|"NotImplemented"->NotImplemented|"NotSupported"->NotSupported|"OperationAborted"->OperationAborted|"OutdatedGateway"->OutdatedGateway|"ParametersNotImplemented"->ParametersNotImplemented|"RegionInvalid"->RegionInvalid|"RequestTimeout"->RequestTimeout|"ServiceUnavailable"->ServiceUnavailable|"SnapshotDeleted"->SnapshotDeleted|"SnapshotIdInvalid"->SnapshotIdInvalid|"SnapshotInProgress"->SnapshotInProgress|"SnapshotNotFound"->SnapshotNotFound|"SnapshotScheduleNotFound"->SnapshotScheduleNotFound|"StagingAreaFull"->StagingAreaFull|"StorageFailure"->StorageFailure|"TapeCartridgeNotFound"->TapeCartridgeNotFound|"TargetAlreadyExists"->TargetAlreadyExists|"TargetInvalid"->TargetInvalid|"TargetNotFound"->TargetNotFound|"UnauthorizedOperation"->UnauthorizedOperation|"VolumeAlreadyExists"->VolumeAlreadyExists|"VolumeIdInvalid"->VolumeIdInvalid|"VolumeInUse"->VolumeInUse|"VolumeNotFound"->VolumeNotFound|"VolumeNotReady"->VolumeNotReady|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 ErrorCode"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ErrorCode"j)letto_json=simple_to_jsonto_valueendmoduleErrorDetails=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_valuevendmoduleBandwidthDownloadRateLimit=structtypenonrect=Int64.tletmakei=letopenResultinok_or_failwith(check_int64_mini~min:102400L);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_valueendmoduleBandwidthUploadRateLimit=structtypenonrect=Int64.tletmakei=letopenResultinok_or_failwith(check_int64_mini~min:51200L);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_valueendmoduleDaysOfWeek=structtypenonrect=DayOfWeek.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:7)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:DayOfWeek.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:DayOfWeek.of_xml)letof_jsonj=list_of_json~kind:"DaysOfWeek"~of_json:DayOfWeek.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleHourOfDay=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:23)>>=(fun()->check_int_mini~min:0));iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for HourOfDay"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleMinuteOfHour=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:59)>>=(fun()->check_int_mini~min:0));iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for MinuteOfHour"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleGatewayARN=structtypenonrect=string[@@ocaml.doc"The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation to return a list of gateways for your account and Amazon Web Services Region."]letcontext_="GatewayARN"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:500)>>=(fun()->check_string_mini~min:50));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"GatewayARN"jletto_json=simple_to_jsonto_valueend[@@ocaml.doc"The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation to return a list of gateways for your account and Amazon Web Services Region."]moduleGatewayId=structtypenonrect=stringletcontext_="GatewayId"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:30)>>=(fun()->check_string_mini~min:12));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"GatewayId"jletto_json=simple_to_jsonto_valueendmoduleVolumeARN=structtypenonrect=stringletcontext_="VolumeARN"letmakei=letopenResultinok_or_failwith((check_string_mini~min:50)>>=(fun()->(check_string_maxi~max:500)>>=(fun()->check_patterni~pattern:"arn:(aws(|-cn|-us-gov|-iso[A-Za-z0-9_-]*|-eusc)):storagegateway:[a-z\\-0-9]+:[0-9]+:gateway\\/(.+)\\/volume\\/vol-(\\S+)")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"VolumeARN"jletto_json=simple_to_jsonto_valueendmoduleVolumeAttachmentStatus=structtypenonrect=stringletcontext_="VolumeAttachmentStatus"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:50)>>=(fun()->check_string_mini~min:3));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"VolumeAttachmentStatus"jletto_json=simple_to_jsonto_valueendmoduleVolumeId=structtypenonrect=stringletcontext_="VolumeId"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:30)>>=(fun()->check_string_mini~min:12));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"VolumeId"jletto_json=simple_to_jsonto_valueendmoduleVolumeType=structtypenonrect=stringletcontext_="VolumeType"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:100)>>=(fun()->check_string_mini~min:3));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"VolumeType"jletto_json=simple_to_jsonto_valueendmoduleLong=structtypenonrect=Int64.tletmakei=iletof_string=Int64.of_stringletto_valuex=`Longxletto_queryv=to_queryto_valuevletto_headerx=Int64.to_stringxletof_xmlxml_arg0=Int64.of_string(string_of_xml~kind:"a long"xml_arg0)letof_jsonj=Int64.of_float(float_of_json~kind:"a long"j)letto_json=simple_to_jsonto_valueendmoduleTapeARN=structtypenonrect=stringletcontext_="TapeARN"letmakei=letopenResultinok_or_failwith((check_string_mini~min:50)>>=(fun()->(check_string_maxi~max:500)>>=(fun()->check_patterni~pattern:"arn:(aws(|-cn|-us-gov|-iso[A-Za-z0-9_-]*|-eusc)):storagegateway:[a-z\\-0-9]+:[0-9]+:tape\\/[0-9A-Z]{5,16}$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"TapeARN"jletto_json=simple_to_jsonto_valueendmoduleTapeBarcode=structtypenonrect=stringletcontext_="TapeBarcode"letmakei=letopenResultinok_or_failwith((check_string_mini~min:5)>>=(fun()->(check_string_maxi~max:16)>>=(fun()->check_patterni~pattern:"^[A-Z0-9]*$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"TapeBarcode"jletto_json=simple_to_jsonto_valueendmoduleTapeStatus=structtypenonrect=stringletcontext_="TapeStatus"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:"TapeStatus"jletto_json=simple_to_jsonto_valueendmoduleTime=structtypenonrect=stringletmakei=iletof_stringx=xletto_valuex=`Timestampxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=string_of_xml~kind:"a timestamp"letof_json=timestamp_of_jsonletto_json=simple_to_jsonto_valueendmodulePoolARN=structtypenonrect=stringletcontext_="PoolARN"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:500)>>=(fun()->check_string_mini~min:50));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"PoolARN"jletto_json=simple_to_jsonto_valueendmodulePoolName=structtypenonrect=stringletcontext_="PoolName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:100)>>=(fun()->check_patterni~pattern:"^[ -\\.0-\\[\\]-~]*[!-\\.0-\\[\\]-~][ -\\.0-\\[\\]-~]*$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"PoolName"jletto_json=simple_to_jsonto_valueendmodulePoolStatus=structtypenonrect=|ACTIVE|DELETED|Non_static_idofstringletmakei=iletto_string=function|ACTIVE->"ACTIVE"|DELETED->"DELETED"|Non_static_ids->sletof_string=function|"ACTIVE"->ACTIVE|"DELETED"->DELETED|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration PoolStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"PoolStatus"j)letto_json=simple_to_jsonto_valueendmoduleRetentionLockTimeInDays=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:36500)>>=(fun()->check_int_mini~min:0));iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for RetentionLockTimeInDays"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleRetentionLockType=structtypenonrect=|COMPLIANCE|GOVERNANCE|NONE|Non_static_idofstringletmakei=iletto_string=function|COMPLIANCE->"COMPLIANCE"|GOVERNANCE->"GOVERNANCE"|NONE->"NONE"|Non_static_ids->sletof_string=function|"COMPLIANCE"->COMPLIANCE|"GOVERNANCE"->GOVERNANCE|"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 RetentionLockType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"RetentionLockType"j)letto_json=simple_to_jsonto_valueendmoduleTapeStorageClass=structtypenonrect=|DEEP_ARCHIVE|GLACIER|Non_static_idofstringletmakei=iletto_string=function|DEEP_ARCHIVE->"DEEP_ARCHIVE"|GLACIER->"GLACIER"|Non_static_ids->sletof_string=function|"DEEP_ARCHIVE"->DEEP_ARCHIVE|"GLACIER"->GLACIER|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 TapeStorageClass"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"TapeStorageClass"j)letto_json=simple_to_jsonto_valueendmoduleDiskAllocationType=structtypenonrect=string[@@ocaml.doc"One of the DiskAllocationType enumeration values that identifies how a local disk is used. Valid Values: UPLOAD_BUFFER | CACHE_STORAGE"]letcontext_="DiskAllocationType"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:100)>>=(fun()->check_string_mini~min:3));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"DiskAllocationType"jletto_json=simple_to_jsonto_valueend[@@ocaml.doc"One of the DiskAllocationType enumeration values that identifies how a local disk is used. Valid Values: UPLOAD_BUFFER | CACHE_STORAGE"]moduleDiskAttributeList=structtypenonrect=DiskAttribute.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:10)>>=(fun()->check_list_mini~min:0));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:DiskAttribute.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:DiskAttribute.of_xml)letof_jsonj=list_of_json~kind:"DiskAttributeList"~of_json:DiskAttribute.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleDiskId=structtypenonrect=stringletcontext_="DiskId"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:300)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"DiskId"jletto_json=simple_to_jsonto_valueendmoduleDeprecationDate=structtypenonrect=stringletcontext_="DeprecationDate"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:25)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"DeprecationDate"jletto_json=simple_to_jsonto_valueendmoduleEc2InstanceId=structtypenonrect=stringletcontext_="Ec2InstanceId"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:"Ec2InstanceId"jletto_json=simple_to_jsonto_valueendmoduleEc2InstanceRegion=structtypenonrect=stringletcontext_="Ec2InstanceRegion"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:"Ec2InstanceRegion"jletto_json=simple_to_jsonto_valueendmoduleGatewayOperationalState=structtypenonrect=stringletcontext_="GatewayOperationalState"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:25)>>=(fun()->check_string_mini~min:2));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"GatewayOperationalState"jletto_json=simple_to_jsonto_valueendmoduleGatewayType=structtypenonrect=stringletcontext_="GatewayType"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:20)>>=(fun()->check_string_mini~min:2));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"GatewayType"jletto_json=simple_to_jsonto_valueendmoduleHostEnvironment=structtypenonrect=|VMWARE|HYPER_V|EC2|KVM|OTHER|SNOWBALL|Non_static_idofstringletmakei=iletto_string=function|VMWARE->"VMWARE"|HYPER_V->"HYPER-V"|EC2->"EC2"|KVM->"KVM"|OTHER->"OTHER"|SNOWBALL->"SNOWBALL"|Non_static_ids->sletof_string=function|"VMWARE"->VMWARE|"HYPER-V"->HYPER_V|"EC2"->EC2|"KVM"->KVM|"OTHER"->OTHER|"SNOWBALL"->SNOWBALL|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 HostEnvironment"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"HostEnvironment"j)letto_json=simple_to_jsonto_valueendmoduleHostEnvironmentId=structtypenonrect=stringletcontext_="HostEnvironmentId"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:1024)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"HostEnvironmentId"jletto_json=simple_to_jsonto_valueendmoduleSoftwareVersion=structtypenonrect=stringletcontext_="SoftwareVersion"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:"SoftwareVersion"jletto_json=simple_to_jsonto_valueendmoduleFileSystemAssociationARN=structtypenonrect=stringletcontext_="FileSystemAssociationARN"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:500)>>=(fun()->check_string_mini~min:50));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"FileSystemAssociationARN"jletto_json=simple_to_jsonto_valueendmoduleFileSystemAssociationId=structtypenonrect=stringletcontext_="FileSystemAssociationId"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:30)>>=(fun()->check_string_mini~min:10));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"FileSystemAssociationId"jletto_json=simple_to_jsonto_valueendmoduleFileSystemAssociationStatus=structtypenonrect=stringletcontext_="FileSystemAssociationStatus"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:50)>>=(fun()->check_string_mini~min:3));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"FileSystemAssociationStatus"jletto_json=simple_to_jsonto_valueendmoduleFileShareARN=structtypenonrect=string[@@ocaml.doc"The Amazon Resource Name (ARN) of the file share."]letcontext_="FileShareARN"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:500)>>=(fun()->check_string_mini~min:50));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"FileShareARN"jletto_json=simple_to_jsonto_valueend[@@ocaml.doc"The Amazon Resource Name (ARN) of the file share."]moduleFileShareId=structtypenonrect=string[@@ocaml.doc"The ID of the file share."]letcontext_="FileShareId"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:30)>>=(fun()->check_string_mini~min:12));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"FileShareId"jletto_json=simple_to_jsonto_valueend[@@ocaml.doc"The ID of the file share."]moduleFileShareStatus=structtypenonrect=string[@@ocaml.doc"The status of the file share. Valid Values: CREATING | UPDATING | AVAILABLE | DELETING"]letcontext_="FileShareStatus"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:50)>>=(fun()->check_string_mini~min:3));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"FileShareStatus"jletto_json=simple_to_jsonto_valueend[@@ocaml.doc"The status of the file share. Valid Values: CREATING | UPDATING | AVAILABLE | DELETING"]moduleFileShareType=structtypenonrect=|NFS|SMB|Non_static_idofstringletmakei=iletto_string=function|NFS->"NFS"|SMB->"SMB"|Non_static_ids->sletof_string=function|"NFS"->NFS|"SMB"->SMB|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 FileShareType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"FileShareType"j)letto_json=simple_to_jsonto_valueendmoduleCacheReportARN=structtypenonrect=stringletcontext_="CacheReportARN"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:500)>>=(fun()->check_string_mini~min:50));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"CacheReportARN"jletto_json=simple_to_jsonto_valueendmoduleCacheReportFilterList=structtypenonrect=CacheReportFilter.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:CacheReportFilter.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:CacheReportFilter.of_xml)letof_jsonj=list_of_json~kind:"CacheReportFilterList"~of_json:CacheReportFilter.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleCacheReportName=structtypenonrect=stringletcontext_="CacheReportName"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:100)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"CacheReportName"jletto_json=simple_to_jsonto_valueendmoduleCacheReportStatus=structtypenonrect=|IN_PROGRESS|COMPLETED|CANCELED|FAILED|ERROR|Non_static_idofstringletmakei=iletto_string=function|IN_PROGRESS->"IN_PROGRESS"|COMPLETED->"COMPLETED"|CANCELED->"CANCELED"|FAILED->"FAILED"|ERROR->"ERROR"|Non_static_ids->sletof_string=function|"IN_PROGRESS"->IN_PROGRESS|"COMPLETED"->COMPLETED|"CANCELED"->CANCELED|"FAILED"->FAILED|"ERROR"->ERROR|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 CacheReportStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"CacheReportStatus"j)letto_json=simple_to_jsonto_valueendmoduleLocationARN=structtypenonrect=string[@@ocaml.doc"A custom ARN for the backend storage used for storing data for file shares. It includes a resource ARN with an optional prefix concatenation. The prefix must end with a forward slash (/). You can specify LocationARN as a bucket ARN, access point ARN or access point alias, as shown in the following examples. Bucket ARN: arn:aws:s3:::amzn-s3-demo-bucket/prefix/ Access point ARN: arn:aws:s3:region:account-id:accesspoint/access-point-name/prefix/ If you specify an access point, the bucket policy must be configured to delegate access control to the access point. For information, see Delegating access control to access points in the Amazon S3 User Guide. Access point alias: test-ap-ab123cdef4gehijklmn5opqrstuvuse1a-s3alias"]letcontext_="LocationARN"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:1400)>>=(fun()->check_string_mini~min:16));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"LocationARN"jletto_json=simple_to_jsonto_valueend[@@ocaml.doc"A custom ARN for the backend storage used for storing data for file shares. It includes a resource ARN with an optional prefix concatenation. The prefix must end with a forward slash (/). You can specify LocationARN as a bucket ARN, access point ARN or access point alias, as shown in the following examples. Bucket ARN: arn:aws:s3:::amzn-s3-demo-bucket/prefix/ Access point ARN: arn:aws:s3:region:account-id:accesspoint/access-point-name/prefix/ If you specify an access point, the bucket policy must be configured to delegate access control to the access point. For information, see Delegating access control to access points in the Amazon S3 User Guide. Access point alias: test-ap-ab123cdef4gehijklmn5opqrstuvuse1a-s3alias"]moduleReportCompletionPercent=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:100)>>=(fun()->check_int_mini~min:0));iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for ReportCompletionPercent"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleRole=structtypenonrect=string[@@ocaml.doc"The ARN of the IAM role that an S3 File Gateway assumes when it accesses the underlying storage."]letcontext_="Role"letmakei=letopenResultinok_or_failwith((check_string_mini~min:20)>>=(fun()->(check_string_maxi~max:2048)>>=(fun()->check_patterni~pattern:"^arn:(aws(|-cn|-us-gov|-iso[A-Za-z0-9_-]*|-eusc)):iam::([0-9]+):role/(\\S+)$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"Role"jletto_json=simple_to_jsonto_valueend[@@ocaml.doc"The ARN of the IAM role that an S3 File Gateway assumes when it accesses the underlying storage."]moduleTags=structtypenonrect=Tag.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Tag.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:Tag.of_xml)letof_jsonj=list_of_json~kind:"Tags"~of_json:Tag.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAutomaticTapeCreationRules=structtypenonrect=AutomaticTapeCreationRule.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:10)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:AutomaticTapeCreationRule.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:AutomaticTapeCreationRule.of_xml)letof_jsonj=list_of_json~kind:"AutomaticTapeCreationRules"~of_json:AutomaticTapeCreationRule.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleDeviceiSCSIAttributes=structtypenonrect={targetARN:TargetARN.toption[@ocaml.doc"Specifies the unique Amazon Resource Name (ARN) that encodes the iSCSI qualified name(iqn) of a tape drive or media changer target."];networkInterfaceId:NetworkInterfaceId.toption[@ocaml.doc"The network interface identifier of the VTL device."];networkInterfacePort:Integer.toption[@ocaml.doc"The port used to communicate with iSCSI VTL device targets."];chapEnabled:Boolean__lc1.toption[@ocaml.doc"Indicates whether mutual CHAP is enabled for the iSCSI target."]}letmake?targetARN=fun?networkInterfaceId->fun?networkInterfacePort->fun?chapEnabled->fun()->{targetARN;networkInterfaceId;networkInterfacePort;chapEnabled}letto_valuex=structure_to_value[("TargetARN",(Option.mapx.targetARN~f:TargetARN.to_value));("NetworkInterfaceId",(Option.mapx.networkInterfaceId~f:NetworkInterfaceId.to_value));("NetworkInterfacePort",(Option.mapx.networkInterfacePort~f:Integer.to_value));("ChapEnabled",(Option.mapx.chapEnabled~f:Boolean__lc1.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letchapEnabled=(Option.map~f:Boolean__lc1.of_xml)(Xml.childxml_arg0"ChapEnabled")inletnetworkInterfacePort=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"NetworkInterfacePort")inletnetworkInterfaceId=(Option.map~f:NetworkInterfaceId.of_xml)(Xml.childxml_arg0"NetworkInterfaceId")inlettargetARN=(Option.map~f:TargetARN.of_xml)(Xml.childxml_arg0"TargetARN")inmake?chapEnabled?networkInterfacePort?networkInterfaceId?targetARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letchapEnabled=field_mapjson__"ChapEnabled"Boolean__lc1.of_jsoninletnetworkInterfacePort=field_mapjson__"NetworkInterfacePort"Integer.of_jsoninletnetworkInterfaceId=field_mapjson__"NetworkInterfaceId"NetworkInterfaceId.of_jsoninlettargetARN=field_mapjson__"TargetARN"TargetARN.of_jsoninmake?chapEnabled?networkInterfacePort?networkInterfaceId?targetARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists iSCSI information about a VTL device."]moduleVTLDeviceARN=structtypenonrect=stringletcontext_="VTLDeviceARN"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:500)>>=(fun()->check_string_mini~min:50));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"VTLDeviceARN"jletto_json=simple_to_jsonto_valueendmoduleVTLDeviceProductIdentifier=structtypenonrect=stringletcontext_="VTLDeviceProductIdentifier"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:"VTLDeviceProductIdentifier"jletto_json=simple_to_jsonto_valueendmoduleVTLDeviceType=structtypenonrect=stringletcontext_="VTLDeviceType"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:"VTLDeviceType"jletto_json=simple_to_jsonto_valueendmoduleVTLDeviceVendor=structtypenonrect=stringletcontext_="VTLDeviceVendor"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:"VTLDeviceVendor"jletto_json=simple_to_jsonto_valueendmoduleDoubleObject=structtypenonrect=floatletmakei=iletof_string=Float.of_stringletto_valuex=`Doublexletto_queryv=to_queryto_valuevletto_headerx=Stdlib.Float.to_stringxletof_xmlxml_arg0=Float.of_string(string_of_xml~kind:"a double"xml_arg0)letof_jsonj=float_of_json~kind:"a double"jletto_json=simple_to_jsonto_valueendmoduleKMSKey=structtypenonrect=string[@@ocaml.doc"Optional. The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value must be set if KMSEncrypted is true, or if EncryptionType is SseKms or DsseKms."]letcontext_="KMSKey"letmakei=letopenResultinok_or_failwith((check_string_mini~min:7)>>=(fun()->(check_string_maxi~max:2048)>>=(fun()->check_patterni~pattern:"(^arn:(aws(|-cn|-us-gov|-iso[A-Za-z0-9_-]*|-eusc)):kms:([a-zA-Z0-9-]+):([0-9]+):(key|alias)/(\\S+)$)|(^alias/(\\S+)$)")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"KMSKey"jletto_json=simple_to_jsonto_valueend[@@ocaml.doc"Optional. The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value must be set if KMSEncrypted is true, or if EncryptionType is SseKms or DsseKms."]moduleTapeUsage=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_valueendmoduleTapeRecoveryPointStatus=structtypenonrect=stringletcontext_="TapeRecoveryPointStatus"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:"TapeRecoveryPointStatus"jletto_json=simple_to_jsonto_valueendmoduleTapeArchiveStatus=structtypenonrect=stringletcontext_="TapeArchiveStatus"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:"TapeArchiveStatus"jletto_json=simple_to_jsonto_valueendmoduleCreatedDate=structtypenonrect=stringletmakei=iletof_stringx=xletto_valuex=`Timestampxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=string_of_xml~kind:"a timestamp"letof_json=timestamp_of_jsonletto_json=simple_to_jsonto_valueendmoduleSnapshotId=structtypenonrect=stringletcontext_="SnapshotId"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"\\Asnap-([0-9A-Fa-f]{8}|[0-9A-Fa-f]{17})\\z");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"SnapshotId"jletto_json=simple_to_jsonto_valueendmoduleTargetName=structtypenonrect=stringletcontext_="TargetName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:200)>>=(fun()->check_patterni~pattern:"^[-\\.;a-z0-9]+$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"TargetName"jletto_json=simple_to_jsonto_valueendmoduleVolumeStatus=structtypenonrect=stringletcontext_="VolumeStatus"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:50)>>=(fun()->check_string_mini~min:3));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"VolumeStatus"jletto_json=simple_to_jsonto_valueendmoduleVolumeUsedInBytes=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_valueendmoduleVolumeiSCSIAttributes=structtypenonrect={targetARN:TargetARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the volume target."];networkInterfaceId:NetworkInterfaceId.toption[@ocaml.doc"The network interface identifier."];networkInterfacePort:Integer.toption[@ocaml.doc"The port used to communicate with iSCSI targets."];lunNumber:PositiveIntObject.toption[@ocaml.doc"The logical disk number."];chapEnabled:Boolean__lc1.toption[@ocaml.doc"Indicates whether mutual CHAP is enabled for the iSCSI target."]}letmake?targetARN=fun?networkInterfaceId->fun?networkInterfacePort->fun?lunNumber->fun?chapEnabled->fun()->{targetARN;networkInterfaceId;networkInterfacePort;lunNumber;chapEnabled}letto_valuex=structure_to_value[("TargetARN",(Option.mapx.targetARN~f:TargetARN.to_value));("NetworkInterfaceId",(Option.mapx.networkInterfaceId~f:NetworkInterfaceId.to_value));("NetworkInterfacePort",(Option.mapx.networkInterfacePort~f:Integer.to_value));("LunNumber",(Option.mapx.lunNumber~f:PositiveIntObject.to_value));("ChapEnabled",(Option.mapx.chapEnabled~f:Boolean__lc1.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letchapEnabled=(Option.map~f:Boolean__lc1.of_xml)(Xml.childxml_arg0"ChapEnabled")inletlunNumber=(Option.map~f:PositiveIntObject.of_xml)(Xml.childxml_arg0"LunNumber")inletnetworkInterfacePort=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"NetworkInterfacePort")inletnetworkInterfaceId=(Option.map~f:NetworkInterfaceId.of_xml)(Xml.childxml_arg0"NetworkInterfaceId")inlettargetARN=(Option.map~f:TargetARN.of_xml)(Xml.childxml_arg0"TargetARN")inmake?chapEnabled?lunNumber?networkInterfacePort?networkInterfaceId?targetARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letchapEnabled=field_mapjson__"ChapEnabled"Boolean__lc1.of_jsoninletlunNumber=field_mapjson__"LunNumber"PositiveIntObject.of_jsoninletnetworkInterfacePort=field_mapjson__"NetworkInterfacePort"Integer.of_jsoninletnetworkInterfaceId=field_mapjson__"NetworkInterfaceId"NetworkInterfaceId.of_jsoninlettargetARN=field_mapjson__"TargetARN"TargetARN.of_jsoninmake?chapEnabled?lunNumber?networkInterfacePort?networkInterfaceId?targetARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists iSCSI information about a volume."]moduleAuditDestinationARN=structtypenonrect=stringletcontext_="AuditDestinationARN"letmakei=letopenResultinok_or_failwith(check_string_maxi~max:1024);iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"AuditDestinationARN"jletto_json=simple_to_jsonto_valueendmoduleAuthentication=structtypenonrect=string[@@ocaml.doc"The authentication method of the file share. The default is ActiveDirectory. Valid Values: ActiveDirectory | GuestAccess"]letcontext_="Authentication"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:15)>>=(fun()->check_string_mini~min:5));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"Authentication"jletto_json=simple_to_jsonto_valueend[@@ocaml.doc"The authentication method of the file share. The default is ActiveDirectory. Valid Values: ActiveDirectory | GuestAccess"]moduleBoolean=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_valueendmoduleCacheAttributes=structtypenonrect={cacheStaleTimeoutInSeconds:CacheStaleTimeoutInSeconds.toption[@ocaml.doc"Refreshes a file share's cache by using Time To Live (TTL). TTL is the length of time since the last refresh after which access to the directory would cause the file gateway to first refresh that directory's contents from the Amazon S3 bucket or Amazon FSx file system. The TTL duration is in seconds. Valid Values:0, 300 to 2,592,000 seconds (5 minutes to 30 days)"]}letmake?cacheStaleTimeoutInSeconds=fun()->{cacheStaleTimeoutInSeconds}letto_valuex=structure_to_value[("CacheStaleTimeoutInSeconds",(Option.mapx.cacheStaleTimeoutInSeconds~f:CacheStaleTimeoutInSeconds.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcacheStaleTimeoutInSeconds=(Option.map~f:CacheStaleTimeoutInSeconds.of_xml)(Xml.childxml_arg0"CacheStaleTimeoutInSeconds")inmake?cacheStaleTimeoutInSeconds()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcacheStaleTimeoutInSeconds=field_mapjson__"CacheStaleTimeoutInSeconds"CacheStaleTimeoutInSeconds.of_jsoninmake?cacheStaleTimeoutInSeconds()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The refresh cache information for the file share or FSx file systems."]moduleCaseSensitivity=structtypenonrect=|ClientSpecified|CaseSensitive|Non_static_idofstringletmakei=iletto_string=function|ClientSpecified->"ClientSpecified"|CaseSensitive->"CaseSensitive"|Non_static_ids->sletof_string=function|"ClientSpecified"->ClientSpecified|"CaseSensitive"->CaseSensitive|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 CaseSensitivity"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"CaseSensitivity"j)letto_json=simple_to_jsonto_valueendmoduleDNSHostName=structtypenonrect=stringletcontext_="DNSHostName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:255)>>=(fun()->check_patterni~pattern:"^(([a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9\\-]*[A-Za-z0-9])$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"DNSHostName"jletto_json=simple_to_jsonto_valueendmoduleEncryptionType=structtypenonrect=|SseS3|SseKms|DsseKms|Non_static_idofstringletmakei=iletto_string=function|SseS3->"SseS3"|SseKms->"SseKms"|DsseKms->"DsseKms"|Non_static_ids->sletof_string=function|"SseS3"->SseS3|"SseKms"->SseKms|"DsseKms"->DsseKms|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_valueendmoduleFileShareName=structtypenonrect=stringletcontext_="FileShareName"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:255)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"FileShareName"jletto_json=simple_to_jsonto_valueendmoduleNotificationPolicy=structtypenonrect=stringletcontext_="NotificationPolicy"letmakei=letopenResultinok_or_failwith((check_string_mini~min:2)>>=(fun()->(check_string_maxi~max:100)>>=(fun()->check_patterni~pattern:"^\\{[\\w\\s:\\{\\}\\[\\]\"]*}$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"NotificationPolicy"jletto_json=simple_to_jsonto_valueendmoduleObjectACL=structtypenonrect=|Private|Public_read|Public_read_write|Authenticated_read|Bucket_owner_read|Bucket_owner_full_control|Aws_exec_read|Non_static_idofstringletmakei=iletto_string=function|Private->"private"|Public_read->"public-read"|Public_read_write->"public-read-write"|Authenticated_read->"authenticated-read"|Bucket_owner_read->"bucket-owner-read"|Bucket_owner_full_control->"bucket-owner-full-control"|Aws_exec_read->"aws-exec-read"|Non_static_ids->sletof_string=function|"private"->Private|"public-read"->Public_read|"public-read-write"->Public_read_write|"authenticated-read"->Authenticated_read|"bucket-owner-read"->Bucket_owner_read|"bucket-owner-full-control"->Bucket_owner_full_control|"aws-exec-read"->Aws_exec_read|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 ObjectACL"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ObjectACL"j)letto_json=simple_to_jsonto_valueendmodulePath=structtypenonrect=string[@@ocaml.doc"The file share path used by the NFS client to identify the mount point."]letcontext_="Path"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:"Path"jletto_json=simple_to_jsonto_valueend[@@ocaml.doc"The file share path used by the NFS client to identify the mount point."]moduleRegionId=structtypenonrect=stringletcontext_="RegionId"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:25)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"RegionId"jletto_json=simple_to_jsonto_valueendmoduleStorageClass=structtypenonrect=stringletcontext_="StorageClass"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:50)>>=(fun()->check_string_mini~min:5));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"StorageClass"jletto_json=simple_to_jsonto_valueendmoduleUserList=structtypenonrect=UserListUser.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:100)>>=(fun()->check_list_mini~min:0));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:UserListUser.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:UserListUser.of_xml)letof_jsonj=list_of_json~kind:"UserList"~of_json:UserListUser.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleFileShareClientList=structtypenonrect=Ipv4OrIpv6AddressCIDR.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:100)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Ipv4OrIpv6AddressCIDR.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:Ipv4OrIpv6AddressCIDR.of_xml)letof_jsonj=list_of_json~kind:"FileShareClientList"~of_json:Ipv4OrIpv6AddressCIDR.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleNFSFileShareDefaults=structtypenonrect={fileMode:PermissionMode.toption[@ocaml.doc"The Unix file mode in the form \"nnnn\". For example, 0666 represents the default file mode inside the file share. The default value is 0666."];directoryMode:PermissionMode.toption[@ocaml.doc"The Unix directory mode in the form \"nnnn\". For example, 0666 represents the default access mode for all directories inside the file share. The default value is 0777."];groupId:PermissionId.toption[@ocaml.doc"The default group ID for the file share (unless the files have another group ID specified). The default value is nfsnobody."];ownerId:PermissionId.toption[@ocaml.doc"The default owner ID for files in the file share (unless the files have another owner ID specified). The default value is nfsnobody."]}letmake?fileMode=fun?directoryMode->fun?groupId->fun?ownerId->fun()->{fileMode;directoryMode;groupId;ownerId}letto_valuex=structure_to_value[("FileMode",(Option.mapx.fileMode~f:PermissionMode.to_value));("DirectoryMode",(Option.mapx.directoryMode~f:PermissionMode.to_value));("GroupId",(Option.mapx.groupId~f:PermissionId.to_value));("OwnerId",(Option.mapx.ownerId~f:PermissionId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letownerId=(Option.map~f:PermissionId.of_xml)(Xml.childxml_arg0"OwnerId")inletgroupId=(Option.map~f:PermissionId.of_xml)(Xml.childxml_arg0"GroupId")inletdirectoryMode=(Option.map~f:PermissionMode.of_xml)(Xml.childxml_arg0"DirectoryMode")inletfileMode=(Option.map~f:PermissionMode.of_xml)(Xml.childxml_arg0"FileMode")inmake?ownerId?groupId?directoryMode?fileMode()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letownerId=field_mapjson__"OwnerId"PermissionId.of_jsoninletgroupId=field_mapjson__"GroupId"PermissionId.of_jsoninletdirectoryMode=field_mapjson__"DirectoryMode"PermissionMode.of_jsoninletfileMode=field_mapjson__"FileMode"PermissionMode.of_jsoninmake?ownerId?groupId?directoryMode?fileMode()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes Network File System (NFS) file share default values. Files and folders stored as Amazon S3 objects in S3 buckets don't, by default, have Unix file permissions assigned to them. Upon discovery in an S3 bucket by Storage Gateway, the S3 objects that represent files and folders are assigned these default Unix permissions. This operation is only supported for S3 File Gateways."]moduleSquash=structtypenonrect=string[@@ocaml.doc"The user mapped to anonymous user. Valid options are the following: RootSquash: Only root is mapped to anonymous user. NoSquash: No one is mapped to anonymous user. AllSquash: Everyone is mapped to anonymous user."]letcontext_="Squash"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:15)>>=(fun()->check_string_mini~min:5));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"Squash"jletto_json=simple_to_jsonto_valueend[@@ocaml.doc"The user mapped to anonymous user. Valid options are the following: RootSquash: Only root is mapped to anonymous user. NoSquash: No one is mapped to anonymous user. AllSquash: Everyone is mapped to anonymous user."]moduleEndpointNetworkConfiguration=structtypenonrect={ipAddresses:IpAddressList.toption[@ocaml.doc"A list of gateway IP addresses on which the associated Amazon FSx file system is available. If multiple file systems are associated with this gateway, this field is required."]}letmake?ipAddresses=fun()->{ipAddresses}letto_valuex=structure_to_value[("IpAddresses",(Option.mapx.ipAddresses~f:IpAddressList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letipAddresses=(Option.map~f:IpAddressList.of_xml)(Xml.childxml_arg0"IpAddresses")inmake?ipAddresses()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letipAddresses=field_mapjson__"IpAddresses"IpAddressList.of_jsoninmake?ipAddresses()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Specifies network configuration information for the gateway associated with the Amazon FSx file system."]moduleFileSystemAssociationStatusDetails=structtypenonrect=FileSystemAssociationStatusDetail.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:FileSystemAssociationStatusDetail.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:FileSystemAssociationStatusDetail.of_xml)letof_jsonj=list_of_json~kind:"FileSystemAssociationStatusDetails"~of_json:FileSystemAssociationStatusDetail.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleFileSystemLocationARN=structtypenonrect=stringletcontext_="FileSystemLocationARN"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:512)>>=(fun()->check_string_mini~min:8));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"FileSystemLocationARN"jletto_json=simple_to_jsonto_valueendmoduleChapSecret=structtypenonrect=stringletcontext_="ChapSecret"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:100)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ChapSecret"jletto_json=simple_to_jsonto_valueendmoduleIqnName=structtypenonrect=stringletcontext_="IqnName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:255)>>=(fun()->check_patterni~pattern:"[0-9a-z:.-]+")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"IqnName"jletto_json=simple_to_jsonto_valueendmoduleStorageGatewayError=structtypenonrect={errorCode:ErrorCode.toption[@ocaml.doc"Additional information about the error."];errorDetails:ErrorDetails.toption[@ocaml.doc"Human-readable text that provides detail about the error that occurred."]}letmake?errorCode=fun?errorDetails->fun()->{errorCode;errorDetails}letto_valuex=structure_to_value[("errorCode",(Option.mapx.errorCode~f:ErrorCode.to_value));("errorDetails",(Option.mapx.errorDetails~f:ErrorDetails.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=leterrorDetails=(Option.map~f:ErrorDetails.of_xml)(Xml.childxml_arg0"errorDetails")inleterrorCode=(Option.map~f:ErrorCode.of_xml)(Xml.childxml_arg0"errorCode")inmake?errorDetails?errorCode()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=leterrorDetails=field_mapjson__"errorDetails"ErrorDetails.of_jsoninleterrorCode=field_mapjson__"errorCode"ErrorCode.of_jsoninmake?errorDetails?errorCode()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Provides additional information about an error that was returned by the service. See the errorCode and errorDetails members for more information about the error."]moduleAutomaticUpdatePolicy=structtypenonrect=|ALL_VERSIONS|EMERGENCY_VERSIONS_ONLY|Non_static_idofstringletmakei=iletto_string=function|ALL_VERSIONS->"ALL_VERSIONS"|EMERGENCY_VERSIONS_ONLY->"EMERGENCY_VERSIONS_ONLY"|Non_static_ids->sletof_string=function|"ALL_VERSIONS"->ALL_VERSIONS|"EMERGENCY_VERSIONS_ONLY"->EMERGENCY_VERSIONS_ONLY|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 AutomaticUpdatePolicy"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"AutomaticUpdatePolicy"j)letto_json=simple_to_jsonto_valueendmoduleBandwidthRateLimitInterval=structtypenonrect={startHourOfDay:HourOfDay.t[@ocaml.doc"The hour of the day to start the bandwidth rate limit interval."];startMinuteOfHour:MinuteOfHour.t[@ocaml.doc"The minute of the hour to start the bandwidth rate limit interval. The interval begins at the start of that minute. To begin an interval exactly at the start of the hour, use the value 0."];endHourOfDay:HourOfDay.t[@ocaml.doc"The hour of the day to end the bandwidth rate limit interval."];endMinuteOfHour:MinuteOfHour.t[@ocaml.doc"The minute of the hour to end the bandwidth rate limit interval. The bandwidth rate limit interval ends at the end of the minute. To end an interval at the end of an hour, use the value 59."];daysOfWeek:DaysOfWeek.t[@ocaml.doc"The days of the week component of the bandwidth rate limit interval, represented as ordinal numbers from 0 to 6, where 0 represents Sunday and 6 represents Saturday."];averageUploadRateLimitInBitsPerSec:BandwidthUploadRateLimit.toption[@ocaml.doc"The average upload rate limit component of the bandwidth rate limit interval, in bits per second. This field does not appear in the response if the upload rate limit is not set. For Tape Gateway and Volume Gateway, the minimum value is 51200. This field is required for S3 File Gateway, and the minimum value is 104857600."];averageDownloadRateLimitInBitsPerSec:BandwidthDownloadRateLimit.toption[@ocaml.doc"The average download rate limit component of the bandwidth rate limit interval, in bits per second. This field does not appear in the response if the download rate limit is not set. S3 File Gateway does not support this feature."]}letcontext_="BandwidthRateLimitInterval"letmake?averageUploadRateLimitInBitsPerSec=fun?averageDownloadRateLimitInBitsPerSec->fun~startHourOfDay->fun~startMinuteOfHour->fun~endHourOfDay->fun~endMinuteOfHour->fun~daysOfWeek->fun()->{averageUploadRateLimitInBitsPerSec;averageDownloadRateLimitInBitsPerSec;startHourOfDay;startMinuteOfHour;endHourOfDay;endMinuteOfHour;daysOfWeek}letto_valuex=structure_to_value[("StartHourOfDay",(Some(HourOfDay.to_valuex.startHourOfDay)));("StartMinuteOfHour",(Some(MinuteOfHour.to_valuex.startMinuteOfHour)));("EndHourOfDay",(Some(HourOfDay.to_valuex.endHourOfDay)));("EndMinuteOfHour",(Some(MinuteOfHour.to_valuex.endMinuteOfHour)));("DaysOfWeek",(Some(DaysOfWeek.to_valuex.daysOfWeek)));("AverageUploadRateLimitInBitsPerSec",(Option.mapx.averageUploadRateLimitInBitsPerSec~f:BandwidthUploadRateLimit.to_value));("AverageDownloadRateLimitInBitsPerSec",(Option.mapx.averageDownloadRateLimitInBitsPerSec~f:BandwidthDownloadRateLimit.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letaverageDownloadRateLimitInBitsPerSec=(Option.map~f:BandwidthDownloadRateLimit.of_xml)(Xml.childxml_arg0"AverageDownloadRateLimitInBitsPerSec")inletaverageUploadRateLimitInBitsPerSec=(Option.map~f:BandwidthUploadRateLimit.of_xml)(Xml.childxml_arg0"AverageUploadRateLimitInBitsPerSec")inletdaysOfWeek=DaysOfWeek.of_xml(Xml.child_exn~context:context_xml_arg0"DaysOfWeek")inletendMinuteOfHour=MinuteOfHour.of_xml(Xml.child_exn~context:context_xml_arg0"EndMinuteOfHour")inletendHourOfDay=HourOfDay.of_xml(Xml.child_exn~context:context_xml_arg0"EndHourOfDay")inletstartMinuteOfHour=MinuteOfHour.of_xml(Xml.child_exn~context:context_xml_arg0"StartMinuteOfHour")inletstartHourOfDay=HourOfDay.of_xml(Xml.child_exn~context:context_xml_arg0"StartHourOfDay")inmake?averageDownloadRateLimitInBitsPerSec?averageUploadRateLimitInBitsPerSec~daysOfWeek~endMinuteOfHour~endHourOfDay~startMinuteOfHour~startHourOfDay()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letaverageDownloadRateLimitInBitsPerSec=field_mapjson__"AverageDownloadRateLimitInBitsPerSec"BandwidthDownloadRateLimit.of_jsoninletaverageUploadRateLimitInBitsPerSec=field_mapjson__"AverageUploadRateLimitInBitsPerSec"BandwidthUploadRateLimit.of_jsoninletdaysOfWeek=field_map_exnjson__"DaysOfWeek"DaysOfWeek.of_jsoninletendMinuteOfHour=field_map_exnjson__"EndMinuteOfHour"MinuteOfHour.of_jsoninletendHourOfDay=field_map_exnjson__"EndHourOfDay"HourOfDay.of_jsoninletstartMinuteOfHour=field_map_exnjson__"StartMinuteOfHour"MinuteOfHour.of_jsoninletstartHourOfDay=field_map_exnjson__"StartHourOfDay"HourOfDay.of_jsoninmake?averageDownloadRateLimitInBitsPerSec?averageUploadRateLimitInBitsPerSec~daysOfWeek~endMinuteOfHour~endHourOfDay~startMinuteOfHour~startHourOfDay()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a bandwidth rate limit interval for a gateway. A bandwidth rate limit schedule consists of one or more bandwidth rate limit intervals. A bandwidth rate limit interval defines a period of time on one or more days of the week, during which bandwidth rate limits are specified for uploading, downloading, or both. FSx File Gateway does not support this feature."]moduleFolder=structtypenonrect=stringletcontext_="Folder"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:1024)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"Folder"jletto_json=simple_to_jsonto_valueendmoduleVolumeInfo=structtypenonrect={volumeARN:VolumeARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) for the storage volume. For example, the following is a valid ARN: arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens (-)."];volumeId:VolumeId.toption[@ocaml.doc"The unique identifier assigned to the volume. This ID becomes part of the volume Amazon Resource Name (ARN), which you use as input for other operations. Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens (-)."];gatewayARN:GatewayARN.toption;gatewayId:GatewayId.toption[@ocaml.doc"The unique identifier assigned to your gateway during activation. This ID becomes part of the gateway Amazon Resource Name (ARN), which you use as input for other operations. Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens (-)."];volumeType:VolumeType.toption[@ocaml.doc"One of the VolumeType enumeration values describing the type of the volume."];volumeSizeInBytes:Long.toption[@ocaml.doc"The size of the volume in bytes. Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens (-)."];volumeAttachmentStatus:VolumeAttachmentStatus.toption[@ocaml.doc"One of the VolumeStatus values that indicates the state of the storage volume."]}letmake?volumeARN=fun?volumeId->fun?gatewayARN->fun?gatewayId->fun?volumeType->fun?volumeSizeInBytes->fun?volumeAttachmentStatus->fun()->{volumeARN;volumeId;gatewayARN;gatewayId;volumeType;volumeSizeInBytes;volumeAttachmentStatus}letto_valuex=structure_to_value[("VolumeARN",(Option.mapx.volumeARN~f:VolumeARN.to_value));("VolumeId",(Option.mapx.volumeId~f:VolumeId.to_value));("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value));("GatewayId",(Option.mapx.gatewayId~f:GatewayId.to_value));("VolumeType",(Option.mapx.volumeType~f:VolumeType.to_value));("VolumeSizeInBytes",(Option.mapx.volumeSizeInBytes~f:Long.to_value));("VolumeAttachmentStatus",(Option.mapx.volumeAttachmentStatus~f:VolumeAttachmentStatus.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvolumeAttachmentStatus=(Option.map~f:VolumeAttachmentStatus.of_xml)(Xml.childxml_arg0"VolumeAttachmentStatus")inletvolumeSizeInBytes=(Option.map~f:Long.of_xml)(Xml.childxml_arg0"VolumeSizeInBytes")inletvolumeType=(Option.map~f:VolumeType.of_xml)(Xml.childxml_arg0"VolumeType")inletgatewayId=(Option.map~f:GatewayId.of_xml)(Xml.childxml_arg0"GatewayId")inletgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inletvolumeId=(Option.map~f:VolumeId.of_xml)(Xml.childxml_arg0"VolumeId")inletvolumeARN=(Option.map~f:VolumeARN.of_xml)(Xml.childxml_arg0"VolumeARN")inmake?volumeAttachmentStatus?volumeSizeInBytes?volumeType?gatewayId?gatewayARN?volumeId?volumeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvolumeAttachmentStatus=field_mapjson__"VolumeAttachmentStatus"VolumeAttachmentStatus.of_jsoninletvolumeSizeInBytes=field_mapjson__"VolumeSizeInBytes"Long.of_jsoninletvolumeType=field_mapjson__"VolumeType"VolumeType.of_jsoninletgatewayId=field_mapjson__"GatewayId"GatewayId.of_jsoninletgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninletvolumeId=field_mapjson__"VolumeId"VolumeId.of_jsoninletvolumeARN=field_mapjson__"VolumeARN"VolumeARN.of_jsoninmake?volumeAttachmentStatus?volumeSizeInBytes?volumeType?gatewayId?gatewayARN?volumeId?volumeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a storage volume object."]moduleVolumeRecoveryPointInfo=structtypenonrect={volumeARN:VolumeARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the volume target."];volumeSizeInBytes:Long.toption[@ocaml.doc"The size of the volume in bytes."];volumeUsageInBytes:Long.toption[@ocaml.doc"The size of the data stored on the volume in bytes. This value is not available for volumes created prior to May 13, 2015, until you store data on the volume."];volumeRecoveryPointTime:String_.toption[@ocaml.doc"The time the recovery point was taken."]}letmake?volumeARN=fun?volumeSizeInBytes->fun?volumeUsageInBytes->fun?volumeRecoveryPointTime->fun()->{volumeARN;volumeSizeInBytes;volumeUsageInBytes;volumeRecoveryPointTime}letto_valuex=structure_to_value[("VolumeARN",(Option.mapx.volumeARN~f:VolumeARN.to_value));("VolumeSizeInBytes",(Option.mapx.volumeSizeInBytes~f:Long.to_value));("VolumeUsageInBytes",(Option.mapx.volumeUsageInBytes~f:Long.to_value));("VolumeRecoveryPointTime",(Option.mapx.volumeRecoveryPointTime~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvolumeRecoveryPointTime=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"VolumeRecoveryPointTime")inletvolumeUsageInBytes=(Option.map~f:Long.of_xml)(Xml.childxml_arg0"VolumeUsageInBytes")inletvolumeSizeInBytes=(Option.map~f:Long.of_xml)(Xml.childxml_arg0"VolumeSizeInBytes")inletvolumeARN=(Option.map~f:VolumeARN.of_xml)(Xml.childxml_arg0"VolumeARN")inmake?volumeRecoveryPointTime?volumeUsageInBytes?volumeSizeInBytes?volumeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvolumeRecoveryPointTime=field_mapjson__"VolumeRecoveryPointTime"String_.of_jsoninletvolumeUsageInBytes=field_mapjson__"VolumeUsageInBytes"Long.of_jsoninletvolumeSizeInBytes=field_mapjson__"VolumeSizeInBytes"Long.of_jsoninletvolumeARN=field_mapjson__"VolumeARN"VolumeARN.of_jsoninmake?volumeRecoveryPointTime?volumeUsageInBytes?volumeSizeInBytes?volumeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a storage volume recovery point object."]moduleInitiator=structtypenonrect=stringletcontext_="Initiator"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:50)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"Initiator"jletto_json=simple_to_jsonto_valueendmoduleTapeInfo=structtypenonrect={tapeARN:TapeARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of a virtual tape."];tapeBarcode:TapeBarcode.toption[@ocaml.doc"The barcode that identifies a specific virtual tape."];tapeSizeInBytes:TapeSize.toption[@ocaml.doc"The size, in bytes, of a virtual tape."];tapeStatus:TapeStatus.toption[@ocaml.doc"The status of the tape."];gatewayARN:GatewayARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation to return a list of gateways for your account and Amazon Web Services Region."];poolId:PoolId.toption[@ocaml.doc"The ID of the pool that you want to add your tape to for archiving. The tape in this pool is archived in the S3 storage class that is associated with the pool. When you use your backup application to eject the tape, the tape is archived directly into the storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds to the pool."];retentionStartDate:Time.toption[@ocaml.doc"The date that the tape became subject to tape retention lock."];poolEntryDate:Time.toption[@ocaml.doc"The date that the tape entered the custom tape pool with tape retention lock enabled."]}letmake?tapeARN=fun?tapeBarcode->fun?tapeSizeInBytes->fun?tapeStatus->fun?gatewayARN->fun?poolId->fun?retentionStartDate->fun?poolEntryDate->fun()->{tapeARN;tapeBarcode;tapeSizeInBytes;tapeStatus;gatewayARN;poolId;retentionStartDate;poolEntryDate}letto_valuex=structure_to_value[("TapeARN",(Option.mapx.tapeARN~f:TapeARN.to_value));("TapeBarcode",(Option.mapx.tapeBarcode~f:TapeBarcode.to_value));("TapeSizeInBytes",(Option.mapx.tapeSizeInBytes~f:TapeSize.to_value));("TapeStatus",(Option.mapx.tapeStatus~f:TapeStatus.to_value));("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value));("PoolId",(Option.mapx.poolId~f:PoolId.to_value));("RetentionStartDate",(Option.mapx.retentionStartDate~f:Time.to_value));("PoolEntryDate",(Option.mapx.poolEntryDate~f:Time.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpoolEntryDate=(Option.map~f:Time.of_xml)(Xml.childxml_arg0"PoolEntryDate")inletretentionStartDate=(Option.map~f:Time.of_xml)(Xml.childxml_arg0"RetentionStartDate")inletpoolId=(Option.map~f:PoolId.of_xml)(Xml.childxml_arg0"PoolId")inletgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inlettapeStatus=(Option.map~f:TapeStatus.of_xml)(Xml.childxml_arg0"TapeStatus")inlettapeSizeInBytes=(Option.map~f:TapeSize.of_xml)(Xml.childxml_arg0"TapeSizeInBytes")inlettapeBarcode=(Option.map~f:TapeBarcode.of_xml)(Xml.childxml_arg0"TapeBarcode")inlettapeARN=(Option.map~f:TapeARN.of_xml)(Xml.childxml_arg0"TapeARN")inmake?poolEntryDate?retentionStartDate?poolId?gatewayARN?tapeStatus?tapeSizeInBytes?tapeBarcode?tapeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpoolEntryDate=field_mapjson__"PoolEntryDate"Time.of_jsoninletretentionStartDate=field_mapjson__"RetentionStartDate"Time.of_jsoninletpoolId=field_mapjson__"PoolId"PoolId.of_jsoninletgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninlettapeStatus=field_mapjson__"TapeStatus"TapeStatus.of_jsoninlettapeSizeInBytes=field_mapjson__"TapeSizeInBytes"TapeSize.of_jsoninlettapeBarcode=field_mapjson__"TapeBarcode"TapeBarcode.of_jsoninlettapeARN=field_mapjson__"TapeARN"TapeARN.of_jsoninmake?poolEntryDate?retentionStartDate?poolId?gatewayARN?tapeStatus?tapeSizeInBytes?tapeBarcode?tapeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a virtual tape."]modulePoolInfo=structtypenonrect={poolARN:PoolARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the custom tape pool. Use the ListTapePools operation to return a list of custom tape pools for your account and Amazon Web Services Region."];poolName:PoolName.toption[@ocaml.doc"The name of the custom tape pool. PoolName can use all ASCII characters, except '/' and '\\'."];storageClass:TapeStorageClass.toption[@ocaml.doc"The storage class that is associated with the custom pool. When you use your backup application to eject the tape, the tape is archived directly into the storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds to the pool."];retentionLockType:RetentionLockType.toption[@ocaml.doc"Tape retention lock type, which can be configured in two modes. When configured in governance mode, Amazon Web Services accounts with specific IAM permissions are authorized to remove the tape retention lock from archived virtual tapes. When configured in compliance mode, the tape retention lock cannot be removed by any user, including the root Amazon Web Services account."];retentionLockTimeInDays:RetentionLockTimeInDays.toption[@ocaml.doc"Tape retention lock time is set in days. Tape retention lock can be enabled for up to 100 years (36,500 days)."];poolStatus:PoolStatus.toption[@ocaml.doc"Status of the custom tape pool. Pool can be ACTIVE or DELETED."]}letmake?poolARN=fun?poolName->fun?storageClass->fun?retentionLockType->fun?retentionLockTimeInDays->fun?poolStatus->fun()->{poolARN;poolName;storageClass;retentionLockType;retentionLockTimeInDays;poolStatus}letto_valuex=structure_to_value[("PoolARN",(Option.mapx.poolARN~f:PoolARN.to_value));("PoolName",(Option.mapx.poolName~f:PoolName.to_value));("StorageClass",(Option.mapx.storageClass~f:TapeStorageClass.to_value));("RetentionLockType",(Option.mapx.retentionLockType~f:RetentionLockType.to_value));("RetentionLockTimeInDays",(Option.mapx.retentionLockTimeInDays~f:RetentionLockTimeInDays.to_value));("PoolStatus",(Option.mapx.poolStatus~f:PoolStatus.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpoolStatus=(Option.map~f:PoolStatus.of_xml)(Xml.childxml_arg0"PoolStatus")inletretentionLockTimeInDays=(Option.map~f:RetentionLockTimeInDays.of_xml)(Xml.childxml_arg0"RetentionLockTimeInDays")inletretentionLockType=(Option.map~f:RetentionLockType.of_xml)(Xml.childxml_arg0"RetentionLockType")inletstorageClass=(Option.map~f:TapeStorageClass.of_xml)(Xml.childxml_arg0"StorageClass")inletpoolName=(Option.map~f:PoolName.of_xml)(Xml.childxml_arg0"PoolName")inletpoolARN=(Option.map~f:PoolARN.of_xml)(Xml.childxml_arg0"PoolARN")inmake?poolStatus?retentionLockTimeInDays?retentionLockType?storageClass?poolName?poolARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpoolStatus=field_mapjson__"PoolStatus"PoolStatus.of_jsoninletretentionLockTimeInDays=field_mapjson__"RetentionLockTimeInDays"RetentionLockTimeInDays.of_jsoninletretentionLockType=field_mapjson__"RetentionLockType"RetentionLockType.of_jsoninletstorageClass=field_mapjson__"StorageClass"TapeStorageClass.of_jsoninletpoolName=field_mapjson__"PoolName"PoolName.of_jsoninletpoolARN=field_mapjson__"PoolARN"PoolARN.of_jsoninmake?poolStatus?retentionLockTimeInDays?retentionLockType?storageClass?poolName?poolARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a custom tape pool."]moduleDisk=structtypenonrect={diskId:DiskId.toption[@ocaml.doc"The unique device ID or other distinguishing data that identifies a local disk."];diskPath:String_.toption[@ocaml.doc"The path of a local disk in the gateway virtual machine (VM)."];diskNode:String_.toption[@ocaml.doc"The device node of a local disk as assigned by the virtualization environment."];diskStatus:String_.toption[@ocaml.doc"A value that represents the status of a local disk."];diskSizeInBytes:Long.toption[@ocaml.doc"The local disk size in bytes."];diskAllocationType:DiskAllocationType.toption;diskAllocationResource:String_.toption[@ocaml.doc"The iSCSI qualified name (IQN) that is defined for a disk. This field is not included in the response if the local disk is not defined as an iSCSI target. The format of this field is targetIqn::LUNNumber::region-volumeId."];diskAttributeList:DiskAttributeList.toption}letmake?diskId=fun?diskPath->fun?diskNode->fun?diskStatus->fun?diskSizeInBytes->fun?diskAllocationType->fun?diskAllocationResource->fun?diskAttributeList->fun()->{diskId;diskPath;diskNode;diskStatus;diskSizeInBytes;diskAllocationType;diskAllocationResource;diskAttributeList}letto_valuex=structure_to_value[("DiskId",(Option.mapx.diskId~f:DiskId.to_value));("DiskPath",(Option.mapx.diskPath~f:String_.to_value));("DiskNode",(Option.mapx.diskNode~f:String_.to_value));("DiskStatus",(Option.mapx.diskStatus~f:String_.to_value));("DiskSizeInBytes",(Option.mapx.diskSizeInBytes~f:Long.to_value));("DiskAllocationType",(Option.mapx.diskAllocationType~f:DiskAllocationType.to_value));("DiskAllocationResource",(Option.mapx.diskAllocationResource~f:String_.to_value));("DiskAttributeList",(Option.mapx.diskAttributeList~f:DiskAttributeList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letdiskAttributeList=(Option.map~f:DiskAttributeList.of_xml)(Xml.childxml_arg0"DiskAttributeList")inletdiskAllocationResource=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"DiskAllocationResource")inletdiskAllocationType=(Option.map~f:DiskAllocationType.of_xml)(Xml.childxml_arg0"DiskAllocationType")inletdiskSizeInBytes=(Option.map~f:Long.of_xml)(Xml.childxml_arg0"DiskSizeInBytes")inletdiskStatus=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"DiskStatus")inletdiskNode=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"DiskNode")inletdiskPath=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"DiskPath")inletdiskId=(Option.map~f:DiskId.of_xml)(Xml.childxml_arg0"DiskId")inmake?diskAttributeList?diskAllocationResource?diskAllocationType?diskSizeInBytes?diskStatus?diskNode?diskPath?diskId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letdiskAttributeList=field_mapjson__"DiskAttributeList"DiskAttributeList.of_jsoninletdiskAllocationResource=field_mapjson__"DiskAllocationResource"String_.of_jsoninletdiskAllocationType=field_mapjson__"DiskAllocationType"DiskAllocationType.of_jsoninletdiskSizeInBytes=field_mapjson__"DiskSizeInBytes"Long.of_jsoninletdiskStatus=field_mapjson__"DiskStatus"String_.of_jsoninletdiskNode=field_mapjson__"DiskNode"String_.of_jsoninletdiskPath=field_mapjson__"DiskPath"String_.of_jsoninletdiskId=field_mapjson__"DiskId"DiskId.of_jsoninmake?diskAttributeList?diskAllocationResource?diskAllocationType?diskSizeInBytes?diskStatus?diskNode?diskPath?diskId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Represents a gateway's local disk."]moduleGatewayInfo=structtypenonrect={gatewayId:GatewayId.toption[@ocaml.doc"The unique identifier assigned to your gateway during activation. This ID becomes part of the gateway Amazon Resource Name (ARN), which you use as input for other operations."];gatewayARN:GatewayARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation to return a list of gateways for your account and Amazon Web Services Region."];gatewayType:GatewayType.toption[@ocaml.doc"The type of the gateway. Amazon FSx File Gateway is no longer available to new customers. Existing customers of FSx File Gateway can continue to use the service normally. For capabilities similar to FSx File Gateway, visit this blog post."];gatewayOperationalState:GatewayOperationalState.toption[@ocaml.doc"The state of the gateway. Valid Values: DISABLED | ACTIVE"];gatewayName:String_.toption[@ocaml.doc"The name of the gateway."];ec2InstanceId:Ec2InstanceId.toption[@ocaml.doc"The ID of the Amazon EC2 instance that was used to launch the gateway."];ec2InstanceRegion:Ec2InstanceRegion.toption[@ocaml.doc"The Amazon Web Services Region where the Amazon EC2 instance is located."];hostEnvironment:HostEnvironment.toption[@ocaml.doc"The type of hardware or software platform on which the gateway is running. Tape Gateway is no longer available on Snow Family devices."];hostEnvironmentId:HostEnvironmentId.toption[@ocaml.doc"A unique identifier for the specific instance of the host platform running the gateway. This value is only available for certain host environments, and its format depends on the host environment type."];deprecationDate:DeprecationDate.toption[@ocaml.doc"Date after which this gateway will not receive software updates for new features and bug fixes."];softwareVersion:SoftwareVersion.toption[@ocaml.doc"The version number of the software running on the gateway appliance."]}letmake?gatewayId=fun?gatewayARN->fun?gatewayType->fun?gatewayOperationalState->fun?gatewayName->fun?ec2InstanceId->fun?ec2InstanceRegion->fun?hostEnvironment->fun?hostEnvironmentId->fun?deprecationDate->fun?softwareVersion->fun()->{gatewayId;gatewayARN;gatewayType;gatewayOperationalState;gatewayName;ec2InstanceId;ec2InstanceRegion;hostEnvironment;hostEnvironmentId;deprecationDate;softwareVersion}letto_valuex=structure_to_value[("GatewayId",(Option.mapx.gatewayId~f:GatewayId.to_value));("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value));("GatewayType",(Option.mapx.gatewayType~f:GatewayType.to_value));("GatewayOperationalState",(Option.mapx.gatewayOperationalState~f:GatewayOperationalState.to_value));("GatewayName",(Option.mapx.gatewayName~f:String_.to_value));("Ec2InstanceId",(Option.mapx.ec2InstanceId~f:Ec2InstanceId.to_value));("Ec2InstanceRegion",(Option.mapx.ec2InstanceRegion~f:Ec2InstanceRegion.to_value));("HostEnvironment",(Option.mapx.hostEnvironment~f:HostEnvironment.to_value));("HostEnvironmentId",(Option.mapx.hostEnvironmentId~f:HostEnvironmentId.to_value));("DeprecationDate",(Option.mapx.deprecationDate~f:DeprecationDate.to_value));("SoftwareVersion",(Option.mapx.softwareVersion~f:SoftwareVersion.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsoftwareVersion=(Option.map~f:SoftwareVersion.of_xml)(Xml.childxml_arg0"SoftwareVersion")inletdeprecationDate=(Option.map~f:DeprecationDate.of_xml)(Xml.childxml_arg0"DeprecationDate")inlethostEnvironmentId=(Option.map~f:HostEnvironmentId.of_xml)(Xml.childxml_arg0"HostEnvironmentId")inlethostEnvironment=(Option.map~f:HostEnvironment.of_xml)(Xml.childxml_arg0"HostEnvironment")inletec2InstanceRegion=(Option.map~f:Ec2InstanceRegion.of_xml)(Xml.childxml_arg0"Ec2InstanceRegion")inletec2InstanceId=(Option.map~f:Ec2InstanceId.of_xml)(Xml.childxml_arg0"Ec2InstanceId")inletgatewayName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"GatewayName")inletgatewayOperationalState=(Option.map~f:GatewayOperationalState.of_xml)(Xml.childxml_arg0"GatewayOperationalState")inletgatewayType=(Option.map~f:GatewayType.of_xml)(Xml.childxml_arg0"GatewayType")inletgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inletgatewayId=(Option.map~f:GatewayId.of_xml)(Xml.childxml_arg0"GatewayId")inmake?softwareVersion?deprecationDate?hostEnvironmentId?hostEnvironment?ec2InstanceRegion?ec2InstanceId?gatewayName?gatewayOperationalState?gatewayType?gatewayARN?gatewayId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsoftwareVersion=field_mapjson__"SoftwareVersion"SoftwareVersion.of_jsoninletdeprecationDate=field_mapjson__"DeprecationDate"DeprecationDate.of_jsoninlethostEnvironmentId=field_mapjson__"HostEnvironmentId"HostEnvironmentId.of_jsoninlethostEnvironment=field_mapjson__"HostEnvironment"HostEnvironment.of_jsoninletec2InstanceRegion=field_mapjson__"Ec2InstanceRegion"Ec2InstanceRegion.of_jsoninletec2InstanceId=field_mapjson__"Ec2InstanceId"Ec2InstanceId.of_jsoninletgatewayName=field_mapjson__"GatewayName"String_.of_jsoninletgatewayOperationalState=field_mapjson__"GatewayOperationalState"GatewayOperationalState.of_jsoninletgatewayType=field_mapjson__"GatewayType"GatewayType.of_jsoninletgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninletgatewayId=field_mapjson__"GatewayId"GatewayId.of_jsoninmake?softwareVersion?deprecationDate?hostEnvironmentId?hostEnvironment?ec2InstanceRegion?ec2InstanceId?gatewayName?gatewayOperationalState?gatewayType?gatewayARN?gatewayId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a gateway object."]moduleFileSystemAssociationSummary=structtypenonrect={fileSystemAssociationId:FileSystemAssociationId.toption[@ocaml.doc"The ID of the file system association."];fileSystemAssociationARN:FileSystemAssociationARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the file system association."];fileSystemAssociationStatus:FileSystemAssociationStatus.toption[@ocaml.doc"The status of the file share. Valid Values: AVAILABLE | CREATING | DELETING | FORCE_DELETING | UPDATING | ERROR"];gatewayARN:GatewayARN.toption}letmake?fileSystemAssociationId=fun?fileSystemAssociationARN->fun?fileSystemAssociationStatus->fun?gatewayARN->fun()->{fileSystemAssociationId;fileSystemAssociationARN;fileSystemAssociationStatus;gatewayARN}letto_valuex=structure_to_value[("FileSystemAssociationId",(Option.mapx.fileSystemAssociationId~f:FileSystemAssociationId.to_value));("FileSystemAssociationARN",(Option.mapx.fileSystemAssociationARN~f:FileSystemAssociationARN.to_value));("FileSystemAssociationStatus",(Option.mapx.fileSystemAssociationStatus~f:FileSystemAssociationStatus.to_value));("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inletfileSystemAssociationStatus=(Option.map~f:FileSystemAssociationStatus.of_xml)(Xml.childxml_arg0"FileSystemAssociationStatus")inletfileSystemAssociationARN=(Option.map~f:FileSystemAssociationARN.of_xml)(Xml.childxml_arg0"FileSystemAssociationARN")inletfileSystemAssociationId=(Option.map~f:FileSystemAssociationId.of_xml)(Xml.childxml_arg0"FileSystemAssociationId")inmake?gatewayARN?fileSystemAssociationStatus?fileSystemAssociationARN?fileSystemAssociationId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninletfileSystemAssociationStatus=field_mapjson__"FileSystemAssociationStatus"FileSystemAssociationStatus.of_jsoninletfileSystemAssociationARN=field_mapjson__"FileSystemAssociationARN"FileSystemAssociationARN.of_jsoninletfileSystemAssociationId=field_mapjson__"FileSystemAssociationId"FileSystemAssociationId.of_jsoninmake?gatewayARN?fileSystemAssociationStatus?fileSystemAssociationARN?fileSystemAssociationId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Gets the summary returned by ListFileSystemAssociation, which is a summary of a created file system association."]moduleFileShareInfo=structtypenonrect={fileShareType:FileShareType.toption;fileShareARN:FileShareARN.toption;fileShareId:FileShareId.toption;fileShareStatus:FileShareStatus.toption;gatewayARN:GatewayARN.toption}letmake?fileShareType=fun?fileShareARN->fun?fileShareId->fun?fileShareStatus->fun?gatewayARN->fun()->{fileShareType;fileShareARN;fileShareId;fileShareStatus;gatewayARN}letto_valuex=structure_to_value[("FileShareType",(Option.mapx.fileShareType~f:FileShareType.to_value));("FileShareARN",(Option.mapx.fileShareARN~f:FileShareARN.to_value));("FileShareId",(Option.mapx.fileShareId~f:FileShareId.to_value));("FileShareStatus",(Option.mapx.fileShareStatus~f:FileShareStatus.to_value));("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inletfileShareStatus=(Option.map~f:FileShareStatus.of_xml)(Xml.childxml_arg0"FileShareStatus")inletfileShareId=(Option.map~f:FileShareId.of_xml)(Xml.childxml_arg0"FileShareId")inletfileShareARN=(Option.map~f:FileShareARN.of_xml)(Xml.childxml_arg0"FileShareARN")inletfileShareType=(Option.map~f:FileShareType.of_xml)(Xml.childxml_arg0"FileShareType")inmake?gatewayARN?fileShareStatus?fileShareId?fileShareARN?fileShareType()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninletfileShareStatus=field_mapjson__"FileShareStatus"FileShareStatus.of_jsoninletfileShareId=field_mapjson__"FileShareId"FileShareId.of_jsoninletfileShareARN=field_mapjson__"FileShareARN"FileShareARN.of_jsoninletfileShareType=field_mapjson__"FileShareType"FileShareType.of_jsoninmake?gatewayARN?fileShareStatus?fileShareId?fileShareARN?fileShareType()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a file share. Only supported S3 File Gateway."]moduleCacheReportInfo=structtypenonrect={cacheReportARN:CacheReportARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the cache report you want to describe."];cacheReportStatus:CacheReportStatus.toption[@ocaml.doc"The status of the specified cache report."];reportCompletionPercent:ReportCompletionPercent.toption[@ocaml.doc"The percentage of the report generation process that has been completed at time of inquiry."];endTime:Time.toption[@ocaml.doc"The time at which the gateway stopped generating the cache report."];role:Role.toption;fileShareARN:FileShareARN.toption;locationARN:LocationARN.toption[@ocaml.doc"The ARN of the Amazon S3 bucket location where the cache report is saved."];startTime:Time.toption[@ocaml.doc"The time at which the gateway started generating the cache report."];inclusionFilters:CacheReportFilterList.toption[@ocaml.doc"The list of filters and parameters that determine which files are included in the report."];exclusionFilters:CacheReportFilterList.toption[@ocaml.doc"The list of filters and parameters that determine which files are excluded from the report."];reportName:CacheReportName.toption[@ocaml.doc"The file name of the completed cache report object stored in Amazon S3."];tags:Tags.toption[@ocaml.doc"The list of key/value tags associated with the report."]}letmake?cacheReportARN=fun?cacheReportStatus->fun?reportCompletionPercent->fun?endTime->fun?role->fun?fileShareARN->fun?locationARN->fun?startTime->fun?inclusionFilters->fun?exclusionFilters->fun?reportName->fun?tags->fun()->{cacheReportARN;cacheReportStatus;reportCompletionPercent;endTime;role;fileShareARN;locationARN;startTime;inclusionFilters;exclusionFilters;reportName;tags}letto_valuex=structure_to_value[("CacheReportARN",(Option.mapx.cacheReportARN~f:CacheReportARN.to_value));("CacheReportStatus",(Option.mapx.cacheReportStatus~f:CacheReportStatus.to_value));("ReportCompletionPercent",(Option.mapx.reportCompletionPercent~f:ReportCompletionPercent.to_value));("EndTime",(Option.mapx.endTime~f:Time.to_value));("Role",(Option.mapx.role~f:Role.to_value));("FileShareARN",(Option.mapx.fileShareARN~f:FileShareARN.to_value));("LocationARN",(Option.mapx.locationARN~f:LocationARN.to_value));("StartTime",(Option.mapx.startTime~f:Time.to_value));("InclusionFilters",(Option.mapx.inclusionFilters~f:CacheReportFilterList.to_value));("ExclusionFilters",(Option.mapx.exclusionFilters~f:CacheReportFilterList.to_value));("ReportName",(Option.mapx.reportName~f:CacheReportName.to_value));("Tags",(Option.mapx.tags~f:Tags.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:Tags.of_xml)(Xml.childxml_arg0"Tags")inletreportName=(Option.map~f:CacheReportName.of_xml)(Xml.childxml_arg0"ReportName")inletexclusionFilters=(Option.map~f:CacheReportFilterList.of_xml)(Xml.childxml_arg0"ExclusionFilters")inletinclusionFilters=(Option.map~f:CacheReportFilterList.of_xml)(Xml.childxml_arg0"InclusionFilters")inletstartTime=(Option.map~f:Time.of_xml)(Xml.childxml_arg0"StartTime")inletlocationARN=(Option.map~f:LocationARN.of_xml)(Xml.childxml_arg0"LocationARN")inletfileShareARN=(Option.map~f:FileShareARN.of_xml)(Xml.childxml_arg0"FileShareARN")inletrole=(Option.map~f:Role.of_xml)(Xml.childxml_arg0"Role")inletendTime=(Option.map~f:Time.of_xml)(Xml.childxml_arg0"EndTime")inletreportCompletionPercent=(Option.map~f:ReportCompletionPercent.of_xml)(Xml.childxml_arg0"ReportCompletionPercent")inletcacheReportStatus=(Option.map~f:CacheReportStatus.of_xml)(Xml.childxml_arg0"CacheReportStatus")inletcacheReportARN=(Option.map~f:CacheReportARN.of_xml)(Xml.childxml_arg0"CacheReportARN")inmake?tags?reportName?exclusionFilters?inclusionFilters?startTime?locationARN?fileShareARN?role?endTime?reportCompletionPercent?cacheReportStatus?cacheReportARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"Tags"Tags.of_jsoninletreportName=field_mapjson__"ReportName"CacheReportName.of_jsoninletexclusionFilters=field_mapjson__"ExclusionFilters"CacheReportFilterList.of_jsoninletinclusionFilters=field_mapjson__"InclusionFilters"CacheReportFilterList.of_jsoninletstartTime=field_mapjson__"StartTime"Time.of_jsoninletlocationARN=field_mapjson__"LocationARN"LocationARN.of_jsoninletfileShareARN=field_mapjson__"FileShareARN"FileShareARN.of_jsoninletrole=field_mapjson__"Role"Role.of_jsoninletendTime=field_mapjson__"EndTime"Time.of_jsoninletreportCompletionPercent=field_mapjson__"ReportCompletionPercent"ReportCompletionPercent.of_jsoninletcacheReportStatus=field_mapjson__"CacheReportStatus"CacheReportStatus.of_jsoninletcacheReportARN=field_mapjson__"CacheReportARN"CacheReportARN.of_jsoninmake?tags?reportName?exclusionFilters?inclusionFilters?startTime?locationARN?fileShareARN?role?endTime?reportCompletionPercent?cacheReportStatus?cacheReportARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains all informational fields associated with a cache report. Includes name, ARN, tags, status, progress, filters, start time, and end time."]moduleAutomaticTapeCreationPolicyInfo=structtypenonrect={automaticTapeCreationRules:AutomaticTapeCreationRules.toption[@ocaml.doc"An automatic tape creation policy consists of a list of automatic tape creation rules. This returns the rules that determine when and how to automatically create new tapes."];gatewayARN:GatewayARN.toption}letmake?automaticTapeCreationRules=fun?gatewayARN->fun()->{automaticTapeCreationRules;gatewayARN}letto_valuex=structure_to_value[("AutomaticTapeCreationRules",(Option.mapx.automaticTapeCreationRules~f:AutomaticTapeCreationRules.to_value));("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inletautomaticTapeCreationRules=(Option.map~f:AutomaticTapeCreationRules.of_xml)(Xml.childxml_arg0"AutomaticTapeCreationRules")inmake?gatewayARN?automaticTapeCreationRules()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninletautomaticTapeCreationRules=field_mapjson__"AutomaticTapeCreationRules"AutomaticTapeCreationRules.of_jsoninmake?gatewayARN?automaticTapeCreationRules()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Information about the gateway's automatic tape creation policies, including the automatic tape creation rules and the gateway that is using the policies."]moduleHost=structtypenonrect=stringletcontext_="Host"letmakei=letopenResultinok_or_failwith((check_string_mini~min:2)>>=(fun()->(check_string_maxi~max:1024)>>=(fun()->check_patterni~pattern:"^(([a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9\\-]*[A-Za-z0-9])(:(\\d+))?$|^(?:\\[(?:(?:(?:[A-Fa-f0-9]{1,4}:){6}|(?=(?:[A-Fa-f0-9]{0,4}:){0,6}(?:[0-9]{1,3}\\.){3}[0-9]{1,3}(?![:.\\w]))(?:(?:[0-9A-Fa-f]{1,4}:){0,5}|:)(?:(?::[0-9A-Fa-f]{1,4}){1,5}:|:)|::(?:[A-Fa-f0-9]{1,4}:){5})(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|(?:[A-Fa-f0-9]{1,4}:){7}[A-Fa-f0-9]{1,4}|(?=(?:[A-Fa-f0-9]{0,4}:){0,7}[A-Fa-f0-9]{0,4}(?![:.\\w]))(?:(?:[0-9A-Fa-f]{1,4}:){1,7}|:)(?:(:[0-9A-Fa-f]{1,4}){1,7}|:)|(?:[A-Fa-f0-9]{1,4}:){7}:|:(:[A-Fa-f0-9]{1,4}){7})\\]:\\d+$|^(?:(?:(?:[A-Fa-f0-9]{1,4}:){6}|(?=(?:[A-Fa-f0-9]{0,4}:){0,6}(?:[0-9]{1,3}\\.){3}[0-9]{1,3}(?![:.\\w]))(?:(?:[0-9A-Fa-f]{1,4}:){0,5}|:)(?:(?::[0-9A-Fa-f]{1,4}){1,5}:|:)|::(?:[A-Fa-f0-9]{1,4}:){5})(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|(?:[A-Fa-f0-9]{1,4}:){7}[A-Fa-f0-9]{1,4}|(?=(?:[A-Fa-f0-9]{0,4}:){0,7}[A-Fa-f0-9]{0,4}(?![:.\\w]))(?:(?:[0-9A-Fa-f]{1,4}:){1,7}|:)(?:(:[0-9A-Fa-f]{1,4}){1,7}|:)|(?:[A-Fa-f0-9]{1,4}:){7}:|:(:[A-Fa-f0-9]{1,4}){7})$)")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"Host"jletto_json=simple_to_jsonto_valueendmoduleVTLDevice=structtypenonrect={vTLDeviceARN:VTLDeviceARN.toption[@ocaml.doc"Specifies the unique Amazon Resource Name (ARN) of the device (tape drive or media changer)."];vTLDeviceType:VTLDeviceType.toption[@ocaml.doc"Specifies the type of device that the VTL device emulates."];vTLDeviceVendor:VTLDeviceVendor.toption[@ocaml.doc"Specifies the vendor of the device that the VTL device object emulates."];vTLDeviceProductIdentifier:VTLDeviceProductIdentifier.toption[@ocaml.doc"Specifies the model number of device that the VTL device emulates."];deviceiSCSIAttributes:DeviceiSCSIAttributes.toption[@ocaml.doc"A list of iSCSI information about a VTL device."]}letmake?vTLDeviceARN=fun?vTLDeviceType->fun?vTLDeviceVendor->fun?vTLDeviceProductIdentifier->fun?deviceiSCSIAttributes->fun()->{vTLDeviceARN;vTLDeviceType;vTLDeviceVendor;vTLDeviceProductIdentifier;deviceiSCSIAttributes}letto_valuex=structure_to_value[("VTLDeviceARN",(Option.mapx.vTLDeviceARN~f:VTLDeviceARN.to_value));("VTLDeviceType",(Option.mapx.vTLDeviceType~f:VTLDeviceType.to_value));("VTLDeviceVendor",(Option.mapx.vTLDeviceVendor~f:VTLDeviceVendor.to_value));("VTLDeviceProductIdentifier",(Option.mapx.vTLDeviceProductIdentifier~f:VTLDeviceProductIdentifier.to_value));("DeviceiSCSIAttributes",(Option.mapx.deviceiSCSIAttributes~f:DeviceiSCSIAttributes.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letdeviceiSCSIAttributes=(Option.map~f:DeviceiSCSIAttributes.of_xml)(Xml.childxml_arg0"DeviceiSCSIAttributes")inletvTLDeviceProductIdentifier=(Option.map~f:VTLDeviceProductIdentifier.of_xml)(Xml.childxml_arg0"VTLDeviceProductIdentifier")inletvTLDeviceVendor=(Option.map~f:VTLDeviceVendor.of_xml)(Xml.childxml_arg0"VTLDeviceVendor")inletvTLDeviceType=(Option.map~f:VTLDeviceType.of_xml)(Xml.childxml_arg0"VTLDeviceType")inletvTLDeviceARN=(Option.map~f:VTLDeviceARN.of_xml)(Xml.childxml_arg0"VTLDeviceARN")inmake?deviceiSCSIAttributes?vTLDeviceProductIdentifier?vTLDeviceVendor?vTLDeviceType?vTLDeviceARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letdeviceiSCSIAttributes=field_mapjson__"DeviceiSCSIAttributes"DeviceiSCSIAttributes.of_jsoninletvTLDeviceProductIdentifier=field_mapjson__"VTLDeviceProductIdentifier"VTLDeviceProductIdentifier.of_jsoninletvTLDeviceVendor=field_mapjson__"VTLDeviceVendor"VTLDeviceVendor.of_jsoninletvTLDeviceType=field_mapjson__"VTLDeviceType"VTLDeviceType.of_jsoninletvTLDeviceARN=field_mapjson__"VTLDeviceARN"VTLDeviceARN.of_jsoninmake?deviceiSCSIAttributes?vTLDeviceProductIdentifier?vTLDeviceVendor?vTLDeviceType?vTLDeviceARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Represents a device object associated with a tape gateway."]moduleTape=structtypenonrect={tapeARN:TapeARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the virtual tape."];tapeBarcode:TapeBarcode.toption[@ocaml.doc"The barcode that identifies a specific virtual tape."];tapeCreatedDate:Time.toption[@ocaml.doc"The date the virtual tape was created."];tapeSizeInBytes:TapeSize.toption[@ocaml.doc"The size, in bytes, of the virtual tape capacity."];tapeStatus:TapeStatus.toption[@ocaml.doc"The current state of the virtual tape."];vTLDevice:VTLDeviceARN.toption[@ocaml.doc"The virtual tape library (VTL) device that the virtual tape is associated with."];progress:DoubleObject.toption[@ocaml.doc"For archiving virtual tapes, indicates how much data remains to be uploaded before archiving is complete. Range: 0 (not started) to 100 (complete)."];tapeUsedInBytes:TapeUsage.toption[@ocaml.doc"The size, in bytes, of data stored on the virtual tape. This value is not available for tapes created prior to May 13, 2015."];kMSKey:KMSKey.toption;poolId:PoolId.toption[@ocaml.doc"The ID of the pool that contains tapes that will be archived. The tapes in this pool are archived in the S3 storage class that is associated with the pool. When you use your backup application to eject the tape, the tape is archived directly into the storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds to the pool."];worm:Boolean__lc1.toption[@ocaml.doc"If the tape is archived as write-once-read-many (WORM), this value is true."];retentionStartDate:Time.toption[@ocaml.doc"The date that the tape is first archived with tape retention lock enabled."];poolEntryDate:Time.toption[@ocaml.doc"The date that the tape enters a custom tape pool."]}letmake?tapeARN=fun?tapeBarcode->fun?tapeCreatedDate->fun?tapeSizeInBytes->fun?tapeStatus->fun?vTLDevice->fun?progress->fun?tapeUsedInBytes->fun?kMSKey->fun?poolId->fun?worm->fun?retentionStartDate->fun?poolEntryDate->fun()->{tapeARN;tapeBarcode;tapeCreatedDate;tapeSizeInBytes;tapeStatus;vTLDevice;progress;tapeUsedInBytes;kMSKey;poolId;worm;retentionStartDate;poolEntryDate}letto_valuex=structure_to_value[("TapeARN",(Option.mapx.tapeARN~f:TapeARN.to_value));("TapeBarcode",(Option.mapx.tapeBarcode~f:TapeBarcode.to_value));("TapeCreatedDate",(Option.mapx.tapeCreatedDate~f:Time.to_value));("TapeSizeInBytes",(Option.mapx.tapeSizeInBytes~f:TapeSize.to_value));("TapeStatus",(Option.mapx.tapeStatus~f:TapeStatus.to_value));("VTLDevice",(Option.mapx.vTLDevice~f:VTLDeviceARN.to_value));("Progress",(Option.mapx.progress~f:DoubleObject.to_value));("TapeUsedInBytes",(Option.mapx.tapeUsedInBytes~f:TapeUsage.to_value));("KMSKey",(Option.mapx.kMSKey~f:KMSKey.to_value));("PoolId",(Option.mapx.poolId~f:PoolId.to_value));("Worm",(Option.mapx.worm~f:Boolean__lc1.to_value));("RetentionStartDate",(Option.mapx.retentionStartDate~f:Time.to_value));("PoolEntryDate",(Option.mapx.poolEntryDate~f:Time.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpoolEntryDate=(Option.map~f:Time.of_xml)(Xml.childxml_arg0"PoolEntryDate")inletretentionStartDate=(Option.map~f:Time.of_xml)(Xml.childxml_arg0"RetentionStartDate")inletworm=(Option.map~f:Boolean__lc1.of_xml)(Xml.childxml_arg0"Worm")inletpoolId=(Option.map~f:PoolId.of_xml)(Xml.childxml_arg0"PoolId")inletkMSKey=(Option.map~f:KMSKey.of_xml)(Xml.childxml_arg0"KMSKey")inlettapeUsedInBytes=(Option.map~f:TapeUsage.of_xml)(Xml.childxml_arg0"TapeUsedInBytes")inletprogress=(Option.map~f:DoubleObject.of_xml)(Xml.childxml_arg0"Progress")inletvTLDevice=(Option.map~f:VTLDeviceARN.of_xml)(Xml.childxml_arg0"VTLDevice")inlettapeStatus=(Option.map~f:TapeStatus.of_xml)(Xml.childxml_arg0"TapeStatus")inlettapeSizeInBytes=(Option.map~f:TapeSize.of_xml)(Xml.childxml_arg0"TapeSizeInBytes")inlettapeCreatedDate=(Option.map~f:Time.of_xml)(Xml.childxml_arg0"TapeCreatedDate")inlettapeBarcode=(Option.map~f:TapeBarcode.of_xml)(Xml.childxml_arg0"TapeBarcode")inlettapeARN=(Option.map~f:TapeARN.of_xml)(Xml.childxml_arg0"TapeARN")inmake?poolEntryDate?retentionStartDate?worm?poolId?kMSKey?tapeUsedInBytes?progress?vTLDevice?tapeStatus?tapeSizeInBytes?tapeCreatedDate?tapeBarcode?tapeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpoolEntryDate=field_mapjson__"PoolEntryDate"Time.of_jsoninletretentionStartDate=field_mapjson__"RetentionStartDate"Time.of_jsoninletworm=field_mapjson__"Worm"Boolean__lc1.of_jsoninletpoolId=field_mapjson__"PoolId"PoolId.of_jsoninletkMSKey=field_mapjson__"KMSKey"KMSKey.of_jsoninlettapeUsedInBytes=field_mapjson__"TapeUsedInBytes"TapeUsage.of_jsoninletprogress=field_mapjson__"Progress"DoubleObject.of_jsoninletvTLDevice=field_mapjson__"VTLDevice"VTLDeviceARN.of_jsoninlettapeStatus=field_mapjson__"TapeStatus"TapeStatus.of_jsoninlettapeSizeInBytes=field_mapjson__"TapeSizeInBytes"TapeSize.of_jsoninlettapeCreatedDate=field_mapjson__"TapeCreatedDate"Time.of_jsoninlettapeBarcode=field_mapjson__"TapeBarcode"TapeBarcode.of_jsoninlettapeARN=field_mapjson__"TapeARN"TapeARN.of_jsoninmake?poolEntryDate?retentionStartDate?worm?poolId?kMSKey?tapeUsedInBytes?progress?vTLDevice?tapeStatus?tapeSizeInBytes?tapeCreatedDate?tapeBarcode?tapeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a virtual tape object."]moduleTapeRecoveryPointInfo=structtypenonrect={tapeARN:TapeARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the virtual tape."];tapeRecoveryPointTime:Time.toption[@ocaml.doc"The time when the point-in-time view of the virtual tape was replicated for later recovery. The default timestamp format of the tape recovery point time is in the ISO8601 extended YYYY-MM-DD'T'HH:MM:SS'Z' format."];tapeSizeInBytes:TapeSize.toption[@ocaml.doc"The size, in bytes, of the virtual tapes to recover."];tapeStatus:TapeRecoveryPointStatus.toption[@ocaml.doc"The status of the virtual tapes."]}letmake?tapeARN=fun?tapeRecoveryPointTime->fun?tapeSizeInBytes->fun?tapeStatus->fun()->{tapeARN;tapeRecoveryPointTime;tapeSizeInBytes;tapeStatus}letto_valuex=structure_to_value[("TapeARN",(Option.mapx.tapeARN~f:TapeARN.to_value));("TapeRecoveryPointTime",(Option.mapx.tapeRecoveryPointTime~f:Time.to_value));("TapeSizeInBytes",(Option.mapx.tapeSizeInBytes~f:TapeSize.to_value));("TapeStatus",(Option.mapx.tapeStatus~f:TapeRecoveryPointStatus.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettapeStatus=(Option.map~f:TapeRecoveryPointStatus.of_xml)(Xml.childxml_arg0"TapeStatus")inlettapeSizeInBytes=(Option.map~f:TapeSize.of_xml)(Xml.childxml_arg0"TapeSizeInBytes")inlettapeRecoveryPointTime=(Option.map~f:Time.of_xml)(Xml.childxml_arg0"TapeRecoveryPointTime")inlettapeARN=(Option.map~f:TapeARN.of_xml)(Xml.childxml_arg0"TapeARN")inmake?tapeStatus?tapeSizeInBytes?tapeRecoveryPointTime?tapeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettapeStatus=field_mapjson__"TapeStatus"TapeRecoveryPointStatus.of_jsoninlettapeSizeInBytes=field_mapjson__"TapeSizeInBytes"TapeSize.of_jsoninlettapeRecoveryPointTime=field_mapjson__"TapeRecoveryPointTime"Time.of_jsoninlettapeARN=field_mapjson__"TapeARN"TapeARN.of_jsoninmake?tapeStatus?tapeSizeInBytes?tapeRecoveryPointTime?tapeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a recovery point."]moduleTapeArchive=structtypenonrect={tapeARN:TapeARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of an archived virtual tape."];tapeBarcode:TapeBarcode.toption[@ocaml.doc"The barcode that identifies the archived virtual tape."];tapeCreatedDate:Time.toption[@ocaml.doc"The date the virtual tape was created."];tapeSizeInBytes:TapeSize.toption[@ocaml.doc"The size, in bytes, of the archived virtual tape."];completionTime:Time.toption[@ocaml.doc"The time that the archiving of the virtual tape was completed. The default timestamp format is in the ISO8601 extended YYYY-MM-DD'T'HH:MM:SS'Z' format."];retrievedTo:GatewayARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the tape gateway that the virtual tape is being retrieved to. The virtual tape is retrieved from the virtual tape shelf (VTS)."];tapeStatus:TapeArchiveStatus.toption[@ocaml.doc"The current state of the archived virtual tape."];tapeUsedInBytes:TapeUsage.toption[@ocaml.doc"The size, in bytes, of data stored on the virtual tape. This value is not available for tapes created prior to May 13, 2015."];kMSKey:KMSKey.toption;poolId:PoolId.toption[@ocaml.doc"The ID of the pool that was used to archive the tape. The tapes in this pool are archived in the S3 storage class that is associated with the pool."];worm:Boolean__lc1.toption[@ocaml.doc"Set to true if the archived tape is stored as write-once-read-many (WORM)."];retentionStartDate:Time.toption[@ocaml.doc"If the archived tape is subject to tape retention lock, the date that the archived tape started being retained."];poolEntryDate:Time.toption[@ocaml.doc"The time that the tape entered the custom tape pool. The default timestamp format is in the ISO8601 extended YYYY-MM-DD'T'HH:MM:SS'Z' format."]}letmake?tapeARN=fun?tapeBarcode->fun?tapeCreatedDate->fun?tapeSizeInBytes->fun?completionTime->fun?retrievedTo->fun?tapeStatus->fun?tapeUsedInBytes->fun?kMSKey->fun?poolId->fun?worm->fun?retentionStartDate->fun?poolEntryDate->fun()->{tapeARN;tapeBarcode;tapeCreatedDate;tapeSizeInBytes;completionTime;retrievedTo;tapeStatus;tapeUsedInBytes;kMSKey;poolId;worm;retentionStartDate;poolEntryDate}letto_valuex=structure_to_value[("TapeARN",(Option.mapx.tapeARN~f:TapeARN.to_value));("TapeBarcode",(Option.mapx.tapeBarcode~f:TapeBarcode.to_value));("TapeCreatedDate",(Option.mapx.tapeCreatedDate~f:Time.to_value));("TapeSizeInBytes",(Option.mapx.tapeSizeInBytes~f:TapeSize.to_value));("CompletionTime",(Option.mapx.completionTime~f:Time.to_value));("RetrievedTo",(Option.mapx.retrievedTo~f:GatewayARN.to_value));("TapeStatus",(Option.mapx.tapeStatus~f:TapeArchiveStatus.to_value));("TapeUsedInBytes",(Option.mapx.tapeUsedInBytes~f:TapeUsage.to_value));("KMSKey",(Option.mapx.kMSKey~f:KMSKey.to_value));("PoolId",(Option.mapx.poolId~f:PoolId.to_value));("Worm",(Option.mapx.worm~f:Boolean__lc1.to_value));("RetentionStartDate",(Option.mapx.retentionStartDate~f:Time.to_value));("PoolEntryDate",(Option.mapx.poolEntryDate~f:Time.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpoolEntryDate=(Option.map~f:Time.of_xml)(Xml.childxml_arg0"PoolEntryDate")inletretentionStartDate=(Option.map~f:Time.of_xml)(Xml.childxml_arg0"RetentionStartDate")inletworm=(Option.map~f:Boolean__lc1.of_xml)(Xml.childxml_arg0"Worm")inletpoolId=(Option.map~f:PoolId.of_xml)(Xml.childxml_arg0"PoolId")inletkMSKey=(Option.map~f:KMSKey.of_xml)(Xml.childxml_arg0"KMSKey")inlettapeUsedInBytes=(Option.map~f:TapeUsage.of_xml)(Xml.childxml_arg0"TapeUsedInBytes")inlettapeStatus=(Option.map~f:TapeArchiveStatus.of_xml)(Xml.childxml_arg0"TapeStatus")inletretrievedTo=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"RetrievedTo")inletcompletionTime=(Option.map~f:Time.of_xml)(Xml.childxml_arg0"CompletionTime")inlettapeSizeInBytes=(Option.map~f:TapeSize.of_xml)(Xml.childxml_arg0"TapeSizeInBytes")inlettapeCreatedDate=(Option.map~f:Time.of_xml)(Xml.childxml_arg0"TapeCreatedDate")inlettapeBarcode=(Option.map~f:TapeBarcode.of_xml)(Xml.childxml_arg0"TapeBarcode")inlettapeARN=(Option.map~f:TapeARN.of_xml)(Xml.childxml_arg0"TapeARN")inmake?poolEntryDate?retentionStartDate?worm?poolId?kMSKey?tapeUsedInBytes?tapeStatus?retrievedTo?completionTime?tapeSizeInBytes?tapeCreatedDate?tapeBarcode?tapeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpoolEntryDate=field_mapjson__"PoolEntryDate"Time.of_jsoninletretentionStartDate=field_mapjson__"RetentionStartDate"Time.of_jsoninletworm=field_mapjson__"Worm"Boolean__lc1.of_jsoninletpoolId=field_mapjson__"PoolId"PoolId.of_jsoninletkMSKey=field_mapjson__"KMSKey"KMSKey.of_jsoninlettapeUsedInBytes=field_mapjson__"TapeUsedInBytes"TapeUsage.of_jsoninlettapeStatus=field_mapjson__"TapeStatus"TapeArchiveStatus.of_jsoninletretrievedTo=field_mapjson__"RetrievedTo"GatewayARN.of_jsoninletcompletionTime=field_mapjson__"CompletionTime"Time.of_jsoninlettapeSizeInBytes=field_mapjson__"TapeSizeInBytes"TapeSize.of_jsoninlettapeCreatedDate=field_mapjson__"TapeCreatedDate"Time.of_jsoninlettapeBarcode=field_mapjson__"TapeBarcode"TapeBarcode.of_jsoninlettapeARN=field_mapjson__"TapeARN"TapeARN.of_jsoninmake?poolEntryDate?retentionStartDate?worm?poolId?kMSKey?tapeUsedInBytes?tapeStatus?retrievedTo?completionTime?tapeSizeInBytes?tapeCreatedDate?tapeBarcode?tapeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Represents a virtual tape that is archived in the virtual tape shelf (VTS)."]moduleStorediSCSIVolume=structtypenonrect={volumeARN:VolumeARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the storage volume."];volumeId:VolumeId.toption[@ocaml.doc"The unique identifier of the volume, e.g., vol-AE4B946D."];volumeType:VolumeType.toption[@ocaml.doc"One of the VolumeType enumeration values describing the type of the volume."];volumeStatus:VolumeStatus.toption[@ocaml.doc"One of the VolumeStatus values that indicates the state of the storage volume."];volumeAttachmentStatus:VolumeAttachmentStatus.toption[@ocaml.doc"A value that indicates whether a storage volume is attached to, detached from, or is in the process of detaching from a gateway. For more information, see Moving your volumes to a different gateway."];volumeSizeInBytes:Long.toption[@ocaml.doc"The size of the volume in bytes."];volumeProgress:DoubleObject.toption[@ocaml.doc"Represents the percentage complete if the volume is restoring or bootstrapping that represents the percent of data transferred. This field does not appear in the response if the stored volume is not restoring or bootstrapping."];volumeDiskId:DiskId.toption[@ocaml.doc"The ID of the local disk that was specified in the CreateStorediSCSIVolume operation."];sourceSnapshotId:SnapshotId.toption[@ocaml.doc"If the stored volume was created from a snapshot, this field contains the snapshot ID used, e.g. snap-78e22663. Otherwise, this field is not included."];preservedExistingData:Boolean__lc1.toption[@ocaml.doc"Indicates if when the stored volume was created, existing data on the underlying local disk was preserved. Valid Values: true | false"];volumeiSCSIAttributes:VolumeiSCSIAttributes.toption[@ocaml.doc"An VolumeiSCSIAttributes object that represents a collection of iSCSI attributes for one stored volume."];createdDate:CreatedDate.toption[@ocaml.doc"The date the volume was created. Volumes created prior to March 28, 2017 don\226\128\153t have this timestamp."];volumeUsedInBytes:VolumeUsedInBytes.toption[@ocaml.doc"The size of the data stored on the volume in bytes. This value is calculated based on the number of blocks that are touched, instead of the actual amount of data written. This value can be useful for sequential write patterns but less accurate for random write patterns. VolumeUsedInBytes is different from the compressed size of the volume, which is the value that is used to calculate your bill. This value is not available for volumes created prior to May 13, 2015, until you store data on the volume."];kMSKey:KMSKey.toption;targetName:TargetName.toption[@ocaml.doc"The name of the iSCSI target used by an initiator to connect to a volume and used as a suffix for the target ARN. For example, specifying TargetName as myvolume results in the target ARN of arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume. The target name must be unique across all volumes on a gateway. If you don't specify a value, Storage Gateway uses the value that was previously used for this volume as the new target name."]}letmake?volumeARN=fun?volumeId->fun?volumeType->fun?volumeStatus->fun?volumeAttachmentStatus->fun?volumeSizeInBytes->fun?volumeProgress->fun?volumeDiskId->fun?sourceSnapshotId->fun?preservedExistingData->fun?volumeiSCSIAttributes->fun?createdDate->fun?volumeUsedInBytes->fun?kMSKey->fun?targetName->fun()->{volumeARN;volumeId;volumeType;volumeStatus;volumeAttachmentStatus;volumeSizeInBytes;volumeProgress;volumeDiskId;sourceSnapshotId;preservedExistingData;volumeiSCSIAttributes;createdDate;volumeUsedInBytes;kMSKey;targetName}letto_valuex=structure_to_value[("VolumeARN",(Option.mapx.volumeARN~f:VolumeARN.to_value));("VolumeId",(Option.mapx.volumeId~f:VolumeId.to_value));("VolumeType",(Option.mapx.volumeType~f:VolumeType.to_value));("VolumeStatus",(Option.mapx.volumeStatus~f:VolumeStatus.to_value));("VolumeAttachmentStatus",(Option.mapx.volumeAttachmentStatus~f:VolumeAttachmentStatus.to_value));("VolumeSizeInBytes",(Option.mapx.volumeSizeInBytes~f:Long.to_value));("VolumeProgress",(Option.mapx.volumeProgress~f:DoubleObject.to_value));("VolumeDiskId",(Option.mapx.volumeDiskId~f:DiskId.to_value));("SourceSnapshotId",(Option.mapx.sourceSnapshotId~f:SnapshotId.to_value));("PreservedExistingData",(Option.mapx.preservedExistingData~f:Boolean__lc1.to_value));("VolumeiSCSIAttributes",(Option.mapx.volumeiSCSIAttributes~f:VolumeiSCSIAttributes.to_value));("CreatedDate",(Option.mapx.createdDate~f:CreatedDate.to_value));("VolumeUsedInBytes",(Option.mapx.volumeUsedInBytes~f:VolumeUsedInBytes.to_value));("KMSKey",(Option.mapx.kMSKey~f:KMSKey.to_value));("TargetName",(Option.mapx.targetName~f:TargetName.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettargetName=(Option.map~f:TargetName.of_xml)(Xml.childxml_arg0"TargetName")inletkMSKey=(Option.map~f:KMSKey.of_xml)(Xml.childxml_arg0"KMSKey")inletvolumeUsedInBytes=(Option.map~f:VolumeUsedInBytes.of_xml)(Xml.childxml_arg0"VolumeUsedInBytes")inletcreatedDate=(Option.map~f:CreatedDate.of_xml)(Xml.childxml_arg0"CreatedDate")inletvolumeiSCSIAttributes=(Option.map~f:VolumeiSCSIAttributes.of_xml)(Xml.childxml_arg0"VolumeiSCSIAttributes")inletpreservedExistingData=(Option.map~f:Boolean__lc1.of_xml)(Xml.childxml_arg0"PreservedExistingData")inletsourceSnapshotId=(Option.map~f:SnapshotId.of_xml)(Xml.childxml_arg0"SourceSnapshotId")inletvolumeDiskId=(Option.map~f:DiskId.of_xml)(Xml.childxml_arg0"VolumeDiskId")inletvolumeProgress=(Option.map~f:DoubleObject.of_xml)(Xml.childxml_arg0"VolumeProgress")inletvolumeSizeInBytes=(Option.map~f:Long.of_xml)(Xml.childxml_arg0"VolumeSizeInBytes")inletvolumeAttachmentStatus=(Option.map~f:VolumeAttachmentStatus.of_xml)(Xml.childxml_arg0"VolumeAttachmentStatus")inletvolumeStatus=(Option.map~f:VolumeStatus.of_xml)(Xml.childxml_arg0"VolumeStatus")inletvolumeType=(Option.map~f:VolumeType.of_xml)(Xml.childxml_arg0"VolumeType")inletvolumeId=(Option.map~f:VolumeId.of_xml)(Xml.childxml_arg0"VolumeId")inletvolumeARN=(Option.map~f:VolumeARN.of_xml)(Xml.childxml_arg0"VolumeARN")inmake?targetName?kMSKey?volumeUsedInBytes?createdDate?volumeiSCSIAttributes?preservedExistingData?sourceSnapshotId?volumeDiskId?volumeProgress?volumeSizeInBytes?volumeAttachmentStatus?volumeStatus?volumeType?volumeId?volumeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettargetName=field_mapjson__"TargetName"TargetName.of_jsoninletkMSKey=field_mapjson__"KMSKey"KMSKey.of_jsoninletvolumeUsedInBytes=field_mapjson__"VolumeUsedInBytes"VolumeUsedInBytes.of_jsoninletcreatedDate=field_mapjson__"CreatedDate"CreatedDate.of_jsoninletvolumeiSCSIAttributes=field_mapjson__"VolumeiSCSIAttributes"VolumeiSCSIAttributes.of_jsoninletpreservedExistingData=field_mapjson__"PreservedExistingData"Boolean__lc1.of_jsoninletsourceSnapshotId=field_mapjson__"SourceSnapshotId"SnapshotId.of_jsoninletvolumeDiskId=field_mapjson__"VolumeDiskId"DiskId.of_jsoninletvolumeProgress=field_mapjson__"VolumeProgress"DoubleObject.of_jsoninletvolumeSizeInBytes=field_mapjson__"VolumeSizeInBytes"Long.of_jsoninletvolumeAttachmentStatus=field_mapjson__"VolumeAttachmentStatus"VolumeAttachmentStatus.of_jsoninletvolumeStatus=field_mapjson__"VolumeStatus"VolumeStatus.of_jsoninletvolumeType=field_mapjson__"VolumeType"VolumeType.of_jsoninletvolumeId=field_mapjson__"VolumeId"VolumeId.of_jsoninletvolumeARN=field_mapjson__"VolumeARN"VolumeARN.of_jsoninmake?targetName?kMSKey?volumeUsedInBytes?createdDate?volumeiSCSIAttributes?preservedExistingData?sourceSnapshotId?volumeDiskId?volumeProgress?volumeSizeInBytes?volumeAttachmentStatus?volumeStatus?volumeType?volumeId?volumeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an iSCSI stored volume."]moduleSMBFileShareInfo=structtypenonrect={fileShareARN:FileShareARN.toption;fileShareId:FileShareId.toption;fileShareStatus:FileShareStatus.toption;gatewayARN:GatewayARN.toption;encryptionType:EncryptionType.toption[@ocaml.doc"A value that specifies the type of server-side encryption that the file share will use for the data that it stores in Amazon S3. We recommend using EncryptionType instead of KMSEncrypted to set the file share encryption method. You do not need to provide values for both parameters. If values for both parameters exist in the same request, then the specified encryption methods must not conflict. For example, if EncryptionType is SseS3, then KMSEncrypted must be false. If EncryptionType is SseKms or DsseKms, then KMSEncrypted must be true."];kMSEncrypted:Boolean__lc1.toption[@ocaml.doc"Optional. Set to true to use Amazon S3 server-side encryption with your own KMS key (SSE-KMS), or false to use a key managed by Amazon S3 (SSE-S3). To use dual-layer encryption (DSSE-KMS), set the EncryptionType parameter instead. We recommend using EncryptionType instead of KMSEncrypted to set the file share encryption method. You do not need to provide values for both parameters. If values for both parameters exist in the same request, then the specified encryption methods must not conflict. For example, if EncryptionType is SseS3, then KMSEncrypted must be false. If EncryptionType is SseKms or DsseKms, then KMSEncrypted must be true. Valid Values: true | false"];kMSKey:KMSKey.toption;path:Path.toption[@ocaml.doc"The file share path used by the SMB client to identify the mount point."];role:Role.toption;locationARN:LocationARN.toption;defaultStorageClass:StorageClass.toption[@ocaml.doc"The default storage class for objects put into an Amazon S3 bucket by the S3 File Gateway. The default value is S3_STANDARD. Optional. Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA"];objectACL:ObjectACL.toption;readOnly:Boolean.toption[@ocaml.doc"A value that sets the write status of a file share. Set this value to true to set the write status to read-only, otherwise set to false. Valid Values: true | false"];guessMIMETypeEnabled:Boolean.toption[@ocaml.doc"A value that enables guessing of the MIME type for uploaded objects based on file extensions. Set this value to true to enable MIME type guessing, otherwise set to false. The default value is true. Valid Values: true | false"];requesterPays:Boolean.toption[@ocaml.doc"A value that sets who pays the cost of the request and the cost associated with data download from the S3 bucket. If this value is set to true, the requester pays the costs; otherwise, the S3 bucket owner pays. However, the S3 bucket owner always pays the cost of storing data. RequesterPays is a configuration for the S3 bucket that backs the file share, so make sure that the configuration on the file share is the same as the S3 bucket configuration. Valid Values: true | false"];sMBACLEnabled:Boolean.toption[@ocaml.doc"If this value is set to true, it indicates that access control list (ACL) is enabled on the SMB file share. If it is set to false, it indicates that file and directory permissions are mapped to the POSIX permission. For more information, see Using Windows ACLs to limit SMB file share access in the Amazon S3 File Gateway User Guide."];accessBasedEnumeration:Boolean.toption[@ocaml.doc"Indicates whether AccessBasedEnumeration is enabled."];adminUserList:UserList.toption[@ocaml.doc"A list of users or groups in the Active Directory that have administrator rights to the file share. A group must be prefixed with the \\@ character. Acceptable formats include: DOMAIN\\User1, user1, \\@group1, and \\@DOMAIN\\group1. Can only be set if Authentication is set to ActiveDirectory."];validUserList:UserList.toption[@ocaml.doc"A list of users or groups in the Active Directory that are allowed to access the file share. A group must be prefixed with the \\@ character. Acceptable formats include: DOMAIN\\User1, user1, \\@group1, and \\@DOMAIN\\group1. Can only be set if Authentication is set to ActiveDirectory."];invalidUserList:UserList.toption[@ocaml.doc"A list of users or groups in the Active Directory that are not allowed to access the file share. A group must be prefixed with the \\@ character. Acceptable formats include: DOMAIN\\User1, user1, \\@group1, and \\@DOMAIN\\group1. Can only be set if Authentication is set to ActiveDirectory."];auditDestinationARN:AuditDestinationARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the storage used for audit logs."];authentication:Authentication.toption;caseSensitivity:CaseSensitivity.toption[@ocaml.doc"The case of an object name in an Amazon S3 bucket. For ClientSpecified, the client determines the case sensitivity. For CaseSensitive, the gateway determines the case sensitivity. The default value is ClientSpecified."];tags:Tags.toption[@ocaml.doc"A list of up to 50 tags assigned to the SMB file share, sorted alphabetically by key name. Each tag is a key-value pair. For a gateway with more than 10 tags assigned, you can view all tags using the ListTagsForResource API operation."];fileShareName:FileShareName.toption[@ocaml.doc"The name of the file share. Optional. FileShareName must be set if an S3 prefix name is set in LocationARN, or if an access point or access point alias is used."];cacheAttributes:CacheAttributes.toption[@ocaml.doc"Refresh cache information for the file share."];notificationPolicy:NotificationPolicy.toption[@ocaml.doc"The notification policy of the file share. SettlingTimeInSeconds controls the number of seconds to wait after the last point in time a client wrote to a file before generating an ObjectUploaded notification. Because clients can make many small writes to files, it's best to set this parameter for as long as possible to avoid generating multiple notifications for the same file in a small time period. SettlingTimeInSeconds has no effect on the timing of the object uploading to Amazon S3, only the timing of the notification. This setting is not meant to specify an exact time at which the notification will be sent. In some cases, the gateway might require more than the specified delay time to generate and send notifications. The following example sets NotificationPolicy on with SettlingTimeInSeconds set to 60. \\{\\\"Upload\\\": \\{\\\"SettlingTimeInSeconds\\\": 60\\}\\} The following example sets NotificationPolicy off. \\{\\}"];vPCEndpointDNSName:DNSHostName.toption[@ocaml.doc"Specifies the DNS name for the VPC endpoint that the SMB file share uses to connect to Amazon S3. This parameter is required for SMB file shares that connect to Amazon S3 through a VPC endpoint, a VPC access point, or an access point alias that points to a VPC access point."];bucketRegion:RegionId.toption[@ocaml.doc"Specifies the Region of the S3 bucket where the SMB file share stores files. This parameter is required for SMB file shares that connect to Amazon S3 through a VPC endpoint, a VPC access point, or an access point alias that points to a VPC access point."];oplocksEnabled:Boolean.toption[@ocaml.doc"Specifies whether opportunistic locking is enabled for the SMB file share. Enabling opportunistic locking on case-sensitive shares is not recommended for workloads that involve access to files with the same name in different case. Valid Values: true | false"]}letmake?fileShareARN=fun?fileShareId->fun?fileShareStatus->fun?gatewayARN->fun?encryptionType->fun?kMSEncrypted->fun?kMSKey->fun?path->fun?role->fun?locationARN->fun?defaultStorageClass->fun?objectACL->fun?readOnly->fun?guessMIMETypeEnabled->fun?requesterPays->fun?sMBACLEnabled->fun?accessBasedEnumeration->fun?adminUserList->fun?validUserList->fun?invalidUserList->fun?auditDestinationARN->fun?authentication->fun?caseSensitivity->fun?tags->fun?fileShareName->fun?cacheAttributes->fun?notificationPolicy->fun?vPCEndpointDNSName->fun?bucketRegion->fun?oplocksEnabled->fun()->{fileShareARN;fileShareId;fileShareStatus;gatewayARN;encryptionType;kMSEncrypted;kMSKey;path;role;locationARN;defaultStorageClass;objectACL;readOnly;guessMIMETypeEnabled;requesterPays;sMBACLEnabled;accessBasedEnumeration;adminUserList;validUserList;invalidUserList;auditDestinationARN;authentication;caseSensitivity;tags;fileShareName;cacheAttributes;notificationPolicy;vPCEndpointDNSName;bucketRegion;oplocksEnabled}letto_valuex=structure_to_value[("FileShareARN",(Option.mapx.fileShareARN~f:FileShareARN.to_value));("FileShareId",(Option.mapx.fileShareId~f:FileShareId.to_value));("FileShareStatus",(Option.mapx.fileShareStatus~f:FileShareStatus.to_value));("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value));("EncryptionType",(Option.mapx.encryptionType~f:EncryptionType.to_value));("KMSEncrypted",(Option.mapx.kMSEncrypted~f:Boolean__lc1.to_value));("KMSKey",(Option.mapx.kMSKey~f:KMSKey.to_value));("Path",(Option.mapx.path~f:Path.to_value));("Role",(Option.mapx.role~f:Role.to_value));("LocationARN",(Option.mapx.locationARN~f:LocationARN.to_value));("DefaultStorageClass",(Option.mapx.defaultStorageClass~f:StorageClass.to_value));("ObjectACL",(Option.mapx.objectACL~f:ObjectACL.to_value));("ReadOnly",(Option.mapx.readOnly~f:Boolean.to_value));("GuessMIMETypeEnabled",(Option.mapx.guessMIMETypeEnabled~f:Boolean.to_value));("RequesterPays",(Option.mapx.requesterPays~f:Boolean.to_value));("SMBACLEnabled",(Option.mapx.sMBACLEnabled~f:Boolean.to_value));("AccessBasedEnumeration",(Option.mapx.accessBasedEnumeration~f:Boolean.to_value));("AdminUserList",(Option.mapx.adminUserList~f:UserList.to_value));("ValidUserList",(Option.mapx.validUserList~f:UserList.to_value));("InvalidUserList",(Option.mapx.invalidUserList~f:UserList.to_value));("AuditDestinationARN",(Option.mapx.auditDestinationARN~f:AuditDestinationARN.to_value));("Authentication",(Option.mapx.authentication~f:Authentication.to_value));("CaseSensitivity",(Option.mapx.caseSensitivity~f:CaseSensitivity.to_value));("Tags",(Option.mapx.tags~f:Tags.to_value));("FileShareName",(Option.mapx.fileShareName~f:FileShareName.to_value));("CacheAttributes",(Option.mapx.cacheAttributes~f:CacheAttributes.to_value));("NotificationPolicy",(Option.mapx.notificationPolicy~f:NotificationPolicy.to_value));("VPCEndpointDNSName",(Option.mapx.vPCEndpointDNSName~f:DNSHostName.to_value));("BucketRegion",(Option.mapx.bucketRegion~f:RegionId.to_value));("OplocksEnabled",(Option.mapx.oplocksEnabled~f:Boolean.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letoplocksEnabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"OplocksEnabled")inletbucketRegion=(Option.map~f:RegionId.of_xml)(Xml.childxml_arg0"BucketRegion")inletvPCEndpointDNSName=(Option.map~f:DNSHostName.of_xml)(Xml.childxml_arg0"VPCEndpointDNSName")inletnotificationPolicy=(Option.map~f:NotificationPolicy.of_xml)(Xml.childxml_arg0"NotificationPolicy")inletcacheAttributes=(Option.map~f:CacheAttributes.of_xml)(Xml.childxml_arg0"CacheAttributes")inletfileShareName=(Option.map~f:FileShareName.of_xml)(Xml.childxml_arg0"FileShareName")inlettags=(Option.map~f:Tags.of_xml)(Xml.childxml_arg0"Tags")inletcaseSensitivity=(Option.map~f:CaseSensitivity.of_xml)(Xml.childxml_arg0"CaseSensitivity")inletauthentication=(Option.map~f:Authentication.of_xml)(Xml.childxml_arg0"Authentication")inletauditDestinationARN=(Option.map~f:AuditDestinationARN.of_xml)(Xml.childxml_arg0"AuditDestinationARN")inletinvalidUserList=(Option.map~f:UserList.of_xml)(Xml.childxml_arg0"InvalidUserList")inletvalidUserList=(Option.map~f:UserList.of_xml)(Xml.childxml_arg0"ValidUserList")inletadminUserList=(Option.map~f:UserList.of_xml)(Xml.childxml_arg0"AdminUserList")inletaccessBasedEnumeration=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"AccessBasedEnumeration")inletsMBACLEnabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"SMBACLEnabled")inletrequesterPays=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"RequesterPays")inletguessMIMETypeEnabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"GuessMIMETypeEnabled")inletreadOnly=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"ReadOnly")inletobjectACL=(Option.map~f:ObjectACL.of_xml)(Xml.childxml_arg0"ObjectACL")inletdefaultStorageClass=(Option.map~f:StorageClass.of_xml)(Xml.childxml_arg0"DefaultStorageClass")inletlocationARN=(Option.map~f:LocationARN.of_xml)(Xml.childxml_arg0"LocationARN")inletrole=(Option.map~f:Role.of_xml)(Xml.childxml_arg0"Role")inletpath=(Option.map~f:Path.of_xml)(Xml.childxml_arg0"Path")inletkMSKey=(Option.map~f:KMSKey.of_xml)(Xml.childxml_arg0"KMSKey")inletkMSEncrypted=(Option.map~f:Boolean__lc1.of_xml)(Xml.childxml_arg0"KMSEncrypted")inletencryptionType=(Option.map~f:EncryptionType.of_xml)(Xml.childxml_arg0"EncryptionType")inletgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inletfileShareStatus=(Option.map~f:FileShareStatus.of_xml)(Xml.childxml_arg0"FileShareStatus")inletfileShareId=(Option.map~f:FileShareId.of_xml)(Xml.childxml_arg0"FileShareId")inletfileShareARN=(Option.map~f:FileShareARN.of_xml)(Xml.childxml_arg0"FileShareARN")inmake?oplocksEnabled?bucketRegion?vPCEndpointDNSName?notificationPolicy?cacheAttributes?fileShareName?tags?caseSensitivity?authentication?auditDestinationARN?invalidUserList?validUserList?adminUserList?accessBasedEnumeration?sMBACLEnabled?requesterPays?guessMIMETypeEnabled?readOnly?objectACL?defaultStorageClass?locationARN?role?path?kMSKey?kMSEncrypted?encryptionType?gatewayARN?fileShareStatus?fileShareId?fileShareARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letoplocksEnabled=field_mapjson__"OplocksEnabled"Boolean.of_jsoninletbucketRegion=field_mapjson__"BucketRegion"RegionId.of_jsoninletvPCEndpointDNSName=field_mapjson__"VPCEndpointDNSName"DNSHostName.of_jsoninletnotificationPolicy=field_mapjson__"NotificationPolicy"NotificationPolicy.of_jsoninletcacheAttributes=field_mapjson__"CacheAttributes"CacheAttributes.of_jsoninletfileShareName=field_mapjson__"FileShareName"FileShareName.of_jsoninlettags=field_mapjson__"Tags"Tags.of_jsoninletcaseSensitivity=field_mapjson__"CaseSensitivity"CaseSensitivity.of_jsoninletauthentication=field_mapjson__"Authentication"Authentication.of_jsoninletauditDestinationARN=field_mapjson__"AuditDestinationARN"AuditDestinationARN.of_jsoninletinvalidUserList=field_mapjson__"InvalidUserList"UserList.of_jsoninletvalidUserList=field_mapjson__"ValidUserList"UserList.of_jsoninletadminUserList=field_mapjson__"AdminUserList"UserList.of_jsoninletaccessBasedEnumeration=field_mapjson__"AccessBasedEnumeration"Boolean.of_jsoninletsMBACLEnabled=field_mapjson__"SMBACLEnabled"Boolean.of_jsoninletrequesterPays=field_mapjson__"RequesterPays"Boolean.of_jsoninletguessMIMETypeEnabled=field_mapjson__"GuessMIMETypeEnabled"Boolean.of_jsoninletreadOnly=field_mapjson__"ReadOnly"Boolean.of_jsoninletobjectACL=field_mapjson__"ObjectACL"ObjectACL.of_jsoninletdefaultStorageClass=field_mapjson__"DefaultStorageClass"StorageClass.of_jsoninletlocationARN=field_mapjson__"LocationARN"LocationARN.of_jsoninletrole=field_mapjson__"Role"Role.of_jsoninletpath=field_mapjson__"Path"Path.of_jsoninletkMSKey=field_mapjson__"KMSKey"KMSKey.of_jsoninletkMSEncrypted=field_mapjson__"KMSEncrypted"Boolean__lc1.of_jsoninletencryptionType=field_mapjson__"EncryptionType"EncryptionType.of_jsoninletgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninletfileShareStatus=field_mapjson__"FileShareStatus"FileShareStatus.of_jsoninletfileShareId=field_mapjson__"FileShareId"FileShareId.of_jsoninletfileShareARN=field_mapjson__"FileShareARN"FileShareARN.of_jsoninmake?oplocksEnabled?bucketRegion?vPCEndpointDNSName?notificationPolicy?cacheAttributes?fileShareName?tags?caseSensitivity?authentication?auditDestinationARN?invalidUserList?validUserList?adminUserList?accessBasedEnumeration?sMBACLEnabled?requesterPays?guessMIMETypeEnabled?readOnly?objectACL?defaultStorageClass?locationARN?role?path?kMSKey?kMSEncrypted?encryptionType?gatewayARN?fileShareStatus?fileShareId?fileShareARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The Windows file permissions and ownership information assigned, by default, to native S3 objects when S3 File Gateway discovers them in S3 buckets. This operation is only supported for S3 File Gateways."]moduleNFSFileShareInfo=structtypenonrect={nFSFileShareDefaults:NFSFileShareDefaults.toption;fileShareARN:FileShareARN.toption;fileShareId:FileShareId.toption;fileShareStatus:FileShareStatus.toption;gatewayARN:GatewayARN.toption;encryptionType:EncryptionType.toption[@ocaml.doc"A value that specifies the type of server-side encryption that the file share will use for the data that it stores in Amazon S3. We recommend using EncryptionType instead of KMSEncrypted to set the file share encryption method. You do not need to provide values for both parameters. If values for both parameters exist in the same request, then the specified encryption methods must not conflict. For example, if EncryptionType is SseS3, then KMSEncrypted must be false. If EncryptionType is SseKms or DsseKms, then KMSEncrypted must be true."];kMSEncrypted:Boolean__lc1.toption[@ocaml.doc"Optional. Set to true to use Amazon S3 server-side encryption with your own KMS key (SSE-KMS), or false to use a key managed by Amazon S3 (SSE-S3). To use dual-layer encryption (DSSE-KMS), set the EncryptionType parameter instead. We recommend using EncryptionType instead of KMSEncrypted to set the file share encryption method. You do not need to provide values for both parameters. If values for both parameters exist in the same request, then the specified encryption methods must not conflict. For example, if EncryptionType is SseS3, then KMSEncrypted must be false. If EncryptionType is SseKms or DsseKms, then KMSEncrypted must be true. Valid Values: true | false"];kMSKey:KMSKey.toption;path:Path.toption;role:Role.toption;locationARN:LocationARN.toption;defaultStorageClass:StorageClass.toption[@ocaml.doc"The default storage class for objects put into an Amazon S3 bucket by the S3 File Gateway. The default value is S3_STANDARD. Optional. Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA"];objectACL:ObjectACL.toption;clientList:FileShareClientList.toption;squash:Squash.toption;readOnly:Boolean.toption[@ocaml.doc"A value that sets the write status of a file share. Set this value to true to set the write status to read-only, otherwise set to false. Valid Values: true | false"];guessMIMETypeEnabled:Boolean.toption[@ocaml.doc"A value that enables guessing of the MIME type for uploaded objects based on file extensions. Set this value to true to enable MIME type guessing, otherwise set to false. The default value is true. Valid Values: true | false"];requesterPays:Boolean.toption[@ocaml.doc"A value that sets who pays the cost of the request and the cost associated with data download from the S3 bucket. If this value is set to true, the requester pays the costs; otherwise, the S3 bucket owner pays. However, the S3 bucket owner always pays the cost of storing data. RequesterPays is a configuration for the S3 bucket that backs the file share, so make sure that the configuration on the file share is the same as the S3 bucket configuration. Valid Values: true | false"];tags:Tags.toption[@ocaml.doc"A list of up to 50 tags assigned to the NFS file share, sorted alphabetically by key name. Each tag is a key-value pair. For a gateway with more than 10 tags assigned, you can view all tags using the ListTagsForResource API operation."];fileShareName:FileShareName.toption[@ocaml.doc"The name of the file share. Optional. FileShareName must be set if an S3 prefix name is set in LocationARN, or if an access point or access point alias is used."];cacheAttributes:CacheAttributes.toption[@ocaml.doc"Refresh cache information for the file share."];notificationPolicy:NotificationPolicy.toption[@ocaml.doc"The notification policy of the file share. SettlingTimeInSeconds controls the number of seconds to wait after the last point in time a client wrote to a file before generating an ObjectUploaded notification. Because clients can make many small writes to files, it's best to set this parameter for as long as possible to avoid generating multiple notifications for the same file in a small time period. SettlingTimeInSeconds has no effect on the timing of the object uploading to Amazon S3, only the timing of the notification. This setting is not meant to specify an exact time at which the notification will be sent. In some cases, the gateway might require more than the specified delay time to generate and send notifications. The following example sets NotificationPolicy on with SettlingTimeInSeconds set to 60. \\{\\\"Upload\\\": \\{\\\"SettlingTimeInSeconds\\\": 60\\}\\} The following example sets NotificationPolicy off. \\{\\}"];vPCEndpointDNSName:DNSHostName.toption[@ocaml.doc"Specifies the DNS name for the VPC endpoint that the NFS file share uses to connect to Amazon S3. This parameter is required for NFS file shares that connect to Amazon S3 through a VPC endpoint, a VPC access point, or an access point alias that points to a VPC access point."];bucketRegion:RegionId.toption[@ocaml.doc"Specifies the Region of the S3 bucket where the NFS file share stores files. This parameter is required for NFS file shares that connect to Amazon S3 through a VPC endpoint, a VPC access point, or an access point alias that points to a VPC access point."];auditDestinationARN:AuditDestinationARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the storage used for audit logs."]}letmake?nFSFileShareDefaults=fun?fileShareARN->fun?fileShareId->fun?fileShareStatus->fun?gatewayARN->fun?encryptionType->fun?kMSEncrypted->fun?kMSKey->fun?path->fun?role->fun?locationARN->fun?defaultStorageClass->fun?objectACL->fun?clientList->fun?squash->fun?readOnly->fun?guessMIMETypeEnabled->fun?requesterPays->fun?tags->fun?fileShareName->fun?cacheAttributes->fun?notificationPolicy->fun?vPCEndpointDNSName->fun?bucketRegion->fun?auditDestinationARN->fun()->{nFSFileShareDefaults;fileShareARN;fileShareId;fileShareStatus;gatewayARN;encryptionType;kMSEncrypted;kMSKey;path;role;locationARN;defaultStorageClass;objectACL;clientList;squash;readOnly;guessMIMETypeEnabled;requesterPays;tags;fileShareName;cacheAttributes;notificationPolicy;vPCEndpointDNSName;bucketRegion;auditDestinationARN}letto_valuex=structure_to_value[("NFSFileShareDefaults",(Option.mapx.nFSFileShareDefaults~f:NFSFileShareDefaults.to_value));("FileShareARN",(Option.mapx.fileShareARN~f:FileShareARN.to_value));("FileShareId",(Option.mapx.fileShareId~f:FileShareId.to_value));("FileShareStatus",(Option.mapx.fileShareStatus~f:FileShareStatus.to_value));("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value));("EncryptionType",(Option.mapx.encryptionType~f:EncryptionType.to_value));("KMSEncrypted",(Option.mapx.kMSEncrypted~f:Boolean__lc1.to_value));("KMSKey",(Option.mapx.kMSKey~f:KMSKey.to_value));("Path",(Option.mapx.path~f:Path.to_value));("Role",(Option.mapx.role~f:Role.to_value));("LocationARN",(Option.mapx.locationARN~f:LocationARN.to_value));("DefaultStorageClass",(Option.mapx.defaultStorageClass~f:StorageClass.to_value));("ObjectACL",(Option.mapx.objectACL~f:ObjectACL.to_value));("ClientList",(Option.mapx.clientList~f:FileShareClientList.to_value));("Squash",(Option.mapx.squash~f:Squash.to_value));("ReadOnly",(Option.mapx.readOnly~f:Boolean.to_value));("GuessMIMETypeEnabled",(Option.mapx.guessMIMETypeEnabled~f:Boolean.to_value));("RequesterPays",(Option.mapx.requesterPays~f:Boolean.to_value));("Tags",(Option.mapx.tags~f:Tags.to_value));("FileShareName",(Option.mapx.fileShareName~f:FileShareName.to_value));("CacheAttributes",(Option.mapx.cacheAttributes~f:CacheAttributes.to_value));("NotificationPolicy",(Option.mapx.notificationPolicy~f:NotificationPolicy.to_value));("VPCEndpointDNSName",(Option.mapx.vPCEndpointDNSName~f:DNSHostName.to_value));("BucketRegion",(Option.mapx.bucketRegion~f:RegionId.to_value));("AuditDestinationARN",(Option.mapx.auditDestinationARN~f:AuditDestinationARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letauditDestinationARN=(Option.map~f:AuditDestinationARN.of_xml)(Xml.childxml_arg0"AuditDestinationARN")inletbucketRegion=(Option.map~f:RegionId.of_xml)(Xml.childxml_arg0"BucketRegion")inletvPCEndpointDNSName=(Option.map~f:DNSHostName.of_xml)(Xml.childxml_arg0"VPCEndpointDNSName")inletnotificationPolicy=(Option.map~f:NotificationPolicy.of_xml)(Xml.childxml_arg0"NotificationPolicy")inletcacheAttributes=(Option.map~f:CacheAttributes.of_xml)(Xml.childxml_arg0"CacheAttributes")inletfileShareName=(Option.map~f:FileShareName.of_xml)(Xml.childxml_arg0"FileShareName")inlettags=(Option.map~f:Tags.of_xml)(Xml.childxml_arg0"Tags")inletrequesterPays=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"RequesterPays")inletguessMIMETypeEnabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"GuessMIMETypeEnabled")inletreadOnly=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"ReadOnly")inletsquash=(Option.map~f:Squash.of_xml)(Xml.childxml_arg0"Squash")inletclientList=(Option.map~f:FileShareClientList.of_xml)(Xml.childxml_arg0"ClientList")inletobjectACL=(Option.map~f:ObjectACL.of_xml)(Xml.childxml_arg0"ObjectACL")inletdefaultStorageClass=(Option.map~f:StorageClass.of_xml)(Xml.childxml_arg0"DefaultStorageClass")inletlocationARN=(Option.map~f:LocationARN.of_xml)(Xml.childxml_arg0"LocationARN")inletrole=(Option.map~f:Role.of_xml)(Xml.childxml_arg0"Role")inletpath=(Option.map~f:Path.of_xml)(Xml.childxml_arg0"Path")inletkMSKey=(Option.map~f:KMSKey.of_xml)(Xml.childxml_arg0"KMSKey")inletkMSEncrypted=(Option.map~f:Boolean__lc1.of_xml)(Xml.childxml_arg0"KMSEncrypted")inletencryptionType=(Option.map~f:EncryptionType.of_xml)(Xml.childxml_arg0"EncryptionType")inletgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inletfileShareStatus=(Option.map~f:FileShareStatus.of_xml)(Xml.childxml_arg0"FileShareStatus")inletfileShareId=(Option.map~f:FileShareId.of_xml)(Xml.childxml_arg0"FileShareId")inletfileShareARN=(Option.map~f:FileShareARN.of_xml)(Xml.childxml_arg0"FileShareARN")inletnFSFileShareDefaults=(Option.map~f:NFSFileShareDefaults.of_xml)(Xml.childxml_arg0"NFSFileShareDefaults")inmake?auditDestinationARN?bucketRegion?vPCEndpointDNSName?notificationPolicy?cacheAttributes?fileShareName?tags?requesterPays?guessMIMETypeEnabled?readOnly?squash?clientList?objectACL?defaultStorageClass?locationARN?role?path?kMSKey?kMSEncrypted?encryptionType?gatewayARN?fileShareStatus?fileShareId?fileShareARN?nFSFileShareDefaults()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letauditDestinationARN=field_mapjson__"AuditDestinationARN"AuditDestinationARN.of_jsoninletbucketRegion=field_mapjson__"BucketRegion"RegionId.of_jsoninletvPCEndpointDNSName=field_mapjson__"VPCEndpointDNSName"DNSHostName.of_jsoninletnotificationPolicy=field_mapjson__"NotificationPolicy"NotificationPolicy.of_jsoninletcacheAttributes=field_mapjson__"CacheAttributes"CacheAttributes.of_jsoninletfileShareName=field_mapjson__"FileShareName"FileShareName.of_jsoninlettags=field_mapjson__"Tags"Tags.of_jsoninletrequesterPays=field_mapjson__"RequesterPays"Boolean.of_jsoninletguessMIMETypeEnabled=field_mapjson__"GuessMIMETypeEnabled"Boolean.of_jsoninletreadOnly=field_mapjson__"ReadOnly"Boolean.of_jsoninletsquash=field_mapjson__"Squash"Squash.of_jsoninletclientList=field_mapjson__"ClientList"FileShareClientList.of_jsoninletobjectACL=field_mapjson__"ObjectACL"ObjectACL.of_jsoninletdefaultStorageClass=field_mapjson__"DefaultStorageClass"StorageClass.of_jsoninletlocationARN=field_mapjson__"LocationARN"LocationARN.of_jsoninletrole=field_mapjson__"Role"Role.of_jsoninletpath=field_mapjson__"Path"Path.of_jsoninletkMSKey=field_mapjson__"KMSKey"KMSKey.of_jsoninletkMSEncrypted=field_mapjson__"KMSEncrypted"Boolean__lc1.of_jsoninletencryptionType=field_mapjson__"EncryptionType"EncryptionType.of_jsoninletgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninletfileShareStatus=field_mapjson__"FileShareStatus"FileShareStatus.of_jsoninletfileShareId=field_mapjson__"FileShareId"FileShareId.of_jsoninletfileShareARN=field_mapjson__"FileShareARN"FileShareARN.of_jsoninletnFSFileShareDefaults=field_mapjson__"NFSFileShareDefaults"NFSFileShareDefaults.of_jsoninmake?auditDestinationARN?bucketRegion?vPCEndpointDNSName?notificationPolicy?cacheAttributes?fileShareName?tags?requesterPays?guessMIMETypeEnabled?readOnly?squash?clientList?objectACL?defaultStorageClass?locationARN?role?path?kMSKey?kMSEncrypted?encryptionType?gatewayARN?fileShareStatus?fileShareId?fileShareARN?nFSFileShareDefaults()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The Unix file permissions and ownership information assigned, by default, to native S3 objects when an S3 File Gateway discovers them in S3 buckets. This operation is only supported in S3 File Gateways."]moduleNetworkInterface=structtypenonrect={ipv4Address:String_.toption[@ocaml.doc"The Internet Protocol version 4 (IPv4) address of the interface."];macAddress:String_.toption[@ocaml.doc"The Media Access Control (MAC) address of the interface. This is currently unsupported and will not be returned in output."];ipv6Address:String_.toption[@ocaml.doc"The Internet Protocol version 6 (IPv6) address of the interface. This element returns IPv6 addresses for all gateway types except FSx File Gateway."]}letmake?ipv4Address=fun?macAddress->fun?ipv6Address->fun()->{ipv4Address;macAddress;ipv6Address}letto_valuex=structure_to_value[("Ipv4Address",(Option.mapx.ipv4Address~f:String_.to_value));("MacAddress",(Option.mapx.macAddress~f:String_.to_value));("Ipv6Address",(Option.mapx.ipv6Address~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letipv6Address=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Ipv6Address")inletmacAddress=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"MacAddress")inletipv4Address=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Ipv4Address")inmake?ipv6Address?macAddress?ipv4Address()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letipv6Address=field_mapjson__"Ipv6Address"String_.of_jsoninletmacAddress=field_mapjson__"MacAddress"String_.of_jsoninletipv4Address=field_mapjson__"Ipv4Address"String_.of_jsoninmake?ipv6Address?macAddress?ipv4Address()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes a gateway's network interface."]moduleGatewayCapacity=structtypenonrect=|Small|Medium|Large|Non_static_idofstringletmakei=iletto_string=function|Small->"Small"|Medium->"Medium"|Large->"Large"|Non_static_ids->sletof_string=function|"Small"->Small|"Medium"->Medium|"Large"->Large|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration GatewayCapacity"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"GatewayCapacity"j)letto_json=simple_to_jsonto_valueendmoduleFileSystemAssociationInfo=structtypenonrect={fileSystemAssociationARN:FileSystemAssociationARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the file system association."];locationARN:FileSystemLocationARN.toption[@ocaml.doc"The ARN of the backend Amazon FSx file system used for storing file data. For information, see FileSystem in the Amazon FSx API Reference."];fileSystemAssociationStatus:FileSystemAssociationStatus.toption[@ocaml.doc"The status of the file system association. Valid Values: AVAILABLE | CREATING | DELETING | FORCE_DELETING | UPDATING | ERROR"];auditDestinationARN:AuditDestinationARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the storage used for the audit logs."];gatewayARN:GatewayARN.toption;tags:Tags.toption[@ocaml.doc"A list of up to 50 tags assigned to the SMB file share, sorted alphabetically by key name. Each tag is a key-value pair."];cacheAttributes:CacheAttributes.toption;endpointNetworkConfiguration:EndpointNetworkConfiguration.toption[@ocaml.doc"Specifies network configuration information for the gateway associated with the Amazon FSx file system. If multiple file systems are associated with this gateway, this parameter's IpAddresses field is required."];fileSystemAssociationStatusDetails:FileSystemAssociationStatusDetails.toption[@ocaml.doc"An array containing the FileSystemAssociationStatusDetail data type, which provides detailed information on file system association status."]}letmake?fileSystemAssociationARN=fun?locationARN->fun?fileSystemAssociationStatus->fun?auditDestinationARN->fun?gatewayARN->fun?tags->fun?cacheAttributes->fun?endpointNetworkConfiguration->fun?fileSystemAssociationStatusDetails->fun()->{fileSystemAssociationARN;locationARN;fileSystemAssociationStatus;auditDestinationARN;gatewayARN;tags;cacheAttributes;endpointNetworkConfiguration;fileSystemAssociationStatusDetails}letto_valuex=structure_to_value[("FileSystemAssociationARN",(Option.mapx.fileSystemAssociationARN~f:FileSystemAssociationARN.to_value));("LocationARN",(Option.mapx.locationARN~f:FileSystemLocationARN.to_value));("FileSystemAssociationStatus",(Option.mapx.fileSystemAssociationStatus~f:FileSystemAssociationStatus.to_value));("AuditDestinationARN",(Option.mapx.auditDestinationARN~f:AuditDestinationARN.to_value));("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value));("Tags",(Option.mapx.tags~f:Tags.to_value));("CacheAttributes",(Option.mapx.cacheAttributes~f:CacheAttributes.to_value));("EndpointNetworkConfiguration",(Option.mapx.endpointNetworkConfiguration~f:EndpointNetworkConfiguration.to_value));("FileSystemAssociationStatusDetails",(Option.mapx.fileSystemAssociationStatusDetails~f:FileSystemAssociationStatusDetails.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfileSystemAssociationStatusDetails=(Option.map~f:FileSystemAssociationStatusDetails.of_xml)(Xml.childxml_arg0"FileSystemAssociationStatusDetails")inletendpointNetworkConfiguration=(Option.map~f:EndpointNetworkConfiguration.of_xml)(Xml.childxml_arg0"EndpointNetworkConfiguration")inletcacheAttributes=(Option.map~f:CacheAttributes.of_xml)(Xml.childxml_arg0"CacheAttributes")inlettags=(Option.map~f:Tags.of_xml)(Xml.childxml_arg0"Tags")inletgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inletauditDestinationARN=(Option.map~f:AuditDestinationARN.of_xml)(Xml.childxml_arg0"AuditDestinationARN")inletfileSystemAssociationStatus=(Option.map~f:FileSystemAssociationStatus.of_xml)(Xml.childxml_arg0"FileSystemAssociationStatus")inletlocationARN=(Option.map~f:FileSystemLocationARN.of_xml)(Xml.childxml_arg0"LocationARN")inletfileSystemAssociationARN=(Option.map~f:FileSystemAssociationARN.of_xml)(Xml.childxml_arg0"FileSystemAssociationARN")inmake?fileSystemAssociationStatusDetails?endpointNetworkConfiguration?cacheAttributes?tags?gatewayARN?auditDestinationARN?fileSystemAssociationStatus?locationARN?fileSystemAssociationARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfileSystemAssociationStatusDetails=field_mapjson__"FileSystemAssociationStatusDetails"FileSystemAssociationStatusDetails.of_jsoninletendpointNetworkConfiguration=field_mapjson__"EndpointNetworkConfiguration"EndpointNetworkConfiguration.of_jsoninletcacheAttributes=field_mapjson__"CacheAttributes"CacheAttributes.of_jsoninlettags=field_mapjson__"Tags"Tags.of_jsoninletgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninletauditDestinationARN=field_mapjson__"AuditDestinationARN"AuditDestinationARN.of_jsoninletfileSystemAssociationStatus=field_mapjson__"FileSystemAssociationStatus"FileSystemAssociationStatus.of_jsoninletlocationARN=field_mapjson__"LocationARN"FileSystemLocationARN.of_jsoninletfileSystemAssociationARN=field_mapjson__"FileSystemAssociationARN"FileSystemAssociationARN.of_jsoninmake?fileSystemAssociationStatusDetails?endpointNetworkConfiguration?cacheAttributes?tags?gatewayARN?auditDestinationARN?fileSystemAssociationStatus?locationARN?fileSystemAssociationARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the object returned by DescribeFileSystemAssociations that describes a created file system association."]moduleChapInfo=structtypenonrect={targetARN:TargetARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the volume. Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens (-)."];secretToAuthenticateInitiator:ChapSecret.toption[@ocaml.doc"The secret key that the initiator (for example, the Windows client) must provide to participate in mutual CHAP with the target."];initiatorName:IqnName.toption[@ocaml.doc"The iSCSI initiator that connects to the target."];secretToAuthenticateTarget:ChapSecret.toption[@ocaml.doc"The secret key that the target must provide to participate in mutual CHAP with the initiator (e.g., Windows client)."]}letmake?targetARN=fun?secretToAuthenticateInitiator->fun?initiatorName->fun?secretToAuthenticateTarget->fun()->{targetARN;secretToAuthenticateInitiator;initiatorName;secretToAuthenticateTarget}letto_valuex=structure_to_value[("TargetARN",(Option.mapx.targetARN~f:TargetARN.to_value));("SecretToAuthenticateInitiator",(Option.mapx.secretToAuthenticateInitiator~f:ChapSecret.to_value));("InitiatorName",(Option.mapx.initiatorName~f:IqnName.to_value));("SecretToAuthenticateTarget",(Option.mapx.secretToAuthenticateTarget~f:ChapSecret.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsecretToAuthenticateTarget=(Option.map~f:ChapSecret.of_xml)(Xml.childxml_arg0"SecretToAuthenticateTarget")inletinitiatorName=(Option.map~f:IqnName.of_xml)(Xml.childxml_arg0"InitiatorName")inletsecretToAuthenticateInitiator=(Option.map~f:ChapSecret.of_xml)(Xml.childxml_arg0"SecretToAuthenticateInitiator")inlettargetARN=(Option.map~f:TargetARN.of_xml)(Xml.childxml_arg0"TargetARN")inmake?secretToAuthenticateTarget?initiatorName?secretToAuthenticateInitiator?targetARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsecretToAuthenticateTarget=field_mapjson__"SecretToAuthenticateTarget"ChapSecret.of_jsoninletinitiatorName=field_mapjson__"InitiatorName"IqnName.of_jsoninletsecretToAuthenticateInitiator=field_mapjson__"SecretToAuthenticateInitiator"ChapSecret.of_jsoninlettargetARN=field_mapjson__"TargetARN"TargetARN.of_jsoninmake?secretToAuthenticateTarget?initiatorName?secretToAuthenticateInitiator?targetARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes Challenge-Handshake Authentication Protocol (CHAP) information that supports authentication between your gateway and iSCSI initiators."]moduleCachediSCSIVolume=structtypenonrect={volumeARN:VolumeARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the storage volume."];volumeId:VolumeId.toption[@ocaml.doc"The unique identifier of the volume, e.g., vol-AE4B946D."];volumeType:VolumeType.toption[@ocaml.doc"One of the VolumeType enumeration values that describes the type of the volume."];volumeStatus:VolumeStatus.toption[@ocaml.doc"One of the VolumeStatus values that indicates the state of the storage volume."];volumeAttachmentStatus:VolumeAttachmentStatus.toption[@ocaml.doc"A value that indicates whether a storage volume is attached to or detached from a gateway. For more information, see Moving your volumes to a different gateway."];volumeSizeInBytes:Long.toption[@ocaml.doc"The size, in bytes, of the volume capacity."];volumeProgress:DoubleObject.toption[@ocaml.doc"Represents the percentage complete if the volume is restoring or bootstrapping that represents the percent of data transferred. This field does not appear in the response if the cached volume is not restoring or bootstrapping."];sourceSnapshotId:SnapshotId.toption[@ocaml.doc"If the cached volume was created from a snapshot, this field contains the snapshot ID used, e.g., snap-78e22663. Otherwise, this field is not included."];volumeiSCSIAttributes:VolumeiSCSIAttributes.toption[@ocaml.doc"An VolumeiSCSIAttributes object that represents a collection of iSCSI attributes for one stored volume."];createdDate:CreatedDate.toption[@ocaml.doc"The date the volume was created. Volumes created prior to March 28, 2017 don\226\128\153t have this timestamp."];volumeUsedInBytes:VolumeUsedInBytes.toption[@ocaml.doc"The size of the data stored on the volume in bytes. This value is calculated based on the number of blocks that are touched, instead of the actual amount of data written. This value can be useful for sequential write patterns but less accurate for random write patterns. VolumeUsedInBytes is different from the compressed size of the volume, which is the value that is used to calculate your bill. This value is not available for volumes created prior to May 13, 2015, until you store data on the volume. If you use a delete tool that overwrites the data on your volume with random data, your usage will not be reduced. This is because the random data is not compressible. If you want to reduce the amount of billed storage on your volume, we recommend overwriting your files with zeros to compress the data to a negligible amount of actual storage."];kMSKey:KMSKey.toption;targetName:TargetName.toption[@ocaml.doc"The name of the iSCSI target used by an initiator to connect to a volume and used as a suffix for the target ARN. For example, specifying TargetName as myvolume results in the target ARN of arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume. The target name must be unique across all volumes on a gateway. If you don't specify a value, Storage Gateway uses the value that was previously used for this volume as the new target name."]}letmake?volumeARN=fun?volumeId->fun?volumeType->fun?volumeStatus->fun?volumeAttachmentStatus->fun?volumeSizeInBytes->fun?volumeProgress->fun?sourceSnapshotId->fun?volumeiSCSIAttributes->fun?createdDate->fun?volumeUsedInBytes->fun?kMSKey->fun?targetName->fun()->{volumeARN;volumeId;volumeType;volumeStatus;volumeAttachmentStatus;volumeSizeInBytes;volumeProgress;sourceSnapshotId;volumeiSCSIAttributes;createdDate;volumeUsedInBytes;kMSKey;targetName}letto_valuex=structure_to_value[("VolumeARN",(Option.mapx.volumeARN~f:VolumeARN.to_value));("VolumeId",(Option.mapx.volumeId~f:VolumeId.to_value));("VolumeType",(Option.mapx.volumeType~f:VolumeType.to_value));("VolumeStatus",(Option.mapx.volumeStatus~f:VolumeStatus.to_value));("VolumeAttachmentStatus",(Option.mapx.volumeAttachmentStatus~f:VolumeAttachmentStatus.to_value));("VolumeSizeInBytes",(Option.mapx.volumeSizeInBytes~f:Long.to_value));("VolumeProgress",(Option.mapx.volumeProgress~f:DoubleObject.to_value));("SourceSnapshotId",(Option.mapx.sourceSnapshotId~f:SnapshotId.to_value));("VolumeiSCSIAttributes",(Option.mapx.volumeiSCSIAttributes~f:VolumeiSCSIAttributes.to_value));("CreatedDate",(Option.mapx.createdDate~f:CreatedDate.to_value));("VolumeUsedInBytes",(Option.mapx.volumeUsedInBytes~f:VolumeUsedInBytes.to_value));("KMSKey",(Option.mapx.kMSKey~f:KMSKey.to_value));("TargetName",(Option.mapx.targetName~f:TargetName.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettargetName=(Option.map~f:TargetName.of_xml)(Xml.childxml_arg0"TargetName")inletkMSKey=(Option.map~f:KMSKey.of_xml)(Xml.childxml_arg0"KMSKey")inletvolumeUsedInBytes=(Option.map~f:VolumeUsedInBytes.of_xml)(Xml.childxml_arg0"VolumeUsedInBytes")inletcreatedDate=(Option.map~f:CreatedDate.of_xml)(Xml.childxml_arg0"CreatedDate")inletvolumeiSCSIAttributes=(Option.map~f:VolumeiSCSIAttributes.of_xml)(Xml.childxml_arg0"VolumeiSCSIAttributes")inletsourceSnapshotId=(Option.map~f:SnapshotId.of_xml)(Xml.childxml_arg0"SourceSnapshotId")inletvolumeProgress=(Option.map~f:DoubleObject.of_xml)(Xml.childxml_arg0"VolumeProgress")inletvolumeSizeInBytes=(Option.map~f:Long.of_xml)(Xml.childxml_arg0"VolumeSizeInBytes")inletvolumeAttachmentStatus=(Option.map~f:VolumeAttachmentStatus.of_xml)(Xml.childxml_arg0"VolumeAttachmentStatus")inletvolumeStatus=(Option.map~f:VolumeStatus.of_xml)(Xml.childxml_arg0"VolumeStatus")inletvolumeType=(Option.map~f:VolumeType.of_xml)(Xml.childxml_arg0"VolumeType")inletvolumeId=(Option.map~f:VolumeId.of_xml)(Xml.childxml_arg0"VolumeId")inletvolumeARN=(Option.map~f:VolumeARN.of_xml)(Xml.childxml_arg0"VolumeARN")inmake?targetName?kMSKey?volumeUsedInBytes?createdDate?volumeiSCSIAttributes?sourceSnapshotId?volumeProgress?volumeSizeInBytes?volumeAttachmentStatus?volumeStatus?volumeType?volumeId?volumeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettargetName=field_mapjson__"TargetName"TargetName.of_jsoninletkMSKey=field_mapjson__"KMSKey"KMSKey.of_jsoninletvolumeUsedInBytes=field_mapjson__"VolumeUsedInBytes"VolumeUsedInBytes.of_jsoninletcreatedDate=field_mapjson__"CreatedDate"CreatedDate.of_jsoninletvolumeiSCSIAttributes=field_mapjson__"VolumeiSCSIAttributes"VolumeiSCSIAttributes.of_jsoninletsourceSnapshotId=field_mapjson__"SourceSnapshotId"SnapshotId.of_jsoninletvolumeProgress=field_mapjson__"VolumeProgress"DoubleObject.of_jsoninletvolumeSizeInBytes=field_mapjson__"VolumeSizeInBytes"Long.of_jsoninletvolumeAttachmentStatus=field_mapjson__"VolumeAttachmentStatus"VolumeAttachmentStatus.of_jsoninletvolumeStatus=field_mapjson__"VolumeStatus"VolumeStatus.of_jsoninletvolumeType=field_mapjson__"VolumeType"VolumeType.of_jsoninletvolumeId=field_mapjson__"VolumeId"VolumeId.of_jsoninletvolumeARN=field_mapjson__"VolumeARN"VolumeARN.of_jsoninmake?targetName?kMSKey?volumeUsedInBytes?createdDate?volumeiSCSIAttributes?sourceSnapshotId?volumeProgress?volumeSizeInBytes?volumeAttachmentStatus?volumeStatus?volumeType?volumeId?volumeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes an iSCSI cached volume."]moduleInternalServerError=structtypenonrect={message:String_.toption[@ocaml.doc"A human-readable message describing the error that occurred."];error:StorageGatewayError.toption[@ocaml.doc"A StorageGatewayError that provides more information about the cause of the error."]}letmake?message=fun?error->fun()->{message;error}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:String_.to_value));("error",(Option.mapx.error~f:StorageGatewayError.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=leterror=(Option.map~f:StorageGatewayError.of_xml)(Xml.childxml_arg0"error")inletmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inmake?error?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=leterror=field_mapjson__"error"StorageGatewayError.of_jsoninletmessage=field_mapjson__"message"String_.of_jsoninmake?error?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"An internal server error has occurred during the request. For more information, see the error and message fields."]moduleInvalidGatewayRequestException=structtypenonrect={message:String_.toption[@ocaml.doc"A human-readable message describing the error that occurred."];error:StorageGatewayError.toption[@ocaml.doc"A StorageGatewayError that provides more detail about the cause of the error."]}letmake?message=fun?error->fun()->{message;error}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:String_.to_value));("error",(Option.mapx.error~f:StorageGatewayError.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=leterror=(Option.map~f:StorageGatewayError.of_xml)(Xml.childxml_arg0"error")inletmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inmake?error?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=leterror=field_mapjson__"error"StorageGatewayError.of_jsoninletmessage=field_mapjson__"message"String_.of_jsoninmake?error?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"An exception occurred because an invalid gateway request was issued to the service. For more information, see the error and message fields."]moduleDeviceType=structtypenonrect=stringletcontext_="DeviceType"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:50)>>=(fun()->check_string_mini~min:2));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"DeviceType"jletto_json=simple_to_jsonto_valueendmoduleDescription=structtypenonrect=stringletcontext_="Description"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:255)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"Description"jletto_json=simple_to_jsonto_valueendmoduleRecurrenceInHours=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:24)>>=(fun()->check_int_mini~min:1));iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for RecurrenceInHours"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleSMBSecurityStrategy=structtypenonrect=|ClientSpecified|MandatorySigning|MandatoryEncryption|MandatoryEncryptionNoAes128|Non_static_idofstringletmakei=iletto_string=function|ClientSpecified->"ClientSpecified"|MandatorySigning->"MandatorySigning"|MandatoryEncryption->"MandatoryEncryption"|MandatoryEncryptionNoAes128->"MandatoryEncryptionNoAes128"|Non_static_ids->sletof_string=function|"ClientSpecified"->ClientSpecified|"MandatorySigning"->MandatorySigning|"MandatoryEncryption"->MandatoryEncryption|"MandatoryEncryptionNoAes128"->MandatoryEncryptionNoAes128|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 SMBSecurityStrategy"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"SMBSecurityStrategy"j)letto_json=simple_to_jsonto_valueendmoduleSMBLocalGroups=structtypenonrect={gatewayAdmins:UserList.toption[@ocaml.doc"A list of Active Directory users and groups that have local Gateway Admin permissions. Acceptable formats include: DOMAIN\\User1, user1, DOMAIN\\group1, and group1. Gateway Admins can use the Shared Folders Microsoft Management Console snap-in to force-close files that are open and locked."]}letmake?gatewayAdmins=fun()->{gatewayAdmins}letto_valuex=structure_to_value[("GatewayAdmins",(Option.mapx.gatewayAdmins~f:UserList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayAdmins=(Option.map~f:UserList.of_xml)(Xml.childxml_arg0"GatewayAdmins")inmake?gatewayAdmins()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayAdmins=field_mapjson__"GatewayAdmins"UserList.of_jsoninmake?gatewayAdmins()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A list of Active Directory users and groups that have special permissions for SMB file shares on the gateway."]moduleDayOfMonth=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:28)>>=(fun()->check_int_mini~min:1));iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for DayOfMonth"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleSoftwareUpdatePreferences=structtypenonrect={automaticUpdatePolicy:AutomaticUpdatePolicy.toption[@ocaml.doc"Indicates the automatic update policy for a gateway. ALL_VERSIONS - Enables regular gateway maintenance updates. EMERGENCY_VERSIONS_ONLY - Disables regular gateway maintenance updates. The gateway will still receive emergency version updates on rare occasions if necessary to remedy highly critical security or durability issues. You will be notified before an emergency version update is applied. These updates are applied during your gateway's scheduled maintenance window."]}letmake?automaticUpdatePolicy=fun()->{automaticUpdatePolicy}letto_valuex=structure_to_value[("AutomaticUpdatePolicy",(Option.mapx.automaticUpdatePolicy~f:AutomaticUpdatePolicy.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letautomaticUpdatePolicy=(Option.map~f:AutomaticUpdatePolicy.of_xml)(Xml.childxml_arg0"AutomaticUpdatePolicy")inmake?automaticUpdatePolicy()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letautomaticUpdatePolicy=field_mapjson__"AutomaticUpdatePolicy"AutomaticUpdatePolicy.of_jsoninmake?automaticUpdatePolicy()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A set of variables indicating the software update preferences for the gateway."]moduleCloudWatchLogGroupARN=structtypenonrect=stringletcontext_="CloudWatchLogGroupARN"letmakei=letopenResultinok_or_failwith(check_string_maxi~max:562);iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"CloudWatchLogGroupARN"jletto_json=simple_to_jsonto_valueendmoduleGatewayName=structtypenonrect=string[@@ocaml.doc"The name you configured for your gateway."]letcontext_="GatewayName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:2)>>=(fun()->(check_string_maxi~max:255)>>=(fun()->check_patterni~pattern:"^[ -\\.0-\\[\\]-~]*[!-\\.0-\\[\\]-~][ -\\.0-\\[\\]-~]*$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"GatewayName"jletto_json=simple_to_jsonto_valueend[@@ocaml.doc"The name you configured for your gateway."]moduleGatewayTimezone=structtypenonrect=stringletcontext_="GatewayTimezone"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:10)>>=(fun()->check_string_mini~min:3));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"GatewayTimezone"jletto_json=simple_to_jsonto_valueendmoduleDomainUserName=structtypenonrect=stringletcontext_="DomainUserName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:1024)>>=(fun()->check_patterni~pattern:"^\\w[\\w\\.\\- ]*$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"DomainUserName"jletto_json=simple_to_jsonto_valueendmoduleDomainUserPassword=structtypenonrect=stringletcontext_="DomainUserPassword"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:1024)>>=(fun()->check_patterni~pattern:"^[ -~]+$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"DomainUserPassword"jletto_json=simple_to_jsonto_valueendmoduleBandwidthRateLimitIntervals=structtypenonrect=BandwidthRateLimitInterval.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:20)>>=(fun()->check_list_mini~min:0));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:BandwidthRateLimitInterval.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:BandwidthRateLimitInterval.of_xml)letof_jsonj=list_of_json~kind:"BandwidthRateLimitIntervals"~of_json:BandwidthRateLimitInterval.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleClientToken=structtypenonrect=stringletcontext_="ClientToken"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:100)>>=(fun()->check_string_mini~min:5));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ClientToken"jletto_json=simple_to_jsonto_valueendmoduleSMBGuestPassword=structtypenonrect=stringletcontext_="SMBGuestPassword"letmakei=letopenResultinok_or_failwith((check_string_mini~min:6)>>=(fun()->(check_string_maxi~max:512)>>=(fun()->check_patterni~pattern:"^[ -~]+$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"SMBGuestPassword"jletto_json=simple_to_jsonto_valueendmoduleLocalConsolePassword=structtypenonrect=stringletcontext_="LocalConsolePassword"letmakei=letopenResultinok_or_failwith((check_string_mini~min:6)>>=(fun()->(check_string_maxi~max:512)>>=(fun()->check_patterni~pattern:"^[ -~]+$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"LocalConsolePassword"jletto_json=simple_to_jsonto_valueendmoduleResourceARN=structtypenonrect=stringletcontext_="ResourceARN"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:500)>>=(fun()->check_string_mini~min:50));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ResourceARN"jletto_json=simple_to_jsonto_valueendmoduleTagKeys=structtypenonrect=TagKey.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:TagKey.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:TagKey.of_xml)letof_jsonj=list_of_json~kind:"TagKeys"~of_json:TagKey.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleNotificationId=structtypenonrect=string[@@ocaml.doc"The randomly generated ID of the notification that was sent. This ID is in UUID format."]letcontext_="NotificationId"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:2048)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"NotificationId"jletto_json=simple_to_jsonto_valueend[@@ocaml.doc"The randomly generated ID of the notification that was sent. This ID is in UUID format."]moduleFolderList=structtypenonrect=Folder.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:50)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Folder.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:Folder.of_xml)letof_jsonj=list_of_json~kind:"FolderList"~of_json:Folder.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleMarker=structtypenonrect=stringletcontext_="Marker"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:2000)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"Marker"jletto_json=simple_to_jsonto_valueendmoduleVolumeInfos=structtypenonrect=VolumeInfo.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:VolumeInfo.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:VolumeInfo.of_xml)letof_jsonj=list_of_json~kind:"VolumeInfos"~of_json:VolumeInfo.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleVolumeRecoveryPointInfos=structtypenonrect=VolumeRecoveryPointInfo.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:VolumeRecoveryPointInfo.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:VolumeRecoveryPointInfo.of_xml)letof_jsonj=list_of_json~kind:"VolumeRecoveryPointInfos"~of_json:VolumeRecoveryPointInfo.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleInitiators=structtypenonrect=Initiator.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Initiator.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:Initiator.of_xml)letof_jsonj=list_of_json~kind:"Initiators"~of_json:Initiator.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleTapeInfos=structtypenonrect=TapeInfo.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:TapeInfo.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:TapeInfo.of_xml)letof_jsonj=list_of_json~kind:"TapeInfos"~of_json:TapeInfo.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleTapeARNs=structtypenonrect=TapeARN.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:TapeARN.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:TapeARN.of_xml)letof_jsonj=list_of_json~kind:"TapeARNs"~of_json:TapeARN.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmodulePoolInfos=structtypenonrect=PoolInfo.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:PoolInfo.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:PoolInfo.of_xml)letof_jsonj=list_of_json~kind:"PoolInfos"~of_json:PoolInfo.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmodulePoolARNs=structtypenonrect=PoolARN.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:PoolARN.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:PoolARN.of_xml)letof_jsonj=list_of_json~kind:"PoolARNs"~of_json:PoolARN.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleDisks=structtypenonrect=Disk.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Disk.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:Disk.of_xml)letof_jsonj=list_of_json~kind:"Disks"~of_json:Disk.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleGateways=structtypenonrect=GatewayInfo.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:GatewayInfo.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:GatewayInfo.of_xml)letof_jsonj=list_of_json~kind:"Gateways"~of_json:GatewayInfo.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleFileSystemAssociationSummaryList=structtypenonrect=FileSystemAssociationSummary.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:FileSystemAssociationSummary.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:FileSystemAssociationSummary.of_xml)letof_jsonj=list_of_json~kind:"FileSystemAssociationSummaryList"~of_json:FileSystemAssociationSummary.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleFileShareInfoList=structtypenonrect=FileShareInfo.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:FileShareInfo.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:FileShareInfo.of_xml)letof_jsonj=list_of_json~kind:"FileShareInfoList"~of_json:FileShareInfo.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleCacheReportList=structtypenonrect=CacheReportInfo.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:CacheReportInfo.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:CacheReportInfo.of_xml)letof_jsonj=list_of_json~kind:"CacheReportList"~of_json:CacheReportInfo.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAutomaticTapeCreationPolicyInfos=structtypenonrect=AutomaticTapeCreationPolicyInfo.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:AutomaticTapeCreationPolicyInfo.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:AutomaticTapeCreationPolicyInfo.of_xml)letof_jsonj=list_of_json~kind:"AutomaticTapeCreationPolicyInfos"~of_json:AutomaticTapeCreationPolicyInfo.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleActiveDirectoryStatus=structtypenonrect=|ACCESS_DENIED|DETACHED|JOINED|JOINING|NETWORK_ERROR|TIMEOUT|UNKNOWN_ERROR|INSUFFICIENT_PERMISSIONS|Non_static_idofstringletmakei=iletto_string=function|ACCESS_DENIED->"ACCESS_DENIED"|DETACHED->"DETACHED"|JOINED->"JOINED"|JOINING->"JOINING"|NETWORK_ERROR->"NETWORK_ERROR"|TIMEOUT->"TIMEOUT"|UNKNOWN_ERROR->"UNKNOWN_ERROR"|INSUFFICIENT_PERMISSIONS->"INSUFFICIENT_PERMISSIONS"|Non_static_ids->sletof_string=function|"ACCESS_DENIED"->ACCESS_DENIED|"DETACHED"->DETACHED|"JOINED"->JOINED|"JOINING"->JOINING|"NETWORK_ERROR"->NETWORK_ERROR|"TIMEOUT"->TIMEOUT|"UNKNOWN_ERROR"->UNKNOWN_ERROR|"INSUFFICIENT_PERMISSIONS"->INSUFFICIENT_PERMISSIONS|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 ActiveDirectoryStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ActiveDirectoryStatus"j)letto_json=simple_to_jsonto_valueendmoduleDomainName=structtypenonrect=stringletcontext_="DomainName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:1024)>>=(fun()->check_patterni~pattern:"^([a-zA-Z0-9]+[\\\\.-])+([a-zA-Z0-9])+$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"DomainName"jletto_json=simple_to_jsonto_valueendmoduleHosts=structtypenonrect=Host.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Host.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:Host.of_xml)letof_jsonj=list_of_json~kind:"Hosts"~of_json:Host.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleOrganizationalUnit=structtypenonrect=stringletcontext_="OrganizationalUnit"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:1024)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"OrganizationalUnit"jletto_json=simple_to_jsonto_valueendmoduleTimeoutInSeconds=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:3600)>>=(fun()->check_int_mini~min:0));iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for TimeoutInSeconds"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleDiskIds=structtypenonrect=DiskId.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:DiskId.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:DiskId.of_xml)letof_jsonj=list_of_json~kind:"DiskIds"~of_json:DiskId.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleVTLDevices=structtypenonrect=VTLDevice.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:VTLDevice.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:VTLDevice.of_xml)letof_jsonj=list_of_json~kind:"VTLDevices"~of_json:VTLDevice.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleVTLDeviceARNs=structtypenonrect=VTLDeviceARN.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:VTLDeviceARN.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:VTLDeviceARN.of_xml)letof_jsonj=list_of_json~kind:"VTLDeviceARNs"~of_json:VTLDeviceARN.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleTapes=structtypenonrect=Tape.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Tape.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:Tape.of_xml)letof_jsonj=list_of_json~kind:"Tapes"~of_json:Tape.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleTapeRecoveryPointInfos=structtypenonrect=TapeRecoveryPointInfo.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:TapeRecoveryPointInfo.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:TapeRecoveryPointInfo.of_xml)letof_jsonj=list_of_json~kind:"TapeRecoveryPointInfos"~of_json:TapeRecoveryPointInfo.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleTapeArchives=structtypenonrect=TapeArchive.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:TapeArchive.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:TapeArchive.of_xml)letof_jsonj=list_of_json~kind:"TapeArchives"~of_json:TapeArchive.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleStorediSCSIVolumes=structtypenonrect=StorediSCSIVolume.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:StorediSCSIVolume.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:StorediSCSIVolume.of_xml)letof_jsonj=list_of_json~kind:"StorediSCSIVolumes"~of_json:StorediSCSIVolume.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleVolumeARNs=structtypenonrect=VolumeARN.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:VolumeARN.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:VolumeARN.of_xml)letof_jsonj=list_of_json~kind:"VolumeARNs"~of_json:VolumeARN.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleSMBFileShareInfoList=structtypenonrect=SMBFileShareInfo.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:SMBFileShareInfo.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:SMBFileShareInfo.of_xml)letof_jsonj=list_of_json~kind:"SMBFileShareInfoList"~of_json:SMBFileShareInfo.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleFileShareARNList=structtypenonrect=FileShareARN.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:10)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:FileShareARN.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:FileShareARN.of_xml)letof_jsonj=list_of_json~kind:"FileShareARNList"~of_json:FileShareARN.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleNFSFileShareInfoList=structtypenonrect=NFSFileShareInfo.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:NFSFileShareInfo.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:NFSFileShareInfo.of_xml)letof_jsonj=list_of_json~kind:"NFSFileShareInfoList"~of_json:NFSFileShareInfo.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleEndpointType=structtypenonrect=stringletcontext_="EndpointType"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:8)>>=(fun()->check_string_mini~min:4));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"EndpointType"jletto_json=simple_to_jsonto_valueendmoduleGatewayNetworkInterfaces=structtypenonrect=NetworkInterface.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:NetworkInterface.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:NetworkInterface.of_xml)letof_jsonj=list_of_json~kind:"GatewayNetworkInterfaces"~of_json:NetworkInterface.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleGatewayState=structtypenonrect=stringletcontext_="GatewayState"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:25)>>=(fun()->check_string_mini~min:2));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"GatewayState"jletto_json=simple_to_jsonto_valueendmoduleLastSoftwareUpdate=structtypenonrect=stringletcontext_="LastSoftwareUpdate"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:25)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"LastSoftwareUpdate"jletto_json=simple_to_jsonto_valueendmoduleNextUpdateAvailabilityDate=structtypenonrect=stringletcontext_="NextUpdateAvailabilityDate"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:25)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"NextUpdateAvailabilityDate"jletto_json=simple_to_jsonto_valueendmoduleSoftwareUpdatesEndDate=structtypenonrect=stringletcontext_="SoftwareUpdatesEndDate"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:25)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"SoftwareUpdatesEndDate"jletto_json=simple_to_jsonto_valueendmoduleSupportedGatewayCapacities=structtypenonrect=GatewayCapacity.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:GatewayCapacity.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:GatewayCapacity.of_xml)letof_jsonj=list_of_json~kind:"SupportedGatewayCapacities"~of_json:GatewayCapacity.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleFileSystemAssociationInfoList=structtypenonrect=FileSystemAssociationInfo.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:FileSystemAssociationInfo.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:FileSystemAssociationInfo.of_xml)letof_jsonj=list_of_json~kind:"FileSystemAssociationInfoList"~of_json:FileSystemAssociationInfo.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleFileSystemAssociationARNList=structtypenonrect=FileSystemAssociationARN.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:10)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:FileSystemAssociationARN.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:FileSystemAssociationARN.of_xml)letof_jsonj=list_of_json~kind:"FileSystemAssociationARNList"~of_json:FileSystemAssociationARN.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleChapCredentials=structtypenonrect=ChapInfo.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ChapInfo.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:ChapInfo.of_xml)letof_jsonj=list_of_json~kind:"ChapCredentials"~of_json:ChapInfo.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleCachediSCSIVolumes=structtypenonrect=CachediSCSIVolume.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:CachediSCSIVolume.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:CachediSCSIVolume.of_xml)letof_jsonj=list_of_json~kind:"CachediSCSIVolumes"~of_json:CachediSCSIVolume.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleDouble=structtypenonrect=floatletmakei=iletof_string=Float.of_stringletto_valuex=`Doublexletto_queryv=to_queryto_valuevletto_headerx=Stdlib.Float.to_stringxletof_xmlxml_arg0=Float.of_string(string_of_xml~kind:"a double"xml_arg0)letof_jsonj=float_of_json~kind:"a double"jletto_json=simple_to_jsonto_valueendmoduleAvailabilityMonitorTestStatus=structtypenonrect=|COMPLETE|FAILED|PENDING|Non_static_idofstringletmakei=iletto_string=function|COMPLETE->"COMPLETE"|FAILED->"FAILED"|PENDING->"PENDING"|Non_static_ids->sletof_string=function|"COMPLETE"->COMPLETE|"FAILED"->FAILED|"PENDING"->PENDING|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration AvailabilityMonitorTestStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"AvailabilityMonitorTestStatus"j)letto_json=simple_to_jsonto_valueendmoduleBandwidthType=structtypenonrect=stringletcontext_="BandwidthType"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:25)>>=(fun()->check_string_mini~min:3));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"BandwidthType"jletto_json=simple_to_jsonto_valueendmoduleNumTapesToCreate=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:10)>>=(fun()->check_int_mini~min:1));iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for NumTapesToCreate"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleServiceUnavailableError=structtypenonrect={message:String_.toption[@ocaml.doc"A human-readable message describing the error that occurred."];error:StorageGatewayError.toption[@ocaml.doc"A StorageGatewayError that provides more information about the cause of the error."]}letmake?message=fun?error->fun()->{message;error}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:String_.to_value));("error",(Option.mapx.error~f:StorageGatewayError.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=leterror=(Option.map~f:StorageGatewayError.of_xml)(Xml.childxml_arg0"error")inletmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inmake?error?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=leterror=field_mapjson__"error"StorageGatewayError.of_jsoninletmessage=field_mapjson__"message"String_.of_jsoninmake?error?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"An internal server error has occurred because the service is unavailable. For more information, see the error and message fields."]moduleSnapshotDescription=structtypenonrect=stringletcontext_="SnapshotDescription"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:255)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"SnapshotDescription"jletto_json=simple_to_jsonto_valueendmoduleActivationKey=structtypenonrect=stringletcontext_="ActivationKey"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:50)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ActivationKey"jletto_json=simple_to_jsonto_valueendmoduleMediumChangerType=structtypenonrect=stringletcontext_="MediumChangerType"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:50)>>=(fun()->check_string_mini~min:2));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"MediumChangerType"jletto_json=simple_to_jsonto_valueendmoduleTapeDriveType=structtypenonrect=stringletcontext_="TapeDriveType"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:50)>>=(fun()->check_string_mini~min:2));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"TapeDriveType"jletto_json=simple_to_jsonto_valueendmoduleUpdateVTLDeviceTypeOutput=structtypenonrect={vTLDeviceARN:VTLDeviceARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the medium changer you have selected."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?vTLDeviceARN=fun()->{vTLDeviceARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("VTLDeviceARN",(Option.mapx.vTLDeviceARN~f:VTLDeviceARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvTLDeviceARN=(Option.map~f:VTLDeviceARN.of_xml)(Xml.childxml_arg0"VTLDeviceARN")inmake?vTLDeviceARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvTLDeviceARN=field_mapjson__"VTLDeviceARN"VTLDeviceARN.of_jsoninmake?vTLDeviceARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"UpdateVTLDeviceTypeOutput"]moduleUpdateVTLDeviceTypeInput=structtypenonrect={vTLDeviceARN:VTLDeviceARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the medium changer you want to select."];deviceType:DeviceType.t[@ocaml.doc"The type of medium changer you want to select. Valid Values: STK-L700 | AWS-Gateway-VTL | IBM-03584L32-0402"]}letcontext_="UpdateVTLDeviceTypeInput"letmake~vTLDeviceARN=fun~deviceType->fun()->{vTLDeviceARN;deviceType}letto_valuex=structure_to_value[("VTLDeviceARN",(Some(VTLDeviceARN.to_valuex.vTLDeviceARN)));("DeviceType",(Some(DeviceType.to_valuex.deviceType)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letdeviceType=DeviceType.of_xml(Xml.child_exn~context:context_xml_arg0"DeviceType")inletvTLDeviceARN=VTLDeviceARN.of_xml(Xml.child_exn~context:context_xml_arg0"VTLDeviceARN")inmake~deviceType~vTLDeviceARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letdeviceType=field_map_exnjson__"DeviceType"DeviceType.of_jsoninletvTLDeviceARN=field_map_exnjson__"VTLDeviceARN"VTLDeviceARN.of_jsoninmake~deviceType~vTLDeviceARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates the type of medium changer in a tape gateway. When you activate a tape gateway, you select a medium changer type for the tape gateway. This operation enables you to select a different type of medium changer after a tape gateway is activated. This operation is only supported in the tape gateway type."]moduleUpdateSnapshotScheduleOutput=structtypenonrect={volumeARN:VolumeARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation to return a list of gateway volumes."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?volumeARN=fun()->{volumeARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("VolumeARN",(Option.mapx.volumeARN~f:VolumeARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvolumeARN=(Option.map~f:VolumeARN.of_xml)(Xml.childxml_arg0"VolumeARN")inmake?volumeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvolumeARN=field_mapjson__"VolumeARN"VolumeARN.of_jsoninmake?volumeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the Amazon Resource Name (ARN) of the updated storage volume."]moduleUpdateSnapshotScheduleInput=structtypenonrect={volumeARN:VolumeARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation to return a list of gateway volumes."];startAt:HourOfDay.t[@ocaml.doc"The hour of the day at which the snapshot schedule begins represented as hh, where hh is the hour (0 to 23). The hour of the day is in the time zone of the gateway."];recurrenceInHours:RecurrenceInHours.t[@ocaml.doc"Frequency of snapshots. Specify the number of hours between snapshots."];description:Description.toption[@ocaml.doc"Optional description of the snapshot that overwrites the existing description."];tags:Tags.toption[@ocaml.doc"A list of up to 50 tags that can be assigned to a snapshot. Each tag is a key-value pair. Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the following special characters: + - = . _ : / \\@. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256."]}letcontext_="UpdateSnapshotScheduleInput"letmake?description=fun?tags->fun~volumeARN->fun~startAt->fun~recurrenceInHours->fun()->{description;tags;volumeARN;startAt;recurrenceInHours}letto_valuex=structure_to_value[("VolumeARN",(Some(VolumeARN.to_valuex.volumeARN)));("StartAt",(Some(HourOfDay.to_valuex.startAt)));("RecurrenceInHours",(Some(RecurrenceInHours.to_valuex.recurrenceInHours)));("Description",(Option.mapx.description~f:Description.to_value));("Tags",(Option.mapx.tags~f:Tags.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:Tags.of_xml)(Xml.childxml_arg0"Tags")inletdescription=(Option.map~f:Description.of_xml)(Xml.childxml_arg0"Description")inletrecurrenceInHours=RecurrenceInHours.of_xml(Xml.child_exn~context:context_xml_arg0"RecurrenceInHours")inletstartAt=HourOfDay.of_xml(Xml.child_exn~context:context_xml_arg0"StartAt")inletvolumeARN=VolumeARN.of_xml(Xml.child_exn~context:context_xml_arg0"VolumeARN")inmake?tags?description~recurrenceInHours~startAt~volumeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"Tags"Tags.of_jsoninletdescription=field_mapjson__"Description"Description.of_jsoninletrecurrenceInHours=field_map_exnjson__"RecurrenceInHours"RecurrenceInHours.of_jsoninletstartAt=field_map_exnjson__"StartAt"HourOfDay.of_jsoninletvolumeARN=field_map_exnjson__"VolumeARN"VolumeARN.of_jsoninmake?tags?description~recurrenceInHours~startAt~volumeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing one or more of the following fields: UpdateSnapshotScheduleInput$Description UpdateSnapshotScheduleInput$RecurrenceInHours UpdateSnapshotScheduleInput$StartAt UpdateSnapshotScheduleInput$VolumeARN"]moduleUpdateSMBSecurityStrategyOutput=structtypenonrect={gatewayARN:GatewayARN.toption}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun()->{gatewayARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates the SMB security strategy level for an Amazon S3 file gateway. This action is only supported for Amazon S3 file gateways. For information about configuring this setting using the Amazon Web Services console, see Setting a security level for your gateway in the Amazon S3 File Gateway User Guide. A higher security strategy level can affect performance of the gateway."]moduleUpdateSMBSecurityStrategyInput=structtypenonrect={gatewayARN:GatewayARN.t;sMBSecurityStrategy:SMBSecurityStrategy.t[@ocaml.doc"Specifies the type of security strategy. ClientSpecified: If you choose this option, requests are established based on what is negotiated by the client. This option is recommended when you want to maximize compatibility across different clients in your environment. Supported only for S3 File Gateway. MandatorySigning: If you choose this option, File Gateway only allows connections from SMBv2 or SMBv3 clients that have signing enabled. This option works with SMB clients on Microsoft Windows Vista, Windows Server 2008 or newer. MandatoryEncryption: If you choose this option, File Gateway only allows connections from SMBv3 clients that have encryption enabled. This option is recommended for environments that handle sensitive data. This option works with SMB clients on Microsoft Windows 8, Windows Server 2012 or newer. MandatoryEncryptionNoAes128: If you choose this option, File Gateway only allows connections from SMBv3 clients that use 256-bit AES encryption algorithms. 128-bit algorithms are not allowed. This option is recommended for environments that handle sensitive data. It works with SMB clients on Microsoft Windows 8, Windows Server 2012, or later."]}letcontext_="UpdateSMBSecurityStrategyInput"letmake~gatewayARN=fun~sMBSecurityStrategy->fun()->{gatewayARN;sMBSecurityStrategy}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)));("SMBSecurityStrategy",(Some(SMBSecurityStrategy.to_valuex.sMBSecurityStrategy)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsMBSecurityStrategy=SMBSecurityStrategy.of_xml(Xml.child_exn~context:context_xml_arg0"SMBSecurityStrategy")inletgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~sMBSecurityStrategy~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsMBSecurityStrategy=field_map_exnjson__"SMBSecurityStrategy"SMBSecurityStrategy.of_jsoninletgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~sMBSecurityStrategy~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates the SMB security strategy level for an Amazon S3 file gateway. This action is only supported for Amazon S3 file gateways. For information about configuring this setting using the Amazon Web Services console, see Setting a security level for your gateway in the Amazon S3 File Gateway User Guide. A higher security strategy level can affect performance of the gateway."]moduleUpdateSMBLocalGroupsOutput=structtypenonrect={gatewayARN:GatewayARN.toption}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun()->{gatewayARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates the list of Active Directory users and groups that have special permissions for SMB file shares on the gateway."]moduleUpdateSMBLocalGroupsInput=structtypenonrect={gatewayARN:GatewayARN.t;sMBLocalGroups:SMBLocalGroups.t[@ocaml.doc"A list of Active Directory users and groups that you want to grant special permissions for SMB file shares on the gateway."]}letcontext_="UpdateSMBLocalGroupsInput"letmake~gatewayARN=fun~sMBLocalGroups->fun()->{gatewayARN;sMBLocalGroups}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)));("SMBLocalGroups",(Some(SMBLocalGroups.to_valuex.sMBLocalGroups)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsMBLocalGroups=SMBLocalGroups.of_xml(Xml.child_exn~context:context_xml_arg0"SMBLocalGroups")inletgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~sMBLocalGroups~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsMBLocalGroups=field_map_exnjson__"SMBLocalGroups"SMBLocalGroups.of_jsoninletgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~sMBLocalGroups~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates the list of Active Directory users and groups that have special permissions for SMB file shares on the gateway."]moduleUpdateSMBFileShareVisibilityOutput=structtypenonrect={gatewayARN:GatewayARN.toption}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun()->{gatewayARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Controls whether the shares on an S3 File Gateway are visible in a net view or browse list. The operation is only supported for S3 File Gateways."]moduleUpdateSMBFileShareVisibilityInput=structtypenonrect={gatewayARN:GatewayARN.t;fileSharesVisible:Boolean.t[@ocaml.doc"The shares on this gateway appear when listing shares."]}letcontext_="UpdateSMBFileShareVisibilityInput"letmake~gatewayARN=fun~fileSharesVisible->fun()->{gatewayARN;fileSharesVisible}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)));("FileSharesVisible",(Some(Boolean.to_valuex.fileSharesVisible)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfileSharesVisible=Boolean.of_xml(Xml.child_exn~context:context_xml_arg0"FileSharesVisible")inletgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~fileSharesVisible~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfileSharesVisible=field_map_exnjson__"FileSharesVisible"Boolean.of_jsoninletgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~fileSharesVisible~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Controls whether the shares on an S3 File Gateway are visible in a net view or browse list. The operation is only supported for S3 File Gateways."]moduleUpdateSMBFileShareOutput=structtypenonrect={fileShareARN:FileShareARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the updated SMB file share."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?fileShareARN=fun()->{fileShareARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("FileShareARN",(Option.mapx.fileShareARN~f:FileShareARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfileShareARN=(Option.map~f:FileShareARN.of_xml)(Xml.childxml_arg0"FileShareARN")inmake?fileShareARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfileShareARN=field_mapjson__"FileShareARN"FileShareARN.of_jsoninmake?fileShareARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"UpdateSMBFileShareOutput"]moduleUpdateSMBFileShareInput=structtypenonrect={fileShareARN:FileShareARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the SMB file share that you want to update."];encryptionType:EncryptionType.toption[@ocaml.doc"A value that specifies the type of server-side encryption that the file share will use for the data that it stores in Amazon S3. We recommend using EncryptionType instead of KMSEncrypted to set the file share encryption method. You do not need to provide values for both parameters. If values for both parameters exist in the same request, then the specified encryption methods must not conflict. For example, if EncryptionType is SseS3, then KMSEncrypted must be false. If EncryptionType is SseKms or DsseKms, then KMSEncrypted must be true."];kMSEncrypted:Boolean.toption[@ocaml.doc"Optional. Set to true to use Amazon S3 server-side encryption with your own KMS key (SSE-KMS), or false to use a key managed by Amazon S3 (SSE-S3). To use dual-layer encryption (DSSE-KMS), set the EncryptionType parameter instead. We recommend using EncryptionType instead of KMSEncrypted to set the file share encryption method. You do not need to provide values for both parameters. If values for both parameters exist in the same request, then the specified encryption methods must not conflict. For example, if EncryptionType is SseS3, then KMSEncrypted must be false. If EncryptionType is SseKms or DsseKms, then KMSEncrypted must be true. Valid Values: true | false"];kMSKey:KMSKey.toption[@ocaml.doc"Optional. The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value must be set if KMSEncrypted is true, or if EncryptionType is SseKms or DsseKms."];defaultStorageClass:StorageClass.toption[@ocaml.doc"The default storage class for objects put into an Amazon S3 bucket by the S3 File Gateway. The default value is S3_STANDARD. Optional. Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA"];objectACL:ObjectACL.toption[@ocaml.doc"A value that sets the access control list (ACL) permission for objects in the S3 bucket that a S3 File Gateway puts objects into. The default value is private."];readOnly:Boolean.toption[@ocaml.doc"A value that sets the write status of a file share. Set this value to true to set write status to read-only, otherwise set to false. Valid Values: true | false"];guessMIMETypeEnabled:Boolean.toption[@ocaml.doc"A value that enables guessing of the MIME type for uploaded objects based on file extensions. Set this value to true to enable MIME type guessing, otherwise set to false. The default value is true. Valid Values: true | false"];requesterPays:Boolean.toption[@ocaml.doc"A value that sets who pays the cost of the request and the cost associated with data download from the S3 bucket. If this value is set to true, the requester pays the costs; otherwise, the S3 bucket owner pays. However, the S3 bucket owner always pays the cost of storing data. RequesterPays is a configuration for the S3 bucket that backs the file share, so make sure that the configuration on the file share is the same as the S3 bucket configuration. Valid Values: true | false"];sMBACLEnabled:Boolean.toption[@ocaml.doc"Set this value to true to enable access control list (ACL) on the SMB file share. Set it to false to map file and directory permissions to the POSIX permissions. For more information, see Using Windows ACLs to limit SMB file share access in the Amazon S3 File Gateway User Guide. Valid Values: true | false"];accessBasedEnumeration:Boolean.toption[@ocaml.doc"The files and folders on this share will only be visible to users with read access."];adminUserList:UserList.toption[@ocaml.doc"A list of users or groups in the Active Directory that have administrator rights to the file share. A group must be prefixed with the \\@ character. Acceptable formats include: DOMAIN\\User1, user1, \\@group1, and \\@DOMAIN\\group1. Can only be set if Authentication is set to ActiveDirectory."];validUserList:UserList.toption[@ocaml.doc"A list of users or groups in the Active Directory that are allowed to access the file share. A group must be prefixed with the \\@ character. Acceptable formats include: DOMAIN\\User1, user1, \\@group1, and \\@DOMAIN\\group1. Can only be set if Authentication is set to ActiveDirectory."];invalidUserList:UserList.toption[@ocaml.doc"A list of users or groups in the Active Directory that are not allowed to access the file share. A group must be prefixed with the \\@ character. Acceptable formats include: DOMAIN\\User1, user1, \\@group1, and \\@DOMAIN\\group1. Can only be set if Authentication is set to ActiveDirectory."];auditDestinationARN:AuditDestinationARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the storage used for audit logs."];caseSensitivity:CaseSensitivity.toption[@ocaml.doc"The case of an object name in an Amazon S3 bucket. For ClientSpecified, the client determines the case sensitivity. For CaseSensitive, the gateway determines the case sensitivity. The default value is ClientSpecified."];fileShareName:FileShareName.toption[@ocaml.doc"The name of the file share. Optional. FileShareName must be set if an S3 prefix name is set in LocationARN, or if an access point or access point alias is used. A valid SMB file share name cannot contain the following characters: \\[,\\],#,;,<,>,:,\",\\,/,|,?,*,+, or ASCII control characters 1-31."];cacheAttributes:CacheAttributes.toption[@ocaml.doc"Specifies refresh cache information for the file share."];notificationPolicy:NotificationPolicy.toption[@ocaml.doc"The notification policy of the file share. SettlingTimeInSeconds controls the number of seconds to wait after the last point in time a client wrote to a file before generating an ObjectUploaded notification. Because clients can make many small writes to files, it's best to set this parameter for as long as possible to avoid generating multiple notifications for the same file in a small time period. SettlingTimeInSeconds has no effect on the timing of the object uploading to Amazon S3, only the timing of the notification. This setting is not meant to specify an exact time at which the notification will be sent. In some cases, the gateway might require more than the specified delay time to generate and send notifications. The following example sets NotificationPolicy on with SettlingTimeInSeconds set to 60. \\{\\\"Upload\\\": \\{\\\"SettlingTimeInSeconds\\\": 60\\}\\} The following example sets NotificationPolicy off. \\{\\}"];oplocksEnabled:Boolean.toption[@ocaml.doc"Specifies whether opportunistic locking is enabled for the SMB file share. Enabling opportunistic locking on case-sensitive shares is not recommended for workloads that involve access to files with the same name in different case. Valid Values: true | false"]}letcontext_="UpdateSMBFileShareInput"letmake?encryptionType=fun?kMSEncrypted->fun?kMSKey->fun?defaultStorageClass->fun?objectACL->fun?readOnly->fun?guessMIMETypeEnabled->fun?requesterPays->fun?sMBACLEnabled->fun?accessBasedEnumeration->fun?adminUserList->fun?validUserList->fun?invalidUserList->fun?auditDestinationARN->fun?caseSensitivity->fun?fileShareName->fun?cacheAttributes->fun?notificationPolicy->fun?oplocksEnabled->fun~fileShareARN->fun()->{encryptionType;kMSEncrypted;kMSKey;defaultStorageClass;objectACL;readOnly;guessMIMETypeEnabled;requesterPays;sMBACLEnabled;accessBasedEnumeration;adminUserList;validUserList;invalidUserList;auditDestinationARN;caseSensitivity;fileShareName;cacheAttributes;notificationPolicy;oplocksEnabled;fileShareARN}letto_valuex=structure_to_value[("FileShareARN",(Some(FileShareARN.to_valuex.fileShareARN)));("EncryptionType",(Option.mapx.encryptionType~f:EncryptionType.to_value));("KMSEncrypted",(Option.mapx.kMSEncrypted~f:Boolean.to_value));("KMSKey",(Option.mapx.kMSKey~f:KMSKey.to_value));("DefaultStorageClass",(Option.mapx.defaultStorageClass~f:StorageClass.to_value));("ObjectACL",(Option.mapx.objectACL~f:ObjectACL.to_value));("ReadOnly",(Option.mapx.readOnly~f:Boolean.to_value));("GuessMIMETypeEnabled",(Option.mapx.guessMIMETypeEnabled~f:Boolean.to_value));("RequesterPays",(Option.mapx.requesterPays~f:Boolean.to_value));("SMBACLEnabled",(Option.mapx.sMBACLEnabled~f:Boolean.to_value));("AccessBasedEnumeration",(Option.mapx.accessBasedEnumeration~f:Boolean.to_value));("AdminUserList",(Option.mapx.adminUserList~f:UserList.to_value));("ValidUserList",(Option.mapx.validUserList~f:UserList.to_value));("InvalidUserList",(Option.mapx.invalidUserList~f:UserList.to_value));("AuditDestinationARN",(Option.mapx.auditDestinationARN~f:AuditDestinationARN.to_value));("CaseSensitivity",(Option.mapx.caseSensitivity~f:CaseSensitivity.to_value));("FileShareName",(Option.mapx.fileShareName~f:FileShareName.to_value));("CacheAttributes",(Option.mapx.cacheAttributes~f:CacheAttributes.to_value));("NotificationPolicy",(Option.mapx.notificationPolicy~f:NotificationPolicy.to_value));("OplocksEnabled",(Option.mapx.oplocksEnabled~f:Boolean.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letoplocksEnabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"OplocksEnabled")inletnotificationPolicy=(Option.map~f:NotificationPolicy.of_xml)(Xml.childxml_arg0"NotificationPolicy")inletcacheAttributes=(Option.map~f:CacheAttributes.of_xml)(Xml.childxml_arg0"CacheAttributes")inletfileShareName=(Option.map~f:FileShareName.of_xml)(Xml.childxml_arg0"FileShareName")inletcaseSensitivity=(Option.map~f:CaseSensitivity.of_xml)(Xml.childxml_arg0"CaseSensitivity")inletauditDestinationARN=(Option.map~f:AuditDestinationARN.of_xml)(Xml.childxml_arg0"AuditDestinationARN")inletinvalidUserList=(Option.map~f:UserList.of_xml)(Xml.childxml_arg0"InvalidUserList")inletvalidUserList=(Option.map~f:UserList.of_xml)(Xml.childxml_arg0"ValidUserList")inletadminUserList=(Option.map~f:UserList.of_xml)(Xml.childxml_arg0"AdminUserList")inletaccessBasedEnumeration=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"AccessBasedEnumeration")inletsMBACLEnabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"SMBACLEnabled")inletrequesterPays=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"RequesterPays")inletguessMIMETypeEnabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"GuessMIMETypeEnabled")inletreadOnly=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"ReadOnly")inletobjectACL=(Option.map~f:ObjectACL.of_xml)(Xml.childxml_arg0"ObjectACL")inletdefaultStorageClass=(Option.map~f:StorageClass.of_xml)(Xml.childxml_arg0"DefaultStorageClass")inletkMSKey=(Option.map~f:KMSKey.of_xml)(Xml.childxml_arg0"KMSKey")inletkMSEncrypted=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"KMSEncrypted")inletencryptionType=(Option.map~f:EncryptionType.of_xml)(Xml.childxml_arg0"EncryptionType")inletfileShareARN=FileShareARN.of_xml(Xml.child_exn~context:context_xml_arg0"FileShareARN")inmake?oplocksEnabled?notificationPolicy?cacheAttributes?fileShareName?caseSensitivity?auditDestinationARN?invalidUserList?validUserList?adminUserList?accessBasedEnumeration?sMBACLEnabled?requesterPays?guessMIMETypeEnabled?readOnly?objectACL?defaultStorageClass?kMSKey?kMSEncrypted?encryptionType~fileShareARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letoplocksEnabled=field_mapjson__"OplocksEnabled"Boolean.of_jsoninletnotificationPolicy=field_mapjson__"NotificationPolicy"NotificationPolicy.of_jsoninletcacheAttributes=field_mapjson__"CacheAttributes"CacheAttributes.of_jsoninletfileShareName=field_mapjson__"FileShareName"FileShareName.of_jsoninletcaseSensitivity=field_mapjson__"CaseSensitivity"CaseSensitivity.of_jsoninletauditDestinationARN=field_mapjson__"AuditDestinationARN"AuditDestinationARN.of_jsoninletinvalidUserList=field_mapjson__"InvalidUserList"UserList.of_jsoninletvalidUserList=field_mapjson__"ValidUserList"UserList.of_jsoninletadminUserList=field_mapjson__"AdminUserList"UserList.of_jsoninletaccessBasedEnumeration=field_mapjson__"AccessBasedEnumeration"Boolean.of_jsoninletsMBACLEnabled=field_mapjson__"SMBACLEnabled"Boolean.of_jsoninletrequesterPays=field_mapjson__"RequesterPays"Boolean.of_jsoninletguessMIMETypeEnabled=field_mapjson__"GuessMIMETypeEnabled"Boolean.of_jsoninletreadOnly=field_mapjson__"ReadOnly"Boolean.of_jsoninletobjectACL=field_mapjson__"ObjectACL"ObjectACL.of_jsoninletdefaultStorageClass=field_mapjson__"DefaultStorageClass"StorageClass.of_jsoninletkMSKey=field_mapjson__"KMSKey"KMSKey.of_jsoninletkMSEncrypted=field_mapjson__"KMSEncrypted"Boolean.of_jsoninletencryptionType=field_mapjson__"EncryptionType"EncryptionType.of_jsoninletfileShareARN=field_map_exnjson__"FileShareARN"FileShareARN.of_jsoninmake?oplocksEnabled?notificationPolicy?cacheAttributes?fileShareName?caseSensitivity?auditDestinationARN?invalidUserList?validUserList?adminUserList?accessBasedEnumeration?sMBACLEnabled?requesterPays?guessMIMETypeEnabled?readOnly?objectACL?defaultStorageClass?kMSKey?kMSEncrypted?encryptionType~fileShareARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"UpdateSMBFileShareInput"]moduleUpdateNFSFileShareOutput=structtypenonrect={fileShareARN:FileShareARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the updated file share."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?fileShareARN=fun()->{fileShareARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("FileShareARN",(Option.mapx.fileShareARN~f:FileShareARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfileShareARN=(Option.map~f:FileShareARN.of_xml)(Xml.childxml_arg0"FileShareARN")inmake?fileShareARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfileShareARN=field_mapjson__"FileShareARN"FileShareARN.of_jsoninmake?fileShareARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"UpdateNFSFileShareOutput"]moduleUpdateNFSFileShareInput=structtypenonrect={fileShareARN:FileShareARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the file share to be updated."];encryptionType:EncryptionType.toption[@ocaml.doc"A value that specifies the type of server-side encryption that the file share will use for the data that it stores in Amazon S3. We recommend using EncryptionType instead of KMSEncrypted to set the file share encryption method. You do not need to provide values for both parameters. If values for both parameters exist in the same request, then the specified encryption methods must not conflict. For example, if EncryptionType is SseS3, then KMSEncrypted must be false. If EncryptionType is SseKms or DsseKms, then KMSEncrypted must be true."];kMSEncrypted:Boolean.toption[@ocaml.doc"Optional. Set to true to use Amazon S3 server-side encryption with your own KMS key (SSE-KMS), or false to use a key managed by Amazon S3 (SSE-S3). To use dual-layer encryption (DSSE-KMS), set the EncryptionType parameter instead. We recommend using EncryptionType instead of KMSEncrypted to set the file share encryption method. You do not need to provide values for both parameters. If values for both parameters exist in the same request, then the specified encryption methods must not conflict. For example, if EncryptionType is SseS3, then KMSEncrypted must be false. If EncryptionType is SseKms or DsseKms, then KMSEncrypted must be true. Valid Values: true | false"];kMSKey:KMSKey.toption[@ocaml.doc"Optional. The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value must be set if KMSEncrypted is true, or if EncryptionType is SseKms or DsseKms."];nFSFileShareDefaults:NFSFileShareDefaults.toption[@ocaml.doc"The default values for the file share. Optional."];defaultStorageClass:StorageClass.toption[@ocaml.doc"The default storage class for objects put into an Amazon S3 bucket by the S3 File Gateway. The default value is S3_STANDARD. Optional. Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA"];objectACL:ObjectACL.toption[@ocaml.doc"A value that sets the access control list (ACL) permission for objects in the S3 bucket that a S3 File Gateway puts objects into. The default value is private."];clientList:FileShareClientList.toption[@ocaml.doc"The list of clients that are allowed to access the S3 File Gateway. The list must contain either valid IPv4/IPv6 addresses or valid CIDR blocks."];squash:Squash.toption[@ocaml.doc"The user mapped to anonymous user. Valid values are the following: RootSquash: Only root is mapped to anonymous user. NoSquash: No one is mapped to anonymous user. AllSquash: Everyone is mapped to anonymous user."];readOnly:Boolean.toption[@ocaml.doc"A value that sets the write status of a file share. Set this value to true to set the write status to read-only, otherwise set to false. Valid Values: true | false"];guessMIMETypeEnabled:Boolean.toption[@ocaml.doc"A value that enables guessing of the MIME type for uploaded objects based on file extensions. Set this value to true to enable MIME type guessing, otherwise set to false. The default value is true. Valid Values: true | false"];requesterPays:Boolean.toption[@ocaml.doc"A value that sets who pays the cost of the request and the cost associated with data download from the S3 bucket. If this value is set to true, the requester pays the costs; otherwise, the S3 bucket owner pays. However, the S3 bucket owner always pays the cost of storing data. RequesterPays is a configuration for the S3 bucket that backs the file share, so make sure that the configuration on the file share is the same as the S3 bucket configuration. Valid Values: true | false"];fileShareName:FileShareName.toption[@ocaml.doc"The name of the file share. Optional. FileShareName must be set if an S3 prefix name is set in LocationARN, or if an access point or access point alias is used. A valid NFS file share name can only contain the following characters: a-z, A-Z, 0-9, -, ., and _."];cacheAttributes:CacheAttributes.toption[@ocaml.doc"Specifies refresh cache information for the file share."];notificationPolicy:NotificationPolicy.toption[@ocaml.doc"The notification policy of the file share. SettlingTimeInSeconds controls the number of seconds to wait after the last point in time a client wrote to a file before generating an ObjectUploaded notification. Because clients can make many small writes to files, it's best to set this parameter for as long as possible to avoid generating multiple notifications for the same file in a small time period. SettlingTimeInSeconds has no effect on the timing of the object uploading to Amazon S3, only the timing of the notification. This setting is not meant to specify an exact time at which the notification will be sent. In some cases, the gateway might require more than the specified delay time to generate and send notifications. The following example sets NotificationPolicy on with SettlingTimeInSeconds set to 60. \\{\\\"Upload\\\": \\{\\\"SettlingTimeInSeconds\\\": 60\\}\\} The following example sets NotificationPolicy off. \\{\\}"];auditDestinationARN:AuditDestinationARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the storage used for audit logs."]}letcontext_="UpdateNFSFileShareInput"letmake?encryptionType=fun?kMSEncrypted->fun?kMSKey->fun?nFSFileShareDefaults->fun?defaultStorageClass->fun?objectACL->fun?clientList->fun?squash->fun?readOnly->fun?guessMIMETypeEnabled->fun?requesterPays->fun?fileShareName->fun?cacheAttributes->fun?notificationPolicy->fun?auditDestinationARN->fun~fileShareARN->fun()->{encryptionType;kMSEncrypted;kMSKey;nFSFileShareDefaults;defaultStorageClass;objectACL;clientList;squash;readOnly;guessMIMETypeEnabled;requesterPays;fileShareName;cacheAttributes;notificationPolicy;auditDestinationARN;fileShareARN}letto_valuex=structure_to_value[("FileShareARN",(Some(FileShareARN.to_valuex.fileShareARN)));("EncryptionType",(Option.mapx.encryptionType~f:EncryptionType.to_value));("KMSEncrypted",(Option.mapx.kMSEncrypted~f:Boolean.to_value));("KMSKey",(Option.mapx.kMSKey~f:KMSKey.to_value));("NFSFileShareDefaults",(Option.mapx.nFSFileShareDefaults~f:NFSFileShareDefaults.to_value));("DefaultStorageClass",(Option.mapx.defaultStorageClass~f:StorageClass.to_value));("ObjectACL",(Option.mapx.objectACL~f:ObjectACL.to_value));("ClientList",(Option.mapx.clientList~f:FileShareClientList.to_value));("Squash",(Option.mapx.squash~f:Squash.to_value));("ReadOnly",(Option.mapx.readOnly~f:Boolean.to_value));("GuessMIMETypeEnabled",(Option.mapx.guessMIMETypeEnabled~f:Boolean.to_value));("RequesterPays",(Option.mapx.requesterPays~f:Boolean.to_value));("FileShareName",(Option.mapx.fileShareName~f:FileShareName.to_value));("CacheAttributes",(Option.mapx.cacheAttributes~f:CacheAttributes.to_value));("NotificationPolicy",(Option.mapx.notificationPolicy~f:NotificationPolicy.to_value));("AuditDestinationARN",(Option.mapx.auditDestinationARN~f:AuditDestinationARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letauditDestinationARN=(Option.map~f:AuditDestinationARN.of_xml)(Xml.childxml_arg0"AuditDestinationARN")inletnotificationPolicy=(Option.map~f:NotificationPolicy.of_xml)(Xml.childxml_arg0"NotificationPolicy")inletcacheAttributes=(Option.map~f:CacheAttributes.of_xml)(Xml.childxml_arg0"CacheAttributes")inletfileShareName=(Option.map~f:FileShareName.of_xml)(Xml.childxml_arg0"FileShareName")inletrequesterPays=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"RequesterPays")inletguessMIMETypeEnabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"GuessMIMETypeEnabled")inletreadOnly=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"ReadOnly")inletsquash=(Option.map~f:Squash.of_xml)(Xml.childxml_arg0"Squash")inletclientList=(Option.map~f:FileShareClientList.of_xml)(Xml.childxml_arg0"ClientList")inletobjectACL=(Option.map~f:ObjectACL.of_xml)(Xml.childxml_arg0"ObjectACL")inletdefaultStorageClass=(Option.map~f:StorageClass.of_xml)(Xml.childxml_arg0"DefaultStorageClass")inletnFSFileShareDefaults=(Option.map~f:NFSFileShareDefaults.of_xml)(Xml.childxml_arg0"NFSFileShareDefaults")inletkMSKey=(Option.map~f:KMSKey.of_xml)(Xml.childxml_arg0"KMSKey")inletkMSEncrypted=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"KMSEncrypted")inletencryptionType=(Option.map~f:EncryptionType.of_xml)(Xml.childxml_arg0"EncryptionType")inletfileShareARN=FileShareARN.of_xml(Xml.child_exn~context:context_xml_arg0"FileShareARN")inmake?auditDestinationARN?notificationPolicy?cacheAttributes?fileShareName?requesterPays?guessMIMETypeEnabled?readOnly?squash?clientList?objectACL?defaultStorageClass?nFSFileShareDefaults?kMSKey?kMSEncrypted?encryptionType~fileShareARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letauditDestinationARN=field_mapjson__"AuditDestinationARN"AuditDestinationARN.of_jsoninletnotificationPolicy=field_mapjson__"NotificationPolicy"NotificationPolicy.of_jsoninletcacheAttributes=field_mapjson__"CacheAttributes"CacheAttributes.of_jsoninletfileShareName=field_mapjson__"FileShareName"FileShareName.of_jsoninletrequesterPays=field_mapjson__"RequesterPays"Boolean.of_jsoninletguessMIMETypeEnabled=field_mapjson__"GuessMIMETypeEnabled"Boolean.of_jsoninletreadOnly=field_mapjson__"ReadOnly"Boolean.of_jsoninletsquash=field_mapjson__"Squash"Squash.of_jsoninletclientList=field_mapjson__"ClientList"FileShareClientList.of_jsoninletobjectACL=field_mapjson__"ObjectACL"ObjectACL.of_jsoninletdefaultStorageClass=field_mapjson__"DefaultStorageClass"StorageClass.of_jsoninletnFSFileShareDefaults=field_mapjson__"NFSFileShareDefaults"NFSFileShareDefaults.of_jsoninletkMSKey=field_mapjson__"KMSKey"KMSKey.of_jsoninletkMSEncrypted=field_mapjson__"KMSEncrypted"Boolean.of_jsoninletencryptionType=field_mapjson__"EncryptionType"EncryptionType.of_jsoninletfileShareARN=field_map_exnjson__"FileShareARN"FileShareARN.of_jsoninmake?auditDestinationARN?notificationPolicy?cacheAttributes?fileShareName?requesterPays?guessMIMETypeEnabled?readOnly?squash?clientList?objectACL?defaultStorageClass?nFSFileShareDefaults?kMSKey?kMSEncrypted?encryptionType~fileShareARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"UpdateNFSFileShareInput"]moduleUpdateMaintenanceStartTimeOutput=structtypenonrect={gatewayARN:GatewayARN.toption}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun()->{gatewayARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the Amazon Resource Name (ARN) of the gateway whose maintenance start time is updated."]moduleUpdateMaintenanceStartTimeInput=structtypenonrect={gatewayARN:GatewayARN.t;hourOfDay:HourOfDay.toption[@ocaml.doc"The hour component of the maintenance start time represented as hh, where hh is the hour (00 to 23). The hour of the day is in the time zone of the gateway."];minuteOfHour:MinuteOfHour.toption[@ocaml.doc"The minute component of the maintenance start time represented as mm, where mm is the minute (00 to 59). The minute of the hour is in the time zone of the gateway."];dayOfWeek:DayOfWeek.toption[@ocaml.doc"The day of the week component of the maintenance start time week represented as an ordinal number from 0 to 6, where 0 represents Sunday and 6 represents Saturday."];dayOfMonth:DayOfMonth.toption[@ocaml.doc"The day of the month component of the maintenance start time represented as an ordinal number from 1 to 28, where 1 represents the first day of the month. It is not possible to set the maintenance schedule to start on days 29 through 31."];softwareUpdatePreferences:SoftwareUpdatePreferences.toption[@ocaml.doc"A set of variables indicating the software update preferences for the gateway. Includes AutomaticUpdatePolicy field with the following inputs: ALL_VERSIONS - Enables regular gateway maintenance updates. EMERGENCY_VERSIONS_ONLY - Disables regular gateway maintenance updates. The gateway will still receive emergency version updates on rare occasions if necessary to remedy highly critical security or durability issues. You will be notified before an emergency version update is applied. These updates are applied during your gateway's scheduled maintenance window."]}letcontext_="UpdateMaintenanceStartTimeInput"letmake?hourOfDay=fun?minuteOfHour->fun?dayOfWeek->fun?dayOfMonth->fun?softwareUpdatePreferences->fun~gatewayARN->fun()->{hourOfDay;minuteOfHour;dayOfWeek;dayOfMonth;softwareUpdatePreferences;gatewayARN}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)));("HourOfDay",(Option.mapx.hourOfDay~f:HourOfDay.to_value));("MinuteOfHour",(Option.mapx.minuteOfHour~f:MinuteOfHour.to_value));("DayOfWeek",(Option.mapx.dayOfWeek~f:DayOfWeek.to_value));("DayOfMonth",(Option.mapx.dayOfMonth~f:DayOfMonth.to_value));("SoftwareUpdatePreferences",(Option.mapx.softwareUpdatePreferences~f:SoftwareUpdatePreferences.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsoftwareUpdatePreferences=(Option.map~f:SoftwareUpdatePreferences.of_xml)(Xml.childxml_arg0"SoftwareUpdatePreferences")inletdayOfMonth=(Option.map~f:DayOfMonth.of_xml)(Xml.childxml_arg0"DayOfMonth")inletdayOfWeek=(Option.map~f:DayOfWeek.of_xml)(Xml.childxml_arg0"DayOfWeek")inletminuteOfHour=(Option.map~f:MinuteOfHour.of_xml)(Xml.childxml_arg0"MinuteOfHour")inlethourOfDay=(Option.map~f:HourOfDay.of_xml)(Xml.childxml_arg0"HourOfDay")inletgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake?softwareUpdatePreferences?dayOfMonth?dayOfWeek?minuteOfHour?hourOfDay~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsoftwareUpdatePreferences=field_mapjson__"SoftwareUpdatePreferences"SoftwareUpdatePreferences.of_jsoninletdayOfMonth=field_mapjson__"DayOfMonth"DayOfMonth.of_jsoninletdayOfWeek=field_mapjson__"DayOfWeek"DayOfWeek.of_jsoninletminuteOfHour=field_mapjson__"MinuteOfHour"MinuteOfHour.of_jsoninlethourOfDay=field_mapjson__"HourOfDay"HourOfDay.of_jsoninletgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake?softwareUpdatePreferences?dayOfMonth?dayOfWeek?minuteOfHour?hourOfDay~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the following fields: UpdateMaintenanceStartTimeInput$SoftwareUpdatePreferences UpdateMaintenanceStartTimeInput$DayOfMonth UpdateMaintenanceStartTimeInput$DayOfWeek UpdateMaintenanceStartTimeInput$HourOfDay UpdateMaintenanceStartTimeInput$MinuteOfHour"]moduleUpdateGatewaySoftwareNowOutput=structtypenonrect={gatewayARN:GatewayARN.toption}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun()->{gatewayARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the Amazon Resource Name (ARN) of the gateway that was updated."]moduleUpdateGatewaySoftwareNowInput=structtypenonrect={gatewayARN:GatewayARN.t}letcontext_="UpdateGatewaySoftwareNowInput"letmake~gatewayARN=fun()->{gatewayARN}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the Amazon Resource Name (ARN) of the gateway to update."]moduleUpdateGatewayInformationOutput=structtypenonrect={gatewayARN:GatewayARN.toption;gatewayName:String_.toption[@ocaml.doc"The name you configured for your gateway."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun?gatewayName->fun()->{gatewayARN;gatewayName}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value));("GatewayName",(Option.mapx.gatewayName~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"GatewayName")inletgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?gatewayName?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayName=field_mapjson__"GatewayName"String_.of_jsoninletgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?gatewayName?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the Amazon Resource Name (ARN) of the gateway that was updated."]moduleUpdateGatewayInformationInput=structtypenonrect={gatewayARN:GatewayARN.t;gatewayName:GatewayName.toption;gatewayTimezone:GatewayTimezone.toption[@ocaml.doc"A value that indicates the time zone of the gateway."];cloudWatchLogGroupARN:CloudWatchLogGroupARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that you want to use to monitor and log events in the gateway. For more information, see What is Amazon CloudWatch Logs?"];gatewayCapacity:GatewayCapacity.toption[@ocaml.doc"Specifies the size of the gateway's metadata cache. This setting impacts gateway performance and hardware recommendations. For more information, see Performance guidance for gateways with multiple file shares in the Amazon S3 File Gateway User Guide."]}letcontext_="UpdateGatewayInformationInput"letmake?gatewayName=fun?gatewayTimezone->fun?cloudWatchLogGroupARN->fun?gatewayCapacity->fun~gatewayARN->fun()->{gatewayName;gatewayTimezone;cloudWatchLogGroupARN;gatewayCapacity;gatewayARN}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)));("GatewayName",(Option.mapx.gatewayName~f:GatewayName.to_value));("GatewayTimezone",(Option.mapx.gatewayTimezone~f:GatewayTimezone.to_value));("CloudWatchLogGroupARN",(Option.mapx.cloudWatchLogGroupARN~f:CloudWatchLogGroupARN.to_value));("GatewayCapacity",(Option.mapx.gatewayCapacity~f:GatewayCapacity.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayCapacity=(Option.map~f:GatewayCapacity.of_xml)(Xml.childxml_arg0"GatewayCapacity")inletcloudWatchLogGroupARN=(Option.map~f:CloudWatchLogGroupARN.of_xml)(Xml.childxml_arg0"CloudWatchLogGroupARN")inletgatewayTimezone=(Option.map~f:GatewayTimezone.of_xml)(Xml.childxml_arg0"GatewayTimezone")inletgatewayName=(Option.map~f:GatewayName.of_xml)(Xml.childxml_arg0"GatewayName")inletgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake?gatewayCapacity?cloudWatchLogGroupARN?gatewayTimezone?gatewayName~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayCapacity=field_mapjson__"GatewayCapacity"GatewayCapacity.of_jsoninletcloudWatchLogGroupARN=field_mapjson__"CloudWatchLogGroupARN"CloudWatchLogGroupARN.of_jsoninletgatewayTimezone=field_mapjson__"GatewayTimezone"GatewayTimezone.of_jsoninletgatewayName=field_mapjson__"GatewayName"GatewayName.of_jsoninletgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake?gatewayCapacity?cloudWatchLogGroupARN?gatewayTimezone?gatewayName~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates a gateway's metadata, which includes the gateway's name, time zone, and metadata cache size. To specify which gateway to update, use the Amazon Resource Name (ARN) of the gateway in your request. For gateways activated after September 2, 2015, the gateway's ARN contains the gateway ID rather than the gateway name. However, changing the name of the gateway has no effect on the gateway's ARN."]moduleUpdateFileSystemAssociationOutput=structtypenonrect={fileSystemAssociationARN:FileSystemAssociationARN.toption[@ocaml.doc"The ARN of the updated file system association."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?fileSystemAssociationARN=fun()->{fileSystemAssociationARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("FileSystemAssociationARN",(Option.mapx.fileSystemAssociationARN~f:FileSystemAssociationARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfileSystemAssociationARN=(Option.map~f:FileSystemAssociationARN.of_xml)(Xml.childxml_arg0"FileSystemAssociationARN")inmake?fileSystemAssociationARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfileSystemAssociationARN=field_mapjson__"FileSystemAssociationARN"FileSystemAssociationARN.of_jsoninmake?fileSystemAssociationARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates a file system association. This operation is only supported in the FSx File Gateways."]moduleUpdateFileSystemAssociationInput=structtypenonrect={fileSystemAssociationARN:FileSystemAssociationARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the file system association that you want to update."];userName:DomainUserName.toption[@ocaml.doc"The user name of the user credential that has permission to access the root share D$ of the Amazon FSx file system. The user account must belong to the Amazon FSx delegated admin user group."];password:DomainUserPassword.toption[@ocaml.doc"The password of the user credential."];auditDestinationARN:AuditDestinationARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the storage used for the audit logs."];cacheAttributes:CacheAttributes.toption}letcontext_="UpdateFileSystemAssociationInput"letmake?userName=fun?password->fun?auditDestinationARN->fun?cacheAttributes->fun~fileSystemAssociationARN->fun()->{userName;password;auditDestinationARN;cacheAttributes;fileSystemAssociationARN}letto_valuex=structure_to_value[("FileSystemAssociationARN",(Some(FileSystemAssociationARN.to_valuex.fileSystemAssociationARN)));("UserName",(Option.mapx.userName~f:DomainUserName.to_value));("Password",(Option.mapx.password~f:DomainUserPassword.to_value));("AuditDestinationARN",(Option.mapx.auditDestinationARN~f:AuditDestinationARN.to_value));("CacheAttributes",(Option.mapx.cacheAttributes~f:CacheAttributes.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcacheAttributes=(Option.map~f:CacheAttributes.of_xml)(Xml.childxml_arg0"CacheAttributes")inletauditDestinationARN=(Option.map~f:AuditDestinationARN.of_xml)(Xml.childxml_arg0"AuditDestinationARN")inletpassword=(Option.map~f:DomainUserPassword.of_xml)(Xml.childxml_arg0"Password")inletuserName=(Option.map~f:DomainUserName.of_xml)(Xml.childxml_arg0"UserName")inletfileSystemAssociationARN=FileSystemAssociationARN.of_xml(Xml.child_exn~context:context_xml_arg0"FileSystemAssociationARN")inmake?cacheAttributes?auditDestinationARN?password?userName~fileSystemAssociationARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcacheAttributes=field_mapjson__"CacheAttributes"CacheAttributes.of_jsoninletauditDestinationARN=field_mapjson__"AuditDestinationARN"AuditDestinationARN.of_jsoninletpassword=field_mapjson__"Password"DomainUserPassword.of_jsoninletuserName=field_mapjson__"UserName"DomainUserName.of_jsoninletfileSystemAssociationARN=field_map_exnjson__"FileSystemAssociationARN"FileSystemAssociationARN.of_jsoninmake?cacheAttributes?auditDestinationARN?password?userName~fileSystemAssociationARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates a file system association. This operation is only supported in the FSx File Gateways."]moduleUpdateChapCredentialsOutput=structtypenonrect={targetARN:TargetARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the target. This is the same target specified in the request."];initiatorName:IqnName.toption[@ocaml.doc"The iSCSI initiator that connects to the target. This is the same initiator name specified in the request."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?targetARN=fun?initiatorName->fun()->{targetARN;initiatorName}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("TargetARN",(Option.mapx.targetARN~f:TargetARN.to_value));("InitiatorName",(Option.mapx.initiatorName~f:IqnName.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letinitiatorName=(Option.map~f:IqnName.of_xml)(Xml.childxml_arg0"InitiatorName")inlettargetARN=(Option.map~f:TargetARN.of_xml)(Xml.childxml_arg0"TargetARN")inmake?initiatorName?targetARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letinitiatorName=field_mapjson__"InitiatorName"IqnName.of_jsoninlettargetARN=field_mapjson__"TargetARN"TargetARN.of_jsoninmake?initiatorName?targetARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the following fields:"]moduleUpdateChapCredentialsInput=structtypenonrect={targetARN:TargetARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes operation to return the TargetARN for specified VolumeARN."];secretToAuthenticateInitiator:ChapSecret.t[@ocaml.doc"The secret key that the initiator (for example, the Windows client) must provide to participate in mutual CHAP with the target. The secret key must be between 12 and 16 bytes when encoded in UTF-8."];initiatorName:IqnName.t[@ocaml.doc"The iSCSI initiator that connects to the target."];secretToAuthenticateTarget:ChapSecret.toption[@ocaml.doc"The secret key that the target must provide to participate in mutual CHAP with the initiator (e.g. Windows client). Byte constraints: Minimum bytes of 12. Maximum bytes of 16. The secret key must be between 12 and 16 bytes when encoded in UTF-8."]}letcontext_="UpdateChapCredentialsInput"letmake?secretToAuthenticateTarget=fun~targetARN->fun~secretToAuthenticateInitiator->fun~initiatorName->fun()->{secretToAuthenticateTarget;targetARN;secretToAuthenticateInitiator;initiatorName}letto_valuex=structure_to_value[("TargetARN",(Some(TargetARN.to_valuex.targetARN)));("SecretToAuthenticateInitiator",(Some(ChapSecret.to_valuex.secretToAuthenticateInitiator)));("InitiatorName",(Some(IqnName.to_valuex.initiatorName)));("SecretToAuthenticateTarget",(Option.mapx.secretToAuthenticateTarget~f:ChapSecret.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsecretToAuthenticateTarget=(Option.map~f:ChapSecret.of_xml)(Xml.childxml_arg0"SecretToAuthenticateTarget")inletinitiatorName=IqnName.of_xml(Xml.child_exn~context:context_xml_arg0"InitiatorName")inletsecretToAuthenticateInitiator=ChapSecret.of_xml(Xml.child_exn~context:context_xml_arg0"SecretToAuthenticateInitiator")inlettargetARN=TargetARN.of_xml(Xml.child_exn~context:context_xml_arg0"TargetARN")inmake?secretToAuthenticateTarget~initiatorName~secretToAuthenticateInitiator~targetARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsecretToAuthenticateTarget=field_mapjson__"SecretToAuthenticateTarget"ChapSecret.of_jsoninletinitiatorName=field_map_exnjson__"InitiatorName"IqnName.of_jsoninletsecretToAuthenticateInitiator=field_map_exnjson__"SecretToAuthenticateInitiator"ChapSecret.of_jsoninlettargetARN=field_map_exnjson__"TargetARN"TargetARN.of_jsoninmake?secretToAuthenticateTarget~initiatorName~secretToAuthenticateInitiator~targetARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing one or more of the following fields: UpdateChapCredentialsInput$InitiatorName UpdateChapCredentialsInput$SecretToAuthenticateInitiator UpdateChapCredentialsInput$SecretToAuthenticateTarget UpdateChapCredentialsInput$TargetARN"]moduleUpdateBandwidthRateLimitScheduleOutput=structtypenonrect={gatewayARN:GatewayARN.toption}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun()->{gatewayARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates the bandwidth rate limit schedule for a specified gateway. By default, gateways do not have bandwidth rate limit schedules, which means no bandwidth rate limiting is in effect. Use this to initiate or update a gateway's bandwidth rate limit schedule. This operation is supported for volume, tape, and S3 file gateways. S3 file gateways support bandwidth rate limits for upload only. FSx file gateways do not support bandwidth rate limits."]moduleUpdateBandwidthRateLimitScheduleInput=structtypenonrect={gatewayARN:GatewayARN.t;bandwidthRateLimitIntervals:BandwidthRateLimitIntervals.t[@ocaml.doc"An array containing bandwidth rate limit schedule intervals for a gateway. When no bandwidth rate limit intervals have been scheduled, the array is empty."]}letcontext_="UpdateBandwidthRateLimitScheduleInput"letmake~gatewayARN=fun~bandwidthRateLimitIntervals->fun()->{gatewayARN;bandwidthRateLimitIntervals}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)));("BandwidthRateLimitIntervals",(Some(BandwidthRateLimitIntervals.to_valuex.bandwidthRateLimitIntervals)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letbandwidthRateLimitIntervals=BandwidthRateLimitIntervals.of_xml(Xml.child_exn~context:context_xml_arg0"BandwidthRateLimitIntervals")inletgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~bandwidthRateLimitIntervals~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letbandwidthRateLimitIntervals=field_map_exnjson__"BandwidthRateLimitIntervals"BandwidthRateLimitIntervals.of_jsoninletgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~bandwidthRateLimitIntervals~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates the bandwidth rate limit schedule for a specified gateway. By default, gateways do not have bandwidth rate limit schedules, which means no bandwidth rate limiting is in effect. Use this to initiate or update a gateway's bandwidth rate limit schedule. This operation is supported for volume, tape, and S3 file gateways. S3 file gateways support bandwidth rate limits for upload only. FSx file gateways do not support bandwidth rate limits."]moduleUpdateBandwidthRateLimitOutput=structtypenonrect={gatewayARN:GatewayARN.toption}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun()->{gatewayARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the Amazon Resource Name (ARN) of the gateway whose throttle information was updated."]moduleUpdateBandwidthRateLimitInput=structtypenonrect={gatewayARN:GatewayARN.t;averageUploadRateLimitInBitsPerSec:BandwidthUploadRateLimit.toption[@ocaml.doc"The average upload bandwidth rate limit in bits per second."];averageDownloadRateLimitInBitsPerSec:BandwidthDownloadRateLimit.toption[@ocaml.doc"The average download bandwidth rate limit in bits per second."]}letcontext_="UpdateBandwidthRateLimitInput"letmake?averageUploadRateLimitInBitsPerSec=fun?averageDownloadRateLimitInBitsPerSec->fun~gatewayARN->fun()->{averageUploadRateLimitInBitsPerSec;averageDownloadRateLimitInBitsPerSec;gatewayARN}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)));("AverageUploadRateLimitInBitsPerSec",(Option.mapx.averageUploadRateLimitInBitsPerSec~f:BandwidthUploadRateLimit.to_value));("AverageDownloadRateLimitInBitsPerSec",(Option.mapx.averageDownloadRateLimitInBitsPerSec~f:BandwidthDownloadRateLimit.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letaverageDownloadRateLimitInBitsPerSec=(Option.map~f:BandwidthDownloadRateLimit.of_xml)(Xml.childxml_arg0"AverageDownloadRateLimitInBitsPerSec")inletaverageUploadRateLimitInBitsPerSec=(Option.map~f:BandwidthUploadRateLimit.of_xml)(Xml.childxml_arg0"AverageUploadRateLimitInBitsPerSec")inletgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake?averageDownloadRateLimitInBitsPerSec?averageUploadRateLimitInBitsPerSec~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letaverageDownloadRateLimitInBitsPerSec=field_mapjson__"AverageDownloadRateLimitInBitsPerSec"BandwidthDownloadRateLimit.of_jsoninletaverageUploadRateLimitInBitsPerSec=field_mapjson__"AverageUploadRateLimitInBitsPerSec"BandwidthUploadRateLimit.of_jsoninletgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake?averageDownloadRateLimitInBitsPerSec?averageUploadRateLimitInBitsPerSec~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing one or more of the following fields: UpdateBandwidthRateLimitInput$AverageDownloadRateLimitInBitsPerSec UpdateBandwidthRateLimitInput$AverageUploadRateLimitInBitsPerSec"]moduleUpdateAutomaticTapeCreationPolicyOutput=structtypenonrect={gatewayARN:GatewayARN.toption}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun()->{gatewayARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates the automatic tape creation policy of a gateway. Use this to update the policy with a new set of automatic tape creation rules. This is only supported for tape gateways. By default, there is no automatic tape creation policy. A gateway can have only one automatic tape creation policy."]moduleUpdateAutomaticTapeCreationPolicyInput=structtypenonrect={automaticTapeCreationRules:AutomaticTapeCreationRules.t[@ocaml.doc"An automatic tape creation policy consists of a list of automatic tape creation rules. The rules determine when and how to automatically create new tapes."];gatewayARN:GatewayARN.t}letcontext_="UpdateAutomaticTapeCreationPolicyInput"letmake~automaticTapeCreationRules=fun~gatewayARN->fun()->{automaticTapeCreationRules;gatewayARN}letto_valuex=structure_to_value[("AutomaticTapeCreationRules",(Some(AutomaticTapeCreationRules.to_valuex.automaticTapeCreationRules)));("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inletautomaticTapeCreationRules=AutomaticTapeCreationRules.of_xml(Xml.child_exn~context:context_xml_arg0"AutomaticTapeCreationRules")inmake~gatewayARN~automaticTapeCreationRules()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninletautomaticTapeCreationRules=field_map_exnjson__"AutomaticTapeCreationRules"AutomaticTapeCreationRules.of_jsoninmake~gatewayARN~automaticTapeCreationRules()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates the automatic tape creation policy of a gateway. Use this to update the policy with a new set of automatic tape creation rules. This is only supported for tape gateways. By default, there is no automatic tape creation policy. A gateway can have only one automatic tape creation policy."]moduleStartGatewayOutput=structtypenonrect={gatewayARN:GatewayARN.toption}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun()->{gatewayARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the Amazon Resource Name (ARN) of the gateway that was restarted."]moduleStartGatewayInput=structtypenonrect={gatewayARN:GatewayARN.t}letcontext_="StartGatewayInput"letmake~gatewayARN=fun()->{gatewayARN}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the Amazon Resource Name (ARN) of the gateway to start."]moduleStartCacheReportOutput=structtypenonrect={cacheReportARN:CacheReportARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the cache report generated by the StartCacheReport request."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?cacheReportARN=fun()->{cacheReportARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("CacheReportARN",(Option.mapx.cacheReportARN~f:CacheReportARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcacheReportARN=(Option.map~f:CacheReportARN.of_xml)(Xml.childxml_arg0"CacheReportARN")inmake?cacheReportARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcacheReportARN=field_mapjson__"CacheReportARN"CacheReportARN.of_jsoninmake?cacheReportARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Starts generating a report of the file metadata currently cached by an S3 File Gateway for a specific file share. You can use this report to identify and resolve issues if you have files failing upload from your gateway to Amazon S3. The report is a CSV file containing a list of files which match the set of filter parameters you specify in the request. The Files Failing Upload flag is reset every 24 hours and during gateway reboot. If this report captures the files after the reset, but before they become flagged again, they will not be reported as Files Failing Upload. The following requirements must be met to successfully generate a cache report: You must have s3:PutObject and s3:AbortMultipartUpload permissions for the Amazon S3 bucket where you want to store the cache report. No other cache reports can currently be in-progress for the specified file share. There must be fewer than 10 existing cache reports for the specified file share. The gateway must be online and connected to Amazon Web Services. The root disk must have at least 20GB of free space when report generation starts. You must specify at least one value for InclusionFilters or ExclusionFilters in the request."]moduleStartCacheReportInput=structtypenonrect={fileShareARN:FileShareARN.t;role:Role.t[@ocaml.doc"The ARN of the IAM role used when saving the cache report to Amazon S3."];locationARN:LocationARN.t[@ocaml.doc"The ARN of the Amazon S3 bucket where you want to save the cache report. We do not recommend saving the cache report to the same Amazon S3 bucket for which you are generating the report. This field does not accept access point ARNs."];bucketRegion:RegionId.t[@ocaml.doc"The Amazon Web Services Region of the Amazon S3 bucket where you want to save the cache report."];vPCEndpointDNSName:DNSHostName.toption[@ocaml.doc"The DNS name of the VPC endpoint associated with the Amazon S3 where you want to save the cache report. Optional."];inclusionFilters:CacheReportFilterList.toption[@ocaml.doc"The list of filters and parameters that determine which files are included in the report. You must specify at least one value for InclusionFilters or ExclusionFilters in a StartCacheReport request."];exclusionFilters:CacheReportFilterList.toption[@ocaml.doc"The list of filters and parameters that determine which files are excluded from the report. You must specify at least one value for InclusionFilters or ExclusionFilters in a StartCacheReport request."];clientToken:ClientToken.t[@ocaml.doc"A unique identifier that you use to ensure idempotent report generation if you need to retry an unsuccessful StartCacheReport request. If you retry a request, use the same ClientToken you specified in the initial request."];tags:Tags.toption[@ocaml.doc"A list of up to 50 key/value tags that you can assign to the cache report. Using tags can help you categorize your reports and more easily locate them in search results."]}letcontext_="StartCacheReportInput"letmake?vPCEndpointDNSName=fun?inclusionFilters->fun?exclusionFilters->fun?tags->fun~fileShareARN->fun~role->fun~locationARN->fun~bucketRegion->fun~clientToken->fun()->{vPCEndpointDNSName;inclusionFilters;exclusionFilters;tags;fileShareARN;role;locationARN;bucketRegion;clientToken}letto_valuex=structure_to_value[("FileShareARN",(Some(FileShareARN.to_valuex.fileShareARN)));("Role",(Some(Role.to_valuex.role)));("LocationARN",(Some(LocationARN.to_valuex.locationARN)));("BucketRegion",(Some(RegionId.to_valuex.bucketRegion)));("VPCEndpointDNSName",(Option.mapx.vPCEndpointDNSName~f:DNSHostName.to_value));("InclusionFilters",(Option.mapx.inclusionFilters~f:CacheReportFilterList.to_value));("ExclusionFilters",(Option.mapx.exclusionFilters~f:CacheReportFilterList.to_value));("ClientToken",(Some(ClientToken.to_valuex.clientToken)));("Tags",(Option.mapx.tags~f:Tags.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:Tags.of_xml)(Xml.childxml_arg0"Tags")inletclientToken=ClientToken.of_xml(Xml.child_exn~context:context_xml_arg0"ClientToken")inletexclusionFilters=(Option.map~f:CacheReportFilterList.of_xml)(Xml.childxml_arg0"ExclusionFilters")inletinclusionFilters=(Option.map~f:CacheReportFilterList.of_xml)(Xml.childxml_arg0"InclusionFilters")inletvPCEndpointDNSName=(Option.map~f:DNSHostName.of_xml)(Xml.childxml_arg0"VPCEndpointDNSName")inletbucketRegion=RegionId.of_xml(Xml.child_exn~context:context_xml_arg0"BucketRegion")inletlocationARN=LocationARN.of_xml(Xml.child_exn~context:context_xml_arg0"LocationARN")inletrole=Role.of_xml(Xml.child_exn~context:context_xml_arg0"Role")inletfileShareARN=FileShareARN.of_xml(Xml.child_exn~context:context_xml_arg0"FileShareARN")inmake?tags~clientToken?exclusionFilters?inclusionFilters?vPCEndpointDNSName~bucketRegion~locationARN~role~fileShareARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"Tags"Tags.of_jsoninletclientToken=field_map_exnjson__"ClientToken"ClientToken.of_jsoninletexclusionFilters=field_mapjson__"ExclusionFilters"CacheReportFilterList.of_jsoninletinclusionFilters=field_mapjson__"InclusionFilters"CacheReportFilterList.of_jsoninletvPCEndpointDNSName=field_mapjson__"VPCEndpointDNSName"DNSHostName.of_jsoninletbucketRegion=field_map_exnjson__"BucketRegion"RegionId.of_jsoninletlocationARN=field_map_exnjson__"LocationARN"LocationARN.of_jsoninletrole=field_map_exnjson__"Role"Role.of_jsoninletfileShareARN=field_map_exnjson__"FileShareARN"FileShareARN.of_jsoninmake?tags~clientToken?exclusionFilters?inclusionFilters?vPCEndpointDNSName~bucketRegion~locationARN~role~fileShareARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Starts generating a report of the file metadata currently cached by an S3 File Gateway for a specific file share. You can use this report to identify and resolve issues if you have files failing upload from your gateway to Amazon S3. The report is a CSV file containing a list of files which match the set of filter parameters you specify in the request. The Files Failing Upload flag is reset every 24 hours and during gateway reboot. If this report captures the files after the reset, but before they become flagged again, they will not be reported as Files Failing Upload. The following requirements must be met to successfully generate a cache report: You must have s3:PutObject and s3:AbortMultipartUpload permissions for the Amazon S3 bucket where you want to store the cache report. No other cache reports can currently be in-progress for the specified file share. There must be fewer than 10 existing cache reports for the specified file share. The gateway must be online and connected to Amazon Web Services. The root disk must have at least 20GB of free space when report generation starts. You must specify at least one value for InclusionFilters or ExclusionFilters in the request."]moduleStartAvailabilityMonitorTestOutput=structtypenonrect={gatewayARN:GatewayARN.toption}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun()->{gatewayARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Start a test that verifies that the specified gateway is configured for High Availability monitoring in your host environment. This request only initiates the test and that a successful response only indicates that the test was started. It doesn't indicate that the test passed. For the status of the test, invoke the DescribeAvailabilityMonitorTest API. Starting this test will cause your gateway to go offline for a brief period."]moduleStartAvailabilityMonitorTestInput=structtypenonrect={gatewayARN:GatewayARN.t}letcontext_="StartAvailabilityMonitorTestInput"letmake~gatewayARN=fun()->{gatewayARN}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Start a test that verifies that the specified gateway is configured for High Availability monitoring in your host environment. This request only initiates the test and that a successful response only indicates that the test was started. It doesn't indicate that the test passed. For the status of the test, invoke the DescribeAvailabilityMonitorTest API. Starting this test will cause your gateway to go offline for a brief period."]moduleShutdownGatewayOutput=structtypenonrect={gatewayARN:GatewayARN.toption}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun()->{gatewayARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the Amazon Resource Name (ARN) of the gateway that was shut down."]moduleShutdownGatewayInput=structtypenonrect={gatewayARN:GatewayARN.t}letcontext_="ShutdownGatewayInput"letmake~gatewayARN=fun()->{gatewayARN}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the Amazon Resource Name (ARN) of the gateway to shut down."]moduleSetSMBGuestPasswordOutput=structtypenonrect={gatewayARN:GatewayARN.toption}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun()->{gatewayARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Sets the password for the guest user smbguest. The smbguest user is the user when the authentication method for the file share is set to GuestAccess. This operation only supported for S3 File Gateways"]moduleSetSMBGuestPasswordInput=structtypenonrect={gatewayARN:GatewayARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the S3 File Gateway the SMB file share is associated with."];password:SMBGuestPassword.t[@ocaml.doc"The password that you want to set for your SMB server."]}letcontext_="SetSMBGuestPasswordInput"letmake~gatewayARN=fun~password->fun()->{gatewayARN;password}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)));("Password",(Some(SMBGuestPassword.to_valuex.password)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpassword=SMBGuestPassword.of_xml(Xml.child_exn~context:context_xml_arg0"Password")inletgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~password~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpassword=field_map_exnjson__"Password"SMBGuestPassword.of_jsoninletgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~password~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"SetSMBGuestPasswordInput"]moduleSetLocalConsolePasswordOutput=structtypenonrect={gatewayARN:GatewayARN.toption}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun()->{gatewayARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Sets the password for your VM local console. When you log in to the local console for the first time, you log in to the VM with the default credentials. We recommend that you set a new password. You don't need to know the default password to set a new password."]moduleSetLocalConsolePasswordInput=structtypenonrect={gatewayARN:GatewayARN.t;localConsolePassword:LocalConsolePassword.t[@ocaml.doc"The password you want to set for your VM local console."]}letcontext_="SetLocalConsolePasswordInput"letmake~gatewayARN=fun~localConsolePassword->fun()->{gatewayARN;localConsolePassword}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)));("LocalConsolePassword",(Some(LocalConsolePassword.to_valuex.localConsolePassword)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlocalConsolePassword=LocalConsolePassword.of_xml(Xml.child_exn~context:context_xml_arg0"LocalConsolePassword")inletgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~localConsolePassword~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlocalConsolePassword=field_map_exnjson__"LocalConsolePassword"LocalConsolePassword.of_jsoninletgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~localConsolePassword~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"SetLocalConsolePasswordInput"]moduleRetrieveTapeRecoveryPointOutput=structtypenonrect={tapeARN:TapeARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the virtual tape for which the recovery point was retrieved."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?tapeARN=fun()->{tapeARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("TapeARN",(Option.mapx.tapeARN~f:TapeARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettapeARN=(Option.map~f:TapeARN.of_xml)(Xml.childxml_arg0"TapeARN")inmake?tapeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettapeARN=field_mapjson__"TapeARN"TapeARN.of_jsoninmake?tapeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"RetrieveTapeRecoveryPointOutput"]moduleRetrieveTapeRecoveryPointInput=structtypenonrect={tapeARN:TapeARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the virtual tape for which you want to retrieve the recovery point."];gatewayARN:GatewayARN.t}letcontext_="RetrieveTapeRecoveryPointInput"letmake~tapeARN=fun~gatewayARN->fun()->{tapeARN;gatewayARN}letto_valuex=structure_to_value[("TapeARN",(Some(TapeARN.to_valuex.tapeARN)));("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inlettapeARN=TapeARN.of_xml(Xml.child_exn~context:context_xml_arg0"TapeARN")inmake~gatewayARN~tapeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninlettapeARN=field_map_exnjson__"TapeARN"TapeARN.of_jsoninmake~gatewayARN~tapeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"RetrieveTapeRecoveryPointInput"]moduleRetrieveTapeArchiveOutput=structtypenonrect={tapeARN:TapeARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the retrieved virtual tape."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?tapeARN=fun()->{tapeARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("TapeARN",(Option.mapx.tapeARN~f:TapeARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettapeARN=(Option.map~f:TapeARN.of_xml)(Xml.childxml_arg0"TapeARN")inmake?tapeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettapeARN=field_mapjson__"TapeARN"TapeARN.of_jsoninmake?tapeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"RetrieveTapeArchiveOutput"]moduleRetrieveTapeArchiveInput=structtypenonrect={tapeARN:TapeARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the virtual tape you want to retrieve from the virtual tape shelf (VTS)."];gatewayARN:GatewayARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the gateway you want to retrieve the virtual tape to. Use the ListGateways operation to return a list of gateways for your account and Amazon Web Services Region. You retrieve archived virtual tapes to only one gateway and the gateway must be a tape gateway."]}letcontext_="RetrieveTapeArchiveInput"letmake~tapeARN=fun~gatewayARN->fun()->{tapeARN;gatewayARN}letto_valuex=structure_to_value[("TapeARN",(Some(TapeARN.to_valuex.tapeARN)));("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inlettapeARN=TapeARN.of_xml(Xml.child_exn~context:context_xml_arg0"TapeARN")inmake~gatewayARN~tapeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninlettapeARN=field_map_exnjson__"TapeARN"TapeARN.of_jsoninmake~gatewayARN~tapeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"RetrieveTapeArchiveInput"]moduleResetCacheOutput=structtypenonrect={gatewayARN:GatewayARN.toption}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun()->{gatewayARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Resets all cache disks that have encountered an error and makes the disks available for reconfiguration as cache storage. If your cache disk encounters an error, the gateway prevents read and write operations on virtual tapes in the gateway. For example, an error can occur when a disk is corrupted or removed from the gateway. When a cache is reset, the gateway loses its cache storage. At this point, you can reconfigure the disks as cache disks. This operation is only supported in the cached volume and tape types. If the cache disk you are resetting contains data that has not been uploaded to Amazon S3 yet, that data can be lost. After you reset cache disks, there will be no configured cache disks left in the gateway, so you must configure at least one new cache disk for your gateway to function properly."]moduleResetCacheInput=structtypenonrect={gatewayARN:GatewayARN.t}letcontext_="ResetCacheInput"letmake~gatewayARN=fun()->{gatewayARN}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Resets all cache disks that have encountered an error and makes the disks available for reconfiguration as cache storage. If your cache disk encounters an error, the gateway prevents read and write operations on virtual tapes in the gateway. For example, an error can occur when a disk is corrupted or removed from the gateway. When a cache is reset, the gateway loses its cache storage. At this point, you can reconfigure the disks as cache disks. This operation is only supported in the cached volume and tape types. If the cache disk you are resetting contains data that has not been uploaded to Amazon S3 yet, that data can be lost. After you reset cache disks, there will be no configured cache disks left in the gateway, so you must configure at least one new cache disk for your gateway to function properly."]moduleRemoveTagsFromResourceOutput=structtypenonrect={resourceARN:ResourceARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the resource that the tags were removed from."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?resourceARN=fun()->{resourceARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("ResourceARN",(Option.mapx.resourceARN~f:ResourceARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceARN=(Option.map~f:ResourceARN.of_xml)(Xml.childxml_arg0"ResourceARN")inmake?resourceARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceARN=field_mapjson__"ResourceARN"ResourceARN.of_jsoninmake?resourceARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"RemoveTagsFromResourceOutput"]moduleRemoveTagsFromResourceInput=structtypenonrect={resourceARN:ResourceARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the resource you want to remove the tags from."];tagKeys:TagKeys.t[@ocaml.doc"The keys of the tags you want to remove from the specified resource. A tag is composed of a key-value pair."]}letcontext_="RemoveTagsFromResourceInput"letmake~resourceARN=fun~tagKeys->fun()->{resourceARN;tagKeys}letto_valuex=structure_to_value[("ResourceARN",(Some(ResourceARN.to_valuex.resourceARN)));("TagKeys",(Some(TagKeys.to_valuex.tagKeys)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettagKeys=TagKeys.of_xml(Xml.child_exn~context:context_xml_arg0"TagKeys")inletresourceARN=ResourceARN.of_xml(Xml.child_exn~context:context_xml_arg0"ResourceARN")inmake~tagKeys~resourceARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettagKeys=field_map_exnjson__"TagKeys"TagKeys.of_jsoninletresourceARN=field_map_exnjson__"ResourceARN"ResourceARN.of_jsoninmake~tagKeys~resourceARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"RemoveTagsFromResourceInput"]moduleRefreshCacheOutput=structtypenonrect={fileShareARN:FileShareARN.toption;notificationId:NotificationId.toption}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?fileShareARN=fun?notificationId->fun()->{fileShareARN;notificationId}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("FileShareARN",(Option.mapx.fileShareARN~f:FileShareARN.to_value));("NotificationId",(Option.mapx.notificationId~f:NotificationId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnotificationId=(Option.map~f:NotificationId.of_xml)(Xml.childxml_arg0"NotificationId")inletfileShareARN=(Option.map~f:FileShareARN.of_xml)(Xml.childxml_arg0"FileShareARN")inmake?notificationId?fileShareARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnotificationId=field_mapjson__"NotificationId"NotificationId.of_jsoninletfileShareARN=field_mapjson__"FileShareARN"FileShareARN.of_jsoninmake?notificationId?fileShareARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"RefreshCacheOutput"]moduleRefreshCacheInput=structtypenonrect={fileShareARN:FileShareARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the file share you want to refresh."];folderList:FolderList.toption[@ocaml.doc"A comma-separated list of the paths of folders to refresh in the cache. The default is \\[\"/\"\\]. The default refreshes objects and folders at the root of the Amazon S3 bucket. If Recursive is set to true, the entire S3 bucket that the file share has access to is refreshed. Do not include / when specifying folder names. For example, you would specify samplefolder rather than samplefolder/."];recursive:Boolean.toption[@ocaml.doc"A value that specifies whether to recursively refresh folders in the cache. The refresh includes folders that were in the cache the last time the gateway listed the folder's contents. If this value set to true, each folder that is listed in FolderList is recursively updated. Otherwise, subfolders listed in FolderList are not refreshed. Only objects that are in folders listed directly under FolderList are found and used for the update. The default is true. Valid Values: true | false"]}letcontext_="RefreshCacheInput"letmake?folderList=fun?recursive->fun~fileShareARN->fun()->{folderList;recursive;fileShareARN}letto_valuex=structure_to_value[("FileShareARN",(Some(FileShareARN.to_valuex.fileShareARN)));("FolderList",(Option.mapx.folderList~f:FolderList.to_value));("Recursive",(Option.mapx.recursive~f:Boolean.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letrecursive=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"Recursive")inletfolderList=(Option.map~f:FolderList.of_xml)(Xml.childxml_arg0"FolderList")inletfileShareARN=FileShareARN.of_xml(Xml.child_exn~context:context_xml_arg0"FileShareARN")inmake?recursive?folderList~fileShareARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letrecursive=field_mapjson__"Recursive"Boolean.of_jsoninletfolderList=field_mapjson__"FolderList"FolderList.of_jsoninletfileShareARN=field_map_exnjson__"FileShareARN"FileShareARN.of_jsoninmake?recursive?folderList~fileShareARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"RefreshCacheInput"]moduleNotifyWhenUploadedOutput=structtypenonrect={fileShareARN:FileShareARN.toption;notificationId:NotificationId.toption}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?fileShareARN=fun?notificationId->fun()->{fileShareARN;notificationId}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("FileShareARN",(Option.mapx.fileShareARN~f:FileShareARN.to_value));("NotificationId",(Option.mapx.notificationId~f:NotificationId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnotificationId=(Option.map~f:NotificationId.of_xml)(Xml.childxml_arg0"NotificationId")inletfileShareARN=(Option.map~f:FileShareARN.of_xml)(Xml.childxml_arg0"FileShareARN")inmake?notificationId?fileShareARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnotificationId=field_mapjson__"NotificationId"NotificationId.of_jsoninletfileShareARN=field_mapjson__"FileShareARN"FileShareARN.of_jsoninmake?notificationId?fileShareARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Sends you notification through Amazon EventBridge when all files written to your file share have been uploaded to Amazon S3. Storage Gateway can send a notification through Amazon EventBridge when all files written to your file share up to that point in time have been uploaded to Amazon S3. These files include files written to the file share up to the time that you make a request for notification. When the upload is done, Storage Gateway sends you notification through EventBridge. You can configure EventBridge to send the notification through event targets such as Amazon SNS or Lambda function. This operation is only supported for S3 File Gateways. For more information, see Getting file upload notification in the Amazon S3 File Gateway User Guide."]moduleNotifyWhenUploadedInput=structtypenonrect={fileShareARN:FileShareARN.t}letcontext_="NotifyWhenUploadedInput"letmake~fileShareARN=fun()->{fileShareARN}letto_valuex=structure_to_value[("FileShareARN",(Some(FileShareARN.to_valuex.fileShareARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfileShareARN=FileShareARN.of_xml(Xml.child_exn~context:context_xml_arg0"FileShareARN")inmake~fileShareARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfileShareARN=field_map_exnjson__"FileShareARN"FileShareARN.of_jsoninmake~fileShareARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Sends you notification through Amazon EventBridge when all files written to your file share have been uploaded to Amazon S3. Storage Gateway can send a notification through Amazon EventBridge when all files written to your file share up to that point in time have been uploaded to Amazon S3. These files include files written to the file share up to the time that you make a request for notification. When the upload is done, Storage Gateway sends you notification through EventBridge. You can configure EventBridge to send the notification through event targets such as Amazon SNS or Lambda function. This operation is only supported for S3 File Gateways. For more information, see Getting file upload notification in the Amazon S3 File Gateway User Guide."]moduleListVolumesOutput=structtypenonrect={gatewayARN:GatewayARN.toption;marker:Marker.toption[@ocaml.doc"Use the marker in your next request to continue pagination of iSCSI volumes. If there are no more volumes to list, this field does not appear in the response body."];volumeInfos:VolumeInfos.toption[@ocaml.doc"An array of VolumeInfo objects, where each object describes an iSCSI volume. If no volumes are defined for the gateway, then VolumeInfos is an empty array \"\\[\\]\"."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun?marker->fun?volumeInfos->fun()->{gatewayARN;marker;volumeInfos}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value));("Marker",(Option.mapx.marker~f:Marker.to_value));("VolumeInfos",(Option.mapx.volumeInfos~f:VolumeInfos.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvolumeInfos=(Option.map~f:VolumeInfos.of_xml)(Xml.childxml_arg0"VolumeInfos")inletmarker=(Option.map~f:Marker.of_xml)(Xml.childxml_arg0"Marker")inletgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?volumeInfos?marker?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvolumeInfos=field_mapjson__"VolumeInfos"VolumeInfos.of_jsoninletmarker=field_mapjson__"Marker"Marker.of_jsoninletgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?volumeInfos?marker?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the following fields: ListVolumesOutput$Marker ListVolumesOutput$VolumeInfos"]moduleListVolumesInput=structtypenonrect={gatewayARN:GatewayARN.toption;marker:Marker.toption[@ocaml.doc"A string that indicates the position at which to begin the returned list of volumes. Obtain the marker from the response of a previous List iSCSI Volumes request."];limit:PositiveIntObject.toption[@ocaml.doc"Specifies that the list of volumes returned be limited to the specified number of items."]}letmake?gatewayARN=fun?marker->fun?limit->fun()->{gatewayARN;marker;limit}letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value));("Marker",(Option.mapx.marker~f:Marker.to_value));("Limit",(Option.mapx.limit~f:PositiveIntObject.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlimit=(Option.map~f:PositiveIntObject.of_xml)(Xml.childxml_arg0"Limit")inletmarker=(Option.map~f:Marker.of_xml)(Xml.childxml_arg0"Marker")inletgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?limit?marker?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlimit=field_mapjson__"Limit"PositiveIntObject.of_jsoninletmarker=field_mapjson__"Marker"Marker.of_jsoninletgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?limit?marker?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object that contains one or more of the following fields: ListVolumesInput$Limit ListVolumesInput$Marker"]moduleListVolumeRecoveryPointsOutput=structtypenonrect={gatewayARN:GatewayARN.toption;volumeRecoveryPointInfos:VolumeRecoveryPointInfos.toption[@ocaml.doc"An array of VolumeRecoveryPointInfo objects."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun?volumeRecoveryPointInfos->fun()->{gatewayARN;volumeRecoveryPointInfos}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value));("VolumeRecoveryPointInfos",(Option.mapx.volumeRecoveryPointInfos~f:VolumeRecoveryPointInfos.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvolumeRecoveryPointInfos=(Option.map~f:VolumeRecoveryPointInfos.of_xml)(Xml.childxml_arg0"VolumeRecoveryPointInfos")inletgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?volumeRecoveryPointInfos?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvolumeRecoveryPointInfos=field_mapjson__"VolumeRecoveryPointInfos"VolumeRecoveryPointInfos.of_jsoninletgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?volumeRecoveryPointInfos?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the recovery points for a specified gateway. This operation is only supported in the cached volume gateway type. Each cache volume has one recovery point. A volume recovery point is a point in time at which all data of the volume is consistent and from which you can create a snapshot or clone a new cached volume from a source volume. To create a snapshot from a volume recovery point use the CreateSnapshotFromVolumeRecoveryPoint operation."]moduleListVolumeRecoveryPointsInput=structtypenonrect={gatewayARN:GatewayARN.t}letcontext_="ListVolumeRecoveryPointsInput"letmake~gatewayARN=fun()->{gatewayARN}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the recovery points for a specified gateway. This operation is only supported in the cached volume gateway type. Each cache volume has one recovery point. A volume recovery point is a point in time at which all data of the volume is consistent and from which you can create a snapshot or clone a new cached volume from a source volume. To create a snapshot from a volume recovery point use the CreateSnapshotFromVolumeRecoveryPoint operation."]moduleListVolumeInitiatorsOutput=structtypenonrect={initiators:Initiators.toption[@ocaml.doc"The host names and port numbers of all iSCSI initiators that are connected to the gateway."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?initiators=fun()->{initiators}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Initiators",(Option.mapx.initiators~f:Initiators.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letinitiators=(Option.map~f:Initiators.of_xml)(Xml.childxml_arg0"Initiators")inmake?initiators()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letinitiators=field_mapjson__"Initiators"Initiators.of_jsoninmake?initiators()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"ListVolumeInitiatorsOutput"]moduleListVolumeInitiatorsInput=structtypenonrect={volumeARN:VolumeARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation to return a list of gateway volumes for the gateway."]}letcontext_="ListVolumeInitiatorsInput"letmake~volumeARN=fun()->{volumeARN}letto_valuex=structure_to_value[("VolumeARN",(Some(VolumeARN.to_valuex.volumeARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvolumeARN=VolumeARN.of_xml(Xml.child_exn~context:context_xml_arg0"VolumeARN")inmake~volumeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvolumeARN=field_map_exnjson__"VolumeARN"VolumeARN.of_jsoninmake~volumeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"ListVolumeInitiatorsInput"]moduleListTapesOutput=structtypenonrect={tapeInfos:TapeInfos.toption;marker:Marker.toption[@ocaml.doc"A string that indicates the position at which to begin returning the next list of tapes. Use the marker in your next request to continue pagination of tapes. If there are no more tapes to list, this element does not appear in the response body."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?tapeInfos=fun?marker->fun()->{tapeInfos;marker}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("TapeInfos",(Option.mapx.tapeInfos~f:TapeInfos.to_value));("Marker",(Option.mapx.marker~f:Marker.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmarker=(Option.map~f:Marker.of_xml)(Xml.childxml_arg0"Marker")inlettapeInfos=(Option.map~f:TapeInfos.of_xml)(Xml.childxml_arg0"TapeInfos")inmake?marker?tapeInfos()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmarker=field_mapjson__"Marker"Marker.of_jsoninlettapeInfos=field_mapjson__"TapeInfos"TapeInfos.of_jsoninmake?marker?tapeInfos()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the following fields: ListTapesOutput$Marker ListTapesOutput$VolumeInfos"]moduleListTapesInput=structtypenonrect={tapeARNs:TapeARNs.toption;marker:Marker.toption[@ocaml.doc"A string that indicates the position at which to begin the returned list of tapes."];limit:PositiveIntObject.toption[@ocaml.doc"An optional number limit for the tapes in the list returned by this call."]}letmake?tapeARNs=fun?marker->fun?limit->fun()->{tapeARNs;marker;limit}letto_valuex=structure_to_value[("TapeARNs",(Option.mapx.tapeARNs~f:TapeARNs.to_value));("Marker",(Option.mapx.marker~f:Marker.to_value));("Limit",(Option.mapx.limit~f:PositiveIntObject.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlimit=(Option.map~f:PositiveIntObject.of_xml)(Xml.childxml_arg0"Limit")inletmarker=(Option.map~f:Marker.of_xml)(Xml.childxml_arg0"Marker")inlettapeARNs=(Option.map~f:TapeARNs.of_xml)(Xml.childxml_arg0"TapeARNs")inmake?limit?marker?tapeARNs()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlimit=field_mapjson__"Limit"PositiveIntObject.of_jsoninletmarker=field_mapjson__"Marker"Marker.of_jsoninlettapeARNs=field_mapjson__"TapeARNs"TapeARNs.of_jsoninmake?limit?marker?tapeARNs()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object that contains one or more of the following fields: ListTapesInput$Limit ListTapesInput$Marker ListTapesInput$TapeARNs"]moduleListTapePoolsOutput=structtypenonrect={poolInfos:PoolInfos.toption[@ocaml.doc"An array of PoolInfo objects, where each object describes a single custom tape pool. If there are no custom tape pools, the PoolInfos is an empty array."];marker:Marker.toption[@ocaml.doc"A string that indicates the position at which to begin the returned list of tape pools. Use the marker in your next request to continue pagination of tape pools. If there are no more tape pools to list, this element does not appear in the response body."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?poolInfos=fun?marker->fun()->{poolInfos;marker}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("PoolInfos",(Option.mapx.poolInfos~f:PoolInfos.to_value));("Marker",(Option.mapx.marker~f:Marker.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmarker=(Option.map~f:Marker.of_xml)(Xml.childxml_arg0"Marker")inletpoolInfos=(Option.map~f:PoolInfos.of_xml)(Xml.childxml_arg0"PoolInfos")inmake?marker?poolInfos()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmarker=field_mapjson__"Marker"Marker.of_jsoninletpoolInfos=field_mapjson__"PoolInfos"PoolInfos.of_jsoninmake?marker?poolInfos()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists custom tape pools. You specify custom tape pools to list by specifying one or more custom tape pool Amazon Resource Names (ARNs). If you don't specify a custom tape pool ARN, the operation lists all custom tape pools. This operation supports pagination. You can optionally specify the Limit parameter in the body to limit the number of tape pools in the response. If the number of tape pools returned in the response is truncated, the response includes a Marker element that you can use in your subsequent request to retrieve the next set of tape pools."]moduleListTapePoolsInput=structtypenonrect={poolARNs:PoolARNs.toption[@ocaml.doc"The Amazon Resource Name (ARN) of each of the custom tape pools you want to list. If you don't specify a custom tape pool ARN, the response lists all custom tape pools."];marker:Marker.toption[@ocaml.doc"A string that indicates the position at which to begin the returned list of tape pools."];limit:PositiveIntObject.toption[@ocaml.doc"An optional number limit for the tape pools in the list returned by this call."]}letmake?poolARNs=fun?marker->fun?limit->fun()->{poolARNs;marker;limit}letto_valuex=structure_to_value[("PoolARNs",(Option.mapx.poolARNs~f:PoolARNs.to_value));("Marker",(Option.mapx.marker~f:Marker.to_value));("Limit",(Option.mapx.limit~f:PositiveIntObject.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlimit=(Option.map~f:PositiveIntObject.of_xml)(Xml.childxml_arg0"Limit")inletmarker=(Option.map~f:Marker.of_xml)(Xml.childxml_arg0"Marker")inletpoolARNs=(Option.map~f:PoolARNs.of_xml)(Xml.childxml_arg0"PoolARNs")inmake?limit?marker?poolARNs()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlimit=field_mapjson__"Limit"PositiveIntObject.of_jsoninletmarker=field_mapjson__"Marker"Marker.of_jsoninletpoolARNs=field_mapjson__"PoolARNs"PoolARNs.of_jsoninmake?limit?marker?poolARNs()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists custom tape pools. You specify custom tape pools to list by specifying one or more custom tape pool Amazon Resource Names (ARNs). If you don't specify a custom tape pool ARN, the operation lists all custom tape pools. This operation supports pagination. You can optionally specify the Limit parameter in the body to limit the number of tape pools in the response. If the number of tape pools returned in the response is truncated, the response includes a Marker element that you can use in your subsequent request to retrieve the next set of tape pools."]moduleListTagsForResourceOutput=structtypenonrect={resourceARN:ResourceARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the resource for which you want to list tags."];marker:Marker.toption[@ocaml.doc"An opaque string that indicates the position at which to stop returning the list of tags."];tags:Tags.toption[@ocaml.doc"An array that contains the tags for the specified resource."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?resourceARN=fun?marker->fun?tags->fun()->{resourceARN;marker;tags}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("ResourceARN",(Option.mapx.resourceARN~f:ResourceARN.to_value));("Marker",(Option.mapx.marker~f:Marker.to_value));("Tags",(Option.mapx.tags~f:Tags.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:Tags.of_xml)(Xml.childxml_arg0"Tags")inletmarker=(Option.map~f:Marker.of_xml)(Xml.childxml_arg0"Marker")inletresourceARN=(Option.map~f:ResourceARN.of_xml)(Xml.childxml_arg0"ResourceARN")inmake?tags?marker?resourceARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"Tags"Tags.of_jsoninletmarker=field_mapjson__"Marker"Marker.of_jsoninletresourceARN=field_mapjson__"ResourceARN"ResourceARN.of_jsoninmake?tags?marker?resourceARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"ListTagsForResourceOutput"]moduleListTagsForResourceInput=structtypenonrect={resourceARN:ResourceARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the resource for which you want to list tags."];marker:Marker.toption[@ocaml.doc"An opaque string that indicates the position at which to begin returning the list of tags."];limit:PositiveIntObject.toption[@ocaml.doc"Specifies that the list of tags returned be limited to the specified number of items."]}letcontext_="ListTagsForResourceInput"letmake?marker=fun?limit->fun~resourceARN->fun()->{marker;limit;resourceARN}letto_valuex=structure_to_value[("ResourceARN",(Some(ResourceARN.to_valuex.resourceARN)));("Marker",(Option.mapx.marker~f:Marker.to_value));("Limit",(Option.mapx.limit~f:PositiveIntObject.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlimit=(Option.map~f:PositiveIntObject.of_xml)(Xml.childxml_arg0"Limit")inletmarker=(Option.map~f:Marker.of_xml)(Xml.childxml_arg0"Marker")inletresourceARN=ResourceARN.of_xml(Xml.child_exn~context:context_xml_arg0"ResourceARN")inmake?limit?marker~resourceARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlimit=field_mapjson__"Limit"PositiveIntObject.of_jsoninletmarker=field_mapjson__"Marker"Marker.of_jsoninletresourceARN=field_map_exnjson__"ResourceARN"ResourceARN.of_jsoninmake?limit?marker~resourceARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"ListTagsForResourceInput"]moduleListLocalDisksOutput=structtypenonrect={gatewayARN:GatewayARN.toption;disks:Disks.toption[@ocaml.doc"A JSON object containing the following fields: ListLocalDisksOutput$Disks"]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun?disks->fun()->{gatewayARN;disks}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value));("Disks",(Option.mapx.disks~f:Disks.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letdisks=(Option.map~f:Disks.of_xml)(Xml.childxml_arg0"Disks")inletgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?disks?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letdisks=field_mapjson__"Disks"Disks.of_jsoninletgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?disks?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a list of the gateway's local disks. To specify which gateway to describe, you use the Amazon Resource Name (ARN) of the gateway in the body of the request. The request returns a list of all disks, specifying which are configured as working storage, cache storage, or stored volume or not configured at all. The response includes a DiskStatus field. This field can have a value of present (the disk is available to use), missing (the disk is no longer connected to the gateway), or mismatch (the disk node is occupied by a disk that has incorrect metadata or the disk content is corrupted)."]moduleListLocalDisksInput=structtypenonrect={gatewayARN:GatewayARN.t}letcontext_="ListLocalDisksInput"letmake~gatewayARN=fun()->{gatewayARN}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the Amazon Resource Name (ARN) of the gateway."]moduleListGatewaysOutput=structtypenonrect={gateways:Gateways.toption[@ocaml.doc"An array of GatewayInfo objects."];marker:Marker.toption[@ocaml.doc"Use the marker in your next request to fetch the next set of gateways in the list. If there are no more gateways to list, this field does not appear in the response."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gateways=fun?marker->fun()->{gateways;marker}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Gateways",(Option.mapx.gateways~f:Gateways.to_value));("Marker",(Option.mapx.marker~f:Marker.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmarker=(Option.map~f:Marker.of_xml)(Xml.childxml_arg0"Marker")inletgateways=(Option.map~f:Gateways.of_xml)(Xml.childxml_arg0"Gateways")inmake?marker?gateways()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmarker=field_mapjson__"Marker"Marker.of_jsoninletgateways=field_mapjson__"Gateways"Gateways.of_jsoninmake?marker?gateways()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists gateways owned by an Amazon Web Services account in an Amazon Web Services Region specified in the request. The returned list is ordered by gateway Amazon Resource Name (ARN). By default, the operation returns a maximum of 100 gateways. This operation supports pagination that allows you to optionally reduce the number of gateways returned in a response. If you have more gateways than are returned in a response (that is, the response returns only a truncated list of your gateways), the response contains a marker that you can specify in your next request to fetch the next page of gateways."]moduleListGatewaysInput=structtypenonrect={marker:Marker.toption[@ocaml.doc"An opaque string that indicates the position at which to begin the returned list of gateways."];limit:PositiveIntObject.toption[@ocaml.doc"Specifies that the list of gateways returned be limited to the specified number of items."]}letmake?marker=fun?limit->fun()->{marker;limit}letto_valuex=structure_to_value[("Marker",(Option.mapx.marker~f:Marker.to_value));("Limit",(Option.mapx.limit~f:PositiveIntObject.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlimit=(Option.map~f:PositiveIntObject.of_xml)(Xml.childxml_arg0"Limit")inletmarker=(Option.map~f:Marker.of_xml)(Xml.childxml_arg0"Marker")inmake?limit?marker()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlimit=field_mapjson__"Limit"PositiveIntObject.of_jsoninletmarker=field_mapjson__"Marker"Marker.of_jsoninmake?limit?marker()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing zero or more of the following fields: ListGatewaysInput$Limit ListGatewaysInput$Marker"]moduleListFileSystemAssociationsOutput=structtypenonrect={marker:Marker.toption[@ocaml.doc"If the request includes Marker, the response returns that value in this field."];nextMarker:Marker.toption[@ocaml.doc"If a value is present, there are more file system associations to return. In a subsequent request, use NextMarker as the value for Marker to retrieve the next set of file system associations."];fileSystemAssociationSummaryList:FileSystemAssociationSummaryList.toption[@ocaml.doc"An array of information about the Amazon FSx gateway's file system associations."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?marker=fun?nextMarker->fun?fileSystemAssociationSummaryList->fun()->{marker;nextMarker;fileSystemAssociationSummaryList}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Marker",(Option.mapx.marker~f:Marker.to_value));("NextMarker",(Option.mapx.nextMarker~f:Marker.to_value));("FileSystemAssociationSummaryList",(Option.mapx.fileSystemAssociationSummaryList~f:FileSystemAssociationSummaryList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfileSystemAssociationSummaryList=(Option.map~f:FileSystemAssociationSummaryList.of_xml)(Xml.childxml_arg0"FileSystemAssociationSummaryList")inletnextMarker=(Option.map~f:Marker.of_xml)(Xml.childxml_arg0"NextMarker")inletmarker=(Option.map~f:Marker.of_xml)(Xml.childxml_arg0"Marker")inmake?fileSystemAssociationSummaryList?nextMarker?marker()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfileSystemAssociationSummaryList=field_mapjson__"FileSystemAssociationSummaryList"FileSystemAssociationSummaryList.of_jsoninletnextMarker=field_mapjson__"NextMarker"Marker.of_jsoninletmarker=field_mapjson__"Marker"Marker.of_jsoninmake?fileSystemAssociationSummaryList?nextMarker?marker()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Gets a list of FileSystemAssociationSummary objects. Each object contains a summary of a file system association. This operation is only supported for FSx File Gateways."]moduleListFileSystemAssociationsInput=structtypenonrect={gatewayARN:GatewayARN.toption;limit:PositiveIntObject.toption[@ocaml.doc"The maximum number of file system associations to return in the response. If present, Limit must be an integer with a value greater than zero. Optional."];marker:Marker.toption[@ocaml.doc"Opaque pagination token returned from a previous ListFileSystemAssociations operation. If present, Marker specifies where to continue the list from after a previous call to ListFileSystemAssociations. Optional."]}letmake?gatewayARN=fun?limit->fun?marker->fun()->{gatewayARN;limit;marker}letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value));("Limit",(Option.mapx.limit~f:PositiveIntObject.to_value));("Marker",(Option.mapx.marker~f:Marker.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmarker=(Option.map~f:Marker.of_xml)(Xml.childxml_arg0"Marker")inletlimit=(Option.map~f:PositiveIntObject.of_xml)(Xml.childxml_arg0"Limit")inletgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?marker?limit?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmarker=field_mapjson__"Marker"Marker.of_jsoninletlimit=field_mapjson__"Limit"PositiveIntObject.of_jsoninletgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?marker?limit?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Gets a list of FileSystemAssociationSummary objects. Each object contains a summary of a file system association. This operation is only supported for FSx File Gateways."]moduleListFileSharesOutput=structtypenonrect={marker:Marker.toption[@ocaml.doc"If the request includes Marker, the response returns that value in this field."];nextMarker:Marker.toption[@ocaml.doc"If a value is present, there are more file shares to return. In a subsequent request, use NextMarker as the value for Marker to retrieve the next set of file shares."];fileShareInfoList:FileShareInfoList.toption[@ocaml.doc"An array of information about the S3 File Gateway's file shares."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?marker=fun?nextMarker->fun?fileShareInfoList->fun()->{marker;nextMarker;fileShareInfoList}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Marker",(Option.mapx.marker~f:Marker.to_value));("NextMarker",(Option.mapx.nextMarker~f:Marker.to_value));("FileShareInfoList",(Option.mapx.fileShareInfoList~f:FileShareInfoList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfileShareInfoList=(Option.map~f:FileShareInfoList.of_xml)(Xml.childxml_arg0"FileShareInfoList")inletnextMarker=(Option.map~f:Marker.of_xml)(Xml.childxml_arg0"NextMarker")inletmarker=(Option.map~f:Marker.of_xml)(Xml.childxml_arg0"Marker")inmake?fileShareInfoList?nextMarker?marker()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfileShareInfoList=field_mapjson__"FileShareInfoList"FileShareInfoList.of_jsoninletnextMarker=field_mapjson__"NextMarker"Marker.of_jsoninletmarker=field_mapjson__"Marker"Marker.of_jsoninmake?fileShareInfoList?nextMarker?marker()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"ListFileShareOutput"]moduleListFileSharesInput=structtypenonrect={gatewayARN:GatewayARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the gateway whose file shares you want to list. If this field is not present, all file shares under your account are listed."];limit:PositiveIntObject.toption[@ocaml.doc"The maximum number of file shares to return in the response. The value must be an integer with a value greater than zero. Optional."];marker:Marker.toption[@ocaml.doc"Opaque pagination token returned from a previous ListFileShares operation. If present, Marker specifies where to continue the list from after a previous call to ListFileShares. Optional."]}letmake?gatewayARN=fun?limit->fun?marker->fun()->{gatewayARN;limit;marker}letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value));("Limit",(Option.mapx.limit~f:PositiveIntObject.to_value));("Marker",(Option.mapx.marker~f:Marker.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmarker=(Option.map~f:Marker.of_xml)(Xml.childxml_arg0"Marker")inletlimit=(Option.map~f:PositiveIntObject.of_xml)(Xml.childxml_arg0"Limit")inletgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?marker?limit?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmarker=field_mapjson__"Marker"Marker.of_jsoninletlimit=field_mapjson__"Limit"PositiveIntObject.of_jsoninletgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?marker?limit?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"ListFileShareInput"]moduleListCacheReportsOutput=structtypenonrect={cacheReportList:CacheReportList.toption[@ocaml.doc"A list of existing cache reports for all file shares associated with your Amazon Web Services account. This list includes all information provided by the DescribeCacheReport action, such as report status, completion progress, start time, end time, filters, and tags."];marker:Marker.toption[@ocaml.doc"If the request includes Marker, the response returns that value in this field."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?cacheReportList=fun?marker->fun()->{cacheReportList;marker}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("CacheReportList",(Option.mapx.cacheReportList~f:CacheReportList.to_value));("Marker",(Option.mapx.marker~f:Marker.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmarker=(Option.map~f:Marker.of_xml)(Xml.childxml_arg0"Marker")inletcacheReportList=(Option.map~f:CacheReportList.of_xml)(Xml.childxml_arg0"CacheReportList")inmake?marker?cacheReportList()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmarker=field_mapjson__"Marker"Marker.of_jsoninletcacheReportList=field_mapjson__"CacheReportList"CacheReportList.of_jsoninmake?marker?cacheReportList()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a list of existing cache reports for all file shares associated with your Amazon Web Services account. This list includes all information provided by the DescribeCacheReport action, such as report name, status, completion progress, start time, end time, filters, and tags."]moduleListCacheReportsInput=structtypenonrect={marker:Marker.toption[@ocaml.doc"Opaque pagination token returned from a previous ListCacheReports operation. If present, Marker specifies where to continue the list from after a previous call to ListCacheReports. Optional."]}letmake?marker=fun()->{marker}letto_valuex=structure_to_value[("Marker",(Option.mapx.marker~f:Marker.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmarker=(Option.map~f:Marker.of_xml)(Xml.childxml_arg0"Marker")inmake?marker()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmarker=field_mapjson__"Marker"Marker.of_jsoninmake?marker()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a list of existing cache reports for all file shares associated with your Amazon Web Services account. This list includes all information provided by the DescribeCacheReport action, such as report name, status, completion progress, start time, end time, filters, and tags."]moduleListAutomaticTapeCreationPoliciesOutput=structtypenonrect={automaticTapeCreationPolicyInfos:AutomaticTapeCreationPolicyInfos.toption[@ocaml.doc"Gets a listing of information about the gateway's automatic tape creation policies, including the automatic tape creation rules and the gateway that is using the policies."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?automaticTapeCreationPolicyInfos=fun()->{automaticTapeCreationPolicyInfos}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("AutomaticTapeCreationPolicyInfos",(Option.mapx.automaticTapeCreationPolicyInfos~f:AutomaticTapeCreationPolicyInfos.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letautomaticTapeCreationPolicyInfos=(Option.map~f:AutomaticTapeCreationPolicyInfos.of_xml)(Xml.childxml_arg0"AutomaticTapeCreationPolicyInfos")inmake?automaticTapeCreationPolicyInfos()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letautomaticTapeCreationPolicyInfos=field_mapjson__"AutomaticTapeCreationPolicyInfos"AutomaticTapeCreationPolicyInfos.of_jsoninmake?automaticTapeCreationPolicyInfos()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the automatic tape creation policies for a gateway. If there are no automatic tape creation policies for the gateway, it returns an empty list. This operation is only supported for tape gateways."]moduleListAutomaticTapeCreationPoliciesInput=structtypenonrect={gatewayARN:GatewayARN.toption}letmake?gatewayARN=fun()->{gatewayARN}letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists the automatic tape creation policies for a gateway. If there are no automatic tape creation policies for the gateway, it returns an empty list. This operation is only supported for tape gateways."]moduleJoinDomainOutput=structtypenonrect={gatewayARN:GatewayARN.toption[@ocaml.doc"The unique Amazon Resource Name (ARN) of the gateway that joined the domain."];activeDirectoryStatus:ActiveDirectoryStatus.toption[@ocaml.doc"Indicates the status of the gateway as a member of the Active Directory domain. This field is only used as part of a JoinDomain request. It is not affected by Active Directory connectivity changes that occur after the JoinDomain request succeeds. ACCESS_DENIED: Indicates that the JoinDomain operation failed due to an authentication error. DETACHED: Indicates that gateway is not joined to a domain. JOINED: Indicates that the gateway has successfully joined a domain. JOINING: Indicates that a JoinDomain operation is in progress. INSUFFICIENT_PERMISSIONS: Indicates that the JoinDomain operation failed because the specified user lacks the necessary permissions to join the domain. NETWORK_ERROR: Indicates that JoinDomain operation failed due to a network or connectivity error. TIMEOUT: Indicates that the JoinDomain operation failed because the operation didn't complete within the allotted time. UNKNOWN_ERROR: Indicates that the JoinDomain operation failed due to another type of error."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun?activeDirectoryStatus->fun()->{gatewayARN;activeDirectoryStatus}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value));("ActiveDirectoryStatus",(Option.mapx.activeDirectoryStatus~f:ActiveDirectoryStatus.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letactiveDirectoryStatus=(Option.map~f:ActiveDirectoryStatus.of_xml)(Xml.childxml_arg0"ActiveDirectoryStatus")inletgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?activeDirectoryStatus?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letactiveDirectoryStatus=field_mapjson__"ActiveDirectoryStatus"ActiveDirectoryStatus.of_jsoninletgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?activeDirectoryStatus?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"JoinDomainOutput"]moduleJoinDomainInput=structtypenonrect={gatewayARN:GatewayARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation to return a list of gateways for your account and Amazon Web Services Region."];domainName:DomainName.t[@ocaml.doc"The name of the domain that you want the gateway to join."];organizationalUnit:OrganizationalUnit.toption[@ocaml.doc"The organizational unit (OU) is a container in an Active Directory that can hold users, groups, computers, and other OUs and this parameter specifies the OU that the gateway will join within the AD domain."];domainControllers:Hosts.toption[@ocaml.doc"List of IP addresses, NetBIOS names, or host names of your domain server. If you need to specify the port number include it after the colon (\226\128\156:\226\128\157). For example, mydc.mydomain.com:389. S3 File Gateway supports IPv6 addresses in addition to IPv4 and other existing formats. FSx File Gateway does not support IPv6."];timeoutInSeconds:TimeoutInSeconds.toption[@ocaml.doc"Specifies the time in seconds, in which the JoinDomain operation must complete. The default is 20 seconds."];userName:DomainUserName.t[@ocaml.doc"Sets the user name of user who has permission to add the gateway to the Active Directory domain. The domain user account should be enabled to join computers to the domain. For example, you can use the domain administrator account or an account with delegated permissions to join computers to the domain."];password:DomainUserPassword.t[@ocaml.doc"Sets the password of the user who has permission to add the gateway to the Active Directory domain."]}letcontext_="JoinDomainInput"letmake?organizationalUnit=fun?domainControllers->fun?timeoutInSeconds->fun~gatewayARN->fun~domainName->fun~userName->fun~password->fun()->{organizationalUnit;domainControllers;timeoutInSeconds;gatewayARN;domainName;userName;password}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)));("DomainName",(Some(DomainName.to_valuex.domainName)));("OrganizationalUnit",(Option.mapx.organizationalUnit~f:OrganizationalUnit.to_value));("DomainControllers",(Option.mapx.domainControllers~f:Hosts.to_value));("TimeoutInSeconds",(Option.mapx.timeoutInSeconds~f:TimeoutInSeconds.to_value));("UserName",(Some(DomainUserName.to_valuex.userName)));("Password",(Some(DomainUserPassword.to_valuex.password)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpassword=DomainUserPassword.of_xml(Xml.child_exn~context:context_xml_arg0"Password")inletuserName=DomainUserName.of_xml(Xml.child_exn~context:context_xml_arg0"UserName")inlettimeoutInSeconds=(Option.map~f:TimeoutInSeconds.of_xml)(Xml.childxml_arg0"TimeoutInSeconds")inletdomainControllers=(Option.map~f:Hosts.of_xml)(Xml.childxml_arg0"DomainControllers")inletorganizationalUnit=(Option.map~f:OrganizationalUnit.of_xml)(Xml.childxml_arg0"OrganizationalUnit")inletdomainName=DomainName.of_xml(Xml.child_exn~context:context_xml_arg0"DomainName")inletgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~password~userName?timeoutInSeconds?domainControllers?organizationalUnit~domainName~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpassword=field_map_exnjson__"Password"DomainUserPassword.of_jsoninletuserName=field_map_exnjson__"UserName"DomainUserName.of_jsoninlettimeoutInSeconds=field_mapjson__"TimeoutInSeconds"TimeoutInSeconds.of_jsoninletdomainControllers=field_mapjson__"DomainControllers"Hosts.of_jsoninletorganizationalUnit=field_mapjson__"OrganizationalUnit"OrganizationalUnit.of_jsoninletdomainName=field_map_exnjson__"DomainName"DomainName.of_jsoninletgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~password~userName?timeoutInSeconds?domainControllers?organizationalUnit~domainName~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"JoinDomainInput"]moduleEvictFilesFailingUploadOutput=structtypenonrect={notificationId:String_.toption[@ocaml.doc"The randomly generated ID of the CloudWatch notification associated with the cache clean operation. This ID is in UUID format."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?notificationId=fun()->{notificationId}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("NotificationId",(Option.mapx.notificationId~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnotificationId=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"NotificationId")inmake?notificationId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnotificationId=field_mapjson__"NotificationId"String_.of_jsoninmake?notificationId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Starts a process that cleans the specified file share's cache of file entries that are failing upload to Amazon S3. This API operation reports success if the request is received with valid arguments, and there are no other cache clean operations currently in-progress for the specified file share. After a successful request, the cache clean operation occurs asynchronously and reports progress using CloudWatch logs and notifications. If ForceRemove is set to True, the cache clean operation will delete file data from the gateway which might otherwise be recoverable. We recommend using this operation only after all other methods to clear files failing upload have been exhausted, and if your business need outweighs the potential data loss."]moduleEvictFilesFailingUploadInput=structtypenonrect={fileShareARN:FileShareARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the file share for which you want to start the cache clean operation."];forceRemove:Boolean__lc1.toption[@ocaml.doc"Specifies whether cache entries with full or partial file data currently stored on the gateway will be forcibly removed by the cache clean operation. Valid arguments: False - The cache clean operation skips cache entries failing upload if they are associated with data currently stored on the gateway. This preserves the cached data. True - The cache clean operation removes cache entries failing upload even if they are associated with data currently stored on the gateway. This deletes the cached data. If ForceRemove is set to True, the cache clean operation will delete file data from the gateway which might otherwise be recoverable."]}letcontext_="EvictFilesFailingUploadInput"letmake?forceRemove=fun~fileShareARN->fun()->{forceRemove;fileShareARN}letto_valuex=structure_to_value[("FileShareARN",(Some(FileShareARN.to_valuex.fileShareARN)));("ForceRemove",(Option.mapx.forceRemove~f:Boolean__lc1.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letforceRemove=(Option.map~f:Boolean__lc1.of_xml)(Xml.childxml_arg0"ForceRemove")inletfileShareARN=FileShareARN.of_xml(Xml.child_exn~context:context_xml_arg0"FileShareARN")inmake?forceRemove~fileShareARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letforceRemove=field_mapjson__"ForceRemove"Boolean__lc1.of_jsoninletfileShareARN=field_map_exnjson__"FileShareARN"FileShareARN.of_jsoninmake?forceRemove~fileShareARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Starts a process that cleans the specified file share's cache of file entries that are failing upload to Amazon S3. This API operation reports success if the request is received with valid arguments, and there are no other cache clean operations currently in-progress for the specified file share. After a successful request, the cache clean operation occurs asynchronously and reports progress using CloudWatch logs and notifications. If ForceRemove is set to True, the cache clean operation will delete file data from the gateway which might otherwise be recoverable. We recommend using this operation only after all other methods to clear files failing upload have been exhausted, and if your business need outweighs the potential data loss."]moduleDisassociateFileSystemOutput=structtypenonrect={fileSystemAssociationARN:FileSystemAssociationARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the deleted file system association."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?fileSystemAssociationARN=fun()->{fileSystemAssociationARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("FileSystemAssociationARN",(Option.mapx.fileSystemAssociationARN~f:FileSystemAssociationARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfileSystemAssociationARN=(Option.map~f:FileSystemAssociationARN.of_xml)(Xml.childxml_arg0"FileSystemAssociationARN")inmake?fileSystemAssociationARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfileSystemAssociationARN=field_mapjson__"FileSystemAssociationARN"FileSystemAssociationARN.of_jsoninmake?fileSystemAssociationARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Disassociates an Amazon FSx file system from the specified gateway. After the disassociation process finishes, the gateway can no longer access the Amazon FSx file system. This operation is only supported in the FSx File Gateway type."]moduleDisassociateFileSystemInput=structtypenonrect={fileSystemAssociationARN:FileSystemAssociationARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the file system association to be deleted."];forceDelete:Boolean__lc1.toption[@ocaml.doc"If this value is set to true, the operation disassociates an Amazon FSx file system immediately. It ends all data uploads to the file system, and the file system association enters the FORCE_DELETING status. If this value is set to false, the Amazon FSx file system does not disassociate until all data is uploaded."]}letcontext_="DisassociateFileSystemInput"letmake?forceDelete=fun~fileSystemAssociationARN->fun()->{forceDelete;fileSystemAssociationARN}letto_valuex=structure_to_value[("FileSystemAssociationARN",(Some(FileSystemAssociationARN.to_valuex.fileSystemAssociationARN)));("ForceDelete",(Option.mapx.forceDelete~f:Boolean__lc1.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letforceDelete=(Option.map~f:Boolean__lc1.of_xml)(Xml.childxml_arg0"ForceDelete")inletfileSystemAssociationARN=FileSystemAssociationARN.of_xml(Xml.child_exn~context:context_xml_arg0"FileSystemAssociationARN")inmake?forceDelete~fileSystemAssociationARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letforceDelete=field_mapjson__"ForceDelete"Boolean__lc1.of_jsoninletfileSystemAssociationARN=field_map_exnjson__"FileSystemAssociationARN"FileSystemAssociationARN.of_jsoninmake?forceDelete~fileSystemAssociationARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Disassociates an Amazon FSx file system from the specified gateway. After the disassociation process finishes, the gateway can no longer access the Amazon FSx file system. This operation is only supported in the FSx File Gateway type."]moduleDisableGatewayOutput=structtypenonrect={gatewayARN:GatewayARN.toption[@ocaml.doc"The unique Amazon Resource Name (ARN) of the disabled gateway."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun()->{gatewayARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"DisableGatewayOutput"]moduleDisableGatewayInput=structtypenonrect={gatewayARN:GatewayARN.t}letcontext_="DisableGatewayInput"letmake~gatewayARN=fun()->{gatewayARN}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"DisableGatewayInput"]moduleDetachVolumeOutput=structtypenonrect={volumeARN:VolumeARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the volume that was detached."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?volumeARN=fun()->{volumeARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("VolumeARN",(Option.mapx.volumeARN~f:VolumeARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvolumeARN=(Option.map~f:VolumeARN.of_xml)(Xml.childxml_arg0"VolumeARN")inmake?volumeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvolumeARN=field_mapjson__"VolumeARN"VolumeARN.of_jsoninmake?volumeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"AttachVolumeOutput"]moduleDetachVolumeInput=structtypenonrect={volumeARN:VolumeARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the volume to detach from the gateway."];forceDetach:Boolean.toption[@ocaml.doc"Set to true to forcibly remove the iSCSI connection of the target volume and detach the volume. The default is false. If this value is set to false, you must manually disconnect the iSCSI connection from the target volume. Valid Values: true | false"]}letcontext_="DetachVolumeInput"letmake?forceDetach=fun~volumeARN->fun()->{forceDetach;volumeARN}letto_valuex=structure_to_value[("VolumeARN",(Some(VolumeARN.to_valuex.volumeARN)));("ForceDetach",(Option.mapx.forceDetach~f:Boolean.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letforceDetach=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"ForceDetach")inletvolumeARN=VolumeARN.of_xml(Xml.child_exn~context:context_xml_arg0"VolumeARN")inmake?forceDetach~volumeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letforceDetach=field_mapjson__"ForceDetach"Boolean.of_jsoninletvolumeARN=field_map_exnjson__"VolumeARN"VolumeARN.of_jsoninmake?forceDetach~volumeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"AttachVolumeInput"]moduleDescribeWorkingStorageOutput=structtypenonrect={gatewayARN:GatewayARN.toption;diskIds:DiskIds.toption[@ocaml.doc"An array of the gateway's local disk IDs that are configured as working storage. Each local disk ID is specified as a string (minimum length of 1 and maximum length of 300). If no local disks are configured as working storage, then the DiskIds array is empty."];workingStorageUsedInBytes:Long.toption[@ocaml.doc"The total working storage in bytes in use by the gateway. If no working storage is configured for the gateway, this field returns 0."];workingStorageAllocatedInBytes:Long.toption[@ocaml.doc"The total working storage in bytes allocated for the gateway. If no working storage is configured for the gateway, this field returns 0."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun?diskIds->fun?workingStorageUsedInBytes->fun?workingStorageAllocatedInBytes->fun()->{gatewayARN;diskIds;workingStorageUsedInBytes;workingStorageAllocatedInBytes}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value));("DiskIds",(Option.mapx.diskIds~f:DiskIds.to_value));("WorkingStorageUsedInBytes",(Option.mapx.workingStorageUsedInBytes~f:Long.to_value));("WorkingStorageAllocatedInBytes",(Option.mapx.workingStorageAllocatedInBytes~f:Long.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letworkingStorageAllocatedInBytes=(Option.map~f:Long.of_xml)(Xml.childxml_arg0"WorkingStorageAllocatedInBytes")inletworkingStorageUsedInBytes=(Option.map~f:Long.of_xml)(Xml.childxml_arg0"WorkingStorageUsedInBytes")inletdiskIds=(Option.map~f:DiskIds.of_xml)(Xml.childxml_arg0"DiskIds")inletgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?workingStorageAllocatedInBytes?workingStorageUsedInBytes?diskIds?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letworkingStorageAllocatedInBytes=field_mapjson__"WorkingStorageAllocatedInBytes"Long.of_jsoninletworkingStorageUsedInBytes=field_mapjson__"WorkingStorageUsedInBytes"Long.of_jsoninletdiskIds=field_mapjson__"DiskIds"DiskIds.of_jsoninletgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?workingStorageAllocatedInBytes?workingStorageUsedInBytes?diskIds?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the following fields:"]moduleDescribeWorkingStorageInput=structtypenonrect={gatewayARN:GatewayARN.t}letcontext_="DescribeWorkingStorageInput"letmake~gatewayARN=fun()->{gatewayARN}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the Amazon Resource Name (ARN) of the gateway."]moduleDescribeVTLDevicesOutput=structtypenonrect={gatewayARN:GatewayARN.toption;vTLDevices:VTLDevices.toption[@ocaml.doc"An array of VTL device objects composed of the Amazon Resource Name (ARN) of the VTL devices."];marker:Marker.toption[@ocaml.doc"An opaque string that indicates the position at which the VTL devices that were fetched for description ended. Use the marker in your next request to fetch the next set of VTL devices in the list. If there are no more VTL devices to describe, this field does not appear in the response."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun?vTLDevices->fun?marker->fun()->{gatewayARN;vTLDevices;marker}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value));("VTLDevices",(Option.mapx.vTLDevices~f:VTLDevices.to_value));("Marker",(Option.mapx.marker~f:Marker.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmarker=(Option.map~f:Marker.of_xml)(Xml.childxml_arg0"Marker")inletvTLDevices=(Option.map~f:VTLDevices.of_xml)(Xml.childxml_arg0"VTLDevices")inletgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?marker?vTLDevices?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmarker=field_mapjson__"Marker"Marker.of_jsoninletvTLDevices=field_mapjson__"VTLDevices"VTLDevices.of_jsoninletgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?marker?vTLDevices?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"DescribeVTLDevicesOutput"]moduleDescribeVTLDevicesInput=structtypenonrect={gatewayARN:GatewayARN.t;vTLDeviceARNs:VTLDeviceARNs.toption[@ocaml.doc"An array of strings, where each string represents the Amazon Resource Name (ARN) of a VTL device. All of the specified VTL devices must be from the same gateway. If no VTL devices are specified, the result will contain all devices on the specified gateway."];marker:Marker.toption[@ocaml.doc"An opaque string that indicates the position at which to begin describing the VTL devices."];limit:PositiveIntObject.toption[@ocaml.doc"Specifies that the number of VTL devices described be limited to the specified number."]}letcontext_="DescribeVTLDevicesInput"letmake?vTLDeviceARNs=fun?marker->fun?limit->fun~gatewayARN->fun()->{vTLDeviceARNs;marker;limit;gatewayARN}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)));("VTLDeviceARNs",(Option.mapx.vTLDeviceARNs~f:VTLDeviceARNs.to_value));("Marker",(Option.mapx.marker~f:Marker.to_value));("Limit",(Option.mapx.limit~f:PositiveIntObject.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlimit=(Option.map~f:PositiveIntObject.of_xml)(Xml.childxml_arg0"Limit")inletmarker=(Option.map~f:Marker.of_xml)(Xml.childxml_arg0"Marker")inletvTLDeviceARNs=(Option.map~f:VTLDeviceARNs.of_xml)(Xml.childxml_arg0"VTLDeviceARNs")inletgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake?limit?marker?vTLDeviceARNs~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlimit=field_mapjson__"Limit"PositiveIntObject.of_jsoninletmarker=field_mapjson__"Marker"Marker.of_jsoninletvTLDeviceARNs=field_mapjson__"VTLDeviceARNs"VTLDeviceARNs.of_jsoninletgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake?limit?marker?vTLDeviceARNs~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"DescribeVTLDevicesInput"]moduleDescribeUploadBufferOutput=structtypenonrect={gatewayARN:GatewayARN.toption;diskIds:DiskIds.toption[@ocaml.doc"An array of the gateway's local disk IDs that are configured as working storage. Each local disk ID is specified as a string (minimum length of 1 and maximum length of 300). If no local disks are configured as working storage, then the DiskIds array is empty."];uploadBufferUsedInBytes:Long.toption[@ocaml.doc"The total number of bytes being used in the gateway's upload buffer."];uploadBufferAllocatedInBytes:Long.toption[@ocaml.doc"The total number of bytes allocated in the gateway's as upload buffer."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun?diskIds->fun?uploadBufferUsedInBytes->fun?uploadBufferAllocatedInBytes->fun()->{gatewayARN;diskIds;uploadBufferUsedInBytes;uploadBufferAllocatedInBytes}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value));("DiskIds",(Option.mapx.diskIds~f:DiskIds.to_value));("UploadBufferUsedInBytes",(Option.mapx.uploadBufferUsedInBytes~f:Long.to_value));("UploadBufferAllocatedInBytes",(Option.mapx.uploadBufferAllocatedInBytes~f:Long.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letuploadBufferAllocatedInBytes=(Option.map~f:Long.of_xml)(Xml.childxml_arg0"UploadBufferAllocatedInBytes")inletuploadBufferUsedInBytes=(Option.map~f:Long.of_xml)(Xml.childxml_arg0"UploadBufferUsedInBytes")inletdiskIds=(Option.map~f:DiskIds.of_xml)(Xml.childxml_arg0"DiskIds")inletgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?uploadBufferAllocatedInBytes?uploadBufferUsedInBytes?diskIds?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letuploadBufferAllocatedInBytes=field_mapjson__"UploadBufferAllocatedInBytes"Long.of_jsoninletuploadBufferUsedInBytes=field_mapjson__"UploadBufferUsedInBytes"Long.of_jsoninletdiskIds=field_mapjson__"DiskIds"DiskIds.of_jsoninletgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?uploadBufferAllocatedInBytes?uploadBufferUsedInBytes?diskIds?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns information about the upload buffer of a gateway. This operation is supported for the stored volume, cached volume, and tape gateway types. The response includes disk IDs that are configured as upload buffer space, and it includes the amount of upload buffer space allocated and used."]moduleDescribeUploadBufferInput=structtypenonrect={gatewayARN:GatewayARN.t}letcontext_="DescribeUploadBufferInput"letmake~gatewayARN=fun()->{gatewayARN}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns information about the upload buffer of a gateway. This operation is supported for the stored volume, cached volume, and tape gateway types. The response includes disk IDs that are configured as upload buffer space, and it includes the amount of upload buffer space allocated and used."]moduleDescribeTapesOutput=structtypenonrect={tapes:Tapes.toption[@ocaml.doc"An array of virtual tape descriptions."];marker:Marker.toption[@ocaml.doc"An opaque string that can be used as part of a subsequent DescribeTapes call to retrieve the next page of results. If a response does not contain a marker, then there are no more results to be retrieved."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?tapes=fun?marker->fun()->{tapes;marker}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Tapes",(Option.mapx.tapes~f:Tapes.to_value));("Marker",(Option.mapx.marker~f:Marker.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmarker=(Option.map~f:Marker.of_xml)(Xml.childxml_arg0"Marker")inlettapes=(Option.map~f:Tapes.of_xml)(Xml.childxml_arg0"Tapes")inmake?marker?tapes()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmarker=field_mapjson__"Marker"Marker.of_jsoninlettapes=field_mapjson__"Tapes"Tapes.of_jsoninmake?marker?tapes()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"DescribeTapesOutput"]moduleDescribeTapesInput=structtypenonrect={gatewayARN:GatewayARN.t;tapeARNs:TapeARNs.toption[@ocaml.doc"Specifies one or more unique Amazon Resource Names (ARNs) that represent the virtual tapes you want to describe. If this parameter is not specified, Tape gateway returns a description of all virtual tapes associated with the specified gateway."];marker:Marker.toption[@ocaml.doc"A marker value, obtained in a previous call to DescribeTapes. This marker indicates which page of results to retrieve. If not specified, the first page of results is retrieved."];limit:PositiveIntObject.toption[@ocaml.doc"Specifies that the number of virtual tapes described be limited to the specified number. Amazon Web Services may impose its own limit, if this field is not set."]}letcontext_="DescribeTapesInput"letmake?tapeARNs=fun?marker->fun?limit->fun~gatewayARN->fun()->{tapeARNs;marker;limit;gatewayARN}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)));("TapeARNs",(Option.mapx.tapeARNs~f:TapeARNs.to_value));("Marker",(Option.mapx.marker~f:Marker.to_value));("Limit",(Option.mapx.limit~f:PositiveIntObject.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlimit=(Option.map~f:PositiveIntObject.of_xml)(Xml.childxml_arg0"Limit")inletmarker=(Option.map~f:Marker.of_xml)(Xml.childxml_arg0"Marker")inlettapeARNs=(Option.map~f:TapeARNs.of_xml)(Xml.childxml_arg0"TapeARNs")inletgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake?limit?marker?tapeARNs~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlimit=field_mapjson__"Limit"PositiveIntObject.of_jsoninletmarker=field_mapjson__"Marker"Marker.of_jsoninlettapeARNs=field_mapjson__"TapeARNs"TapeARNs.of_jsoninletgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake?limit?marker?tapeARNs~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"DescribeTapesInput"]moduleDescribeTapeRecoveryPointsOutput=structtypenonrect={gatewayARN:GatewayARN.toption;tapeRecoveryPointInfos:TapeRecoveryPointInfos.toption[@ocaml.doc"An array of TapeRecoveryPointInfos that are available for the specified gateway."];marker:Marker.toption[@ocaml.doc"An opaque string that indicates the position at which the virtual tape recovery points that were listed for description ended. Use this marker in your next request to list the next set of virtual tape recovery points in the list. If there are no more recovery points to describe, this field does not appear in the response."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun?tapeRecoveryPointInfos->fun?marker->fun()->{gatewayARN;tapeRecoveryPointInfos;marker}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value));("TapeRecoveryPointInfos",(Option.mapx.tapeRecoveryPointInfos~f:TapeRecoveryPointInfos.to_value));("Marker",(Option.mapx.marker~f:Marker.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmarker=(Option.map~f:Marker.of_xml)(Xml.childxml_arg0"Marker")inlettapeRecoveryPointInfos=(Option.map~f:TapeRecoveryPointInfos.of_xml)(Xml.childxml_arg0"TapeRecoveryPointInfos")inletgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?marker?tapeRecoveryPointInfos?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmarker=field_mapjson__"Marker"Marker.of_jsoninlettapeRecoveryPointInfos=field_mapjson__"TapeRecoveryPointInfos"TapeRecoveryPointInfos.of_jsoninletgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?marker?tapeRecoveryPointInfos?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"DescribeTapeRecoveryPointsOutput"]moduleDescribeTapeRecoveryPointsInput=structtypenonrect={gatewayARN:GatewayARN.t;marker:Marker.toption[@ocaml.doc"An opaque string that indicates the position at which to begin describing the virtual tape recovery points."];limit:PositiveIntObject.toption[@ocaml.doc"Specifies that the number of virtual tape recovery points that are described be limited to the specified number."]}letcontext_="DescribeTapeRecoveryPointsInput"letmake?marker=fun?limit->fun~gatewayARN->fun()->{marker;limit;gatewayARN}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)));("Marker",(Option.mapx.marker~f:Marker.to_value));("Limit",(Option.mapx.limit~f:PositiveIntObject.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlimit=(Option.map~f:PositiveIntObject.of_xml)(Xml.childxml_arg0"Limit")inletmarker=(Option.map~f:Marker.of_xml)(Xml.childxml_arg0"Marker")inletgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake?limit?marker~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlimit=field_mapjson__"Limit"PositiveIntObject.of_jsoninletmarker=field_mapjson__"Marker"Marker.of_jsoninletgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake?limit?marker~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"DescribeTapeRecoveryPointsInput"]moduleDescribeTapeArchivesOutput=structtypenonrect={tapeArchives:TapeArchives.toption[@ocaml.doc"An array of virtual tape objects in the virtual tape shelf (VTS). The description includes of the Amazon Resource Name (ARN) of the virtual tapes. The information returned includes the Amazon Resource Names (ARNs) of the tapes, size of the tapes, status of the tapes, progress of the description, and tape barcode."];marker:Marker.toption[@ocaml.doc"An opaque string that indicates the position at which the virtual tapes that were fetched for description ended. Use this marker in your next request to fetch the next set of virtual tapes in the virtual tape shelf (VTS). If there are no more virtual tapes to describe, this field does not appear in the response."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?tapeArchives=fun?marker->fun()->{tapeArchives;marker}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("TapeArchives",(Option.mapx.tapeArchives~f:TapeArchives.to_value));("Marker",(Option.mapx.marker~f:Marker.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmarker=(Option.map~f:Marker.of_xml)(Xml.childxml_arg0"Marker")inlettapeArchives=(Option.map~f:TapeArchives.of_xml)(Xml.childxml_arg0"TapeArchives")inmake?marker?tapeArchives()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmarker=field_mapjson__"Marker"Marker.of_jsoninlettapeArchives=field_mapjson__"TapeArchives"TapeArchives.of_jsoninmake?marker?tapeArchives()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"DescribeTapeArchivesOutput"]moduleDescribeTapeArchivesInput=structtypenonrect={tapeARNs:TapeARNs.toption[@ocaml.doc"Specifies one or more unique Amazon Resource Names (ARNs) that represent the virtual tapes you want to describe."];marker:Marker.toption[@ocaml.doc"An opaque string that indicates the position at which to begin describing virtual tapes."];limit:PositiveIntObject.toption[@ocaml.doc"Specifies that the number of virtual tapes described be limited to the specified number."]}letmake?tapeARNs=fun?marker->fun?limit->fun()->{tapeARNs;marker;limit}letto_valuex=structure_to_value[("TapeARNs",(Option.mapx.tapeARNs~f:TapeARNs.to_value));("Marker",(Option.mapx.marker~f:Marker.to_value));("Limit",(Option.mapx.limit~f:PositiveIntObject.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlimit=(Option.map~f:PositiveIntObject.of_xml)(Xml.childxml_arg0"Limit")inletmarker=(Option.map~f:Marker.of_xml)(Xml.childxml_arg0"Marker")inlettapeARNs=(Option.map~f:TapeARNs.of_xml)(Xml.childxml_arg0"TapeARNs")inmake?limit?marker?tapeARNs()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlimit=field_mapjson__"Limit"PositiveIntObject.of_jsoninletmarker=field_mapjson__"Marker"Marker.of_jsoninlettapeARNs=field_mapjson__"TapeARNs"TapeARNs.of_jsoninmake?limit?marker?tapeARNs()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"DescribeTapeArchivesInput"]moduleDescribeStorediSCSIVolumesOutput=structtypenonrect={storediSCSIVolumes:StorediSCSIVolumes.toption[@ocaml.doc"Describes a single unit of output from DescribeStorediSCSIVolumes. The following fields are returned: ChapEnabled: Indicates whether mutual CHAP is enabled for the iSCSI target. LunNumber: The logical disk number. NetworkInterfaceId: The network interface ID of the stored volume that initiator use to map the stored volume as an iSCSI target. NetworkInterfacePort: The port used to communicate with iSCSI targets. PreservedExistingData: Indicates when the stored volume was created, existing data on the underlying local disk was preserved. SourceSnapshotId: If the stored volume was created from a snapshot, this field contains the snapshot ID used, e.g. snap-1122aabb. Otherwise, this field is not included. StorediSCSIVolumes: An array of StorediSCSIVolume objects where each object contains metadata about one stored volume. TargetARN: The Amazon Resource Name (ARN) of the volume target. VolumeARN: The Amazon Resource Name (ARN) of the stored volume. VolumeDiskId: The disk ID of the local disk that was specified in the CreateStorediSCSIVolume operation. VolumeId: The unique identifier of the storage volume, e.g. vol-1122AABB. VolumeiSCSIAttributes: An VolumeiSCSIAttributes object that represents a collection of iSCSI attributes for one stored volume. VolumeProgress: Represents the percentage complete if the volume is restoring or bootstrapping that represents the percent of data transferred. This field does not appear in the response if the stored volume is not restoring or bootstrapping. VolumeSizeInBytes: The size of the volume in bytes. VolumeStatus: One of the VolumeStatus values that indicates the state of the volume. VolumeType: One of the enumeration values describing the type of the volume. Currently, only STORED volumes are supported."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?storediSCSIVolumes=fun()->{storediSCSIVolumes}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("StorediSCSIVolumes",(Option.mapx.storediSCSIVolumes~f:StorediSCSIVolumes.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstorediSCSIVolumes=(Option.map~f:StorediSCSIVolumes.of_xml)(Xml.childxml_arg0"StorediSCSIVolumes")inmake?storediSCSIVolumes()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstorediSCSIVolumes=field_mapjson__"StorediSCSIVolumes"StorediSCSIVolumes.of_jsoninmake?storediSCSIVolumes()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns the description of the gateway volumes specified in the request. The list of gateway volumes in the request must be from one gateway. In the response, Storage Gateway returns volume information sorted by volume ARNs. This operation is only supported in stored volume gateway type."]moduleDescribeStorediSCSIVolumesInput=structtypenonrect={volumeARNs:VolumeARNs.t[@ocaml.doc"An array of strings where each string represents the Amazon Resource Name (ARN) of a stored volume. All of the specified stored volumes must be from the same gateway. Use ListVolumes to get volume ARNs for a gateway."]}letcontext_="DescribeStorediSCSIVolumesInput"letmake~volumeARNs=fun()->{volumeARNs}letto_valuex=structure_to_value[("VolumeARNs",(Some(VolumeARNs.to_valuex.volumeARNs)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvolumeARNs=VolumeARNs.of_xml(Xml.child_exn~context:context_xml_arg0"VolumeARNs")inmake~volumeARNs()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvolumeARNs=field_map_exnjson__"VolumeARNs"VolumeARNs.of_jsoninmake~volumeARNs()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing a list of DescribeStorediSCSIVolumesInput$VolumeARNs."]moduleDescribeSnapshotScheduleOutput=structtypenonrect={volumeARN:VolumeARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the volume that was specified in the request."];startAt:HourOfDay.toption[@ocaml.doc"The hour of the day at which the snapshot schedule begins represented as hh, where hh is the hour (0 to 23). The hour of the day is in the time zone of the gateway."];recurrenceInHours:RecurrenceInHours.toption[@ocaml.doc"The number of hours between snapshots."];description:Description.toption[@ocaml.doc"The snapshot description."];timezone:GatewayTimezone.toption[@ocaml.doc"A value that indicates the time zone of the gateway."];tags:Tags.toption[@ocaml.doc"A list of up to 50 tags assigned to the snapshot schedule, sorted alphabetically by key name. Each tag is a key-value pair. For a gateway with more than 10 tags assigned, you can view all tags using the ListTagsForResource API operation."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?volumeARN=fun?startAt->fun?recurrenceInHours->fun?description->fun?timezone->fun?tags->fun()->{volumeARN;startAt;recurrenceInHours;description;timezone;tags}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("VolumeARN",(Option.mapx.volumeARN~f:VolumeARN.to_value));("StartAt",(Option.mapx.startAt~f:HourOfDay.to_value));("RecurrenceInHours",(Option.mapx.recurrenceInHours~f:RecurrenceInHours.to_value));("Description",(Option.mapx.description~f:Description.to_value));("Timezone",(Option.mapx.timezone~f:GatewayTimezone.to_value));("Tags",(Option.mapx.tags~f:Tags.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:Tags.of_xml)(Xml.childxml_arg0"Tags")inlettimezone=(Option.map~f:GatewayTimezone.of_xml)(Xml.childxml_arg0"Timezone")inletdescription=(Option.map~f:Description.of_xml)(Xml.childxml_arg0"Description")inletrecurrenceInHours=(Option.map~f:RecurrenceInHours.of_xml)(Xml.childxml_arg0"RecurrenceInHours")inletstartAt=(Option.map~f:HourOfDay.of_xml)(Xml.childxml_arg0"StartAt")inletvolumeARN=(Option.map~f:VolumeARN.of_xml)(Xml.childxml_arg0"VolumeARN")inmake?tags?timezone?description?recurrenceInHours?startAt?volumeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"Tags"Tags.of_jsoninlettimezone=field_mapjson__"Timezone"GatewayTimezone.of_jsoninletdescription=field_mapjson__"Description"Description.of_jsoninletrecurrenceInHours=field_mapjson__"RecurrenceInHours"RecurrenceInHours.of_jsoninletstartAt=field_mapjson__"StartAt"HourOfDay.of_jsoninletvolumeARN=field_mapjson__"VolumeARN"VolumeARN.of_jsoninmake?tags?timezone?description?recurrenceInHours?startAt?volumeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the snapshot schedule for the specified gateway volume. The snapshot schedule information includes intervals at which snapshots are automatically initiated on the volume. This operation is only supported in the cached volume and stored volume types."]moduleDescribeSnapshotScheduleInput=structtypenonrect={volumeARN:VolumeARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation to return a list of gateway volumes."]}letcontext_="DescribeSnapshotScheduleInput"letmake~volumeARN=fun()->{volumeARN}letto_valuex=structure_to_value[("VolumeARN",(Some(VolumeARN.to_valuex.volumeARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvolumeARN=VolumeARN.of_xml(Xml.child_exn~context:context_xml_arg0"VolumeARN")inmake~volumeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvolumeARN=field_map_exnjson__"VolumeARN"VolumeARN.of_jsoninmake~volumeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the DescribeSnapshotScheduleInput$VolumeARN of the volume."]moduleDescribeSMBSettingsOutput=structtypenonrect={gatewayARN:GatewayARN.toption;domainName:DomainName.toption[@ocaml.doc"The name of the domain that the gateway is joined to."];activeDirectoryStatus:ActiveDirectoryStatus.toption[@ocaml.doc"Indicates the status of a gateway that is a member of the Active Directory domain. This field is only used as part of a JoinDomain request. It is not affected by Active Directory connectivity changes that occur after the JoinDomain request succeeds. ACCESS_DENIED: Indicates that the JoinDomain operation failed due to an authentication error. DETACHED: Indicates that gateway is not joined to a domain. JOINED: Indicates that the gateway has successfully joined a domain. JOINING: Indicates that a JoinDomain operation is in progress. NETWORK_ERROR: Indicates that JoinDomain operation failed due to a network or connectivity error. TIMEOUT: Indicates that the JoinDomain operation failed because the operation didn't complete within the allotted time. UNKNOWN_ERROR: Indicates that the JoinDomain operation failed due to another type of error."];sMBGuestPasswordSet:Boolean.toption[@ocaml.doc"This value is true if a password for the guest user smbguest is set, otherwise false. Only supported for S3 File Gateways. Valid Values: true | false"];sMBSecurityStrategy:SMBSecurityStrategy.toption[@ocaml.doc"The type of security strategy that was specified for file gateway. ClientSpecified: If you choose this option, requests are established based on what is negotiated by the client. This option is recommended when you want to maximize compatibility across different clients in your environment. Supported only for S3 File Gateway. MandatorySigning: If you choose this option, File Gateway only allows connections from SMBv2 or SMBv3 clients that have signing turned on. This option works with SMB clients on Microsoft Windows Vista, Windows Server 2008, or later. MandatoryEncryption: If you choose this option, File Gateway only allows connections from SMBv3 clients that have encryption turned on. Both 256-bit and 128-bit algorithms are allowed. This option is recommended for environments that handle sensitive data. It works with SMB clients on Microsoft Windows 8, Windows Server 2012, or later. MandatoryEncryptionNoAes128: If you choose this option, File Gateway only allows connections from SMBv3 clients that use 256-bit AES encryption algorithms. 128-bit algorithms are not allowed. This option is recommended for environments that handle sensitive data. It works with SMB clients on Microsoft Windows 8, Windows Server 2012, or later."];fileSharesVisible:Boolean.toption[@ocaml.doc"The shares on this gateway appear when listing shares. Only supported for S3 File Gateways."];sMBLocalGroups:SMBLocalGroups.toption[@ocaml.doc"A list of Active Directory users and groups that have special permissions for SMB file shares on the gateway."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun?domainName->fun?activeDirectoryStatus->fun?sMBGuestPasswordSet->fun?sMBSecurityStrategy->fun?fileSharesVisible->fun?sMBLocalGroups->fun()->{gatewayARN;domainName;activeDirectoryStatus;sMBGuestPasswordSet;sMBSecurityStrategy;fileSharesVisible;sMBLocalGroups}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value));("DomainName",(Option.mapx.domainName~f:DomainName.to_value));("ActiveDirectoryStatus",(Option.mapx.activeDirectoryStatus~f:ActiveDirectoryStatus.to_value));("SMBGuestPasswordSet",(Option.mapx.sMBGuestPasswordSet~f:Boolean.to_value));("SMBSecurityStrategy",(Option.mapx.sMBSecurityStrategy~f:SMBSecurityStrategy.to_value));("FileSharesVisible",(Option.mapx.fileSharesVisible~f:Boolean.to_value));("SMBLocalGroups",(Option.mapx.sMBLocalGroups~f:SMBLocalGroups.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsMBLocalGroups=(Option.map~f:SMBLocalGroups.of_xml)(Xml.childxml_arg0"SMBLocalGroups")inletfileSharesVisible=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"FileSharesVisible")inletsMBSecurityStrategy=(Option.map~f:SMBSecurityStrategy.of_xml)(Xml.childxml_arg0"SMBSecurityStrategy")inletsMBGuestPasswordSet=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"SMBGuestPasswordSet")inletactiveDirectoryStatus=(Option.map~f:ActiveDirectoryStatus.of_xml)(Xml.childxml_arg0"ActiveDirectoryStatus")inletdomainName=(Option.map~f:DomainName.of_xml)(Xml.childxml_arg0"DomainName")inletgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?sMBLocalGroups?fileSharesVisible?sMBSecurityStrategy?sMBGuestPasswordSet?activeDirectoryStatus?domainName?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsMBLocalGroups=field_mapjson__"SMBLocalGroups"SMBLocalGroups.of_jsoninletfileSharesVisible=field_mapjson__"FileSharesVisible"Boolean.of_jsoninletsMBSecurityStrategy=field_mapjson__"SMBSecurityStrategy"SMBSecurityStrategy.of_jsoninletsMBGuestPasswordSet=field_mapjson__"SMBGuestPasswordSet"Boolean.of_jsoninletactiveDirectoryStatus=field_mapjson__"ActiveDirectoryStatus"ActiveDirectoryStatus.of_jsoninletdomainName=field_mapjson__"DomainName"DomainName.of_jsoninletgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?sMBLocalGroups?fileSharesVisible?sMBSecurityStrategy?sMBGuestPasswordSet?activeDirectoryStatus?domainName?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Gets a description of a Server Message Block (SMB) file share settings from a file gateway. This operation is only supported for file gateways."]moduleDescribeSMBSettingsInput=structtypenonrect={gatewayARN:GatewayARN.t}letcontext_="DescribeSMBSettingsInput"letmake~gatewayARN=fun()->{gatewayARN}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Gets a description of a Server Message Block (SMB) file share settings from a file gateway. This operation is only supported for file gateways."]moduleDescribeSMBFileSharesOutput=structtypenonrect={sMBFileShareInfoList:SMBFileShareInfoList.toption[@ocaml.doc"An array containing a description for each requested file share."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?sMBFileShareInfoList=fun()->{sMBFileShareInfoList}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("SMBFileShareInfoList",(Option.mapx.sMBFileShareInfoList~f:SMBFileShareInfoList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsMBFileShareInfoList=(Option.map~f:SMBFileShareInfoList.of_xml)(Xml.childxml_arg0"SMBFileShareInfoList")inmake?sMBFileShareInfoList()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsMBFileShareInfoList=field_mapjson__"SMBFileShareInfoList"SMBFileShareInfoList.of_jsoninmake?sMBFileShareInfoList()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"DescribeSMBFileSharesOutput"]moduleDescribeSMBFileSharesInput=structtypenonrect={fileShareARNList:FileShareARNList.t[@ocaml.doc"An array containing the Amazon Resource Name (ARN) of each file share to be described."]}letcontext_="DescribeSMBFileSharesInput"letmake~fileShareARNList=fun()->{fileShareARNList}letto_valuex=structure_to_value[("FileShareARNList",(Some(FileShareARNList.to_valuex.fileShareARNList)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfileShareARNList=FileShareARNList.of_xml(Xml.child_exn~context:context_xml_arg0"FileShareARNList")inmake~fileShareARNList()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfileShareARNList=field_map_exnjson__"FileShareARNList"FileShareARNList.of_jsoninmake~fileShareARNList()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"DescribeSMBFileSharesInput"]moduleDescribeNFSFileSharesOutput=structtypenonrect={nFSFileShareInfoList:NFSFileShareInfoList.toption[@ocaml.doc"An array containing a description for each requested file share."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?nFSFileShareInfoList=fun()->{nFSFileShareInfoList}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("NFSFileShareInfoList",(Option.mapx.nFSFileShareInfoList~f:NFSFileShareInfoList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnFSFileShareInfoList=(Option.map~f:NFSFileShareInfoList.of_xml)(Xml.childxml_arg0"NFSFileShareInfoList")inmake?nFSFileShareInfoList()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnFSFileShareInfoList=field_mapjson__"NFSFileShareInfoList"NFSFileShareInfoList.of_jsoninmake?nFSFileShareInfoList()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"DescribeNFSFileSharesOutput"]moduleDescribeNFSFileSharesInput=structtypenonrect={fileShareARNList:FileShareARNList.t[@ocaml.doc"An array containing the Amazon Resource Name (ARN) of each file share to be described."]}letcontext_="DescribeNFSFileSharesInput"letmake~fileShareARNList=fun()->{fileShareARNList}letto_valuex=structure_to_value[("FileShareARNList",(Some(FileShareARNList.to_valuex.fileShareARNList)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfileShareARNList=FileShareARNList.of_xml(Xml.child_exn~context:context_xml_arg0"FileShareARNList")inmake~fileShareARNList()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfileShareARNList=field_map_exnjson__"FileShareARNList"FileShareARNList.of_jsoninmake~fileShareARNList()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"DescribeNFSFileSharesInput"]moduleDescribeMaintenanceStartTimeOutput=structtypenonrect={gatewayARN:GatewayARN.toption;hourOfDay:HourOfDay.toption[@ocaml.doc"The hour component of the maintenance start time represented as hh, where hh is the hour (0 to 23). The hour of the day is in the time zone of the gateway."];minuteOfHour:MinuteOfHour.toption[@ocaml.doc"The minute component of the maintenance start time represented as mm, where mm is the minute (0 to 59). The minute of the hour is in the time zone of the gateway."];dayOfWeek:DayOfWeek.toption[@ocaml.doc"An ordinal number between 0 and 6 that represents the day of the week, where 0 represents Sunday and 6 represents Saturday. The day of week is in the time zone of the gateway."];dayOfMonth:DayOfMonth.toption[@ocaml.doc"The day of the month component of the maintenance start time represented as an ordinal number from 1 to 28, where 1 represents the first day of the month. It is not possible to set the maintenance schedule to start on days 29 through 31."];timezone:GatewayTimezone.toption[@ocaml.doc"A value that indicates the time zone that is set for the gateway. The start time and day of week specified should be in the time zone of the gateway."];softwareUpdatePreferences:SoftwareUpdatePreferences.toption[@ocaml.doc"A set of variables indicating the software update preferences for the gateway. Includes AutomaticUpdatePolicy parameter with the following inputs: ALL_VERSIONS - Enables regular gateway maintenance updates. EMERGENCY_VERSIONS_ONLY - Disables regular gateway maintenance updates. The gateway will still receive emergency version updates on rare occasions if necessary to remedy highly critical security or durability issues. You will be notified before an emergency version update is applied. These updates are applied during your gateway's scheduled maintenance window."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun?hourOfDay->fun?minuteOfHour->fun?dayOfWeek->fun?dayOfMonth->fun?timezone->fun?softwareUpdatePreferences->fun()->{gatewayARN;hourOfDay;minuteOfHour;dayOfWeek;dayOfMonth;timezone;softwareUpdatePreferences}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value));("HourOfDay",(Option.mapx.hourOfDay~f:HourOfDay.to_value));("MinuteOfHour",(Option.mapx.minuteOfHour~f:MinuteOfHour.to_value));("DayOfWeek",(Option.mapx.dayOfWeek~f:DayOfWeek.to_value));("DayOfMonth",(Option.mapx.dayOfMonth~f:DayOfMonth.to_value));("Timezone",(Option.mapx.timezone~f:GatewayTimezone.to_value));("SoftwareUpdatePreferences",(Option.mapx.softwareUpdatePreferences~f:SoftwareUpdatePreferences.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsoftwareUpdatePreferences=(Option.map~f:SoftwareUpdatePreferences.of_xml)(Xml.childxml_arg0"SoftwareUpdatePreferences")inlettimezone=(Option.map~f:GatewayTimezone.of_xml)(Xml.childxml_arg0"Timezone")inletdayOfMonth=(Option.map~f:DayOfMonth.of_xml)(Xml.childxml_arg0"DayOfMonth")inletdayOfWeek=(Option.map~f:DayOfWeek.of_xml)(Xml.childxml_arg0"DayOfWeek")inletminuteOfHour=(Option.map~f:MinuteOfHour.of_xml)(Xml.childxml_arg0"MinuteOfHour")inlethourOfDay=(Option.map~f:HourOfDay.of_xml)(Xml.childxml_arg0"HourOfDay")inletgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?softwareUpdatePreferences?timezone?dayOfMonth?dayOfWeek?minuteOfHour?hourOfDay?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsoftwareUpdatePreferences=field_mapjson__"SoftwareUpdatePreferences"SoftwareUpdatePreferences.of_jsoninlettimezone=field_mapjson__"Timezone"GatewayTimezone.of_jsoninletdayOfMonth=field_mapjson__"DayOfMonth"DayOfMonth.of_jsoninletdayOfWeek=field_mapjson__"DayOfWeek"DayOfWeek.of_jsoninletminuteOfHour=field_mapjson__"MinuteOfHour"MinuteOfHour.of_jsoninlethourOfDay=field_mapjson__"HourOfDay"HourOfDay.of_jsoninletgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?softwareUpdatePreferences?timezone?dayOfMonth?dayOfWeek?minuteOfHour?hourOfDay?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the following fields: DescribeMaintenanceStartTimeOutput$SoftwareUpdatePreferences DescribeMaintenanceStartTimeOutput$DayOfMonth DescribeMaintenanceStartTimeOutput$DayOfWeek DescribeMaintenanceStartTimeOutput$HourOfDay DescribeMaintenanceStartTimeOutput$MinuteOfHour DescribeMaintenanceStartTimeOutput$Timezone"]moduleDescribeMaintenanceStartTimeInput=structtypenonrect={gatewayARN:GatewayARN.t}letcontext_="DescribeMaintenanceStartTimeInput"letmake~gatewayARN=fun()->{gatewayARN}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the Amazon Resource Name (ARN) of the gateway."]moduleDescribeGatewayInformationOutput=structtypenonrect={gatewayARN:GatewayARN.toption;gatewayId:GatewayId.toption[@ocaml.doc"The unique identifier assigned to your gateway during activation. This ID becomes part of the gateway Amazon Resource Name (ARN), which you use as input for other operations."];gatewayName:String_.toption[@ocaml.doc"The name you configured for your gateway."];gatewayTimezone:GatewayTimezone.toption[@ocaml.doc"A value that indicates the time zone configured for the gateway."];gatewayState:GatewayState.toption[@ocaml.doc"A value that indicates the operating state of the gateway."];gatewayNetworkInterfaces:GatewayNetworkInterfaces.toption[@ocaml.doc"A NetworkInterface array that contains descriptions of the gateway network interfaces."];gatewayType:GatewayType.toption[@ocaml.doc"The type of the gateway. Amazon FSx File Gateway is no longer available to new customers. Existing customers of FSx File Gateway can continue to use the service normally. For capabilities similar to FSx File Gateway, visit this blog post."];nextUpdateAvailabilityDate:NextUpdateAvailabilityDate.toption[@ocaml.doc"The date on which an update to the gateway is available. This date is in the time zone of the gateway. If the gateway is not available for an update this field is not returned in the response."];lastSoftwareUpdate:LastSoftwareUpdate.toption[@ocaml.doc"The date on which the last software update was applied to the gateway. If the gateway has never been updated, this field does not return a value in the response. This only only exist and returns once it have been chosen and set by the SGW service, based on the OS version of the gateway VM"];ec2InstanceId:Ec2InstanceId.toption[@ocaml.doc"The ID of the Amazon EC2 instance that was used to launch the gateway."];ec2InstanceRegion:Ec2InstanceRegion.toption[@ocaml.doc"The Amazon Web Services Region where the Amazon EC2 instance is located."];tags:Tags.toption[@ocaml.doc"A list of up to 50 tags assigned to the gateway, sorted alphabetically by key name. Each tag is a key-value pair. For a gateway with more than 10 tags assigned, you can view all tags using the ListTagsForResource API operation."];vPCEndpoint:String_.toption[@ocaml.doc"The configuration settings for the virtual private cloud (VPC) endpoint for your gateway."];cloudWatchLogGroupARN:CloudWatchLogGroupARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that is used to monitor events in the gateway. This field only only exist and returns once it have been chosen and set by the SGW service, based on the OS version of the gateway VM"];hostEnvironment:HostEnvironment.toption[@ocaml.doc"The type of hardware or software platform on which the gateway is running. Tape Gateway is no longer available on Snow Family devices."];endpointType:EndpointType.toption[@ocaml.doc"The type of endpoint for your gateway. Valid Values: STANDARD | FIPS"];softwareUpdatesEndDate:SoftwareUpdatesEndDate.toption[@ocaml.doc"Date after which this gateway will not receive software updates for new features."];deprecationDate:DeprecationDate.toption[@ocaml.doc"Date after which this gateway will not receive software updates for new features and bug fixes."];gatewayCapacity:GatewayCapacity.toption[@ocaml.doc"Specifies the size of the gateway's metadata cache."];supportedGatewayCapacities:SupportedGatewayCapacities.toption[@ocaml.doc"A list of the metadata cache sizes that the gateway can support based on its current hardware specifications."];hostEnvironmentId:HostEnvironmentId.toption[@ocaml.doc"A unique identifier for the specific instance of the host platform running the gateway. This value is only available for certain host environments, and its format depends on the host environment type."];softwareVersion:SoftwareVersion.toption[@ocaml.doc"The version number of the software running on the gateway appliance."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun?gatewayId->fun?gatewayName->fun?gatewayTimezone->fun?gatewayState->fun?gatewayNetworkInterfaces->fun?gatewayType->fun?nextUpdateAvailabilityDate->fun?lastSoftwareUpdate->fun?ec2InstanceId->fun?ec2InstanceRegion->fun?tags->fun?vPCEndpoint->fun?cloudWatchLogGroupARN->fun?hostEnvironment->fun?endpointType->fun?softwareUpdatesEndDate->fun?deprecationDate->fun?gatewayCapacity->fun?supportedGatewayCapacities->fun?hostEnvironmentId->fun?softwareVersion->fun()->{gatewayARN;gatewayId;gatewayName;gatewayTimezone;gatewayState;gatewayNetworkInterfaces;gatewayType;nextUpdateAvailabilityDate;lastSoftwareUpdate;ec2InstanceId;ec2InstanceRegion;tags;vPCEndpoint;cloudWatchLogGroupARN;hostEnvironment;endpointType;softwareUpdatesEndDate;deprecationDate;gatewayCapacity;supportedGatewayCapacities;hostEnvironmentId;softwareVersion}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value));("GatewayId",(Option.mapx.gatewayId~f:GatewayId.to_value));("GatewayName",(Option.mapx.gatewayName~f:String_.to_value));("GatewayTimezone",(Option.mapx.gatewayTimezone~f:GatewayTimezone.to_value));("GatewayState",(Option.mapx.gatewayState~f:GatewayState.to_value));("GatewayNetworkInterfaces",(Option.mapx.gatewayNetworkInterfaces~f:GatewayNetworkInterfaces.to_value));("GatewayType",(Option.mapx.gatewayType~f:GatewayType.to_value));("NextUpdateAvailabilityDate",(Option.mapx.nextUpdateAvailabilityDate~f:NextUpdateAvailabilityDate.to_value));("LastSoftwareUpdate",(Option.mapx.lastSoftwareUpdate~f:LastSoftwareUpdate.to_value));("Ec2InstanceId",(Option.mapx.ec2InstanceId~f:Ec2InstanceId.to_value));("Ec2InstanceRegion",(Option.mapx.ec2InstanceRegion~f:Ec2InstanceRegion.to_value));("Tags",(Option.mapx.tags~f:Tags.to_value));("VPCEndpoint",(Option.mapx.vPCEndpoint~f:String_.to_value));("CloudWatchLogGroupARN",(Option.mapx.cloudWatchLogGroupARN~f:CloudWatchLogGroupARN.to_value));("HostEnvironment",(Option.mapx.hostEnvironment~f:HostEnvironment.to_value));("EndpointType",(Option.mapx.endpointType~f:EndpointType.to_value));("SoftwareUpdatesEndDate",(Option.mapx.softwareUpdatesEndDate~f:SoftwareUpdatesEndDate.to_value));("DeprecationDate",(Option.mapx.deprecationDate~f:DeprecationDate.to_value));("GatewayCapacity",(Option.mapx.gatewayCapacity~f:GatewayCapacity.to_value));("SupportedGatewayCapacities",(Option.mapx.supportedGatewayCapacities~f:SupportedGatewayCapacities.to_value));("HostEnvironmentId",(Option.mapx.hostEnvironmentId~f:HostEnvironmentId.to_value));("SoftwareVersion",(Option.mapx.softwareVersion~f:SoftwareVersion.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsoftwareVersion=(Option.map~f:SoftwareVersion.of_xml)(Xml.childxml_arg0"SoftwareVersion")inlethostEnvironmentId=(Option.map~f:HostEnvironmentId.of_xml)(Xml.childxml_arg0"HostEnvironmentId")inletsupportedGatewayCapacities=(Option.map~f:SupportedGatewayCapacities.of_xml)(Xml.childxml_arg0"SupportedGatewayCapacities")inletgatewayCapacity=(Option.map~f:GatewayCapacity.of_xml)(Xml.childxml_arg0"GatewayCapacity")inletdeprecationDate=(Option.map~f:DeprecationDate.of_xml)(Xml.childxml_arg0"DeprecationDate")inletsoftwareUpdatesEndDate=(Option.map~f:SoftwareUpdatesEndDate.of_xml)(Xml.childxml_arg0"SoftwareUpdatesEndDate")inletendpointType=(Option.map~f:EndpointType.of_xml)(Xml.childxml_arg0"EndpointType")inlethostEnvironment=(Option.map~f:HostEnvironment.of_xml)(Xml.childxml_arg0"HostEnvironment")inletcloudWatchLogGroupARN=(Option.map~f:CloudWatchLogGroupARN.of_xml)(Xml.childxml_arg0"CloudWatchLogGroupARN")inletvPCEndpoint=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"VPCEndpoint")inlettags=(Option.map~f:Tags.of_xml)(Xml.childxml_arg0"Tags")inletec2InstanceRegion=(Option.map~f:Ec2InstanceRegion.of_xml)(Xml.childxml_arg0"Ec2InstanceRegion")inletec2InstanceId=(Option.map~f:Ec2InstanceId.of_xml)(Xml.childxml_arg0"Ec2InstanceId")inletlastSoftwareUpdate=(Option.map~f:LastSoftwareUpdate.of_xml)(Xml.childxml_arg0"LastSoftwareUpdate")inletnextUpdateAvailabilityDate=(Option.map~f:NextUpdateAvailabilityDate.of_xml)(Xml.childxml_arg0"NextUpdateAvailabilityDate")inletgatewayType=(Option.map~f:GatewayType.of_xml)(Xml.childxml_arg0"GatewayType")inletgatewayNetworkInterfaces=(Option.map~f:GatewayNetworkInterfaces.of_xml)(Xml.childxml_arg0"GatewayNetworkInterfaces")inletgatewayState=(Option.map~f:GatewayState.of_xml)(Xml.childxml_arg0"GatewayState")inletgatewayTimezone=(Option.map~f:GatewayTimezone.of_xml)(Xml.childxml_arg0"GatewayTimezone")inletgatewayName=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"GatewayName")inletgatewayId=(Option.map~f:GatewayId.of_xml)(Xml.childxml_arg0"GatewayId")inletgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?softwareVersion?hostEnvironmentId?supportedGatewayCapacities?gatewayCapacity?deprecationDate?softwareUpdatesEndDate?endpointType?hostEnvironment?cloudWatchLogGroupARN?vPCEndpoint?tags?ec2InstanceRegion?ec2InstanceId?lastSoftwareUpdate?nextUpdateAvailabilityDate?gatewayType?gatewayNetworkInterfaces?gatewayState?gatewayTimezone?gatewayName?gatewayId?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsoftwareVersion=field_mapjson__"SoftwareVersion"SoftwareVersion.of_jsoninlethostEnvironmentId=field_mapjson__"HostEnvironmentId"HostEnvironmentId.of_jsoninletsupportedGatewayCapacities=field_mapjson__"SupportedGatewayCapacities"SupportedGatewayCapacities.of_jsoninletgatewayCapacity=field_mapjson__"GatewayCapacity"GatewayCapacity.of_jsoninletdeprecationDate=field_mapjson__"DeprecationDate"DeprecationDate.of_jsoninletsoftwareUpdatesEndDate=field_mapjson__"SoftwareUpdatesEndDate"SoftwareUpdatesEndDate.of_jsoninletendpointType=field_mapjson__"EndpointType"EndpointType.of_jsoninlethostEnvironment=field_mapjson__"HostEnvironment"HostEnvironment.of_jsoninletcloudWatchLogGroupARN=field_mapjson__"CloudWatchLogGroupARN"CloudWatchLogGroupARN.of_jsoninletvPCEndpoint=field_mapjson__"VPCEndpoint"String_.of_jsoninlettags=field_mapjson__"Tags"Tags.of_jsoninletec2InstanceRegion=field_mapjson__"Ec2InstanceRegion"Ec2InstanceRegion.of_jsoninletec2InstanceId=field_mapjson__"Ec2InstanceId"Ec2InstanceId.of_jsoninletlastSoftwareUpdate=field_mapjson__"LastSoftwareUpdate"LastSoftwareUpdate.of_jsoninletnextUpdateAvailabilityDate=field_mapjson__"NextUpdateAvailabilityDate"NextUpdateAvailabilityDate.of_jsoninletgatewayType=field_mapjson__"GatewayType"GatewayType.of_jsoninletgatewayNetworkInterfaces=field_mapjson__"GatewayNetworkInterfaces"GatewayNetworkInterfaces.of_jsoninletgatewayState=field_mapjson__"GatewayState"GatewayState.of_jsoninletgatewayTimezone=field_mapjson__"GatewayTimezone"GatewayTimezone.of_jsoninletgatewayName=field_mapjson__"GatewayName"String_.of_jsoninletgatewayId=field_mapjson__"GatewayId"GatewayId.of_jsoninletgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?softwareVersion?hostEnvironmentId?supportedGatewayCapacities?gatewayCapacity?deprecationDate?softwareUpdatesEndDate?endpointType?hostEnvironment?cloudWatchLogGroupARN?vPCEndpoint?tags?ec2InstanceRegion?ec2InstanceId?lastSoftwareUpdate?nextUpdateAvailabilityDate?gatewayType?gatewayNetworkInterfaces?gatewayState?gatewayTimezone?gatewayName?gatewayId?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the following fields:"]moduleDescribeGatewayInformationInput=structtypenonrect={gatewayARN:GatewayARN.t}letcontext_="DescribeGatewayInformationInput"letmake~gatewayARN=fun()->{gatewayARN}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the ID of the gateway."]moduleDescribeFileSystemAssociationsOutput=structtypenonrect={fileSystemAssociationInfoList:FileSystemAssociationInfoList.toption[@ocaml.doc"An array containing the FileSystemAssociationInfo data type of each file system association to be described."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?fileSystemAssociationInfoList=fun()->{fileSystemAssociationInfoList}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("FileSystemAssociationInfoList",(Option.mapx.fileSystemAssociationInfoList~f:FileSystemAssociationInfoList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfileSystemAssociationInfoList=(Option.map~f:FileSystemAssociationInfoList.of_xml)(Xml.childxml_arg0"FileSystemAssociationInfoList")inmake?fileSystemAssociationInfoList()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfileSystemAssociationInfoList=field_mapjson__"FileSystemAssociationInfoList"FileSystemAssociationInfoList.of_jsoninmake?fileSystemAssociationInfoList()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Gets the file system association information. This operation is only supported for FSx File Gateways."]moduleDescribeFileSystemAssociationsInput=structtypenonrect={fileSystemAssociationARNList:FileSystemAssociationARNList.t[@ocaml.doc"An array containing the Amazon Resource Name (ARN) of each file system association to be described."]}letcontext_="DescribeFileSystemAssociationsInput"letmake~fileSystemAssociationARNList=fun()->{fileSystemAssociationARNList}letto_valuex=structure_to_value[("FileSystemAssociationARNList",(Some(FileSystemAssociationARNList.to_valuex.fileSystemAssociationARNList)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfileSystemAssociationARNList=FileSystemAssociationARNList.of_xml(Xml.child_exn~context:context_xml_arg0"FileSystemAssociationARNList")inmake~fileSystemAssociationARNList()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfileSystemAssociationARNList=field_map_exnjson__"FileSystemAssociationARNList"FileSystemAssociationARNList.of_jsoninmake~fileSystemAssociationARNList()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Gets the file system association information. This operation is only supported for FSx File Gateways."]moduleDescribeChapCredentialsOutput=structtypenonrect={chapCredentials:ChapCredentials.toption[@ocaml.doc"An array of ChapInfo objects that represent CHAP credentials. Each object in the array contains CHAP credential information for one target-initiator pair. If no CHAP credentials are set, an empty array is returned. CHAP credential information is provided in a JSON object with the following fields: InitiatorName: The iSCSI initiator that connects to the target. SecretToAuthenticateInitiator: The secret key that the initiator (for example, the Windows client) must provide to participate in mutual CHAP with the target. SecretToAuthenticateTarget: The secret key that the target must provide to participate in mutual CHAP with the initiator (e.g. Windows client). TargetARN: The Amazon Resource Name (ARN) of the storage volume."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?chapCredentials=fun()->{chapCredentials}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("ChapCredentials",(Option.mapx.chapCredentials~f:ChapCredentials.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letchapCredentials=(Option.map~f:ChapCredentials.of_xml)(Xml.childxml_arg0"ChapCredentials")inmake?chapCredentials()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letchapCredentials=field_mapjson__"ChapCredentials"ChapCredentials.of_jsoninmake?chapCredentials()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the following fields:"]moduleDescribeChapCredentialsInput=structtypenonrect={targetARN:TargetARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes operation to return to retrieve the TargetARN for specified VolumeARN."]}letcontext_="DescribeChapCredentialsInput"letmake~targetARN=fun()->{targetARN}letto_valuex=structure_to_value[("TargetARN",(Some(TargetARN.to_valuex.targetARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettargetARN=TargetARN.of_xml(Xml.child_exn~context:context_xml_arg0"TargetARN")inmake~targetARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettargetARN=field_map_exnjson__"TargetARN"TargetARN.of_jsoninmake~targetARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the Amazon Resource Name (ARN) of the iSCSI volume target."]moduleDescribeCachediSCSIVolumesOutput=structtypenonrect={cachediSCSIVolumes:CachediSCSIVolumes.toption[@ocaml.doc"An array of objects where each object contains metadata about one cached volume."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?cachediSCSIVolumes=fun()->{cachediSCSIVolumes}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("CachediSCSIVolumes",(Option.mapx.cachediSCSIVolumes~f:CachediSCSIVolumes.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcachediSCSIVolumes=(Option.map~f:CachediSCSIVolumes.of_xml)(Xml.childxml_arg0"CachediSCSIVolumes")inmake?cachediSCSIVolumes()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcachediSCSIVolumes=field_mapjson__"CachediSCSIVolumes"CachediSCSIVolumes.of_jsoninmake?cachediSCSIVolumes()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the following fields:"]moduleDescribeCachediSCSIVolumesInput=structtypenonrect={volumeARNs:VolumeARNs.t[@ocaml.doc"An array of strings where each string represents the Amazon Resource Name (ARN) of a cached volume. All of the specified cached volumes must be from the same gateway. Use ListVolumes to get volume ARNs for a gateway."]}letcontext_="DescribeCachediSCSIVolumesInput"letmake~volumeARNs=fun()->{volumeARNs}letto_valuex=structure_to_value[("VolumeARNs",(Some(VolumeARNs.to_valuex.volumeARNs)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvolumeARNs=VolumeARNs.of_xml(Xml.child_exn~context:context_xml_arg0"VolumeARNs")inmake~volumeARNs()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvolumeARNs=field_map_exnjson__"VolumeARNs"VolumeARNs.of_jsoninmake~volumeARNs()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a description of the gateway volumes specified in the request. This operation is only supported in the cached volume gateway types. The list of gateway volumes in the request must be from one gateway. In the response, Storage Gateway returns volume information sorted by volume Amazon Resource Name (ARN)."]moduleDescribeCacheReportOutput=structtypenonrect={cacheReportInfo:CacheReportInfo.toption[@ocaml.doc"Contains all informational fields associated with a cache report. Includes name, ARN, tags, status, progress, filters, start time, and end time."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?cacheReportInfo=fun()->{cacheReportInfo}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("CacheReportInfo",(Option.mapx.cacheReportInfo~f:CacheReportInfo.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcacheReportInfo=(Option.map~f:CacheReportInfo.of_xml)(Xml.childxml_arg0"CacheReportInfo")inmake?cacheReportInfo()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcacheReportInfo=field_mapjson__"CacheReportInfo"CacheReportInfo.of_jsoninmake?cacheReportInfo()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns information about the specified cache report, including completion status and generation progress."]moduleDescribeCacheReportInput=structtypenonrect={cacheReportARN:CacheReportARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the cache report you want to describe."]}letcontext_="DescribeCacheReportInput"letmake~cacheReportARN=fun()->{cacheReportARN}letto_valuex=structure_to_value[("CacheReportARN",(Some(CacheReportARN.to_valuex.cacheReportARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcacheReportARN=CacheReportARN.of_xml(Xml.child_exn~context:context_xml_arg0"CacheReportARN")inmake~cacheReportARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcacheReportARN=field_map_exnjson__"CacheReportARN"CacheReportARN.of_jsoninmake~cacheReportARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns information about the specified cache report, including completion status and generation progress."]moduleDescribeCacheOutput=structtypenonrect={gatewayARN:GatewayARN.toption;diskIds:DiskIds.toption[@ocaml.doc"An array of strings that identify disks that are to be configured as working storage. Each string has a minimum length of 1 and maximum length of 300. You can get the disk IDs from the ListLocalDisks API."];cacheAllocatedInBytes:Long.toption[@ocaml.doc"The amount of cache in bytes allocated to a gateway."];cacheUsedPercentage:Double.toption[@ocaml.doc"Percent use of the gateway's cache storage. This metric applies only to the gateway-cached volume setup. The sample is taken at the end of the reporting period."];cacheDirtyPercentage:Double.toption[@ocaml.doc"The file share's contribution to the overall percentage of the gateway's cache that has not been persisted to Amazon Web Services. The sample is taken at the end of the reporting period."];cacheHitPercentage:Double.toption[@ocaml.doc"Percent of application read operations from the file shares that are served from cache. The sample is taken at the end of the reporting period."];cacheMissPercentage:Double.toption[@ocaml.doc"Percent of application read operations from the file shares that are not served from cache. The sample is taken at the end of the reporting period."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun?diskIds->fun?cacheAllocatedInBytes->fun?cacheUsedPercentage->fun?cacheDirtyPercentage->fun?cacheHitPercentage->fun?cacheMissPercentage->fun()->{gatewayARN;diskIds;cacheAllocatedInBytes;cacheUsedPercentage;cacheDirtyPercentage;cacheHitPercentage;cacheMissPercentage}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value));("DiskIds",(Option.mapx.diskIds~f:DiskIds.to_value));("CacheAllocatedInBytes",(Option.mapx.cacheAllocatedInBytes~f:Long.to_value));("CacheUsedPercentage",(Option.mapx.cacheUsedPercentage~f:Double.to_value));("CacheDirtyPercentage",(Option.mapx.cacheDirtyPercentage~f:Double.to_value));("CacheHitPercentage",(Option.mapx.cacheHitPercentage~f:Double.to_value));("CacheMissPercentage",(Option.mapx.cacheMissPercentage~f:Double.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcacheMissPercentage=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"CacheMissPercentage")inletcacheHitPercentage=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"CacheHitPercentage")inletcacheDirtyPercentage=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"CacheDirtyPercentage")inletcacheUsedPercentage=(Option.map~f:Double.of_xml)(Xml.childxml_arg0"CacheUsedPercentage")inletcacheAllocatedInBytes=(Option.map~f:Long.of_xml)(Xml.childxml_arg0"CacheAllocatedInBytes")inletdiskIds=(Option.map~f:DiskIds.of_xml)(Xml.childxml_arg0"DiskIds")inletgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?cacheMissPercentage?cacheHitPercentage?cacheDirtyPercentage?cacheUsedPercentage?cacheAllocatedInBytes?diskIds?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcacheMissPercentage=field_mapjson__"CacheMissPercentage"Double.of_jsoninletcacheHitPercentage=field_mapjson__"CacheHitPercentage"Double.of_jsoninletcacheDirtyPercentage=field_mapjson__"CacheDirtyPercentage"Double.of_jsoninletcacheUsedPercentage=field_mapjson__"CacheUsedPercentage"Double.of_jsoninletcacheAllocatedInBytes=field_mapjson__"CacheAllocatedInBytes"Long.of_jsoninletdiskIds=field_mapjson__"DiskIds"DiskIds.of_jsoninletgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?cacheMissPercentage?cacheHitPercentage?cacheDirtyPercentage?cacheUsedPercentage?cacheAllocatedInBytes?diskIds?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns information about the cache of a gateway. This operation is only supported in the cached volume, tape, and file gateway types. The response includes disk IDs that are configured as cache, and it includes the amount of cache allocated and used."]moduleDescribeCacheInput=structtypenonrect={gatewayARN:GatewayARN.t}letcontext_="DescribeCacheInput"letmake~gatewayARN=fun()->{gatewayARN}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns information about the cache of a gateway. This operation is only supported in the cached volume, tape, and file gateway types. The response includes disk IDs that are configured as cache, and it includes the amount of cache allocated and used."]moduleDescribeBandwidthRateLimitScheduleOutput=structtypenonrect={gatewayARN:GatewayARN.toption;bandwidthRateLimitIntervals:BandwidthRateLimitIntervals.toption[@ocaml.doc"An array that contains the bandwidth rate limit intervals for a tape or volume gateway."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun?bandwidthRateLimitIntervals->fun()->{gatewayARN;bandwidthRateLimitIntervals}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value));("BandwidthRateLimitIntervals",(Option.mapx.bandwidthRateLimitIntervals~f:BandwidthRateLimitIntervals.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letbandwidthRateLimitIntervals=(Option.map~f:BandwidthRateLimitIntervals.of_xml)(Xml.childxml_arg0"BandwidthRateLimitIntervals")inletgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?bandwidthRateLimitIntervals?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letbandwidthRateLimitIntervals=field_mapjson__"BandwidthRateLimitIntervals"BandwidthRateLimitIntervals.of_jsoninletgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?bandwidthRateLimitIntervals?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns information about the bandwidth rate limit schedule of a gateway. By default, gateways do not have bandwidth rate limit schedules, which means no bandwidth rate limiting is in effect. This operation is supported only for volume, tape and S3 file gateways. FSx file gateways do not support bandwidth rate limits. This operation returns information about a gateway's bandwidth rate limit schedule. A bandwidth rate limit schedule consists of one or more bandwidth rate limit intervals. A bandwidth rate limit interval defines a period of time on one or more days of the week, during which bandwidth rate limits are specified for uploading, downloading, or both. A bandwidth rate limit interval consists of one or more days of the week, a start hour and minute, an ending hour and minute, and bandwidth rate limits for uploading and downloading If no bandwidth rate limit schedule intervals are set for the gateway, this operation returns an empty response. To specify which gateway to describe, use the Amazon Resource Name (ARN) of the gateway in your request."]moduleDescribeBandwidthRateLimitScheduleInput=structtypenonrect={gatewayARN:GatewayARN.t}letcontext_="DescribeBandwidthRateLimitScheduleInput"letmake~gatewayARN=fun()->{gatewayARN}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns information about the bandwidth rate limit schedule of a gateway. By default, gateways do not have bandwidth rate limit schedules, which means no bandwidth rate limiting is in effect. This operation is supported only for volume, tape and S3 file gateways. FSx file gateways do not support bandwidth rate limits. This operation returns information about a gateway's bandwidth rate limit schedule. A bandwidth rate limit schedule consists of one or more bandwidth rate limit intervals. A bandwidth rate limit interval defines a period of time on one or more days of the week, during which bandwidth rate limits are specified for uploading, downloading, or both. A bandwidth rate limit interval consists of one or more days of the week, a start hour and minute, an ending hour and minute, and bandwidth rate limits for uploading and downloading If no bandwidth rate limit schedule intervals are set for the gateway, this operation returns an empty response. To specify which gateway to describe, use the Amazon Resource Name (ARN) of the gateway in your request."]moduleDescribeBandwidthRateLimitOutput=structtypenonrect={gatewayARN:GatewayARN.toption;averageUploadRateLimitInBitsPerSec:BandwidthUploadRateLimit.toption[@ocaml.doc"The average upload bandwidth rate limit in bits per second. This field does not appear in the response if the upload rate limit is not set."];averageDownloadRateLimitInBitsPerSec:BandwidthDownloadRateLimit.toption[@ocaml.doc"The average download bandwidth rate limit in bits per second. This field does not appear in the response if the download rate limit is not set."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun?averageUploadRateLimitInBitsPerSec->fun?averageDownloadRateLimitInBitsPerSec->fun()->{gatewayARN;averageUploadRateLimitInBitsPerSec;averageDownloadRateLimitInBitsPerSec}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value));("AverageUploadRateLimitInBitsPerSec",(Option.mapx.averageUploadRateLimitInBitsPerSec~f:BandwidthUploadRateLimit.to_value));("AverageDownloadRateLimitInBitsPerSec",(Option.mapx.averageDownloadRateLimitInBitsPerSec~f:BandwidthDownloadRateLimit.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letaverageDownloadRateLimitInBitsPerSec=(Option.map~f:BandwidthDownloadRateLimit.of_xml)(Xml.childxml_arg0"AverageDownloadRateLimitInBitsPerSec")inletaverageUploadRateLimitInBitsPerSec=(Option.map~f:BandwidthUploadRateLimit.of_xml)(Xml.childxml_arg0"AverageUploadRateLimitInBitsPerSec")inletgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?averageDownloadRateLimitInBitsPerSec?averageUploadRateLimitInBitsPerSec?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letaverageDownloadRateLimitInBitsPerSec=field_mapjson__"AverageDownloadRateLimitInBitsPerSec"BandwidthDownloadRateLimit.of_jsoninletaverageUploadRateLimitInBitsPerSec=field_mapjson__"AverageUploadRateLimitInBitsPerSec"BandwidthUploadRateLimit.of_jsoninletgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?averageDownloadRateLimitInBitsPerSec?averageUploadRateLimitInBitsPerSec?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the following fields:"]moduleDescribeBandwidthRateLimitInput=structtypenonrect={gatewayARN:GatewayARN.t}letcontext_="DescribeBandwidthRateLimitInput"letmake~gatewayARN=fun()->{gatewayARN}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the Amazon Resource Name (ARN) of the gateway."]moduleDescribeAvailabilityMonitorTestOutput=structtypenonrect={gatewayARN:GatewayARN.toption;status:AvailabilityMonitorTestStatus.toption[@ocaml.doc"The status of the high availability monitoring test. If a test hasn't been performed, the value of this field is null."];startTime:Time.toption[@ocaml.doc"The time the high availability monitoring test was started. If a test hasn't been performed, the value of this field is null."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun?status->fun?startTime->fun()->{gatewayARN;status;startTime}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value));("Status",(Option.mapx.status~f:AvailabilityMonitorTestStatus.to_value));("StartTime",(Option.mapx.startTime~f:Time.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstartTime=(Option.map~f:Time.of_xml)(Xml.childxml_arg0"StartTime")inletstatus=(Option.map~f:AvailabilityMonitorTestStatus.of_xml)(Xml.childxml_arg0"Status")inletgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?startTime?status?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstartTime=field_mapjson__"StartTime"Time.of_jsoninletstatus=field_mapjson__"Status"AvailabilityMonitorTestStatus.of_jsoninletgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?startTime?status?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns information about the most recent high availability monitoring test that was performed on the host in a cluster. If a test isn't performed, the status and start time in the response would be null."]moduleDescribeAvailabilityMonitorTestInput=structtypenonrect={gatewayARN:GatewayARN.t}letcontext_="DescribeAvailabilityMonitorTestInput"letmake~gatewayARN=fun()->{gatewayARN}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns information about the most recent high availability monitoring test that was performed on the host in a cluster. If a test isn't performed, the status and start time in the response would be null."]moduleDeleteVolumeOutput=structtypenonrect={volumeARN:VolumeARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the storage volume that was deleted. It is the same ARN you provided in the request."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?volumeARN=fun()->{volumeARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("VolumeARN",(Option.mapx.volumeARN~f:VolumeARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvolumeARN=(Option.map~f:VolumeARN.of_xml)(Xml.childxml_arg0"VolumeARN")inmake?volumeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvolumeARN=field_mapjson__"VolumeARN"VolumeARN.of_jsoninmake?volumeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the Amazon Resource Name (ARN) of the storage volume that was deleted."]moduleDeleteVolumeInput=structtypenonrect={volumeARN:VolumeARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation to return a list of gateway volumes."]}letcontext_="DeleteVolumeInput"letmake~volumeARN=fun()->{volumeARN}letto_valuex=structure_to_value[("VolumeARN",(Some(VolumeARN.to_valuex.volumeARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvolumeARN=VolumeARN.of_xml(Xml.child_exn~context:context_xml_arg0"VolumeARN")inmake~volumeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvolumeARN=field_map_exnjson__"VolumeARN"VolumeARN.of_jsoninmake~volumeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the DeleteVolumeInput$VolumeARN to delete."]moduleDeleteTapePoolOutput=structtypenonrect={poolARN:PoolARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the custom tape pool being deleted."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?poolARN=fun()->{poolARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("PoolARN",(Option.mapx.poolARN~f:PoolARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpoolARN=(Option.map~f:PoolARN.of_xml)(Xml.childxml_arg0"PoolARN")inmake?poolARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpoolARN=field_mapjson__"PoolARN"PoolARN.of_jsoninmake?poolARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Delete a custom tape pool. A custom tape pool can only be deleted if there are no tapes in the pool and if there are no automatic tape creation policies that reference the custom tape pool."]moduleDeleteTapePoolInput=structtypenonrect={poolARN:PoolARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the custom tape pool to delete."]}letcontext_="DeleteTapePoolInput"letmake~poolARN=fun()->{poolARN}letto_valuex=structure_to_value[("PoolARN",(Some(PoolARN.to_valuex.poolARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpoolARN=PoolARN.of_xml(Xml.child_exn~context:context_xml_arg0"PoolARN")inmake~poolARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpoolARN=field_map_exnjson__"PoolARN"PoolARN.of_jsoninmake~poolARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Delete a custom tape pool. A custom tape pool can only be deleted if there are no tapes in the pool and if there are no automatic tape creation policies that reference the custom tape pool."]moduleDeleteTapeOutput=structtypenonrect={tapeARN:TapeARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the deleted virtual tape."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?tapeARN=fun()->{tapeARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("TapeARN",(Option.mapx.tapeARN~f:TapeARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettapeARN=(Option.map~f:TapeARN.of_xml)(Xml.childxml_arg0"TapeARN")inmake?tapeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettapeARN=field_mapjson__"TapeARN"TapeARN.of_jsoninmake?tapeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"DeleteTapeOutput"]moduleDeleteTapeInput=structtypenonrect={gatewayARN:GatewayARN.t[@ocaml.doc"The unique Amazon Resource Name (ARN) of the gateway that the virtual tape to delete is associated with. Use the ListGateways operation to return a list of gateways for your account and Amazon Web Services Region."];tapeARN:TapeARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the virtual tape to delete."];bypassGovernanceRetention:Boolean__lc1.toption[@ocaml.doc"Set to TRUE to delete an archived tape that belongs to a custom pool with tape retention lock. Only archived tapes with tape retention lock set to governance can be deleted. Archived tapes with tape retention lock set to compliance can't be deleted."]}letcontext_="DeleteTapeInput"letmake?bypassGovernanceRetention=fun~gatewayARN->fun~tapeARN->fun()->{bypassGovernanceRetention;gatewayARN;tapeARN}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)));("TapeARN",(Some(TapeARN.to_valuex.tapeARN)));("BypassGovernanceRetention",(Option.mapx.bypassGovernanceRetention~f:Boolean__lc1.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letbypassGovernanceRetention=(Option.map~f:Boolean__lc1.of_xml)(Xml.childxml_arg0"BypassGovernanceRetention")inlettapeARN=TapeARN.of_xml(Xml.child_exn~context:context_xml_arg0"TapeARN")inletgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake?bypassGovernanceRetention~tapeARN~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letbypassGovernanceRetention=field_mapjson__"BypassGovernanceRetention"Boolean__lc1.of_jsoninlettapeARN=field_map_exnjson__"TapeARN"TapeARN.of_jsoninletgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake?bypassGovernanceRetention~tapeARN~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"DeleteTapeInput"]moduleDeleteTapeArchiveOutput=structtypenonrect={tapeARN:TapeARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the virtual tape that was deleted from the virtual tape shelf (VTS)."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?tapeARN=fun()->{tapeARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("TapeARN",(Option.mapx.tapeARN~f:TapeARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettapeARN=(Option.map~f:TapeARN.of_xml)(Xml.childxml_arg0"TapeARN")inmake?tapeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettapeARN=field_mapjson__"TapeARN"TapeARN.of_jsoninmake?tapeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"DeleteTapeArchiveOutput"]moduleDeleteTapeArchiveInput=structtypenonrect={tapeARN:TapeARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the virtual tape to delete from the virtual tape shelf (VTS)."];bypassGovernanceRetention:Boolean__lc1.toption[@ocaml.doc"Set to TRUE to delete an archived tape that belongs to a custom pool with tape retention lock. Only archived tapes with tape retention lock set to governance can be deleted. Archived tapes with tape retention lock set to compliance can't be deleted."]}letcontext_="DeleteTapeArchiveInput"letmake?bypassGovernanceRetention=fun~tapeARN->fun()->{bypassGovernanceRetention;tapeARN}letto_valuex=structure_to_value[("TapeARN",(Some(TapeARN.to_valuex.tapeARN)));("BypassGovernanceRetention",(Option.mapx.bypassGovernanceRetention~f:Boolean__lc1.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letbypassGovernanceRetention=(Option.map~f:Boolean__lc1.of_xml)(Xml.childxml_arg0"BypassGovernanceRetention")inlettapeARN=TapeARN.of_xml(Xml.child_exn~context:context_xml_arg0"TapeARN")inmake?bypassGovernanceRetention~tapeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letbypassGovernanceRetention=field_mapjson__"BypassGovernanceRetention"Boolean__lc1.of_jsoninlettapeARN=field_map_exnjson__"TapeARN"TapeARN.of_jsoninmake?bypassGovernanceRetention~tapeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"DeleteTapeArchiveInput"]moduleDeleteSnapshotScheduleOutput=structtypenonrect={volumeARN:VolumeARN.toption[@ocaml.doc"The volume which snapshot schedule was deleted."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?volumeARN=fun()->{volumeARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("VolumeARN",(Option.mapx.volumeARN~f:VolumeARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvolumeARN=(Option.map~f:VolumeARN.of_xml)(Xml.childxml_arg0"VolumeARN")inmake?volumeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvolumeARN=field_mapjson__"VolumeARN"VolumeARN.of_jsoninmake?volumeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a snapshot of a volume. You can take snapshots of your gateway volumes on a scheduled or ad hoc basis. This API action enables you to delete a snapshot schedule for a volume. For more information, see Backing up your volumes. In the DeleteSnapshotSchedule request, you identify the volume by providing its Amazon Resource Name (ARN). This operation is only supported for cached volume gateway types. To list or delete a snapshot, you must use the Amazon EC2 API. For more information, go to DescribeSnapshots in the Amazon Elastic Compute Cloud API Reference."]moduleDeleteSnapshotScheduleInput=structtypenonrect={volumeARN:VolumeARN.t[@ocaml.doc"The volume which snapshot schedule to delete."]}letcontext_="DeleteSnapshotScheduleInput"letmake~volumeARN=fun()->{volumeARN}letto_valuex=structure_to_value[("VolumeARN",(Some(VolumeARN.to_valuex.volumeARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvolumeARN=VolumeARN.of_xml(Xml.child_exn~context:context_xml_arg0"VolumeARN")inmake~volumeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvolumeARN=field_map_exnjson__"VolumeARN"VolumeARN.of_jsoninmake~volumeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a snapshot of a volume. You can take snapshots of your gateway volumes on a scheduled or ad hoc basis. This API action enables you to delete a snapshot schedule for a volume. For more information, see Backing up your volumes. In the DeleteSnapshotSchedule request, you identify the volume by providing its Amazon Resource Name (ARN). This operation is only supported for cached volume gateway types. To list or delete a snapshot, you must use the Amazon EC2 API. For more information, go to DescribeSnapshots in the Amazon Elastic Compute Cloud API Reference."]moduleDeleteGatewayOutput=structtypenonrect={gatewayARN:GatewayARN.toption}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun()->{gatewayARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the ID of the deleted gateway."]moduleDeleteGatewayInput=structtypenonrect={gatewayARN:GatewayARN.t}letcontext_="DeleteGatewayInput"letmake~gatewayARN=fun()->{gatewayARN}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the ID of the gateway to delete."]moduleDeleteFileShareOutput=structtypenonrect={fileShareARN:FileShareARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the deleted file share."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?fileShareARN=fun()->{fileShareARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("FileShareARN",(Option.mapx.fileShareARN~f:FileShareARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfileShareARN=(Option.map~f:FileShareARN.of_xml)(Xml.childxml_arg0"FileShareARN")inmake?fileShareARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfileShareARN=field_mapjson__"FileShareARN"FileShareARN.of_jsoninmake?fileShareARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"DeleteFileShareOutput"]moduleDeleteFileShareInput=structtypenonrect={fileShareARN:FileShareARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the file share to be deleted."];forceDelete:Boolean__lc1.toption[@ocaml.doc"If this value is set to true, the operation deletes a file share immediately and aborts all data uploads to Amazon Web Services. Otherwise, the file share is not deleted until all data is uploaded to Amazon Web Services. This process aborts the data upload process, and the file share enters the FORCE_DELETING status. Valid Values: true | false"]}letcontext_="DeleteFileShareInput"letmake?forceDelete=fun~fileShareARN->fun()->{forceDelete;fileShareARN}letto_valuex=structure_to_value[("FileShareARN",(Some(FileShareARN.to_valuex.fileShareARN)));("ForceDelete",(Option.mapx.forceDelete~f:Boolean__lc1.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letforceDelete=(Option.map~f:Boolean__lc1.of_xml)(Xml.childxml_arg0"ForceDelete")inletfileShareARN=FileShareARN.of_xml(Xml.child_exn~context:context_xml_arg0"FileShareARN")inmake?forceDelete~fileShareARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letforceDelete=field_mapjson__"ForceDelete"Boolean__lc1.of_jsoninletfileShareARN=field_map_exnjson__"FileShareARN"FileShareARN.of_jsoninmake?forceDelete~fileShareARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"DeleteFileShareInput"]moduleDeleteChapCredentialsOutput=structtypenonrect={targetARN:TargetARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the target."];initiatorName:IqnName.toption[@ocaml.doc"The iSCSI initiator that connects to the target."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?targetARN=fun?initiatorName->fun()->{targetARN;initiatorName}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("TargetARN",(Option.mapx.targetARN~f:TargetARN.to_value));("InitiatorName",(Option.mapx.initiatorName~f:IqnName.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letinitiatorName=(Option.map~f:IqnName.of_xml)(Xml.childxml_arg0"InitiatorName")inlettargetARN=(Option.map~f:TargetARN.of_xml)(Xml.childxml_arg0"TargetARN")inmake?initiatorName?targetARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letinitiatorName=field_mapjson__"InitiatorName"IqnName.of_jsoninlettargetARN=field_mapjson__"TargetARN"TargetARN.of_jsoninmake?initiatorName?targetARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the following fields:"]moduleDeleteChapCredentialsInput=structtypenonrect={targetARN:TargetARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes operation to return to retrieve the TargetARN for specified VolumeARN."];initiatorName:IqnName.t[@ocaml.doc"The iSCSI initiator that connects to the target."]}letcontext_="DeleteChapCredentialsInput"letmake~targetARN=fun~initiatorName->fun()->{targetARN;initiatorName}letto_valuex=structure_to_value[("TargetARN",(Some(TargetARN.to_valuex.targetARN)));("InitiatorName",(Some(IqnName.to_valuex.initiatorName)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letinitiatorName=IqnName.of_xml(Xml.child_exn~context:context_xml_arg0"InitiatorName")inlettargetARN=TargetARN.of_xml(Xml.child_exn~context:context_xml_arg0"TargetARN")inmake~initiatorName~targetARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letinitiatorName=field_map_exnjson__"InitiatorName"IqnName.of_jsoninlettargetARN=field_map_exnjson__"TargetARN"TargetARN.of_jsoninmake~initiatorName~targetARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing one or more of the following fields: DeleteChapCredentialsInput$InitiatorName DeleteChapCredentialsInput$TargetARN"]moduleDeleteCacheReportOutput=structtypenonrect={cacheReportARN:CacheReportARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the cache report you want to delete."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?cacheReportARN=fun()->{cacheReportARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("CacheReportARN",(Option.mapx.cacheReportARN~f:CacheReportARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcacheReportARN=(Option.map~f:CacheReportARN.of_xml)(Xml.childxml_arg0"CacheReportARN")inmake?cacheReportARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcacheReportARN=field_mapjson__"CacheReportARN"CacheReportARN.of_jsoninmake?cacheReportARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes the specified cache report and any associated tags from the Storage Gateway database. You can only delete completed reports. If the status of the report you attempt to delete still IN-PROGRESS, the delete operation returns an error. You can use CancelCacheReport to cancel an IN-PROGRESS report. DeleteCacheReport does not delete the report object from your Amazon S3 bucket."]moduleDeleteCacheReportInput=structtypenonrect={cacheReportARN:CacheReportARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the cache report you want to delete."]}letcontext_="DeleteCacheReportInput"letmake~cacheReportARN=fun()->{cacheReportARN}letto_valuex=structure_to_value[("CacheReportARN",(Some(CacheReportARN.to_valuex.cacheReportARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcacheReportARN=CacheReportARN.of_xml(Xml.child_exn~context:context_xml_arg0"CacheReportARN")inmake~cacheReportARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcacheReportARN=field_map_exnjson__"CacheReportARN"CacheReportARN.of_jsoninmake~cacheReportARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes the specified cache report and any associated tags from the Storage Gateway database. You can only delete completed reports. If the status of the report you attempt to delete still IN-PROGRESS, the delete operation returns an error. You can use CancelCacheReport to cancel an IN-PROGRESS report. DeleteCacheReport does not delete the report object from your Amazon S3 bucket."]moduleDeleteBandwidthRateLimitOutput=structtypenonrect={gatewayARN:GatewayARN.toption}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun()->{gatewayARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the Amazon Resource Name (ARN) of the gateway whose bandwidth rate information was deleted."]moduleDeleteBandwidthRateLimitInput=structtypenonrect={gatewayARN:GatewayARN.t;bandwidthType:BandwidthType.t[@ocaml.doc"One of the BandwidthType values that indicates the gateway bandwidth rate limit to delete. Valid Values: UPLOAD | DOWNLOAD | ALL"]}letcontext_="DeleteBandwidthRateLimitInput"letmake~gatewayARN=fun~bandwidthType->fun()->{gatewayARN;bandwidthType}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)));("BandwidthType",(Some(BandwidthType.to_valuex.bandwidthType)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letbandwidthType=BandwidthType.of_xml(Xml.child_exn~context:context_xml_arg0"BandwidthType")inletgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~bandwidthType~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letbandwidthType=field_map_exnjson__"BandwidthType"BandwidthType.of_jsoninletgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~bandwidthType~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the following fields: DeleteBandwidthRateLimitInput$BandwidthType"]moduleDeleteAutomaticTapeCreationPolicyOutput=structtypenonrect={gatewayARN:GatewayARN.toption}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun()->{gatewayARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes the automatic tape creation policy of a gateway. If you delete this policy, new virtual tapes must be created manually. Use the Amazon Resource Name (ARN) of the gateway in your request to remove the policy."]moduleDeleteAutomaticTapeCreationPolicyInput=structtypenonrect={gatewayARN:GatewayARN.t}letcontext_="DeleteAutomaticTapeCreationPolicyInput"letmake~gatewayARN=fun()->{gatewayARN}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes the automatic tape creation policy of a gateway. If you delete this policy, new virtual tapes must be created manually. Use the Amazon Resource Name (ARN) of the gateway in your request to remove the policy."]moduleCreateTapesOutput=structtypenonrect={tapeARNs:TapeARNs.toption[@ocaml.doc"A list of unique Amazon Resource Names (ARNs) that represents the virtual tapes that were created."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?tapeARNs=fun()->{tapeARNs}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("TapeARNs",(Option.mapx.tapeARNs~f:TapeARNs.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettapeARNs=(Option.map~f:TapeARNs.of_xml)(Xml.childxml_arg0"TapeARNs")inmake?tapeARNs()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettapeARNs=field_mapjson__"TapeARNs"TapeARNs.of_jsoninmake?tapeARNs()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"CreateTapeOutput"]moduleCreateTapesInput=structtypenonrect={gatewayARN:GatewayARN.t[@ocaml.doc"The unique Amazon Resource Name (ARN) that represents the gateway to associate the virtual tapes with. Use the ListGateways operation to return a list of gateways for your account and Amazon Web Services Region."];tapeSizeInBytes:TapeSize.t[@ocaml.doc"The size, in bytes, of the virtual tapes that you want to create. The size must be aligned by gigabyte (1024*1024*1024 bytes)."];clientToken:ClientToken.t[@ocaml.doc"A unique identifier that you use to retry a request. If you retry a request, use the same ClientToken you specified in the initial request. Using the same ClientToken prevents creating the tape multiple times."];numTapesToCreate:NumTapesToCreate.t[@ocaml.doc"The number of virtual tapes that you want to create."];tapeBarcodePrefix:TapeBarcodePrefix.t[@ocaml.doc"A prefix that you append to the barcode of the virtual tape you are creating. This prefix makes the barcode unique. The prefix must be 1-4 characters in length and must be one of the uppercase letters from A to Z."];kMSEncrypted:Boolean.toption[@ocaml.doc"Set to true to use Amazon S3 server-side encryption with your own KMS key, or false to use a key managed by Amazon S3. Optional. Valid Values: true | false"];kMSKey:KMSKey.toption[@ocaml.doc"The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value can only be set when KMSEncrypted is true. Optional."];poolId:PoolId.toption[@ocaml.doc"The ID of the pool that you want to add your tape to for archiving. The tape in this pool is archived in the S3 storage class that is associated with the pool. When you use your backup application to eject the tape, the tape is archived directly into the storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds to the pool."];worm:Boolean__lc1.toption[@ocaml.doc"Set to TRUE if the tape you are creating is to be configured as a write-once-read-many (WORM) tape."];tags:Tags.toption[@ocaml.doc"A list of up to 50 tags that can be assigned to a virtual tape. Each tag is a key-value pair. Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the following special characters: + - = . _ : / \\@. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256."]}letcontext_="CreateTapesInput"letmake?kMSEncrypted=fun?kMSKey->fun?poolId->fun?worm->fun?tags->fun~gatewayARN->fun~tapeSizeInBytes->fun~clientToken->fun~numTapesToCreate->fun~tapeBarcodePrefix->fun()->{kMSEncrypted;kMSKey;poolId;worm;tags;gatewayARN;tapeSizeInBytes;clientToken;numTapesToCreate;tapeBarcodePrefix}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)));("TapeSizeInBytes",(Some(TapeSize.to_valuex.tapeSizeInBytes)));("ClientToken",(Some(ClientToken.to_valuex.clientToken)));("NumTapesToCreate",(Some(NumTapesToCreate.to_valuex.numTapesToCreate)));("TapeBarcodePrefix",(Some(TapeBarcodePrefix.to_valuex.tapeBarcodePrefix)));("KMSEncrypted",(Option.mapx.kMSEncrypted~f:Boolean.to_value));("KMSKey",(Option.mapx.kMSKey~f:KMSKey.to_value));("PoolId",(Option.mapx.poolId~f:PoolId.to_value));("Worm",(Option.mapx.worm~f:Boolean__lc1.to_value));("Tags",(Option.mapx.tags~f:Tags.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:Tags.of_xml)(Xml.childxml_arg0"Tags")inletworm=(Option.map~f:Boolean__lc1.of_xml)(Xml.childxml_arg0"Worm")inletpoolId=(Option.map~f:PoolId.of_xml)(Xml.childxml_arg0"PoolId")inletkMSKey=(Option.map~f:KMSKey.of_xml)(Xml.childxml_arg0"KMSKey")inletkMSEncrypted=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"KMSEncrypted")inlettapeBarcodePrefix=TapeBarcodePrefix.of_xml(Xml.child_exn~context:context_xml_arg0"TapeBarcodePrefix")inletnumTapesToCreate=NumTapesToCreate.of_xml(Xml.child_exn~context:context_xml_arg0"NumTapesToCreate")inletclientToken=ClientToken.of_xml(Xml.child_exn~context:context_xml_arg0"ClientToken")inlettapeSizeInBytes=TapeSize.of_xml(Xml.child_exn~context:context_xml_arg0"TapeSizeInBytes")inletgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake?tags?worm?poolId?kMSKey?kMSEncrypted~tapeBarcodePrefix~numTapesToCreate~clientToken~tapeSizeInBytes~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"Tags"Tags.of_jsoninletworm=field_mapjson__"Worm"Boolean__lc1.of_jsoninletpoolId=field_mapjson__"PoolId"PoolId.of_jsoninletkMSKey=field_mapjson__"KMSKey"KMSKey.of_jsoninletkMSEncrypted=field_mapjson__"KMSEncrypted"Boolean.of_jsoninlettapeBarcodePrefix=field_map_exnjson__"TapeBarcodePrefix"TapeBarcodePrefix.of_jsoninletnumTapesToCreate=field_map_exnjson__"NumTapesToCreate"NumTapesToCreate.of_jsoninletclientToken=field_map_exnjson__"ClientToken"ClientToken.of_jsoninlettapeSizeInBytes=field_map_exnjson__"TapeSizeInBytes"TapeSize.of_jsoninletgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake?tags?worm?poolId?kMSKey?kMSEncrypted~tapeBarcodePrefix~numTapesToCreate~clientToken~tapeSizeInBytes~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"CreateTapesInput"]moduleCreateTapeWithBarcodeOutput=structtypenonrect={tapeARN:TapeARN.toption[@ocaml.doc"A unique Amazon Resource Name (ARN) that represents the virtual tape that was created."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?tapeARN=fun()->{tapeARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("TapeARN",(Option.mapx.tapeARN~f:TapeARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettapeARN=(Option.map~f:TapeARN.of_xml)(Xml.childxml_arg0"TapeARN")inmake?tapeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettapeARN=field_mapjson__"TapeARN"TapeARN.of_jsoninmake?tapeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"CreateTapeOutput"]moduleCreateTapeWithBarcodeInput=structtypenonrect={gatewayARN:GatewayARN.t[@ocaml.doc"The unique Amazon Resource Name (ARN) that represents the gateway to associate the virtual tape with. Use the ListGateways operation to return a list of gateways for your account and Amazon Web Services Region."];tapeSizeInBytes:TapeSize.t[@ocaml.doc"The size, in bytes, of the virtual tape that you want to create. The size must be aligned by gigabyte (1024*1024*1024 bytes)."];tapeBarcode:TapeBarcode.t[@ocaml.doc"The barcode that you want to assign to the tape. Barcodes cannot be reused. This includes barcodes used for tapes that have been deleted."];kMSEncrypted:Boolean.toption[@ocaml.doc"Set to true to use Amazon S3 server-side encryption with your own KMS key, or false to use a key managed by Amazon S3. Optional. Valid Values: true | false"];kMSKey:KMSKey.toption[@ocaml.doc"The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value can only be set when KMSEncrypted is true. Optional."];poolId:PoolId.toption[@ocaml.doc"The ID of the pool that you want to add your tape to for archiving. The tape in this pool is archived in the S3 storage class that is associated with the pool. When you use your backup application to eject the tape, the tape is archived directly into the storage class (S3 Glacier or S3 Deep Archive) that corresponds to the pool."];worm:Boolean__lc1.toption[@ocaml.doc"Set to TRUE if the tape you are creating is to be configured as a write-once-read-many (WORM) tape."];tags:Tags.toption[@ocaml.doc"A list of up to 50 tags that can be assigned to a virtual tape that has a barcode. Each tag is a key-value pair. Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the following special characters: + - = . _ : / \\@. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256."]}letcontext_="CreateTapeWithBarcodeInput"letmake?kMSEncrypted=fun?kMSKey->fun?poolId->fun?worm->fun?tags->fun~gatewayARN->fun~tapeSizeInBytes->fun~tapeBarcode->fun()->{kMSEncrypted;kMSKey;poolId;worm;tags;gatewayARN;tapeSizeInBytes;tapeBarcode}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)));("TapeSizeInBytes",(Some(TapeSize.to_valuex.tapeSizeInBytes)));("TapeBarcode",(Some(TapeBarcode.to_valuex.tapeBarcode)));("KMSEncrypted",(Option.mapx.kMSEncrypted~f:Boolean.to_value));("KMSKey",(Option.mapx.kMSKey~f:KMSKey.to_value));("PoolId",(Option.mapx.poolId~f:PoolId.to_value));("Worm",(Option.mapx.worm~f:Boolean__lc1.to_value));("Tags",(Option.mapx.tags~f:Tags.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:Tags.of_xml)(Xml.childxml_arg0"Tags")inletworm=(Option.map~f:Boolean__lc1.of_xml)(Xml.childxml_arg0"Worm")inletpoolId=(Option.map~f:PoolId.of_xml)(Xml.childxml_arg0"PoolId")inletkMSKey=(Option.map~f:KMSKey.of_xml)(Xml.childxml_arg0"KMSKey")inletkMSEncrypted=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"KMSEncrypted")inlettapeBarcode=TapeBarcode.of_xml(Xml.child_exn~context:context_xml_arg0"TapeBarcode")inlettapeSizeInBytes=TapeSize.of_xml(Xml.child_exn~context:context_xml_arg0"TapeSizeInBytes")inletgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake?tags?worm?poolId?kMSKey?kMSEncrypted~tapeBarcode~tapeSizeInBytes~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"Tags"Tags.of_jsoninletworm=field_mapjson__"Worm"Boolean__lc1.of_jsoninletpoolId=field_mapjson__"PoolId"PoolId.of_jsoninletkMSKey=field_mapjson__"KMSKey"KMSKey.of_jsoninletkMSEncrypted=field_mapjson__"KMSEncrypted"Boolean.of_jsoninlettapeBarcode=field_map_exnjson__"TapeBarcode"TapeBarcode.of_jsoninlettapeSizeInBytes=field_map_exnjson__"TapeSizeInBytes"TapeSize.of_jsoninletgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake?tags?worm?poolId?kMSKey?kMSEncrypted~tapeBarcode~tapeSizeInBytes~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"CreateTapeWithBarcodeInput"]moduleCreateTapePoolOutput=structtypenonrect={poolARN:PoolARN.toption[@ocaml.doc"The unique Amazon Resource Name (ARN) that represents the custom tape pool. Use the ListTapePools operation to return a list of tape pools for your account and Amazon Web Services Region."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?poolARN=fun()->{poolARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("PoolARN",(Option.mapx.poolARN~f:PoolARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpoolARN=(Option.map~f:PoolARN.of_xml)(Xml.childxml_arg0"PoolARN")inmake?poolARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpoolARN=field_mapjson__"PoolARN"PoolARN.of_jsoninmake?poolARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a new custom tape pool. You can use custom tape pool to enable tape retention lock on tapes that are archived in the custom pool."]moduleCreateTapePoolInput=structtypenonrect={poolName:PoolName.t[@ocaml.doc"The name of the new custom tape pool."];storageClass:TapeStorageClass.t[@ocaml.doc"The storage class that is associated with the new custom pool. When you use your backup application to eject the tape, the tape is archived directly into the storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds to the pool."];retentionLockType:RetentionLockType.toption[@ocaml.doc"Tape retention lock can be configured in two modes. When configured in governance mode, Amazon Web Services accounts with specific IAM permissions are authorized to remove the tape retention lock from archived virtual tapes. When configured in compliance mode, the tape retention lock cannot be removed by any user, including the root Amazon Web Services account."];retentionLockTimeInDays:RetentionLockTimeInDays.toption[@ocaml.doc"Tape retention lock time is set in days. Tape retention lock can be enabled for up to 100 years (36,500 days)."];tags:Tags.toption[@ocaml.doc"A list of up to 50 tags that can be assigned to tape pool. Each tag is a key-value pair. Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the following special characters: + - = . _ : / \\@. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256."]}letcontext_="CreateTapePoolInput"letmake?retentionLockType=fun?retentionLockTimeInDays->fun?tags->fun~poolName->fun~storageClass->fun()->{retentionLockType;retentionLockTimeInDays;tags;poolName;storageClass}letto_valuex=structure_to_value[("PoolName",(Some(PoolName.to_valuex.poolName)));("StorageClass",(Some(TapeStorageClass.to_valuex.storageClass)));("RetentionLockType",(Option.mapx.retentionLockType~f:RetentionLockType.to_value));("RetentionLockTimeInDays",(Option.mapx.retentionLockTimeInDays~f:RetentionLockTimeInDays.to_value));("Tags",(Option.mapx.tags~f:Tags.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:Tags.of_xml)(Xml.childxml_arg0"Tags")inletretentionLockTimeInDays=(Option.map~f:RetentionLockTimeInDays.of_xml)(Xml.childxml_arg0"RetentionLockTimeInDays")inletretentionLockType=(Option.map~f:RetentionLockType.of_xml)(Xml.childxml_arg0"RetentionLockType")inletstorageClass=TapeStorageClass.of_xml(Xml.child_exn~context:context_xml_arg0"StorageClass")inletpoolName=PoolName.of_xml(Xml.child_exn~context:context_xml_arg0"PoolName")inmake?tags?retentionLockTimeInDays?retentionLockType~storageClass~poolName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"Tags"Tags.of_jsoninletretentionLockTimeInDays=field_mapjson__"RetentionLockTimeInDays"RetentionLockTimeInDays.of_jsoninletretentionLockType=field_mapjson__"RetentionLockType"RetentionLockType.of_jsoninletstorageClass=field_map_exnjson__"StorageClass"TapeStorageClass.of_jsoninletpoolName=field_map_exnjson__"PoolName"PoolName.of_jsoninmake?tags?retentionLockTimeInDays?retentionLockType~storageClass~poolName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a new custom tape pool. You can use custom tape pool to enable tape retention lock on tapes that are archived in the custom pool."]moduleCreateStorediSCSIVolumeOutput=structtypenonrect={volumeARN:VolumeARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the configured volume."];volumeSizeInBytes:Long.toption[@ocaml.doc"The size of the volume in bytes."];targetARN:TargetARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the volume target, which includes the iSCSI name that initiators can use to connect to the target."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?volumeARN=fun?volumeSizeInBytes->fun?targetARN->fun()->{volumeARN;volumeSizeInBytes;targetARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("VolumeARN",(Option.mapx.volumeARN~f:VolumeARN.to_value));("VolumeSizeInBytes",(Option.mapx.volumeSizeInBytes~f:Long.to_value));("TargetARN",(Option.mapx.targetARN~f:TargetARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettargetARN=(Option.map~f:TargetARN.of_xml)(Xml.childxml_arg0"TargetARN")inletvolumeSizeInBytes=(Option.map~f:Long.of_xml)(Xml.childxml_arg0"VolumeSizeInBytes")inletvolumeARN=(Option.map~f:VolumeARN.of_xml)(Xml.childxml_arg0"VolumeARN")inmake?targetARN?volumeSizeInBytes?volumeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettargetARN=field_mapjson__"TargetARN"TargetARN.of_jsoninletvolumeSizeInBytes=field_mapjson__"VolumeSizeInBytes"Long.of_jsoninletvolumeARN=field_mapjson__"VolumeARN"VolumeARN.of_jsoninmake?targetARN?volumeSizeInBytes?volumeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the following fields:"]moduleCreateStorediSCSIVolumeInput=structtypenonrect={gatewayARN:GatewayARN.t;diskId:DiskId.t[@ocaml.doc"The unique identifier for the gateway local disk that is configured as a stored volume. Use ListLocalDisks to list disk IDs for a gateway."];snapshotId:SnapshotId.toption[@ocaml.doc"The snapshot ID (e.g., \"snap-1122aabb\") of the snapshot to restore as the new stored volume. Specify this field if you want to create the iSCSI storage volume from a snapshot; otherwise, do not include this field. To list snapshots for your account use DescribeSnapshots in the Amazon Elastic Compute Cloud API Reference."];preserveExistingData:Boolean__lc1.t[@ocaml.doc"Set to true if you want to preserve the data on the local disk. Otherwise, set to false to create an empty volume. Valid Values: true | false"];targetName:TargetName.t[@ocaml.doc"The name of the iSCSI target used by an initiator to connect to a volume and used as a suffix for the target ARN. For example, specifying TargetName as myvolume results in the target ARN of arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume. The target name must be unique across all volumes on a gateway. If you don't specify a value, Storage Gateway uses the value that was previously used for this volume as the new target name."];networkInterfaceId:NetworkInterfaceId.t[@ocaml.doc"The network interface of the gateway on which to expose the iSCSI target. Accepts IPv4 and IPv6 addresses. Use DescribeGatewayInformation to get a list of the network interfaces available on a gateway. Valid Values: A valid IP address."];kMSEncrypted:Boolean.toption[@ocaml.doc"Set to true to use Amazon S3 server-side encryption with your own KMS key, or false to use a key managed by Amazon S3. Optional. Valid Values: true | false"];kMSKey:KMSKey.toption[@ocaml.doc"The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value can only be set when KMSEncrypted is true. Optional."];tags:Tags.toption[@ocaml.doc"A list of up to 50 tags that can be assigned to a stored volume. Each tag is a key-value pair. Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the following special characters: + - = . _ : / \\@. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256."]}letcontext_="CreateStorediSCSIVolumeInput"letmake?snapshotId=fun?kMSEncrypted->fun?kMSKey->fun?tags->fun~gatewayARN->fun~diskId->fun~preserveExistingData->fun~targetName->fun~networkInterfaceId->fun()->{snapshotId;kMSEncrypted;kMSKey;tags;gatewayARN;diskId;preserveExistingData;targetName;networkInterfaceId}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)));("DiskId",(Some(DiskId.to_valuex.diskId)));("SnapshotId",(Option.mapx.snapshotId~f:SnapshotId.to_value));("PreserveExistingData",(Some(Boolean__lc1.to_valuex.preserveExistingData)));("TargetName",(Some(TargetName.to_valuex.targetName)));("NetworkInterfaceId",(Some(NetworkInterfaceId.to_valuex.networkInterfaceId)));("KMSEncrypted",(Option.mapx.kMSEncrypted~f:Boolean.to_value));("KMSKey",(Option.mapx.kMSKey~f:KMSKey.to_value));("Tags",(Option.mapx.tags~f:Tags.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:Tags.of_xml)(Xml.childxml_arg0"Tags")inletkMSKey=(Option.map~f:KMSKey.of_xml)(Xml.childxml_arg0"KMSKey")inletkMSEncrypted=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"KMSEncrypted")inletnetworkInterfaceId=NetworkInterfaceId.of_xml(Xml.child_exn~context:context_xml_arg0"NetworkInterfaceId")inlettargetName=TargetName.of_xml(Xml.child_exn~context:context_xml_arg0"TargetName")inletpreserveExistingData=Boolean__lc1.of_xml(Xml.child_exn~context:context_xml_arg0"PreserveExistingData")inletsnapshotId=(Option.map~f:SnapshotId.of_xml)(Xml.childxml_arg0"SnapshotId")inletdiskId=DiskId.of_xml(Xml.child_exn~context:context_xml_arg0"DiskId")inletgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake?tags?kMSKey?kMSEncrypted~networkInterfaceId~targetName~preserveExistingData?snapshotId~diskId~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"Tags"Tags.of_jsoninletkMSKey=field_mapjson__"KMSKey"KMSKey.of_jsoninletkMSEncrypted=field_mapjson__"KMSEncrypted"Boolean.of_jsoninletnetworkInterfaceId=field_map_exnjson__"NetworkInterfaceId"NetworkInterfaceId.of_jsoninlettargetName=field_map_exnjson__"TargetName"TargetName.of_jsoninletpreserveExistingData=field_map_exnjson__"PreserveExistingData"Boolean__lc1.of_jsoninletsnapshotId=field_mapjson__"SnapshotId"SnapshotId.of_jsoninletdiskId=field_map_exnjson__"DiskId"DiskId.of_jsoninletgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake?tags?kMSKey?kMSEncrypted~networkInterfaceId~targetName~preserveExistingData?snapshotId~diskId~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing one or more of the following fields: CreateStorediSCSIVolumeInput$DiskId CreateStorediSCSIVolumeInput$NetworkInterfaceId CreateStorediSCSIVolumeInput$PreserveExistingData CreateStorediSCSIVolumeInput$SnapshotId CreateStorediSCSIVolumeInput$TargetName"]moduleCreateSnapshotOutput=structtypenonrect={volumeARN:VolumeARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the volume of which the snapshot was taken."];snapshotId:SnapshotId.toption[@ocaml.doc"The snapshot ID that is used to refer to the snapshot in future operations such as describing snapshots (Amazon Elastic Compute Cloud API DescribeSnapshots) or creating a volume from a snapshot (CreateStorediSCSIVolume)."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`ServiceUnavailableErrorofServiceUnavailableError.t|`Unknown_operation_errorof(string*stringoption)]letmake?volumeARN=fun?snapshotId->fun()->{volumeARN;snapshotId}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|"ServiceUnavailableError"->`ServiceUnavailableError(ServiceUnavailableError.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|"ServiceUnavailableError"->`ServiceUnavailableError(ServiceUnavailableError.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`ServiceUnavailableErrore->`Assoc[("error",(`String"ServiceUnavailableError"));("details",(ServiceUnavailableError.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("VolumeARN",(Option.mapx.volumeARN~f:VolumeARN.to_value));("SnapshotId",(Option.mapx.snapshotId~f:SnapshotId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsnapshotId=(Option.map~f:SnapshotId.of_xml)(Xml.childxml_arg0"SnapshotId")inletvolumeARN=(Option.map~f:VolumeARN.of_xml)(Xml.childxml_arg0"VolumeARN")inmake?snapshotId?volumeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsnapshotId=field_mapjson__"SnapshotId"SnapshotId.of_jsoninletvolumeARN=field_mapjson__"VolumeARN"VolumeARN.of_jsoninmake?snapshotId?volumeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the following fields:"]moduleCreateSnapshotInput=structtypenonrect={volumeARN:VolumeARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation to return a list of gateway volumes."];snapshotDescription:SnapshotDescription.t[@ocaml.doc"Textual description of the snapshot that appears in the Amazon EC2 console, Elastic Block Store snapshots panel in the Description field, and in the Storage Gateway snapshot Details pane, Description field."];tags:Tags.toption[@ocaml.doc"A list of up to 50 tags that can be assigned to a snapshot. Each tag is a key-value pair. Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the following special characters: + - = . _ : / \\@. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256."]}letcontext_="CreateSnapshotInput"letmake?tags=fun~volumeARN->fun~snapshotDescription->fun()->{tags;volumeARN;snapshotDescription}letto_valuex=structure_to_value[("VolumeARN",(Some(VolumeARN.to_valuex.volumeARN)));("SnapshotDescription",(Some(SnapshotDescription.to_valuex.snapshotDescription)));("Tags",(Option.mapx.tags~f:Tags.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:Tags.of_xml)(Xml.childxml_arg0"Tags")inletsnapshotDescription=SnapshotDescription.of_xml(Xml.child_exn~context:context_xml_arg0"SnapshotDescription")inletvolumeARN=VolumeARN.of_xml(Xml.child_exn~context:context_xml_arg0"VolumeARN")inmake?tags~snapshotDescription~volumeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"Tags"Tags.of_jsoninletsnapshotDescription=field_map_exnjson__"SnapshotDescription"SnapshotDescription.of_jsoninletvolumeARN=field_map_exnjson__"VolumeARN"VolumeARN.of_jsoninmake?tags~snapshotDescription~volumeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing one or more of the following fields: CreateSnapshotInput$SnapshotDescription CreateSnapshotInput$VolumeARN"]moduleCreateSnapshotFromVolumeRecoveryPointOutput=structtypenonrect={snapshotId:SnapshotId.toption[@ocaml.doc"The ID of the snapshot."];volumeARN:VolumeARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes operation to return to retrieve the TargetARN for specified VolumeARN."];volumeRecoveryPointTime:String_.toption[@ocaml.doc"The time the volume was created from the recovery point."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`ServiceUnavailableErrorofServiceUnavailableError.t|`Unknown_operation_errorof(string*stringoption)]letmake?snapshotId=fun?volumeARN->fun?volumeRecoveryPointTime->fun()->{snapshotId;volumeARN;volumeRecoveryPointTime}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|"ServiceUnavailableError"->`ServiceUnavailableError(ServiceUnavailableError.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|"ServiceUnavailableError"->`ServiceUnavailableError(ServiceUnavailableError.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`ServiceUnavailableErrore->`Assoc[("error",(`String"ServiceUnavailableError"));("details",(ServiceUnavailableError.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("SnapshotId",(Option.mapx.snapshotId~f:SnapshotId.to_value));("VolumeARN",(Option.mapx.volumeARN~f:VolumeARN.to_value));("VolumeRecoveryPointTime",(Option.mapx.volumeRecoveryPointTime~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvolumeRecoveryPointTime=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"VolumeRecoveryPointTime")inletvolumeARN=(Option.map~f:VolumeARN.of_xml)(Xml.childxml_arg0"VolumeARN")inletsnapshotId=(Option.map~f:SnapshotId.of_xml)(Xml.childxml_arg0"SnapshotId")inmake?volumeRecoveryPointTime?volumeARN?snapshotId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvolumeRecoveryPointTime=field_mapjson__"VolumeRecoveryPointTime"String_.of_jsoninletvolumeARN=field_mapjson__"VolumeARN"VolumeARN.of_jsoninletsnapshotId=field_mapjson__"SnapshotId"SnapshotId.of_jsoninmake?volumeRecoveryPointTime?volumeARN?snapshotId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Initiates a snapshot of a gateway from a volume recovery point. This operation is only supported in the cached volume gateway type. A volume recovery point is a point in time at which all data of the volume is consistent and from which you can create a snapshot. To get a list of volume recovery point for cached volume gateway, use ListVolumeRecoveryPoints. In the CreateSnapshotFromVolumeRecoveryPoint request, you identify the volume by providing its Amazon Resource Name (ARN). You must also provide a description for the snapshot. When the gateway takes a snapshot of the specified volume, the snapshot and its description appear in the Storage Gateway console. In response, the gateway returns you a snapshot ID. You can use this snapshot ID to check the snapshot progress or later use it when you want to create a volume from a snapshot. To list or delete a snapshot, you must use the Amazon EC2 API. For more information, see DescribeSnapshots or DeleteSnapshot in the Amazon Elastic Compute Cloud API Reference."]moduleCreateSnapshotFromVolumeRecoveryPointInput=structtypenonrect={volumeARN:VolumeARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes operation to return to retrieve the TargetARN for specified VolumeARN."];snapshotDescription:SnapshotDescription.t[@ocaml.doc"Textual description of the snapshot that appears in the Amazon EC2 console, Elastic Block Store snapshots panel in the Description field, and in the Storage Gateway snapshot Details pane, Description field."];tags:Tags.toption[@ocaml.doc"A list of up to 50 tags that can be assigned to a snapshot. Each tag is a key-value pair. Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the following special characters: + - = . _ : / \\@. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256."]}letcontext_="CreateSnapshotFromVolumeRecoveryPointInput"letmake?tags=fun~volumeARN->fun~snapshotDescription->fun()->{tags;volumeARN;snapshotDescription}letto_valuex=structure_to_value[("VolumeARN",(Some(VolumeARN.to_valuex.volumeARN)));("SnapshotDescription",(Some(SnapshotDescription.to_valuex.snapshotDescription)));("Tags",(Option.mapx.tags~f:Tags.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:Tags.of_xml)(Xml.childxml_arg0"Tags")inletsnapshotDescription=SnapshotDescription.of_xml(Xml.child_exn~context:context_xml_arg0"SnapshotDescription")inletvolumeARN=VolumeARN.of_xml(Xml.child_exn~context:context_xml_arg0"VolumeARN")inmake?tags~snapshotDescription~volumeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"Tags"Tags.of_jsoninletsnapshotDescription=field_map_exnjson__"SnapshotDescription"SnapshotDescription.of_jsoninletvolumeARN=field_map_exnjson__"VolumeARN"VolumeARN.of_jsoninmake?tags~snapshotDescription~volumeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Initiates a snapshot of a gateway from a volume recovery point. This operation is only supported in the cached volume gateway type. A volume recovery point is a point in time at which all data of the volume is consistent and from which you can create a snapshot. To get a list of volume recovery point for cached volume gateway, use ListVolumeRecoveryPoints. In the CreateSnapshotFromVolumeRecoveryPoint request, you identify the volume by providing its Amazon Resource Name (ARN). You must also provide a description for the snapshot. When the gateway takes a snapshot of the specified volume, the snapshot and its description appear in the Storage Gateway console. In response, the gateway returns you a snapshot ID. You can use this snapshot ID to check the snapshot progress or later use it when you want to create a volume from a snapshot. To list or delete a snapshot, you must use the Amazon EC2 API. For more information, see DescribeSnapshots or DeleteSnapshot in the Amazon Elastic Compute Cloud API Reference."]moduleCreateSMBFileShareOutput=structtypenonrect={fileShareARN:FileShareARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the newly created file share."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?fileShareARN=fun()->{fileShareARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("FileShareARN",(Option.mapx.fileShareARN~f:FileShareARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfileShareARN=(Option.map~f:FileShareARN.of_xml)(Xml.childxml_arg0"FileShareARN")inmake?fileShareARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfileShareARN=field_mapjson__"FileShareARN"FileShareARN.of_jsoninmake?fileShareARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"CreateSMBFileShareOutput"]moduleCreateSMBFileShareInput=structtypenonrect={clientToken:ClientToken.t[@ocaml.doc"A unique string value that you supply that is used by S3 File Gateway to ensure idempotent file share creation."];gatewayARN:GatewayARN.t[@ocaml.doc"The ARN of the S3 File Gateway on which you want to create a file share."];encryptionType:EncryptionType.toption[@ocaml.doc"A value that specifies the type of server-side encryption that the file share will use for the data that it stores in Amazon S3. We recommend using EncryptionType instead of KMSEncrypted to set the file share encryption method. You do not need to provide values for both parameters. If values for both parameters exist in the same request, then the specified encryption methods must not conflict. For example, if EncryptionType is SseS3, then KMSEncrypted must be false. If EncryptionType is SseKms or DsseKms, then KMSEncrypted must be true."];kMSEncrypted:Boolean.toption[@ocaml.doc"Optional. Set to true to use Amazon S3 server-side encryption with your own KMS key (SSE-KMS), or false to use a key managed by Amazon S3 (SSE-S3). To use dual-layer encryption (DSSE-KMS), set the EncryptionType parameter instead. We recommend using EncryptionType instead of KMSEncrypted to set the file share encryption method. You do not need to provide values for both parameters. If values for both parameters exist in the same request, then the specified encryption methods must not conflict. For example, if EncryptionType is SseS3, then KMSEncrypted must be false. If EncryptionType is SseKms or DsseKms, then KMSEncrypted must be true. Valid Values: true | false"];kMSKey:KMSKey.toption[@ocaml.doc"Optional. The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value must be set if KMSEncrypted is true, or if EncryptionType is SseKms or DsseKms."];role:Role.t[@ocaml.doc"The ARN of the Identity and Access Management (IAM) role that an S3 File Gateway assumes when it accesses the underlying storage."];locationARN:LocationARN.t[@ocaml.doc"A custom ARN for the backend storage used for storing data for file shares. It includes a resource ARN with an optional prefix concatenation. The prefix must end with a forward slash (/). You can specify LocationARN as a bucket ARN, access point ARN or access point alias, as shown in the following examples. Bucket ARN: arn:aws:s3:::amzn-s3-demo-bucket/prefix/ Access point ARN: arn:aws:s3:region:account-id:accesspoint/access-point-name/prefix/ If you specify an access point, the bucket policy must be configured to delegate access control to the access point. For information, see Delegating access control to access points in the Amazon S3 User Guide. Access point alias: test-ap-ab123cdef4gehijklmn5opqrstuvuse1a-s3alias"];defaultStorageClass:StorageClass.toption[@ocaml.doc"The default storage class for objects put into an Amazon S3 bucket by the S3 File Gateway. The default value is S3_STANDARD. Optional. Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA"];objectACL:ObjectACL.toption[@ocaml.doc"A value that sets the access control list (ACL) permission for objects in the S3 bucket that a S3 File Gateway puts objects into. The default value is private."];readOnly:Boolean.toption[@ocaml.doc"A value that sets the write status of a file share. Set this value to true to set the write status to read-only, otherwise set to false. Valid Values: true | false"];guessMIMETypeEnabled:Boolean.toption[@ocaml.doc"A value that enables guessing of the MIME type for uploaded objects based on file extensions. Set this value to true to enable MIME type guessing, otherwise set to false. The default value is true. Valid Values: true | false"];requesterPays:Boolean.toption[@ocaml.doc"A value that sets who pays the cost of the request and the cost associated with data download from the S3 bucket. If this value is set to true, the requester pays the costs; otherwise, the S3 bucket owner pays. However, the S3 bucket owner always pays the cost of storing data. RequesterPays is a configuration for the S3 bucket that backs the file share, so make sure that the configuration on the file share is the same as the S3 bucket configuration. Valid Values: true | false"];sMBACLEnabled:Boolean.toption[@ocaml.doc"Set this value to true to enable access control list (ACL) on the SMB file share. Set it to false to map file and directory permissions to the POSIX permissions. For more information, see Using Windows ACLs to limit SMB file share access in the Amazon S3 File Gateway User Guide. Valid Values: true | false"];accessBasedEnumeration:Boolean.toption[@ocaml.doc"The files and folders on this share will only be visible to users with read access."];adminUserList:UserList.toption[@ocaml.doc"A list of users or groups in the Active Directory that will be granted administrator privileges on the file share. These users can do all file operations as the super-user. Acceptable formats include: DOMAIN\\User1, user1, \\@group1, and \\@DOMAIN\\group1. Use this option very carefully, because any user in this list can do anything they like on the file share, regardless of file permissions."];validUserList:UserList.toption[@ocaml.doc"A list of users or groups in the Active Directory that are allowed to access the file share. A group must be prefixed with the \\@ character. Acceptable formats include: DOMAIN\\User1, user1, \\@group1, and \\@DOMAIN\\group1. Can only be set if Authentication is set to ActiveDirectory."];invalidUserList:UserList.toption[@ocaml.doc"A list of users or groups in the Active Directory that are not allowed to access the file share. A group must be prefixed with the \\@ character. Acceptable formats include: DOMAIN\\User1, user1, \\@group1, and \\@DOMAIN\\group1. Can only be set if Authentication is set to ActiveDirectory."];auditDestinationARN:AuditDestinationARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the storage used for audit logs."];authentication:Authentication.toption[@ocaml.doc"The authentication method that users use to access the file share. The default is ActiveDirectory. Valid Values: ActiveDirectory | GuestAccess"];caseSensitivity:CaseSensitivity.toption[@ocaml.doc"The case of an object name in an Amazon S3 bucket. For ClientSpecified, the client determines the case sensitivity. For CaseSensitive, the gateway determines the case sensitivity. The default value is ClientSpecified."];tags:Tags.toption[@ocaml.doc"A list of up to 50 tags that can be assigned to the NFS file share. Each tag is a key-value pair. Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the following special characters: + - = . _ : / \\@. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256."];fileShareName:FileShareName.toption[@ocaml.doc"The name of the file share. Optional. FileShareName must be set if an S3 prefix name is set in LocationARN, or if an access point or access point alias is used. A valid SMB file share name cannot contain the following characters: \\[,\\],#,;,<,>,:,\",\\,/,|,?,*,+, or ASCII control characters 1-31."];cacheAttributes:CacheAttributes.toption[@ocaml.doc"Specifies refresh cache information for the file share."];notificationPolicy:NotificationPolicy.toption[@ocaml.doc"The notification policy of the file share. SettlingTimeInSeconds controls the number of seconds to wait after the last point in time a client wrote to a file before generating an ObjectUploaded notification. Because clients can make many small writes to files, it's best to set this parameter for as long as possible to avoid generating multiple notifications for the same file in a small time period. SettlingTimeInSeconds has no effect on the timing of the object uploading to Amazon S3, only the timing of the notification. This setting is not meant to specify an exact time at which the notification will be sent. In some cases, the gateway might require more than the specified delay time to generate and send notifications. The following example sets NotificationPolicy on with SettlingTimeInSeconds set to 60. \\{\\\"Upload\\\": \\{\\\"SettlingTimeInSeconds\\\": 60\\}\\} The following example sets NotificationPolicy off. \\{\\}"];vPCEndpointDNSName:DNSHostName.toption[@ocaml.doc"Specifies the DNS name for the VPC endpoint that the SMB file share uses to connect to Amazon S3. This parameter is required for SMB file shares that connect to Amazon S3 through a VPC endpoint, a VPC access point, or an access point alias that points to a VPC access point."];bucketRegion:RegionId.toption[@ocaml.doc"Specifies the Region of the S3 bucket where the SMB file share stores files. This parameter is required for SMB file shares that connect to Amazon S3 through a VPC endpoint, a VPC access point, or an access point alias that points to a VPC access point."];oplocksEnabled:Boolean.toption[@ocaml.doc"Specifies whether opportunistic locking is enabled for the SMB file share. Enabling opportunistic locking on case-sensitive shares is not recommended for workloads that involve access to files with the same name in different case. Valid Values: true | false"]}letcontext_="CreateSMBFileShareInput"letmake?encryptionType=fun?kMSEncrypted->fun?kMSKey->fun?defaultStorageClass->fun?objectACL->fun?readOnly->fun?guessMIMETypeEnabled->fun?requesterPays->fun?sMBACLEnabled->fun?accessBasedEnumeration->fun?adminUserList->fun?validUserList->fun?invalidUserList->fun?auditDestinationARN->fun?authentication->fun?caseSensitivity->fun?tags->fun?fileShareName->fun?cacheAttributes->fun?notificationPolicy->fun?vPCEndpointDNSName->fun?bucketRegion->fun?oplocksEnabled->fun~clientToken->fun~gatewayARN->fun~role->fun~locationARN->fun()->{encryptionType;kMSEncrypted;kMSKey;defaultStorageClass;objectACL;readOnly;guessMIMETypeEnabled;requesterPays;sMBACLEnabled;accessBasedEnumeration;adminUserList;validUserList;invalidUserList;auditDestinationARN;authentication;caseSensitivity;tags;fileShareName;cacheAttributes;notificationPolicy;vPCEndpointDNSName;bucketRegion;oplocksEnabled;clientToken;gatewayARN;role;locationARN}letto_valuex=structure_to_value[("ClientToken",(Some(ClientToken.to_valuex.clientToken)));("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)));("EncryptionType",(Option.mapx.encryptionType~f:EncryptionType.to_value));("KMSEncrypted",(Option.mapx.kMSEncrypted~f:Boolean.to_value));("KMSKey",(Option.mapx.kMSKey~f:KMSKey.to_value));("Role",(Some(Role.to_valuex.role)));("LocationARN",(Some(LocationARN.to_valuex.locationARN)));("DefaultStorageClass",(Option.mapx.defaultStorageClass~f:StorageClass.to_value));("ObjectACL",(Option.mapx.objectACL~f:ObjectACL.to_value));("ReadOnly",(Option.mapx.readOnly~f:Boolean.to_value));("GuessMIMETypeEnabled",(Option.mapx.guessMIMETypeEnabled~f:Boolean.to_value));("RequesterPays",(Option.mapx.requesterPays~f:Boolean.to_value));("SMBACLEnabled",(Option.mapx.sMBACLEnabled~f:Boolean.to_value));("AccessBasedEnumeration",(Option.mapx.accessBasedEnumeration~f:Boolean.to_value));("AdminUserList",(Option.mapx.adminUserList~f:UserList.to_value));("ValidUserList",(Option.mapx.validUserList~f:UserList.to_value));("InvalidUserList",(Option.mapx.invalidUserList~f:UserList.to_value));("AuditDestinationARN",(Option.mapx.auditDestinationARN~f:AuditDestinationARN.to_value));("Authentication",(Option.mapx.authentication~f:Authentication.to_value));("CaseSensitivity",(Option.mapx.caseSensitivity~f:CaseSensitivity.to_value));("Tags",(Option.mapx.tags~f:Tags.to_value));("FileShareName",(Option.mapx.fileShareName~f:FileShareName.to_value));("CacheAttributes",(Option.mapx.cacheAttributes~f:CacheAttributes.to_value));("NotificationPolicy",(Option.mapx.notificationPolicy~f:NotificationPolicy.to_value));("VPCEndpointDNSName",(Option.mapx.vPCEndpointDNSName~f:DNSHostName.to_value));("BucketRegion",(Option.mapx.bucketRegion~f:RegionId.to_value));("OplocksEnabled",(Option.mapx.oplocksEnabled~f:Boolean.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letoplocksEnabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"OplocksEnabled")inletbucketRegion=(Option.map~f:RegionId.of_xml)(Xml.childxml_arg0"BucketRegion")inletvPCEndpointDNSName=(Option.map~f:DNSHostName.of_xml)(Xml.childxml_arg0"VPCEndpointDNSName")inletnotificationPolicy=(Option.map~f:NotificationPolicy.of_xml)(Xml.childxml_arg0"NotificationPolicy")inletcacheAttributes=(Option.map~f:CacheAttributes.of_xml)(Xml.childxml_arg0"CacheAttributes")inletfileShareName=(Option.map~f:FileShareName.of_xml)(Xml.childxml_arg0"FileShareName")inlettags=(Option.map~f:Tags.of_xml)(Xml.childxml_arg0"Tags")inletcaseSensitivity=(Option.map~f:CaseSensitivity.of_xml)(Xml.childxml_arg0"CaseSensitivity")inletauthentication=(Option.map~f:Authentication.of_xml)(Xml.childxml_arg0"Authentication")inletauditDestinationARN=(Option.map~f:AuditDestinationARN.of_xml)(Xml.childxml_arg0"AuditDestinationARN")inletinvalidUserList=(Option.map~f:UserList.of_xml)(Xml.childxml_arg0"InvalidUserList")inletvalidUserList=(Option.map~f:UserList.of_xml)(Xml.childxml_arg0"ValidUserList")inletadminUserList=(Option.map~f:UserList.of_xml)(Xml.childxml_arg0"AdminUserList")inletaccessBasedEnumeration=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"AccessBasedEnumeration")inletsMBACLEnabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"SMBACLEnabled")inletrequesterPays=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"RequesterPays")inletguessMIMETypeEnabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"GuessMIMETypeEnabled")inletreadOnly=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"ReadOnly")inletobjectACL=(Option.map~f:ObjectACL.of_xml)(Xml.childxml_arg0"ObjectACL")inletdefaultStorageClass=(Option.map~f:StorageClass.of_xml)(Xml.childxml_arg0"DefaultStorageClass")inletlocationARN=LocationARN.of_xml(Xml.child_exn~context:context_xml_arg0"LocationARN")inletrole=Role.of_xml(Xml.child_exn~context:context_xml_arg0"Role")inletkMSKey=(Option.map~f:KMSKey.of_xml)(Xml.childxml_arg0"KMSKey")inletkMSEncrypted=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"KMSEncrypted")inletencryptionType=(Option.map~f:EncryptionType.of_xml)(Xml.childxml_arg0"EncryptionType")inletgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inletclientToken=ClientToken.of_xml(Xml.child_exn~context:context_xml_arg0"ClientToken")inmake?oplocksEnabled?bucketRegion?vPCEndpointDNSName?notificationPolicy?cacheAttributes?fileShareName?tags?caseSensitivity?authentication?auditDestinationARN?invalidUserList?validUserList?adminUserList?accessBasedEnumeration?sMBACLEnabled?requesterPays?guessMIMETypeEnabled?readOnly?objectACL?defaultStorageClass~locationARN~role?kMSKey?kMSEncrypted?encryptionType~gatewayARN~clientToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letoplocksEnabled=field_mapjson__"OplocksEnabled"Boolean.of_jsoninletbucketRegion=field_mapjson__"BucketRegion"RegionId.of_jsoninletvPCEndpointDNSName=field_mapjson__"VPCEndpointDNSName"DNSHostName.of_jsoninletnotificationPolicy=field_mapjson__"NotificationPolicy"NotificationPolicy.of_jsoninletcacheAttributes=field_mapjson__"CacheAttributes"CacheAttributes.of_jsoninletfileShareName=field_mapjson__"FileShareName"FileShareName.of_jsoninlettags=field_mapjson__"Tags"Tags.of_jsoninletcaseSensitivity=field_mapjson__"CaseSensitivity"CaseSensitivity.of_jsoninletauthentication=field_mapjson__"Authentication"Authentication.of_jsoninletauditDestinationARN=field_mapjson__"AuditDestinationARN"AuditDestinationARN.of_jsoninletinvalidUserList=field_mapjson__"InvalidUserList"UserList.of_jsoninletvalidUserList=field_mapjson__"ValidUserList"UserList.of_jsoninletadminUserList=field_mapjson__"AdminUserList"UserList.of_jsoninletaccessBasedEnumeration=field_mapjson__"AccessBasedEnumeration"Boolean.of_jsoninletsMBACLEnabled=field_mapjson__"SMBACLEnabled"Boolean.of_jsoninletrequesterPays=field_mapjson__"RequesterPays"Boolean.of_jsoninletguessMIMETypeEnabled=field_mapjson__"GuessMIMETypeEnabled"Boolean.of_jsoninletreadOnly=field_mapjson__"ReadOnly"Boolean.of_jsoninletobjectACL=field_mapjson__"ObjectACL"ObjectACL.of_jsoninletdefaultStorageClass=field_mapjson__"DefaultStorageClass"StorageClass.of_jsoninletlocationARN=field_map_exnjson__"LocationARN"LocationARN.of_jsoninletrole=field_map_exnjson__"Role"Role.of_jsoninletkMSKey=field_mapjson__"KMSKey"KMSKey.of_jsoninletkMSEncrypted=field_mapjson__"KMSEncrypted"Boolean.of_jsoninletencryptionType=field_mapjson__"EncryptionType"EncryptionType.of_jsoninletgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninletclientToken=field_map_exnjson__"ClientToken"ClientToken.of_jsoninmake?oplocksEnabled?bucketRegion?vPCEndpointDNSName?notificationPolicy?cacheAttributes?fileShareName?tags?caseSensitivity?authentication?auditDestinationARN?invalidUserList?validUserList?adminUserList?accessBasedEnumeration?sMBACLEnabled?requesterPays?guessMIMETypeEnabled?readOnly?objectACL?defaultStorageClass~locationARN~role?kMSKey?kMSEncrypted?encryptionType~gatewayARN~clientToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"CreateSMBFileShareInput"]moduleCreateNFSFileShareOutput=structtypenonrect={fileShareARN:FileShareARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the newly created file share."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?fileShareARN=fun()->{fileShareARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("FileShareARN",(Option.mapx.fileShareARN~f:FileShareARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfileShareARN=(Option.map~f:FileShareARN.of_xml)(Xml.childxml_arg0"FileShareARN")inmake?fileShareARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfileShareARN=field_mapjson__"FileShareARN"FileShareARN.of_jsoninmake?fileShareARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"CreateNFSFileShareOutput"]moduleCreateNFSFileShareInput=structtypenonrect={clientToken:ClientToken.t[@ocaml.doc"A unique string value that you supply that is used by S3 File Gateway to ensure idempotent file share creation."];nFSFileShareDefaults:NFSFileShareDefaults.toption[@ocaml.doc"File share default values. Optional."];gatewayARN:GatewayARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the S3 File Gateway on which you want to create a file share."];encryptionType:EncryptionType.toption[@ocaml.doc"A value that specifies the type of server-side encryption that the file share will use for the data that it stores in Amazon S3. We recommend using EncryptionType instead of KMSEncrypted to set the file share encryption method. You do not need to provide values for both parameters. If values for both parameters exist in the same request, then the specified encryption methods must not conflict. For example, if EncryptionType is SseS3, then KMSEncrypted must be false. If EncryptionType is SseKms or DsseKms, then KMSEncrypted must be true."];kMSEncrypted:Boolean.toption[@ocaml.doc"Optional. Set to true to use Amazon S3 server-side encryption with your own KMS key (SSE-KMS), or false to use a key managed by Amazon S3 (SSE-S3). To use dual-layer encryption (DSSE-KMS), set the EncryptionType parameter instead. We recommend using EncryptionType instead of KMSEncrypted to set the file share encryption method. You do not need to provide values for both parameters. If values for both parameters exist in the same request, then the specified encryption methods must not conflict. For example, if EncryptionType is SseS3, then KMSEncrypted must be false. If EncryptionType is SseKms or DsseKms, then KMSEncrypted must be true. Valid Values: true | false"];kMSKey:KMSKey.toption[@ocaml.doc"Optional. The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value must be set if KMSEncrypted is true, or if EncryptionType is SseKms or DsseKms."];role:Role.t[@ocaml.doc"The ARN of the Identity and Access Management (IAM) role that an S3 File Gateway assumes when it accesses the underlying storage."];locationARN:LocationARN.t[@ocaml.doc"A custom ARN for the backend storage used for storing data for file shares. It includes a resource ARN with an optional prefix concatenation. The prefix must end with a forward slash (/). You can specify LocationARN as a bucket ARN, access point ARN or access point alias, as shown in the following examples. Bucket ARN: arn:aws:s3:::amzn-s3-demo-bucket/prefix/ Access point ARN: arn:aws:s3:region:account-id:accesspoint/access-point-name/prefix/ If you specify an access point, the bucket policy must be configured to delegate access control to the access point. For information, see Delegating access control to access points in the Amazon S3 User Guide. Access point alias: test-ap-ab123cdef4gehijklmn5opqrstuvuse1a-s3alias"];defaultStorageClass:StorageClass.toption[@ocaml.doc"The default storage class for objects put into an Amazon S3 bucket by the S3 File Gateway. The default value is S3_STANDARD. Optional. Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA"];objectACL:ObjectACL.toption[@ocaml.doc"A value that sets the access control list (ACL) permission for objects in the S3 bucket that a S3 File Gateway puts objects into. The default value is private."];clientList:FileShareClientList.toption[@ocaml.doc"The list of clients that are allowed to access the S3 File Gateway. The list must contain either valid IPv4/IPv6 addresses or valid CIDR blocks."];squash:Squash.toption[@ocaml.doc"A value that maps a user to anonymous user. Valid values are the following: RootSquash: Only root is mapped to anonymous user. NoSquash: No one is mapped to anonymous user. AllSquash: Everyone is mapped to anonymous user."];readOnly:Boolean.toption[@ocaml.doc"A value that sets the write status of a file share. Set this value to true to set the write status to read-only, otherwise set to false. Valid Values: true | false"];guessMIMETypeEnabled:Boolean.toption[@ocaml.doc"A value that enables guessing of the MIME type for uploaded objects based on file extensions. Set this value to true to enable MIME type guessing, otherwise set to false. The default value is true. Valid Values: true | false"];requesterPays:Boolean.toption[@ocaml.doc"A value that sets who pays the cost of the request and the cost associated with data download from the S3 bucket. If this value is set to true, the requester pays the costs; otherwise, the S3 bucket owner pays. However, the S3 bucket owner always pays the cost of storing data. RequesterPays is a configuration for the S3 bucket that backs the file share, so make sure that the configuration on the file share is the same as the S3 bucket configuration. Valid Values: true | false"];tags:Tags.toption[@ocaml.doc"A list of up to 50 tags that can be assigned to the NFS file share. Each tag is a key-value pair. Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the following special characters: + - = . _ : / \\@. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256."];fileShareName:FileShareName.toption[@ocaml.doc"The name of the file share. Optional. FileShareName must be set if an S3 prefix name is set in LocationARN, or if an access point or access point alias is used. A valid NFS file share name can only contain the following characters: a-z, A-Z, 0-9, -, ., and _."];cacheAttributes:CacheAttributes.toption[@ocaml.doc"Specifies refresh cache information for the file share."];notificationPolicy:NotificationPolicy.toption[@ocaml.doc"The notification policy of the file share. SettlingTimeInSeconds controls the number of seconds to wait after the last point in time a client wrote to a file before generating an ObjectUploaded notification. Because clients can make many small writes to files, it's best to set this parameter for as long as possible to avoid generating multiple notifications for the same file in a small time period. SettlingTimeInSeconds has no effect on the timing of the object uploading to Amazon S3, only the timing of the notification. This setting is not meant to specify an exact time at which the notification will be sent. In some cases, the gateway might require more than the specified delay time to generate and send notifications. The following example sets NotificationPolicy on with SettlingTimeInSeconds set to 60. \\{\\\"Upload\\\": \\{\\\"SettlingTimeInSeconds\\\": 60\\}\\} The following example sets NotificationPolicy off. \\{\\}"];vPCEndpointDNSName:DNSHostName.toption[@ocaml.doc"Specifies the DNS name for the VPC endpoint that the NFS file share uses to connect to Amazon S3. This parameter is required for NFS file shares that connect to Amazon S3 through a VPC endpoint, a VPC access point, or an access point alias that points to a VPC access point."];bucketRegion:RegionId.toption[@ocaml.doc"Specifies the Region of the S3 bucket where the NFS file share stores files. This parameter is required for NFS file shares that connect to Amazon S3 through a VPC endpoint, a VPC access point, or an access point alias that points to a VPC access point."];auditDestinationARN:AuditDestinationARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the storage used for audit logs."]}letcontext_="CreateNFSFileShareInput"letmake?nFSFileShareDefaults=fun?encryptionType->fun?kMSEncrypted->fun?kMSKey->fun?defaultStorageClass->fun?objectACL->fun?clientList->fun?squash->fun?readOnly->fun?guessMIMETypeEnabled->fun?requesterPays->fun?tags->fun?fileShareName->fun?cacheAttributes->fun?notificationPolicy->fun?vPCEndpointDNSName->fun?bucketRegion->fun?auditDestinationARN->fun~clientToken->fun~gatewayARN->fun~role->fun~locationARN->fun()->{nFSFileShareDefaults;encryptionType;kMSEncrypted;kMSKey;defaultStorageClass;objectACL;clientList;squash;readOnly;guessMIMETypeEnabled;requesterPays;tags;fileShareName;cacheAttributes;notificationPolicy;vPCEndpointDNSName;bucketRegion;auditDestinationARN;clientToken;gatewayARN;role;locationARN}letto_valuex=structure_to_value[("ClientToken",(Some(ClientToken.to_valuex.clientToken)));("NFSFileShareDefaults",(Option.mapx.nFSFileShareDefaults~f:NFSFileShareDefaults.to_value));("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)));("EncryptionType",(Option.mapx.encryptionType~f:EncryptionType.to_value));("KMSEncrypted",(Option.mapx.kMSEncrypted~f:Boolean.to_value));("KMSKey",(Option.mapx.kMSKey~f:KMSKey.to_value));("Role",(Some(Role.to_valuex.role)));("LocationARN",(Some(LocationARN.to_valuex.locationARN)));("DefaultStorageClass",(Option.mapx.defaultStorageClass~f:StorageClass.to_value));("ObjectACL",(Option.mapx.objectACL~f:ObjectACL.to_value));("ClientList",(Option.mapx.clientList~f:FileShareClientList.to_value));("Squash",(Option.mapx.squash~f:Squash.to_value));("ReadOnly",(Option.mapx.readOnly~f:Boolean.to_value));("GuessMIMETypeEnabled",(Option.mapx.guessMIMETypeEnabled~f:Boolean.to_value));("RequesterPays",(Option.mapx.requesterPays~f:Boolean.to_value));("Tags",(Option.mapx.tags~f:Tags.to_value));("FileShareName",(Option.mapx.fileShareName~f:FileShareName.to_value));("CacheAttributes",(Option.mapx.cacheAttributes~f:CacheAttributes.to_value));("NotificationPolicy",(Option.mapx.notificationPolicy~f:NotificationPolicy.to_value));("VPCEndpointDNSName",(Option.mapx.vPCEndpointDNSName~f:DNSHostName.to_value));("BucketRegion",(Option.mapx.bucketRegion~f:RegionId.to_value));("AuditDestinationARN",(Option.mapx.auditDestinationARN~f:AuditDestinationARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letauditDestinationARN=(Option.map~f:AuditDestinationARN.of_xml)(Xml.childxml_arg0"AuditDestinationARN")inletbucketRegion=(Option.map~f:RegionId.of_xml)(Xml.childxml_arg0"BucketRegion")inletvPCEndpointDNSName=(Option.map~f:DNSHostName.of_xml)(Xml.childxml_arg0"VPCEndpointDNSName")inletnotificationPolicy=(Option.map~f:NotificationPolicy.of_xml)(Xml.childxml_arg0"NotificationPolicy")inletcacheAttributes=(Option.map~f:CacheAttributes.of_xml)(Xml.childxml_arg0"CacheAttributes")inletfileShareName=(Option.map~f:FileShareName.of_xml)(Xml.childxml_arg0"FileShareName")inlettags=(Option.map~f:Tags.of_xml)(Xml.childxml_arg0"Tags")inletrequesterPays=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"RequesterPays")inletguessMIMETypeEnabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"GuessMIMETypeEnabled")inletreadOnly=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"ReadOnly")inletsquash=(Option.map~f:Squash.of_xml)(Xml.childxml_arg0"Squash")inletclientList=(Option.map~f:FileShareClientList.of_xml)(Xml.childxml_arg0"ClientList")inletobjectACL=(Option.map~f:ObjectACL.of_xml)(Xml.childxml_arg0"ObjectACL")inletdefaultStorageClass=(Option.map~f:StorageClass.of_xml)(Xml.childxml_arg0"DefaultStorageClass")inletlocationARN=LocationARN.of_xml(Xml.child_exn~context:context_xml_arg0"LocationARN")inletrole=Role.of_xml(Xml.child_exn~context:context_xml_arg0"Role")inletkMSKey=(Option.map~f:KMSKey.of_xml)(Xml.childxml_arg0"KMSKey")inletkMSEncrypted=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"KMSEncrypted")inletencryptionType=(Option.map~f:EncryptionType.of_xml)(Xml.childxml_arg0"EncryptionType")inletgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inletnFSFileShareDefaults=(Option.map~f:NFSFileShareDefaults.of_xml)(Xml.childxml_arg0"NFSFileShareDefaults")inletclientToken=ClientToken.of_xml(Xml.child_exn~context:context_xml_arg0"ClientToken")inmake?auditDestinationARN?bucketRegion?vPCEndpointDNSName?notificationPolicy?cacheAttributes?fileShareName?tags?requesterPays?guessMIMETypeEnabled?readOnly?squash?clientList?objectACL?defaultStorageClass~locationARN~role?kMSKey?kMSEncrypted?encryptionType~gatewayARN?nFSFileShareDefaults~clientToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letauditDestinationARN=field_mapjson__"AuditDestinationARN"AuditDestinationARN.of_jsoninletbucketRegion=field_mapjson__"BucketRegion"RegionId.of_jsoninletvPCEndpointDNSName=field_mapjson__"VPCEndpointDNSName"DNSHostName.of_jsoninletnotificationPolicy=field_mapjson__"NotificationPolicy"NotificationPolicy.of_jsoninletcacheAttributes=field_mapjson__"CacheAttributes"CacheAttributes.of_jsoninletfileShareName=field_mapjson__"FileShareName"FileShareName.of_jsoninlettags=field_mapjson__"Tags"Tags.of_jsoninletrequesterPays=field_mapjson__"RequesterPays"Boolean.of_jsoninletguessMIMETypeEnabled=field_mapjson__"GuessMIMETypeEnabled"Boolean.of_jsoninletreadOnly=field_mapjson__"ReadOnly"Boolean.of_jsoninletsquash=field_mapjson__"Squash"Squash.of_jsoninletclientList=field_mapjson__"ClientList"FileShareClientList.of_jsoninletobjectACL=field_mapjson__"ObjectACL"ObjectACL.of_jsoninletdefaultStorageClass=field_mapjson__"DefaultStorageClass"StorageClass.of_jsoninletlocationARN=field_map_exnjson__"LocationARN"LocationARN.of_jsoninletrole=field_map_exnjson__"Role"Role.of_jsoninletkMSKey=field_mapjson__"KMSKey"KMSKey.of_jsoninletkMSEncrypted=field_mapjson__"KMSEncrypted"Boolean.of_jsoninletencryptionType=field_mapjson__"EncryptionType"EncryptionType.of_jsoninletgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninletnFSFileShareDefaults=field_mapjson__"NFSFileShareDefaults"NFSFileShareDefaults.of_jsoninletclientToken=field_map_exnjson__"ClientToken"ClientToken.of_jsoninmake?auditDestinationARN?bucketRegion?vPCEndpointDNSName?notificationPolicy?cacheAttributes?fileShareName?tags?requesterPays?guessMIMETypeEnabled?readOnly?squash?clientList?objectACL?defaultStorageClass~locationARN~role?kMSKey?kMSEncrypted?encryptionType~gatewayARN?nFSFileShareDefaults~clientToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"CreateNFSFileShareInput"]moduleCreateCachediSCSIVolumeOutput=structtypenonrect={volumeARN:VolumeARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the configured volume."];targetARN:TargetARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the volume target, which includes the iSCSI name that initiators can use to connect to the target."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?volumeARN=fun?targetARN->fun()->{volumeARN;targetARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("VolumeARN",(Option.mapx.volumeARN~f:VolumeARN.to_value));("TargetARN",(Option.mapx.targetARN~f:TargetARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettargetARN=(Option.map~f:TargetARN.of_xml)(Xml.childxml_arg0"TargetARN")inletvolumeARN=(Option.map~f:VolumeARN.of_xml)(Xml.childxml_arg0"VolumeARN")inmake?targetARN?volumeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettargetARN=field_mapjson__"TargetARN"TargetARN.of_jsoninletvolumeARN=field_mapjson__"VolumeARN"VolumeARN.of_jsoninmake?targetARN?volumeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a cached volume on a specified cached volume gateway. This operation is only supported in the cached volume gateway type. Cache storage must be allocated to the gateway before you can create a cached volume. Use the AddCache operation to add cache storage to a gateway. In the request, you must specify the gateway, size of the volume in bytes, the iSCSI target name, an IP address on which to expose the target, and a unique client token. In response, the gateway creates the volume and returns information about it. This information includes the volume Amazon Resource Name (ARN), its size, and the iSCSI target ARN that initiators can use to connect to the volume target. Optionally, you can provide the ARN for an existing volume as the SourceVolumeARN for this cached volume, which creates an exact copy of the existing volume\226\128\153s latest recovery point. The VolumeSizeInBytes value must be equal to or larger than the size of the copied volume, in bytes."]moduleCreateCachediSCSIVolumeInput=structtypenonrect={gatewayARN:GatewayARN.t;volumeSizeInBytes:Long.t[@ocaml.doc"The size of the volume in bytes."];snapshotId:SnapshotId.toption[@ocaml.doc"The snapshot ID (e.g. \"snap-1122aabb\") of the snapshot to restore as the new cached volume. Specify this field if you want to create the iSCSI storage volume from a snapshot; otherwise, do not include this field. To list snapshots for your account use DescribeSnapshots in the Amazon Elastic Compute Cloud API Reference."];targetName:TargetName.t[@ocaml.doc"The name of the iSCSI target used by an initiator to connect to a volume and used as a suffix for the target ARN. For example, specifying TargetName as myvolume results in the target ARN of arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume. The target name must be unique across all volumes on a gateway. If you don't specify a value, Storage Gateway uses the value that was previously used for this volume as the new target name."];sourceVolumeARN:VolumeARN.toption[@ocaml.doc"The ARN for an existing volume. Specifying this ARN makes the new volume into an exact copy of the specified existing volume's latest recovery point. The VolumeSizeInBytes value for this new volume must be equal to or larger than the size of the existing volume, in bytes."];networkInterfaceId:NetworkInterfaceId.t[@ocaml.doc"The network interface of the gateway on which to expose the iSCSI target. Accepts IPv4 and IPv6 addresses. Use DescribeGatewayInformation to get a list of the network interfaces available on a gateway. Valid Values: A valid IP address."];clientToken:ClientToken.t[@ocaml.doc"A unique identifier that you use to retry a request. If you retry a request, use the same ClientToken you specified in the initial request."];kMSEncrypted:Boolean.toption[@ocaml.doc"Set to true to use Amazon S3 server-side encryption with your own KMS key, or false to use a key managed by Amazon S3. Optional. Valid Values: true | false"];kMSKey:KMSKey.toption[@ocaml.doc"The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value can only be set when KMSEncrypted is true. Optional."];tags:Tags.toption[@ocaml.doc"A list of up to 50 tags that you can assign to a cached volume. Each tag is a key-value pair. Valid characters for key and value are letters, spaces, and numbers that you can represent in UTF-8 format, and the following special characters: + - = . _ : / \\@. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256 characters."]}letcontext_="CreateCachediSCSIVolumeInput"letmake?snapshotId=fun?sourceVolumeARN->fun?kMSEncrypted->fun?kMSKey->fun?tags->fun~gatewayARN->fun~volumeSizeInBytes->fun~targetName->fun~networkInterfaceId->fun~clientToken->fun()->{snapshotId;sourceVolumeARN;kMSEncrypted;kMSKey;tags;gatewayARN;volumeSizeInBytes;targetName;networkInterfaceId;clientToken}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)));("VolumeSizeInBytes",(Some(Long.to_valuex.volumeSizeInBytes)));("SnapshotId",(Option.mapx.snapshotId~f:SnapshotId.to_value));("TargetName",(Some(TargetName.to_valuex.targetName)));("SourceVolumeARN",(Option.mapx.sourceVolumeARN~f:VolumeARN.to_value));("NetworkInterfaceId",(Some(NetworkInterfaceId.to_valuex.networkInterfaceId)));("ClientToken",(Some(ClientToken.to_valuex.clientToken)));("KMSEncrypted",(Option.mapx.kMSEncrypted~f:Boolean.to_value));("KMSKey",(Option.mapx.kMSKey~f:KMSKey.to_value));("Tags",(Option.mapx.tags~f:Tags.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:Tags.of_xml)(Xml.childxml_arg0"Tags")inletkMSKey=(Option.map~f:KMSKey.of_xml)(Xml.childxml_arg0"KMSKey")inletkMSEncrypted=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"KMSEncrypted")inletclientToken=ClientToken.of_xml(Xml.child_exn~context:context_xml_arg0"ClientToken")inletnetworkInterfaceId=NetworkInterfaceId.of_xml(Xml.child_exn~context:context_xml_arg0"NetworkInterfaceId")inletsourceVolumeARN=(Option.map~f:VolumeARN.of_xml)(Xml.childxml_arg0"SourceVolumeARN")inlettargetName=TargetName.of_xml(Xml.child_exn~context:context_xml_arg0"TargetName")inletsnapshotId=(Option.map~f:SnapshotId.of_xml)(Xml.childxml_arg0"SnapshotId")inletvolumeSizeInBytes=Long.of_xml(Xml.child_exn~context:context_xml_arg0"VolumeSizeInBytes")inletgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake?tags?kMSKey?kMSEncrypted~clientToken~networkInterfaceId?sourceVolumeARN~targetName?snapshotId~volumeSizeInBytes~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"Tags"Tags.of_jsoninletkMSKey=field_mapjson__"KMSKey"KMSKey.of_jsoninletkMSEncrypted=field_mapjson__"KMSEncrypted"Boolean.of_jsoninletclientToken=field_map_exnjson__"ClientToken"ClientToken.of_jsoninletnetworkInterfaceId=field_map_exnjson__"NetworkInterfaceId"NetworkInterfaceId.of_jsoninletsourceVolumeARN=field_mapjson__"SourceVolumeARN"VolumeARN.of_jsoninlettargetName=field_map_exnjson__"TargetName"TargetName.of_jsoninletsnapshotId=field_mapjson__"SnapshotId"SnapshotId.of_jsoninletvolumeSizeInBytes=field_map_exnjson__"VolumeSizeInBytes"Long.of_jsoninletgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake?tags?kMSKey?kMSEncrypted~clientToken~networkInterfaceId?sourceVolumeARN~targetName?snapshotId~volumeSizeInBytes~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a cached volume on a specified cached volume gateway. This operation is only supported in the cached volume gateway type. Cache storage must be allocated to the gateway before you can create a cached volume. Use the AddCache operation to add cache storage to a gateway. In the request, you must specify the gateway, size of the volume in bytes, the iSCSI target name, an IP address on which to expose the target, and a unique client token. In response, the gateway creates the volume and returns information about it. This information includes the volume Amazon Resource Name (ARN), its size, and the iSCSI target ARN that initiators can use to connect to the volume target. Optionally, you can provide the ARN for an existing volume as the SourceVolumeARN for this cached volume, which creates an exact copy of the existing volume\226\128\153s latest recovery point. The VolumeSizeInBytes value must be equal to or larger than the size of the copied volume, in bytes."]moduleCancelRetrievalOutput=structtypenonrect={tapeARN:TapeARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the virtual tape for which retrieval was canceled."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?tapeARN=fun()->{tapeARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("TapeARN",(Option.mapx.tapeARN~f:TapeARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettapeARN=(Option.map~f:TapeARN.of_xml)(Xml.childxml_arg0"TapeARN")inmake?tapeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettapeARN=field_mapjson__"TapeARN"TapeARN.of_jsoninmake?tapeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"CancelRetrievalOutput"]moduleCancelRetrievalInput=structtypenonrect={gatewayARN:GatewayARN.t;tapeARN:TapeARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the virtual tape you want to cancel retrieval for."]}letcontext_="CancelRetrievalInput"letmake~gatewayARN=fun~tapeARN->fun()->{gatewayARN;tapeARN}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)));("TapeARN",(Some(TapeARN.to_valuex.tapeARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettapeARN=TapeARN.of_xml(Xml.child_exn~context:context_xml_arg0"TapeARN")inletgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~tapeARN~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettapeARN=field_map_exnjson__"TapeARN"TapeARN.of_jsoninletgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~tapeARN~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"CancelRetrievalInput"]moduleCancelCacheReportOutput=structtypenonrect={cacheReportARN:CacheReportARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the cache report you want to cancel."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?cacheReportARN=fun()->{cacheReportARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("CacheReportARN",(Option.mapx.cacheReportARN~f:CacheReportARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcacheReportARN=(Option.map~f:CacheReportARN.of_xml)(Xml.childxml_arg0"CacheReportARN")inmake?cacheReportARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcacheReportARN=field_mapjson__"CacheReportARN"CacheReportARN.of_jsoninmake?cacheReportARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Cancels generation of a specified cache report. You can use this operation to manually cancel an IN-PROGRESS report for any reason. This action changes the report status from IN-PROGRESS to CANCELLED. You can only cancel in-progress reports. If the the report you attempt to cancel is in FAILED, ERROR, or COMPLETED state, the cancel operation returns an error."]moduleCancelCacheReportInput=structtypenonrect={cacheReportARN:CacheReportARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the cache report you want to cancel."]}letcontext_="CancelCacheReportInput"letmake~cacheReportARN=fun()->{cacheReportARN}letto_valuex=structure_to_value[("CacheReportARN",(Some(CacheReportARN.to_valuex.cacheReportARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcacheReportARN=CacheReportARN.of_xml(Xml.child_exn~context:context_xml_arg0"CacheReportARN")inmake~cacheReportARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcacheReportARN=field_map_exnjson__"CacheReportARN"CacheReportARN.of_jsoninmake~cacheReportARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Cancels generation of a specified cache report. You can use this operation to manually cancel an IN-PROGRESS report for any reason. This action changes the report status from IN-PROGRESS to CANCELLED. You can only cancel in-progress reports. If the the report you attempt to cancel is in FAILED, ERROR, or COMPLETED state, the cancel operation returns an error."]moduleCancelArchivalOutput=structtypenonrect={tapeARN:TapeARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the virtual tape for which archiving was canceled."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?tapeARN=fun()->{tapeARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("TapeARN",(Option.mapx.tapeARN~f:TapeARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettapeARN=(Option.map~f:TapeARN.of_xml)(Xml.childxml_arg0"TapeARN")inmake?tapeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettapeARN=field_mapjson__"TapeARN"TapeARN.of_jsoninmake?tapeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"CancelArchivalOutput"]moduleCancelArchivalInput=structtypenonrect={gatewayARN:GatewayARN.t;tapeARN:TapeARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the virtual tape you want to cancel archiving for."]}letcontext_="CancelArchivalInput"letmake~gatewayARN=fun~tapeARN->fun()->{gatewayARN;tapeARN}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)));("TapeARN",(Some(TapeARN.to_valuex.tapeARN)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettapeARN=TapeARN.of_xml(Xml.child_exn~context:context_xml_arg0"TapeARN")inletgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~tapeARN~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettapeARN=field_map_exnjson__"TapeARN"TapeARN.of_jsoninletgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~tapeARN~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"CancelArchivalInput"]moduleAttachVolumeOutput=structtypenonrect={volumeARN:VolumeARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the volume that was attached to the gateway."];targetARN:TargetARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the volume target, which includes the iSCSI name for the initiator that was used to connect to the target."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?volumeARN=fun?targetARN->fun()->{volumeARN;targetARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("VolumeARN",(Option.mapx.volumeARN~f:VolumeARN.to_value));("TargetARN",(Option.mapx.targetARN~f:TargetARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettargetARN=(Option.map~f:TargetARN.of_xml)(Xml.childxml_arg0"TargetARN")inletvolumeARN=(Option.map~f:VolumeARN.of_xml)(Xml.childxml_arg0"VolumeARN")inmake?targetARN?volumeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettargetARN=field_mapjson__"TargetARN"TargetARN.of_jsoninletvolumeARN=field_mapjson__"VolumeARN"VolumeARN.of_jsoninmake?targetARN?volumeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"AttachVolumeOutput"]moduleAttachVolumeInput=structtypenonrect={gatewayARN:GatewayARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the gateway that you want to attach the volume to."];targetName:TargetName.toption[@ocaml.doc"The name of the iSCSI target used by an initiator to connect to a volume and used as a suffix for the target ARN. For example, specifying TargetName as myvolume results in the target ARN of arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume. The target name must be unique across all volumes on a gateway. If you don't specify a value, Storage Gateway uses the value that was previously used for this volume as the new target name."];volumeARN:VolumeARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the volume to attach to the specified gateway."];networkInterfaceId:NetworkInterfaceId.t[@ocaml.doc"The network interface of the gateway on which to expose the iSCSI target. Accepts IPv4 and IPv6 addresses. Use DescribeGatewayInformation to get a list of the network interfaces available on a gateway. Valid Values: A valid IP address."];diskId:DiskId.toption[@ocaml.doc"The unique device ID or other distinguishing data that identifies the local disk used to create the volume. This value is only required when you are attaching a stored volume."]}letcontext_="AttachVolumeInput"letmake?targetName=fun?diskId->fun~gatewayARN->fun~volumeARN->fun~networkInterfaceId->fun()->{targetName;diskId;gatewayARN;volumeARN;networkInterfaceId}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)));("TargetName",(Option.mapx.targetName~f:TargetName.to_value));("VolumeARN",(Some(VolumeARN.to_valuex.volumeARN)));("NetworkInterfaceId",(Some(NetworkInterfaceId.to_valuex.networkInterfaceId)));("DiskId",(Option.mapx.diskId~f:DiskId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letdiskId=(Option.map~f:DiskId.of_xml)(Xml.childxml_arg0"DiskId")inletnetworkInterfaceId=NetworkInterfaceId.of_xml(Xml.child_exn~context:context_xml_arg0"NetworkInterfaceId")inletvolumeARN=VolumeARN.of_xml(Xml.child_exn~context:context_xml_arg0"VolumeARN")inlettargetName=(Option.map~f:TargetName.of_xml)(Xml.childxml_arg0"TargetName")inletgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake?diskId~networkInterfaceId~volumeARN?targetName~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letdiskId=field_mapjson__"DiskId"DiskId.of_jsoninletnetworkInterfaceId=field_map_exnjson__"NetworkInterfaceId"NetworkInterfaceId.of_jsoninletvolumeARN=field_map_exnjson__"VolumeARN"VolumeARN.of_jsoninlettargetName=field_mapjson__"TargetName"TargetName.of_jsoninletgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake?diskId~networkInterfaceId~volumeARN?targetName~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"AttachVolumeInput"]moduleAssociateFileSystemOutput=structtypenonrect={fileSystemAssociationARN:FileSystemAssociationARN.toption[@ocaml.doc"The ARN of the newly created file system association."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?fileSystemAssociationARN=fun()->{fileSystemAssociationARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("FileSystemAssociationARN",(Option.mapx.fileSystemAssociationARN~f:FileSystemAssociationARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfileSystemAssociationARN=(Option.map~f:FileSystemAssociationARN.of_xml)(Xml.childxml_arg0"FileSystemAssociationARN")inmake?fileSystemAssociationARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfileSystemAssociationARN=field_mapjson__"FileSystemAssociationARN"FileSystemAssociationARN.of_jsoninmake?fileSystemAssociationARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Associate an Amazon FSx file system with the FSx File Gateway. After the association process is complete, the file shares on the Amazon FSx file system are available for access through the gateway. This operation only supports the FSx File Gateway type."]moduleAssociateFileSystemInput=structtypenonrect={userName:DomainUserName.t[@ocaml.doc"The user name of the user credential that has permission to access the root share D$ of the Amazon FSx file system. The user account must belong to the Amazon FSx delegated admin user group."];password:DomainUserPassword.t[@ocaml.doc"The password of the user credential."];clientToken:ClientToken.t[@ocaml.doc"A unique string value that you supply that is used by the FSx File Gateway to ensure idempotent file system association creation."];gatewayARN:GatewayARN.t;locationARN:FileSystemLocationARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the Amazon FSx file system to associate with the FSx File Gateway."];tags:Tags.toption[@ocaml.doc"A list of up to 50 tags that can be assigned to the file system association. Each tag is a key-value pair."];auditDestinationARN:AuditDestinationARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the storage used for the audit logs."];cacheAttributes:CacheAttributes.toption;endpointNetworkConfiguration:EndpointNetworkConfiguration.toption[@ocaml.doc"Specifies the network configuration information for the gateway associated with the Amazon FSx file system. If multiple file systems are associated with this gateway, this parameter's IpAddresses field is required."]}letcontext_="AssociateFileSystemInput"letmake?tags=fun?auditDestinationARN->fun?cacheAttributes->fun?endpointNetworkConfiguration->fun~userName->fun~password->fun~clientToken->fun~gatewayARN->fun~locationARN->fun()->{tags;auditDestinationARN;cacheAttributes;endpointNetworkConfiguration;userName;password;clientToken;gatewayARN;locationARN}letto_valuex=structure_to_value[("UserName",(Some(DomainUserName.to_valuex.userName)));("Password",(Some(DomainUserPassword.to_valuex.password)));("ClientToken",(Some(ClientToken.to_valuex.clientToken)));("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)));("LocationARN",(Some(FileSystemLocationARN.to_valuex.locationARN)));("Tags",(Option.mapx.tags~f:Tags.to_value));("AuditDestinationARN",(Option.mapx.auditDestinationARN~f:AuditDestinationARN.to_value));("CacheAttributes",(Option.mapx.cacheAttributes~f:CacheAttributes.to_value));("EndpointNetworkConfiguration",(Option.mapx.endpointNetworkConfiguration~f:EndpointNetworkConfiguration.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letendpointNetworkConfiguration=(Option.map~f:EndpointNetworkConfiguration.of_xml)(Xml.childxml_arg0"EndpointNetworkConfiguration")inletcacheAttributes=(Option.map~f:CacheAttributes.of_xml)(Xml.childxml_arg0"CacheAttributes")inletauditDestinationARN=(Option.map~f:AuditDestinationARN.of_xml)(Xml.childxml_arg0"AuditDestinationARN")inlettags=(Option.map~f:Tags.of_xml)(Xml.childxml_arg0"Tags")inletlocationARN=FileSystemLocationARN.of_xml(Xml.child_exn~context:context_xml_arg0"LocationARN")inletgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inletclientToken=ClientToken.of_xml(Xml.child_exn~context:context_xml_arg0"ClientToken")inletpassword=DomainUserPassword.of_xml(Xml.child_exn~context:context_xml_arg0"Password")inletuserName=DomainUserName.of_xml(Xml.child_exn~context:context_xml_arg0"UserName")inmake?endpointNetworkConfiguration?cacheAttributes?auditDestinationARN?tags~locationARN~gatewayARN~clientToken~password~userName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letendpointNetworkConfiguration=field_mapjson__"EndpointNetworkConfiguration"EndpointNetworkConfiguration.of_jsoninletcacheAttributes=field_mapjson__"CacheAttributes"CacheAttributes.of_jsoninletauditDestinationARN=field_mapjson__"AuditDestinationARN"AuditDestinationARN.of_jsoninlettags=field_mapjson__"Tags"Tags.of_jsoninletlocationARN=field_map_exnjson__"LocationARN"FileSystemLocationARN.of_jsoninletgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninletclientToken=field_map_exnjson__"ClientToken"ClientToken.of_jsoninletpassword=field_map_exnjson__"Password"DomainUserPassword.of_jsoninletuserName=field_map_exnjson__"UserName"DomainUserName.of_jsoninmake?endpointNetworkConfiguration?cacheAttributes?auditDestinationARN?tags~locationARN~gatewayARN~clientToken~password~userName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Associate an Amazon FSx file system with the FSx File Gateway. After the association process is complete, the file shares on the Amazon FSx file system are available for access through the gateway. This operation only supports the FSx File Gateway type."]moduleAssignTapePoolOutput=structtypenonrect={tapeARN:TapeARN.toption[@ocaml.doc"The unique Amazon Resource Names (ARN) of the virtual tape that was added to the tape pool."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?tapeARN=fun()->{tapeARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("TapeARN",(Option.mapx.tapeARN~f:TapeARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettapeARN=(Option.map~f:TapeARN.of_xml)(Xml.childxml_arg0"TapeARN")inmake?tapeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettapeARN=field_mapjson__"TapeARN"TapeARN.of_jsoninmake?tapeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Assigns a tape to a tape pool for archiving. The tape assigned to a pool is archived in the S3 storage class that is associated with the pool. When you use your backup application to eject the tape, the tape is archived directly into the S3 storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds to the pool."]moduleAssignTapePoolInput=structtypenonrect={tapeARN:TapeARN.t[@ocaml.doc"The unique Amazon Resource Name (ARN) of the virtual tape that you want to add to the tape pool."];poolId:PoolId.t[@ocaml.doc"The ID of the pool that you want to add your tape to for archiving. The tape in this pool is archived in the S3 storage class that is associated with the pool. When you use your backup application to eject the tape, the tape is archived directly into the storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds to the pool."];bypassGovernanceRetention:Boolean__lc1.toption[@ocaml.doc"Set permissions to bypass governance retention. If the lock type of the archived tape is Governance, the tape's archived age is not older than RetentionLockInDays, and the user does not already have BypassGovernanceRetention, setting this to TRUE enables the user to bypass the retention lock. This parameter is set to true by default for calls from the console. Valid values: TRUE | FALSE"]}letcontext_="AssignTapePoolInput"letmake?bypassGovernanceRetention=fun~tapeARN->fun~poolId->fun()->{bypassGovernanceRetention;tapeARN;poolId}letto_valuex=structure_to_value[("TapeARN",(Some(TapeARN.to_valuex.tapeARN)));("PoolId",(Some(PoolId.to_valuex.poolId)));("BypassGovernanceRetention",(Option.mapx.bypassGovernanceRetention~f:Boolean__lc1.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letbypassGovernanceRetention=(Option.map~f:Boolean__lc1.of_xml)(Xml.childxml_arg0"BypassGovernanceRetention")inletpoolId=PoolId.of_xml(Xml.child_exn~context:context_xml_arg0"PoolId")inlettapeARN=TapeARN.of_xml(Xml.child_exn~context:context_xml_arg0"TapeARN")inmake?bypassGovernanceRetention~poolId~tapeARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letbypassGovernanceRetention=field_mapjson__"BypassGovernanceRetention"Boolean__lc1.of_jsoninletpoolId=field_map_exnjson__"PoolId"PoolId.of_jsoninlettapeARN=field_map_exnjson__"TapeARN"TapeARN.of_jsoninmake?bypassGovernanceRetention~poolId~tapeARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Assigns a tape to a tape pool for archiving. The tape assigned to a pool is archived in the S3 storage class that is associated with the pool. When you use your backup application to eject the tape, the tape is archived directly into the S3 storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds to the pool."]moduleAddWorkingStorageOutput=structtypenonrect={gatewayARN:GatewayARN.toption}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun()->{gatewayARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing the Amazon Resource Name (ARN) of the gateway for which working storage was configured."]moduleAddWorkingStorageInput=structtypenonrect={gatewayARN:GatewayARN.t;diskIds:DiskIds.t[@ocaml.doc"An array of strings that identify disks that are to be configured as working storage. Each string has a minimum length of 1 and maximum length of 300. You can get the disk IDs from the ListLocalDisks API."]}letcontext_="AddWorkingStorageInput"letmake~gatewayARN=fun~diskIds->fun()->{gatewayARN;diskIds}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)));("DiskIds",(Some(DiskIds.to_valuex.diskIds)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letdiskIds=DiskIds.of_xml(Xml.child_exn~context:context_xml_arg0"DiskIds")inletgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~diskIds~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letdiskIds=field_map_exnjson__"DiskIds"DiskIds.of_jsoninletgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~diskIds~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing one or more of the following fields: AddWorkingStorageInput$DiskIds"]moduleAddUploadBufferOutput=structtypenonrect={gatewayARN:GatewayARN.toption}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun()->{gatewayARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Configures one or more gateway local disks as upload buffer for a specified gateway. This operation is supported for the stored volume, cached volume, and tape gateway types. In the request, you specify the gateway Amazon Resource Name (ARN) to which you want to add upload buffer, and one or more disk IDs that you want to configure as upload buffer."]moduleAddUploadBufferInput=structtypenonrect={gatewayARN:GatewayARN.t;diskIds:DiskIds.t[@ocaml.doc"An array of strings that identify disks that are to be configured as working storage. Each string has a minimum length of 1 and maximum length of 300. You can get the disk IDs from the ListLocalDisks API."]}letcontext_="AddUploadBufferInput"letmake~gatewayARN=fun~diskIds->fun()->{gatewayARN;diskIds}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)));("DiskIds",(Some(DiskIds.to_valuex.diskIds)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letdiskIds=DiskIds.of_xml(Xml.child_exn~context:context_xml_arg0"DiskIds")inletgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~diskIds~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letdiskIds=field_map_exnjson__"DiskIds"DiskIds.of_jsoninletgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~diskIds~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Configures one or more gateway local disks as upload buffer for a specified gateway. This operation is supported for the stored volume, cached volume, and tape gateway types. In the request, you specify the gateway Amazon Resource Name (ARN) to which you want to add upload buffer, and one or more disk IDs that you want to configure as upload buffer."]moduleAddTagsToResourceOutput=structtypenonrect={resourceARN:ResourceARN.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the resource you want to add tags to."]}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?resourceARN=fun()->{resourceARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("ResourceARN",(Option.mapx.resourceARN~f:ResourceARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceARN=(Option.map~f:ResourceARN.of_xml)(Xml.childxml_arg0"ResourceARN")inmake?resourceARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceARN=field_mapjson__"ResourceARN"ResourceARN.of_jsoninmake?resourceARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"AddTagsToResourceOutput"]moduleAddTagsToResourceInput=structtypenonrect={resourceARN:ResourceARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the resource you want to add tags to."];tags:Tags.t[@ocaml.doc"The key-value pair that represents the tag you want to add to the resource. The value can be an empty string. Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the following special characters: + - = . _ : / \\@. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256."]}letcontext_="AddTagsToResourceInput"letmake~resourceARN=fun~tags->fun()->{resourceARN;tags}letto_valuex=structure_to_value[("ResourceARN",(Some(ResourceARN.to_valuex.resourceARN)));("Tags",(Some(Tags.to_valuex.tags)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=Tags.of_xml(Xml.child_exn~context:context_xml_arg0"Tags")inletresourceARN=ResourceARN.of_xml(Xml.child_exn~context:context_xml_arg0"ResourceARN")inmake~tags~resourceARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_map_exnjson__"Tags"Tags.of_jsoninletresourceARN=field_map_exnjson__"ResourceARN"ResourceARN.of_jsoninmake~tags~resourceARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"AddTagsToResourceInput"]moduleAddCacheOutput=structtypenonrect={gatewayARN:GatewayARN.toption}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun()->{gatewayARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Configures one or more gateway local disks as cache for a gateway. This operation is only supported in the cached volume, tape, and file gateway type (see How Storage Gateway works (architecture). In the request, you specify the gateway Amazon Resource Name (ARN) to which you want to add cache, and one or more disk IDs that you want to configure as cache."]moduleAddCacheInput=structtypenonrect={gatewayARN:GatewayARN.t;diskIds:DiskIds.t[@ocaml.doc"An array of strings that identify disks that are to be configured as working storage. Each string has a minimum length of 1 and maximum length of 300. You can get the disk IDs from the ListLocalDisks API."]}letcontext_="AddCacheInput"letmake~gatewayARN=fun~diskIds->fun()->{gatewayARN;diskIds}letto_valuex=structure_to_value[("GatewayARN",(Some(GatewayARN.to_valuex.gatewayARN)));("DiskIds",(Some(DiskIds.to_valuex.diskIds)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letdiskIds=DiskIds.of_xml(Xml.child_exn~context:context_xml_arg0"DiskIds")inletgatewayARN=GatewayARN.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayARN")inmake~diskIds~gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letdiskIds=field_map_exnjson__"DiskIds"DiskIds.of_jsoninletgatewayARN=field_map_exnjson__"GatewayARN"GatewayARN.of_jsoninmake~diskIds~gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Configures one or more gateway local disks as cache for a gateway. This operation is only supported in the cached volume, tape, and file gateway type (see How Storage Gateway works (architecture). In the request, you specify the gateway Amazon Resource Name (ARN) to which you want to add cache, and one or more disk IDs that you want to configure as cache."]moduleActivateGatewayOutput=structtypenonrect={gatewayARN:GatewayARN.toption}typenonrecerror=[`InternalServerErrorofInternalServerError.t|`InvalidGatewayRequestExceptionofInvalidGatewayRequestException.t|`Unknown_operation_errorof(string*stringoption)]letmake?gatewayARN=fun()->{gatewayARN}leterror_of_jsonnamejson=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_jsonjson)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerError"->`InternalServerError(InternalServerError.of_xmlxml)|"InvalidGatewayRequestException"->`InvalidGatewayRequestException(InvalidGatewayRequestException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`InternalServerErrore->`Assoc[("error",(`String"InternalServerError"));("details",(InternalServerError.to_jsone))]|`InvalidGatewayRequestExceptione->`Assoc[("error",(`String"InvalidGatewayRequestException"));("details",(InvalidGatewayRequestException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("GatewayARN",(Option.mapx.gatewayARN~f:GatewayARN.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgatewayARN=(Option.map~f:GatewayARN.of_xml)(Xml.childxml_arg0"GatewayARN")inmake?gatewayARN()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgatewayARN=field_mapjson__"GatewayARN"GatewayARN.of_jsoninmake?gatewayARN()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Storage Gateway returns the Amazon Resource Name (ARN) of the activated gateway. It is a string made of information such as your account, gateway name, and Amazon Web Services Region. This ARN is used to reference the gateway in other API operations as well as resource-based authorization. For gateways activated prior to September 02, 2015, the gateway ARN contains the gateway name rather than the gateway ID. Changing the name of the gateway has no effect on the gateway ARN."]moduleActivateGatewayInput=structtypenonrect={activationKey:ActivationKey.t[@ocaml.doc"Your gateway activation key. You can obtain the activation key by sending an HTTP GET request with redirects enabled to the gateway IP address (port 80). The redirect URL returned in the response provides you the activation key for your gateway in the query string parameter activationKey. It may also include other activation-related parameters, however, these are merely defaults -- the arguments you pass to the ActivateGateway API call determine the actual configuration of your gateway. For more information, see Getting activation key in the Storage Gateway User Guide."];gatewayName:GatewayName.t[@ocaml.doc"The name you configured for your gateway."];gatewayTimezone:GatewayTimezone.t[@ocaml.doc"A value that indicates the time zone you want to set for the gateway. The time zone is of the format \"GMT\", \"GMT-hr:mm\", or \"GMT+hr:mm\". For example, GMT indicates Greenwich Mean Time without any offset. GMT-4:00 indicates the time is 4 hours behind GMT. GMT+2:00 indicates the time is 2 hours ahead of GMT. The time zone is used, for example, for scheduling snapshots and your gateway's maintenance schedule."];gatewayRegion:RegionId.t[@ocaml.doc"A value that indicates the Amazon Web Services Region where you want to store your data. The gateway Amazon Web Services Region specified must be the same Amazon Web Services Region as the Amazon Web Services Region in your Host header in the request. For more information about available Amazon Web Services Regions and endpoints for Storage Gateway, see Storage Gateway endpoints and quotas in the Amazon Web Services General Reference. Valid Values: See Storage Gateway endpoints and quotas in the Amazon Web Services General Reference."];gatewayType:GatewayType.toption[@ocaml.doc"A value that defines the type of gateway to activate. The type specified is critical to all later functions of the gateway and cannot be changed after activation. The default value is CACHED. Amazon FSx File Gateway is no longer available to new customers. Existing customers of FSx File Gateway can continue to use the service normally. For capabilities similar to FSx File Gateway, visit this blog post. Valid Values: STORED | CACHED | VTL | FILE_S3 | FILE_FSX_SMB"];tapeDriveType:TapeDriveType.toption[@ocaml.doc"The value that indicates the type of tape drive to use for tape gateway. This field is optional. Valid Values: IBM-ULT3580-TD5"];mediumChangerType:MediumChangerType.toption[@ocaml.doc"The value that indicates the type of medium changer to use for tape gateway. This field is optional. Valid Values: STK-L700 | AWS-Gateway-VTL | IBM-03584L32-0402"];tags:Tags.toption[@ocaml.doc"A list of up to 50 tags that you can assign to the gateway. Each tag is a key-value pair. Valid characters for key and value are letters, spaces, and numbers that can be represented in UTF-8 format, and the following special characters: + - = . _ : / \\@. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256 characters."]}letcontext_="ActivateGatewayInput"letmake?gatewayType=fun?tapeDriveType->fun?mediumChangerType->fun?tags->fun~activationKey->fun~gatewayName->fun~gatewayTimezone->fun~gatewayRegion->fun()->{gatewayType;tapeDriveType;mediumChangerType;tags;activationKey;gatewayName;gatewayTimezone;gatewayRegion}letto_valuex=structure_to_value[("ActivationKey",(Some(ActivationKey.to_valuex.activationKey)));("GatewayName",(Some(GatewayName.to_valuex.gatewayName)));("GatewayTimezone",(Some(GatewayTimezone.to_valuex.gatewayTimezone)));("GatewayRegion",(Some(RegionId.to_valuex.gatewayRegion)));("GatewayType",(Option.mapx.gatewayType~f:GatewayType.to_value));("TapeDriveType",(Option.mapx.tapeDriveType~f:TapeDriveType.to_value));("MediumChangerType",(Option.mapx.mediumChangerType~f:MediumChangerType.to_value));("Tags",(Option.mapx.tags~f:Tags.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:Tags.of_xml)(Xml.childxml_arg0"Tags")inletmediumChangerType=(Option.map~f:MediumChangerType.of_xml)(Xml.childxml_arg0"MediumChangerType")inlettapeDriveType=(Option.map~f:TapeDriveType.of_xml)(Xml.childxml_arg0"TapeDriveType")inletgatewayType=(Option.map~f:GatewayType.of_xml)(Xml.childxml_arg0"GatewayType")inletgatewayRegion=RegionId.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayRegion")inletgatewayTimezone=GatewayTimezone.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayTimezone")inletgatewayName=GatewayName.of_xml(Xml.child_exn~context:context_xml_arg0"GatewayName")inletactivationKey=ActivationKey.of_xml(Xml.child_exn~context:context_xml_arg0"ActivationKey")inmake?tags?mediumChangerType?tapeDriveType?gatewayType~gatewayRegion~gatewayTimezone~gatewayName~activationKey()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"Tags"Tags.of_jsoninletmediumChangerType=field_mapjson__"MediumChangerType"MediumChangerType.of_jsoninlettapeDriveType=field_mapjson__"TapeDriveType"TapeDriveType.of_jsoninletgatewayType=field_mapjson__"GatewayType"GatewayType.of_jsoninletgatewayRegion=field_map_exnjson__"GatewayRegion"RegionId.of_jsoninletgatewayTimezone=field_map_exnjson__"GatewayTimezone"GatewayTimezone.of_jsoninletgatewayName=field_map_exnjson__"GatewayName"GatewayName.of_jsoninletactivationKey=field_map_exnjson__"ActivationKey"ActivationKey.of_jsoninmake?tags?mediumChangerType?tapeDriveType?gatewayType~gatewayRegion~gatewayTimezone~gatewayName~activationKey()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A JSON object containing one or more of the following fields: ActivateGatewayInput$ActivationKey ActivateGatewayInput$GatewayName ActivateGatewayInput$GatewayRegion ActivateGatewayInput$GatewayTimezone ActivateGatewayInput$GatewayType ActivateGatewayInput$MediumChangerType ActivateGatewayInput$TapeDriveType"]