123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995(* 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.s3vectorsletapiVersion="2025-07-15"letendpointPrefix="s3vectors"letserviceFullName="Amazon S3 Vectors"letsignatureVersion="v4"letprotocol="rest_json"letglobalEndpoint=endpointPrefix^".amazonaws.com"letsimple_to_jsonto_valuex=Botodata.Json.value_to_json_scalar(to_valuex)letcomposed_to_jsonto_valuex=Botodata.Json.value_to_json(to_valuex)letto_queryto_valuex=Client.Query.of_value(to_valuex)letstructure_to_value_auxst~f=letfilter=function|(k,Somev)->Some(k,v)|_->Noneinletpairkv=(k,v)inletdefer_value(k,dv)=pairkdvin((List.filter_mapst~f:filter)|>(List.map~f:defer_value))|>(funx->`Structure(fx))letstructure_to_value=structure_to_value_aux~f:Fn.idletstructure_to_wrapped_value~wrapper~response=structure_to_value_aux~f:(funx->[(wrapper,(`Structurex));(response,(`Structure[]))])moduleFloat_=structtypenonrect=floatletmakei=iletof_string=Float.of_stringletto_valuex=`Floatxletto_queryv=to_queryto_valuevletto_headerx=Stdlib.Float.to_stringxletof_xmlxml_arg0=Float.of_string(string_of_xml~kind:"a float"xml_arg0)letof_jsonj=float_of_json~kind:"a float"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_valueendmoduleFloat32VectorData=structtypenonrect=Float_.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Float_.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:Float_.of_xml)letof_jsonj=list_of_json~kind:"Float32VectorData"~of_json:Float_.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleMetadataKey=structtypenonrect=stringletcontext_="MetadataKey"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:63)>>=(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:"MetadataKey"jletto_json=simple_to_jsonto_valueendmoduleValidationExceptionField=structtypenonrect={path:String_.toption[@ocaml.doc"A path about the validation exception."];message:String_.toption[@ocaml.doc"A message about the validation exception."]}letmake?path=fun?message->fun()->{path;message}letto_valuex=structure_to_value[("path",(Option.mapx.path~f:String_.to_value));("message",(Option.mapx.message~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inletpath=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"path")inmake?message?path()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"String_.of_jsoninletpath=field_mapjson__"path"String_.of_jsoninmake?message?path()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains information about a validation exception."]moduleVectorKey=structtypenonrect=stringletcontext_="VectorKey"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:"VectorKey"jletto_json=simple_to_jsonto_valueendmoduleVectorMetadata=structtypenonrect=unitletmake()=()letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevendmoduleVectorData=structtypenonrect={float32:Float32VectorData.toption[@ocaml.doc"The vector data as 32-bit floating point numbers. The number of elements in this array must exactly match the dimension of the vector index where the operation is being performed."]}letmake?float32=fun()->{float32}letto_valuex=structure_to_value[("float32",(Option.mapx.float32~f:Float32VectorData.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfloat32=(Option.map~f:Float32VectorData.of_xml)(Xml.childxml_arg0"float32")inmake?float32()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfloat32=field_mapjson__"float32"Float32VectorData.of_jsoninmake?float32()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The vector data in different formats."]moduleTimestamp=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_valueendmoduleVectorBucketArn=structtypenonrect=stringletcontext_="VectorBucketArn"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"arn:aws[-a-z0-9]*:s3vectors:[a-z0-9-]+:[0-9]{12}:bucket/[a-z0-9][a-z0-9-.]{1,61}[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:"VectorBucketArn"jletto_json=simple_to_jsonto_valueendmoduleVectorBucketName=structtypenonrect=stringletcontext_="VectorBucketName"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:63)>>=(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:"VectorBucketName"jletto_json=simple_to_jsonto_valueendmoduleIndexArn=structtypenonrect=stringletcontext_="IndexArn"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"arn:aws[-a-z0-9]*:s3vectors:[a-z0-9-]+:[0-9]{12}:bucket/[a-z0-9][a-z0-9-.]{1,61}[a-z0-9]/index/[a-z0-9][a-z0-9-.]{1,61}[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:"IndexArn"jletto_json=simple_to_jsonto_valueendmoduleIndexName=structtypenonrect=stringletcontext_="IndexName"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:63)>>=(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:"IndexName"jletto_json=simple_to_jsonto_valueendmoduleKmsKeyArn=structtypenonrect=stringletcontext_="KmsKeyArn"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:2048)>>=(fun()->check_patterni~pattern:"(arn:aws[-a-z0-9]*:kms:[-a-z0-9]*:[0-9]{12}:key/.+)")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"KmsKeyArn"jletto_json=simple_to_jsonto_valueendmoduleSseType=structtypenonrect=|AES256|Aws_kms|Non_static_idofstringletmakei=iletto_string=function|AES256->"AES256"|Aws_kms->"aws:kms"|Non_static_ids->sletof_string=function|"AES256"->AES256|"aws:kms"->Aws_kms|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 SseType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"SseType"j)letto_json=simple_to_jsonto_valueendmoduleNonFilterableMetadataKeys=structtypenonrect=MetadataKey.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:MetadataKey.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:MetadataKey.of_xml)letof_jsonj=list_of_json~kind:"NonFilterableMetadataKeys"~of_json:MetadataKey.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleExceptionMessage=structtypenonrect=stringletcontext_="ExceptionMessage"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:"ExceptionMessage"jletto_json=simple_to_jsonto_valueendmoduleValidationExceptionFieldList=structtypenonrect=ValidationExceptionField.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ValidationExceptionField.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:ValidationExceptionField.of_xml)letof_jsonj=list_of_json~kind:"ValidationExceptionFieldList"~of_json:ValidationExceptionField.of_jsonjletto_jsonv=composed_to_jsonto_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_mini~min:0)>>=(fun()->(check_string_maxi~max:256)>>=(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:"TagValue"jletto_json=simple_to_jsonto_valueendmoduleQueryOutputVector=structtypenonrect={distance:Float_.toption[@ocaml.doc"The measure of similarity between the vector in the response and the query vector."];key:VectorKey.toption[@ocaml.doc"The key of the vector in the approximate nearest neighbor search."];metadata:VectorMetadata.toption[@ocaml.doc"The metadata associated with the vector, if requested."]}letmake?distance=fun?key->fun?metadata->fun()->{distance;key;metadata}letto_valuex=structure_to_value[("distance",(Option.mapx.distance~f:Float_.to_value));("key",(Option.mapx.key~f:VectorKey.to_value));("metadata",(Option.mapx.metadata~f:VectorMetadata.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmetadata=(Option.map~f:VectorMetadata.of_xml)(Xml.childxml_arg0"metadata")inletkey=(Option.map~f:VectorKey.of_xml)(Xml.childxml_arg0"key")inletdistance=(Option.map~f:Float_.of_xml)(Xml.childxml_arg0"distance")inmake?metadata?key?distance()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmetadata=field_mapjson__"metadata"VectorMetadata.of_jsoninletkey=field_mapjson__"key"VectorKey.of_jsoninletdistance=field_mapjson__"distance"Float_.of_jsoninmake?metadata?key?distance()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The attributes of a vector in the approximate nearest neighbor search."]modulePutInputVector=structtypenonrect={key:VectorKey.t[@ocaml.doc"The name of the vector. The key uniquely identifies the vector in a vector index."];data:VectorData.t[@ocaml.doc"The vector data of the vector. Vector dimensions must match the dimension count that's configured for the vector index. For the cosine distance metric, zero vectors (vectors containing all zeros) aren't allowed. For both cosine and euclidean distance metrics, vector data must contain only valid floating-point values. Invalid values such as NaN (Not a Number) or Infinity aren't allowed."];metadata:VectorMetadata.toption[@ocaml.doc"Metadata about the vector. All metadata entries undergo validation to ensure they meet the format requirements for size and data types."]}letcontext_="PutInputVector"letmake?metadata=fun~key->fun~data->fun()->{metadata;key;data}letto_valuex=structure_to_value[("key",(Some(VectorKey.to_valuex.key)));("data",(Some(VectorData.to_valuex.data)));("metadata",(Option.mapx.metadata~f:VectorMetadata.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmetadata=(Option.map~f:VectorMetadata.of_xml)(Xml.childxml_arg0"metadata")inletdata=VectorData.of_xml(Xml.child_exn~context:context_xml_arg0"data")inletkey=VectorKey.of_xml(Xml.child_exn~context:context_xml_arg0"key")inmake?metadata~data~key()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmetadata=field_mapjson__"metadata"VectorMetadata.of_jsoninletdata=field_map_exnjson__"data"VectorData.of_jsoninletkey=field_map_exnjson__"key"VectorKey.of_jsoninmake?metadata~data~key()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The attributes of a vector to add to a vector index."]moduleListOutputVector=structtypenonrect={key:VectorKey.toption[@ocaml.doc"The name of the vector."];data:VectorData.toption[@ocaml.doc"The vector data of the vector."];metadata:VectorMetadata.toption[@ocaml.doc"Metadata about the vector."]}letmake?key=fun?data->fun?metadata->fun()->{key;data;metadata}letto_valuex=structure_to_value[("key",(Option.mapx.key~f:VectorKey.to_value));("data",(Option.mapx.data~f:VectorData.to_value));("metadata",(Option.mapx.metadata~f:VectorMetadata.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmetadata=(Option.map~f:VectorMetadata.of_xml)(Xml.childxml_arg0"metadata")inletdata=(Option.map~f:VectorData.of_xml)(Xml.childxml_arg0"data")inletkey=(Option.map~f:VectorKey.of_xml)(Xml.childxml_arg0"key")inmake?metadata?data?key()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmetadata=field_mapjson__"metadata"VectorMetadata.of_jsoninletdata=field_mapjson__"data"VectorData.of_jsoninletkey=field_mapjson__"key"VectorKey.of_jsoninmake?metadata?data?key()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The attributes of a vector returned by the ListVectors operation."]moduleVectorBucketSummary=structtypenonrect={vectorBucketName:VectorBucketName.toption[@ocaml.doc"The name of the vector bucket."];vectorBucketArn:VectorBucketArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the vector bucket."];creationTime:Timestamp.toption[@ocaml.doc"Date and time when the vector bucket was created."]}letmake?vectorBucketName=fun?vectorBucketArn->fun?creationTime->fun()->{vectorBucketName;vectorBucketArn;creationTime}letto_valuex=structure_to_value[("vectorBucketName",(Option.mapx.vectorBucketName~f:VectorBucketName.to_value));("vectorBucketArn",(Option.mapx.vectorBucketArn~f:VectorBucketArn.to_value));("creationTime",(Option.mapx.creationTime~f:Timestamp.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcreationTime=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"creationTime")inletvectorBucketArn=(Option.map~f:VectorBucketArn.of_xml)(Xml.childxml_arg0"vectorBucketArn")inletvectorBucketName=(Option.map~f:VectorBucketName.of_xml)(Xml.childxml_arg0"vectorBucketName")inmake?creationTime?vectorBucketArn?vectorBucketName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcreationTime=field_mapjson__"creationTime"Timestamp.of_jsoninletvectorBucketArn=field_mapjson__"vectorBucketArn"VectorBucketArn.of_jsoninletvectorBucketName=field_mapjson__"vectorBucketName"VectorBucketName.of_jsoninmake?creationTime?vectorBucketArn?vectorBucketName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Summary information about a vector bucket."]moduleIndexSummary=structtypenonrect={vectorBucketName:VectorBucketName.toption[@ocaml.doc"The name of the vector bucket that contains the vector index."];indexName:IndexName.toption[@ocaml.doc"The name of the vector index."];indexArn:IndexArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the vector index."];creationTime:Timestamp.toption[@ocaml.doc"Date and time when the vector index was created."]}letmake?vectorBucketName=fun?indexName->fun?indexArn->fun?creationTime->fun()->{vectorBucketName;indexName;indexArn;creationTime}letto_valuex=structure_to_value[("vectorBucketName",(Option.mapx.vectorBucketName~f:VectorBucketName.to_value));("indexName",(Option.mapx.indexName~f:IndexName.to_value));("indexArn",(Option.mapx.indexArn~f:IndexArn.to_value));("creationTime",(Option.mapx.creationTime~f:Timestamp.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcreationTime=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"creationTime")inletindexArn=(Option.map~f:IndexArn.of_xml)(Xml.childxml_arg0"indexArn")inletindexName=(Option.map~f:IndexName.of_xml)(Xml.childxml_arg0"indexName")inletvectorBucketName=(Option.map~f:VectorBucketName.of_xml)(Xml.childxml_arg0"vectorBucketName")inmake?creationTime?indexArn?indexName?vectorBucketName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcreationTime=field_mapjson__"creationTime"Timestamp.of_jsoninletindexArn=field_mapjson__"indexArn"IndexArn.of_jsoninletindexName=field_mapjson__"indexName"IndexName.of_jsoninletvectorBucketName=field_mapjson__"vectorBucketName"VectorBucketName.of_jsoninmake?creationTime?indexArn?indexName?vectorBucketName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Summary information about a vector index."]moduleGetOutputVector=structtypenonrect={key:VectorKey.toption[@ocaml.doc"The name of the vector."];data:VectorData.toption[@ocaml.doc"The vector data of the vector."];metadata:VectorMetadata.toption[@ocaml.doc"Metadata about the vector."]}letmake?key=fun?data->fun?metadata->fun()->{key;data;metadata}letto_valuex=structure_to_value[("key",(Option.mapx.key~f:VectorKey.to_value));("data",(Option.mapx.data~f:VectorData.to_value));("metadata",(Option.mapx.metadata~f:VectorMetadata.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmetadata=(Option.map~f:VectorMetadata.of_xml)(Xml.childxml_arg0"metadata")inletdata=(Option.map~f:VectorData.of_xml)(Xml.childxml_arg0"data")inletkey=(Option.map~f:VectorKey.of_xml)(Xml.childxml_arg0"key")inmake?metadata?data?key()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmetadata=field_mapjson__"metadata"VectorMetadata.of_jsoninletdata=field_mapjson__"data"VectorData.of_jsoninletkey=field_mapjson__"key"VectorKey.of_jsoninmake?metadata?data?key()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The attributes of a vector returned by the GetVectors operation."]moduleEncryptionConfiguration=structtypenonrect={sseType:SseType.toption[@ocaml.doc"The server-side encryption type to use for the encryption configuration of the vector bucket. By default, if you don't specify, all new vectors in Amazon S3 vector buckets use server-side encryption with Amazon S3 managed keys (SSE-S3), specifically AES256."];kmsKeyArn:KmsKeyArn.toption[@ocaml.doc"Amazon Web Services Key Management Service (KMS) customer managed key ID to use for the encryption configuration. This parameter is allowed if and only if sseType is set to aws:kms. To specify the KMS key, you must use the format of the KMS key Amazon Resource Name (ARN). For example, specify Key ARN in the following format: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"]}letmake?sseType=fun?kmsKeyArn->fun()->{sseType;kmsKeyArn}letto_valuex=structure_to_value[("sseType",(Option.mapx.sseType~f:SseType.to_value));("kmsKeyArn",(Option.mapx.kmsKeyArn~f:KmsKeyArn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letkmsKeyArn=(Option.map~f:KmsKeyArn.of_xml)(Xml.childxml_arg0"kmsKeyArn")inletsseType=(Option.map~f:SseType.of_xml)(Xml.childxml_arg0"sseType")inmake?kmsKeyArn?sseType()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letkmsKeyArn=field_mapjson__"kmsKeyArn"KmsKeyArn.of_jsoninletsseType=field_mapjson__"sseType"SseType.of_jsoninmake?kmsKeyArn?sseType()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The encryption configuration for a vector bucket or index. By default, if you don't specify, all new vectors in Amazon S3 vector buckets use server-side encryption with Amazon S3 managed keys (SSE-S3), specifically AES256. You can optionally override bucket level encryption settings, and set a specific encryption configuration for a vector index at the time of index creation."]moduleDataType=structtypenonrect=|Float32|Non_static_idofstringletmakei=iletto_string=function|Float32->"float32"|Non_static_ids->sletof_string=function|"float32"->Float32|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 DataType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"DataType"j)letto_json=simple_to_jsonto_valueendmoduleDimension=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:4096)>>=(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 Dimension"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleDistanceMetric=structtypenonrect=|Euclidean|Cosine|Non_static_idofstringletmakei=iletto_string=function|Euclidean->"euclidean"|Cosine->"cosine"|Non_static_ids->sletof_string=function|"euclidean"->Euclidean|"cosine"->Cosine|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 DistanceMetric"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"DistanceMetric"j)letto_json=simple_to_jsonto_valueendmoduleMetadataConfiguration=structtypenonrect={nonFilterableMetadataKeys:NonFilterableMetadataKeys.t[@ocaml.doc"Non-filterable metadata keys allow you to enrich vectors with additional context during storage and retrieval. Unlike default metadata keys, these keys can\226\128\153t be used as query filters. Non-filterable metadata keys can be retrieved but can\226\128\153t be searched, queried, or filtered. You can access non-filterable metadata keys of your vectors after finding the vectors. For more information about non-filterable metadata keys, see Vectors and Limitations and restrictions in the Amazon S3 User Guide."]}letcontext_="MetadataConfiguration"letmake~nonFilterableMetadataKeys=fun()->{nonFilterableMetadataKeys}letto_valuex=structure_to_value[("nonFilterableMetadataKeys",(Some(NonFilterableMetadataKeys.to_valuex.nonFilterableMetadataKeys)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnonFilterableMetadataKeys=NonFilterableMetadataKeys.of_xml(Xml.child_exn~context:context_xml_arg0"nonFilterableMetadataKeys")inmake~nonFilterableMetadataKeys()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnonFilterableMetadataKeys=field_map_exnjson__"nonFilterableMetadataKeys"NonFilterableMetadataKeys.of_jsoninmake~nonFilterableMetadataKeys()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The metadata configuration for a vector index."]moduleAccessDeniedException=structtypenonrect={message:ExceptionMessage.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:ExceptionMessage.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:ExceptionMessage.of_xml)(Xml.childxml_arg0"message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"ExceptionMessage.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Access denied."]moduleConflictException=structtypenonrect={message:ExceptionMessage.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:ExceptionMessage.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:ExceptionMessage.of_xml)(Xml.childxml_arg0"message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"ExceptionMessage.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The request failed because a vector bucket name or a vector index name already exists. Vector bucket names must be unique within your Amazon Web Services account for each Amazon Web Services Region. Vector index names must be unique within your vector bucket. Choose a different vector bucket name or vector index name, and try again."]moduleInternalServerException=structtypenonrect={message:ExceptionMessage.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:ExceptionMessage.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:ExceptionMessage.of_xml)(Xml.childxml_arg0"message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"ExceptionMessage.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The request failed due to an internal server error."]moduleNotFoundException=structtypenonrect={message:ExceptionMessage.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:ExceptionMessage.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:ExceptionMessage.of_xml)(Xml.childxml_arg0"message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"ExceptionMessage.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The request was rejected because the specified resource can't be found."]moduleRequestTimeoutException=structtypenonrect={message:ExceptionMessage.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:ExceptionMessage.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:ExceptionMessage.of_xml)(Xml.childxml_arg0"message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"ExceptionMessage.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The request timed out. Retry your request."]moduleServiceUnavailableException=structtypenonrect={message:ExceptionMessage.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:ExceptionMessage.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:ExceptionMessage.of_xml)(Xml.childxml_arg0"message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"ExceptionMessage.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The service is unavailable. Wait briefly and retry your request. If it continues to fail, increase your waiting time between retries."]moduleTooManyRequestsException=structtypenonrect={message:ExceptionMessage.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:ExceptionMessage.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:ExceptionMessage.of_xml)(Xml.childxml_arg0"message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"ExceptionMessage.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The request was denied due to request throttling."]moduleValidationException=structtypenonrect={message:String_.toption;fieldList:ValidationExceptionFieldList.toption[@ocaml.doc"A list of specific validation failures that are encountered during input processing. Each entry in the list contains a path to the field that failed validation and a detailed message that explains why the validation failed. To satisfy multiple constraints, a field can appear multiple times in this list if it failed. You can use the information to identify and fix the specific validation issues in your request."]}letmake?message=fun?fieldList->fun()->{message;fieldList}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:String_.to_value));("fieldList",(Option.mapx.fieldList~f:ValidationExceptionFieldList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfieldList=(Option.map~f:ValidationExceptionFieldList.of_xml)(Xml.childxml_arg0"fieldList")inletmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"message")inmake?fieldList?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfieldList=field_mapjson__"fieldList"ValidationExceptionFieldList.of_jsoninletmessage=field_mapjson__"message"String_.of_jsoninmake?fieldList?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The requested action isn't valid."]moduleResourceARN=structtypenonrect=stringletcontext_="ResourceARN"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:1011)>>=(fun()->check_string_mini~min:0));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ResourceARN"jletto_json=simple_to_jsonto_valueendmoduleTagKeyList=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:"TagKeyList"~of_json:TagKey.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleTagsMap=structtypenonrect=(TagKey.t*TagValue.t)listletmakei=iletof_headerxs=make(List.filter_mapxs~f:(fun(k,v)->(Base.String.chop_prefixk~prefix:"x-amz-meta-")|>(Option.map~f:(funchopped->((TagKey.of_stringchopped),(TagValue.of_stringv))))))letto_valuexs=(xs|>(List.map~f:(fun(x,y)->(TagKey.to_valuex)|>(funx->(TagValue.to_valuey)|>(funy->(x,y))))))|>(funx->`Mapx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for Map_shape objects"()letof_xml_=failwith"of_xml_converter_of_shape: Map_shape case not implemented"letof_jsonj=object_of_json~key_of_string:TagKey.of_string~of_json:TagValue.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleKmsDisabledException=structtypenonrect={message:ExceptionMessage.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:ExceptionMessage.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:ExceptionMessage.of_xml)(Xml.childxml_arg0"message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"ExceptionMessage.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The specified Amazon Web Services KMS key isn't enabled."]moduleKmsInvalidKeyUsageException=structtypenonrect={message:ExceptionMessage.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:ExceptionMessage.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:ExceptionMessage.of_xml)(Xml.childxml_arg0"message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"ExceptionMessage.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The request was rejected for one of the following reasons: The KeyUsage value of the KMS key is incompatible with the API operation. The encryption algorithm or signing algorithm specified for the operation is incompatible with the type of key material in the KMS key (KeySpec). For more information, see InvalidKeyUsageException in the Amazon Web Services Key Management Service API Reference."]moduleKmsInvalidStateException=structtypenonrect={message:ExceptionMessage.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:ExceptionMessage.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:ExceptionMessage.of_xml)(Xml.childxml_arg0"message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"ExceptionMessage.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The key state of the KMS key isn't compatible with the operation. For more information, see KMSInvalidStateException in the Amazon Web Services Key Management Service API Reference."]moduleKmsNotFoundException=structtypenonrect={message:ExceptionMessage.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:ExceptionMessage.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:ExceptionMessage.of_xml)(Xml.childxml_arg0"message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"ExceptionMessage.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The KMS key can't be found."]moduleQueryVectorsOutputList=structtypenonrect=QueryOutputVector.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:QueryOutputVector.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:QueryOutputVector.of_xml)letof_jsonj=list_of_json~kind:"QueryVectorsOutputList"~of_json:QueryOutputVector.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleBoolean=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_valueendmoduleDocument=structtypenonrect=unitletmake()=()letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevendmoduleTopK=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 TopK"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleServiceQuotaExceededException=structtypenonrect={message:ExceptionMessage.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:ExceptionMessage.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:ExceptionMessage.of_xml)(Xml.childxml_arg0"message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"ExceptionMessage.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Your request exceeds a service quota."]modulePutVectorsInputList=structtypenonrect=PutInputVector.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:500)>>=(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:PutInputVector.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:PutInputVector.of_xml)letof_jsonj=list_of_json~kind:"PutVectorsInputList"~of_json:PutInputVector.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleVectorBucketPolicy=structtypenonrect=stringletcontext_="VectorBucketPolicy"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:"VectorBucketPolicy"jletto_json=simple_to_jsonto_valueendmoduleListVectorsNextToken=structtypenonrect=stringletcontext_="ListVectorsNextToken"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:"ListVectorsNextToken"jletto_json=simple_to_jsonto_valueendmoduleListVectorsOutputList=structtypenonrect=ListOutputVector.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ListOutputVector.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:ListOutputVector.of_xml)letof_jsonj=list_of_json~kind:"ListVectorsOutputList"~of_json:ListOutputVector.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleListVectorsMaxResults=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:1000)>>=(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 ListVectorsMaxResults"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleListVectorsSegmentCount=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:16)>>=(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 ListVectorsSegmentCount"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleListVectorsSegmentIndex=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:15)>>=(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 ListVectorsSegmentIndex"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleListVectorBucketsNextToken=structtypenonrect=stringletcontext_="ListVectorBucketsNextToken"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:512)>>=(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:"ListVectorBucketsNextToken"jletto_json=simple_to_jsonto_valueendmoduleListVectorBucketsOutputList=structtypenonrect=VectorBucketSummary.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:VectorBucketSummary.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:VectorBucketSummary.of_xml)letof_jsonj=list_of_json~kind:"ListVectorBucketsOutputList"~of_json:VectorBucketSummary.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleListVectorBucketsMaxResults=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:500)>>=(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 ListVectorBucketsMaxResults"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleListVectorBucketsPrefix=structtypenonrect=stringletcontext_="ListVectorBucketsPrefix"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:63)>>=(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:"ListVectorBucketsPrefix"jletto_json=simple_to_jsonto_valueendmoduleListIndexesNextToken=structtypenonrect=stringletcontext_="ListIndexesNextToken"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:512)>>=(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:"ListIndexesNextToken"jletto_json=simple_to_jsonto_valueendmoduleListIndexesOutputList=structtypenonrect=IndexSummary.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:IndexSummary.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:IndexSummary.of_xml)letof_jsonj=list_of_json~kind:"ListIndexesOutputList"~of_json:IndexSummary.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleListIndexesMaxResults=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:500)>>=(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 ListIndexesMaxResults"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleListIndexesPrefix=structtypenonrect=stringletcontext_="ListIndexesPrefix"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:63)>>=(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:"ListIndexesPrefix"jletto_json=simple_to_jsonto_valueendmoduleGetVectorsOutputList=structtypenonrect=GetOutputVector.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:GetOutputVector.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:GetOutputVector.of_xml)letof_jsonj=list_of_json~kind:"GetVectorsOutputList"~of_json:GetOutputVector.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleGetVectorsInputList=structtypenonrect=VectorKey.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:VectorKey.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:VectorKey.of_xml)letof_jsonj=list_of_json~kind:"GetVectorsInputList"~of_json:VectorKey.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleVectorBucket=structtypenonrect={vectorBucketName:VectorBucketName.toption[@ocaml.doc"The name of the vector bucket."];vectorBucketArn:VectorBucketArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the vector bucket."];creationTime:Timestamp.toption[@ocaml.doc"Date and time when the vector bucket was created."];encryptionConfiguration:EncryptionConfiguration.toption[@ocaml.doc"The encryption configuration for the vector bucket."]}letmake?vectorBucketName=fun?vectorBucketArn->fun?creationTime->fun?encryptionConfiguration->fun()->{vectorBucketName;vectorBucketArn;creationTime;encryptionConfiguration}letto_valuex=structure_to_value[("vectorBucketName",(Option.mapx.vectorBucketName~f:VectorBucketName.to_value));("vectorBucketArn",(Option.mapx.vectorBucketArn~f:VectorBucketArn.to_value));("creationTime",(Option.mapx.creationTime~f:Timestamp.to_value));("encryptionConfiguration",(Option.mapx.encryptionConfiguration~f:EncryptionConfiguration.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letencryptionConfiguration=(Option.map~f:EncryptionConfiguration.of_xml)(Xml.childxml_arg0"encryptionConfiguration")inletcreationTime=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"creationTime")inletvectorBucketArn=(Option.map~f:VectorBucketArn.of_xml)(Xml.childxml_arg0"vectorBucketArn")inletvectorBucketName=(Option.map~f:VectorBucketName.of_xml)(Xml.childxml_arg0"vectorBucketName")inmake?encryptionConfiguration?creationTime?vectorBucketArn?vectorBucketName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letencryptionConfiguration=field_mapjson__"encryptionConfiguration"EncryptionConfiguration.of_jsoninletcreationTime=field_mapjson__"creationTime"Timestamp.of_jsoninletvectorBucketArn=field_mapjson__"vectorBucketArn"VectorBucketArn.of_jsoninletvectorBucketName=field_mapjson__"vectorBucketName"VectorBucketName.of_jsoninmake?encryptionConfiguration?creationTime?vectorBucketArn?vectorBucketName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The attributes of a vector bucket."]moduleIndex=structtypenonrect={vectorBucketName:VectorBucketName.toption[@ocaml.doc"The name of the vector bucket that contains the vector index."];indexName:IndexName.toption[@ocaml.doc"The name of the vector index."];indexArn:IndexArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the vector index."];creationTime:Timestamp.toption[@ocaml.doc"Date and time when the vector index was created."];dataType:DataType.toption[@ocaml.doc"The data type of the vectors inserted into the vector index."];dimension:Dimension.toption[@ocaml.doc"The number of values in the vectors that are inserted into the vector index."];distanceMetric:DistanceMetric.toption[@ocaml.doc"The distance metric to be used for similarity search."];metadataConfiguration:MetadataConfiguration.toption[@ocaml.doc"The metadata configuration for the vector index."];encryptionConfiguration:EncryptionConfiguration.toption[@ocaml.doc"The encryption configuration for a vector index. By default, if you don't specify, all new vectors in the vector index will use the encryption configuration of the vector bucket."]}letmake?vectorBucketName=fun?indexName->fun?indexArn->fun?creationTime->fun?dataType->fun?dimension->fun?distanceMetric->fun?metadataConfiguration->fun?encryptionConfiguration->fun()->{vectorBucketName;indexName;indexArn;creationTime;dataType;dimension;distanceMetric;metadataConfiguration;encryptionConfiguration}letto_valuex=structure_to_value[("vectorBucketName",(Option.mapx.vectorBucketName~f:VectorBucketName.to_value));("indexName",(Option.mapx.indexName~f:IndexName.to_value));("indexArn",(Option.mapx.indexArn~f:IndexArn.to_value));("creationTime",(Option.mapx.creationTime~f:Timestamp.to_value));("dataType",(Option.mapx.dataType~f:DataType.to_value));("dimension",(Option.mapx.dimension~f:Dimension.to_value));("distanceMetric",(Option.mapx.distanceMetric~f:DistanceMetric.to_value));("metadataConfiguration",(Option.mapx.metadataConfiguration~f:MetadataConfiguration.to_value));("encryptionConfiguration",(Option.mapx.encryptionConfiguration~f:EncryptionConfiguration.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letencryptionConfiguration=(Option.map~f:EncryptionConfiguration.of_xml)(Xml.childxml_arg0"encryptionConfiguration")inletmetadataConfiguration=(Option.map~f:MetadataConfiguration.of_xml)(Xml.childxml_arg0"metadataConfiguration")inletdistanceMetric=(Option.map~f:DistanceMetric.of_xml)(Xml.childxml_arg0"distanceMetric")inletdimension=(Option.map~f:Dimension.of_xml)(Xml.childxml_arg0"dimension")inletdataType=(Option.map~f:DataType.of_xml)(Xml.childxml_arg0"dataType")inletcreationTime=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"creationTime")inletindexArn=(Option.map~f:IndexArn.of_xml)(Xml.childxml_arg0"indexArn")inletindexName=(Option.map~f:IndexName.of_xml)(Xml.childxml_arg0"indexName")inletvectorBucketName=(Option.map~f:VectorBucketName.of_xml)(Xml.childxml_arg0"vectorBucketName")inmake?encryptionConfiguration?metadataConfiguration?distanceMetric?dimension?dataType?creationTime?indexArn?indexName?vectorBucketName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letencryptionConfiguration=field_mapjson__"encryptionConfiguration"EncryptionConfiguration.of_jsoninletmetadataConfiguration=field_mapjson__"metadataConfiguration"MetadataConfiguration.of_jsoninletdistanceMetric=field_mapjson__"distanceMetric"DistanceMetric.of_jsoninletdimension=field_mapjson__"dimension"Dimension.of_jsoninletdataType=field_mapjson__"dataType"DataType.of_jsoninletcreationTime=field_mapjson__"creationTime"Timestamp.of_jsoninletindexArn=field_mapjson__"indexArn"IndexArn.of_jsoninletindexName=field_mapjson__"indexName"IndexName.of_jsoninletvectorBucketName=field_mapjson__"vectorBucketName"VectorBucketName.of_jsoninmake?encryptionConfiguration?metadataConfiguration?distanceMetric?dimension?dataType?creationTime?indexArn?indexName?vectorBucketName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The attributes of a vector index."]moduleDeleteVectorsInputList=structtypenonrect=VectorKey.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:500)>>=(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:VectorKey.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:VectorKey.of_xml)letof_jsonj=list_of_json~kind:"DeleteVectorsInputList"~of_json:VectorKey.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleUntagResourceOutput=structtypenonrect=unittypenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`NotFoundExceptionofNotFoundException.t|`RequestTimeoutExceptionofRequestTimeoutException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`TooManyRequestsExceptionofTooManyRequestsException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake()=()leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"NotFoundException"->`NotFoundException(NotFoundException.of_jsonjson)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"NotFoundException"->`NotFoundException(NotFoundException.of_xmlxml)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`NotFoundExceptione->`Assoc[("error",(`String"NotFoundException"));("details",(NotFoundException.to_jsone))]|`RequestTimeoutExceptione->`Assoc[("error",(`String"RequestTimeoutException"));("details",(RequestTimeoutException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`TooManyRequestsExceptione->`Assoc[("error",(`String"TooManyRequestsException"));("details",(TooManyRequestsException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Removes the specified user-defined tags from an Amazon S3 Vectors resource. You can pass one or more tag keys. For a list of S3 resources that support tagging, see Managing tags for Amazon S3 resources. Permissions For vector buckets and vector indexes, you must have the s3vectors:UntagResource permission to use this operation."]moduleUntagResourceInput=structtypenonrect={resourceArn:ResourceARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the Amazon S3 Vectors resource that you're removing tags from. The tagged resource can be a vector bucket or a vector index."];tagKeys:TagKeyList.t[@ocaml.doc"The array of tag keys that you're removing from the S3 Vectors resource. For more information, see Tagging for cost allocation or attribute-based access control (ABAC)."]}letcontext_="UntagResourceInput"letmake~resourceArn=fun~tagKeys->fun()->{resourceArn;tagKeys}letto_valuex=structure_to_value[("resourceArn",(Some(ResourceARN.to_valuex.resourceArn)));("tagKeys",(Some(TagKeyList.to_valuex.tagKeys)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettagKeys=TagKeyList.of_xml(Xml.child_exn~context:context_xml_arg0"tagKeys")inletresourceArn=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"TagKeyList.of_jsoninletresourceArn=field_map_exnjson__"resourceArn"ResourceARN.of_jsoninmake~tagKeys~resourceArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Removes the specified user-defined tags from an Amazon S3 Vectors resource. You can pass one or more tag keys. For a list of S3 resources that support tagging, see Managing tags for Amazon S3 resources. Permissions For vector buckets and vector indexes, you must have the s3vectors:UntagResource permission to use this operation."]moduleTagResourceOutput=structtypenonrect=unittypenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`NotFoundExceptionofNotFoundException.t|`RequestTimeoutExceptionofRequestTimeoutException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`TooManyRequestsExceptionofTooManyRequestsException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake()=()leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"NotFoundException"->`NotFoundException(NotFoundException.of_jsonjson)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"NotFoundException"->`NotFoundException(NotFoundException.of_xmlxml)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`NotFoundExceptione->`Assoc[("error",(`String"NotFoundException"));("details",(NotFoundException.to_jsone))]|`RequestTimeoutExceptione->`Assoc[("error",(`String"RequestTimeoutException"));("details",(RequestTimeoutException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`TooManyRequestsExceptione->`Assoc[("error",(`String"TooManyRequestsException"));("details",(TooManyRequestsException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Applies one or more user-defined tags to an Amazon S3 Vectors resource or updates existing tags. Each tag is a label consisting of a key and value pair. Tags can help you organize, track costs for, and control access to your resources. You can add up to 50 tags for each resource. For a list of S3 resources that support tagging, see Managing tags for Amazon S3 resources. Permissions For vector buckets and vector indexes, you must have the s3vectors:TagResource permission to use this operation."]moduleTagResourceInput=structtypenonrect={resourceArn:ResourceARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the Amazon S3 Vectors resource that you're applying tags to. The tagged resource can be a vector bucket or a vector index."];tags:TagsMap.t[@ocaml.doc"The user-defined tag that you want to add to the specified S3 Vectors resource. For more information, see Tagging for cost allocation or attribute-based access control (ABAC)."]}letcontext_="TagResourceInput"letmake~resourceArn=fun~tags->fun()->{resourceArn;tags}letto_valuex=structure_to_value[("resourceArn",(Some(ResourceARN.to_valuex.resourceArn)));("tags",(Some(TagsMap.to_valuex.tags)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=TagsMap.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"TagsMap.of_jsoninletresourceArn=field_map_exnjson__"resourceArn"ResourceARN.of_jsoninmake~tags~resourceArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Applies one or more user-defined tags to an Amazon S3 Vectors resource or updates existing tags. Each tag is a label consisting of a key and value pair. Tags can help you organize, track costs for, and control access to your resources. You can add up to 50 tags for each resource. For a list of S3 resources that support tagging, see Managing tags for Amazon S3 resources. Permissions For vector buckets and vector indexes, you must have the s3vectors:TagResource permission to use this operation."]moduleQueryVectorsOutput=structtypenonrect={vectors:QueryVectorsOutputList.toption[@ocaml.doc"The vectors in the approximate nearest neighbor search."];distanceMetric:DistanceMetric.toption[@ocaml.doc"The distance metric that was used for the similarity search calculation. This is the same distance metric that was configured for the vector index when it was created."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`KmsDisabledExceptionofKmsDisabledException.t|`KmsInvalidKeyUsageExceptionofKmsInvalidKeyUsageException.t|`KmsInvalidStateExceptionofKmsInvalidStateException.t|`KmsNotFoundExceptionofKmsNotFoundException.t|`NotFoundExceptionofNotFoundException.t|`RequestTimeoutExceptionofRequestTimeoutException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`TooManyRequestsExceptionofTooManyRequestsException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?vectors=fun?distanceMetric->fun()->{vectors;distanceMetric}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"KmsDisabledException"->`KmsDisabledException(KmsDisabledException.of_jsonjson)|"KmsInvalidKeyUsageException"->`KmsInvalidKeyUsageException(KmsInvalidKeyUsageException.of_jsonjson)|"KmsInvalidStateException"->`KmsInvalidStateException(KmsInvalidStateException.of_jsonjson)|"KmsNotFoundException"->`KmsNotFoundException(KmsNotFoundException.of_jsonjson)|"NotFoundException"->`NotFoundException(NotFoundException.of_jsonjson)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"KmsDisabledException"->`KmsDisabledException(KmsDisabledException.of_xmlxml)|"KmsInvalidKeyUsageException"->`KmsInvalidKeyUsageException(KmsInvalidKeyUsageException.of_xmlxml)|"KmsInvalidStateException"->`KmsInvalidStateException(KmsInvalidStateException.of_xmlxml)|"KmsNotFoundException"->`KmsNotFoundException(KmsNotFoundException.of_xmlxml)|"NotFoundException"->`NotFoundException(NotFoundException.of_xmlxml)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`KmsDisabledExceptione->`Assoc[("error",(`String"KmsDisabledException"));("details",(KmsDisabledException.to_jsone))]|`KmsInvalidKeyUsageExceptione->`Assoc[("error",(`String"KmsInvalidKeyUsageException"));("details",(KmsInvalidKeyUsageException.to_jsone))]|`KmsInvalidStateExceptione->`Assoc[("error",(`String"KmsInvalidStateException"));("details",(KmsInvalidStateException.to_jsone))]|`KmsNotFoundExceptione->`Assoc[("error",(`String"KmsNotFoundException"));("details",(KmsNotFoundException.to_jsone))]|`NotFoundExceptione->`Assoc[("error",(`String"NotFoundException"));("details",(NotFoundException.to_jsone))]|`RequestTimeoutExceptione->`Assoc[("error",(`String"RequestTimeoutException"));("details",(RequestTimeoutException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`TooManyRequestsExceptione->`Assoc[("error",(`String"TooManyRequestsException"));("details",(TooManyRequestsException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("vectors",(Option.mapx.vectors~f:QueryVectorsOutputList.to_value));("distanceMetric",(Option.mapx.distanceMetric~f:DistanceMetric.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letdistanceMetric=(Option.map~f:DistanceMetric.of_xml)(Xml.childxml_arg0"distanceMetric")inletvectors=(Option.map~f:QueryVectorsOutputList.of_xml)(Xml.childxml_arg0"vectors")inmake?distanceMetric?vectors()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letdistanceMetric=field_mapjson__"distanceMetric"DistanceMetric.of_jsoninletvectors=field_mapjson__"vectors"QueryVectorsOutputList.of_jsoninmake?distanceMetric?vectors()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Performs an approximate nearest neighbor search query in a vector index using a query vector. By default, it returns the keys of approximate nearest neighbors. You can optionally include the computed distance (between the query vector and each vector in the response), the vector data, and metadata of each vector in the response. To specify the vector index, you can either use both the vector bucket name and the vector index name, or use the vector index Amazon Resource Name (ARN). Permissions You must have the s3vectors:QueryVectors permission to use this operation. Additional permissions are required based on the request parameters you specify: With only s3vectors:QueryVectors permission, you can retrieve vector keys of approximate nearest neighbors and computed distances between these vectors. This permission is sufficient only when you don't set any metadata filters and don't request vector data or metadata (by keeping the returnMetadata parameter set to false or not specified). If you specify a metadata filter or set returnMetadata to true, you must have both s3vectors:QueryVectors and s3vectors:GetVectors permissions. The request fails with a 403 Forbidden error if you request metadata filtering, vector data, or metadata without the s3vectors:GetVectors permission."]moduleQueryVectorsInput=structtypenonrect={vectorBucketName:VectorBucketName.toption[@ocaml.doc"The name of the vector bucket that contains the vector index."];indexName:IndexName.toption[@ocaml.doc"The name of the vector index that you want to query."];indexArn:IndexArn.toption[@ocaml.doc"The ARN of the vector index that you want to query."];topK:TopK.t[@ocaml.doc"The number of results to return for each query."];queryVector:VectorData.t[@ocaml.doc"The query vector. Ensure that the query vector has the same dimension as the dimension of the vector index that's being queried. For example, if your vector index contains vectors with 384 dimensions, your query vector must also have 384 dimensions."];filter:Document.toption[@ocaml.doc"Metadata filter to apply during the query. For more information about metadata keys, see Metadata filtering in the Amazon S3 User Guide."];returnMetadata:Boolean.toption[@ocaml.doc"Indicates whether to include metadata in the response. The default value is false."];returnDistance:Boolean.toption[@ocaml.doc"Indicates whether to include the computed distance in the response. The default value is false."]}letcontext_="QueryVectorsInput"letmake?vectorBucketName=fun?indexName->fun?indexArn->fun?filter->fun?returnMetadata->fun?returnDistance->fun~topK->fun~queryVector->fun()->{vectorBucketName;indexName;indexArn;filter;returnMetadata;returnDistance;topK;queryVector}letto_valuex=structure_to_value[("vectorBucketName",(Option.mapx.vectorBucketName~f:VectorBucketName.to_value));("indexName",(Option.mapx.indexName~f:IndexName.to_value));("indexArn",(Option.mapx.indexArn~f:IndexArn.to_value));("topK",(Some(TopK.to_valuex.topK)));("queryVector",(Some(VectorData.to_valuex.queryVector)));("filter",(Option.mapx.filter~f:Document.to_value));("returnMetadata",(Option.mapx.returnMetadata~f:Boolean.to_value));("returnDistance",(Option.mapx.returnDistance~f:Boolean.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letreturnDistance=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"returnDistance")inletreturnMetadata=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"returnMetadata")inletfilter=(Option.map~f:Document.of_xml)(Xml.childxml_arg0"filter")inletqueryVector=VectorData.of_xml(Xml.child_exn~context:context_xml_arg0"queryVector")inlettopK=TopK.of_xml(Xml.child_exn~context:context_xml_arg0"topK")inletindexArn=(Option.map~f:IndexArn.of_xml)(Xml.childxml_arg0"indexArn")inletindexName=(Option.map~f:IndexName.of_xml)(Xml.childxml_arg0"indexName")inletvectorBucketName=(Option.map~f:VectorBucketName.of_xml)(Xml.childxml_arg0"vectorBucketName")inmake?returnDistance?returnMetadata?filter~queryVector~topK?indexArn?indexName?vectorBucketName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letreturnDistance=field_mapjson__"returnDistance"Boolean.of_jsoninletreturnMetadata=field_mapjson__"returnMetadata"Boolean.of_jsoninletfilter=field_mapjson__"filter"Document.of_jsoninletqueryVector=field_map_exnjson__"queryVector"VectorData.of_jsoninlettopK=field_map_exnjson__"topK"TopK.of_jsoninletindexArn=field_mapjson__"indexArn"IndexArn.of_jsoninletindexName=field_mapjson__"indexName"IndexName.of_jsoninletvectorBucketName=field_mapjson__"vectorBucketName"VectorBucketName.of_jsoninmake?returnDistance?returnMetadata?filter~queryVector~topK?indexArn?indexName?vectorBucketName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Performs an approximate nearest neighbor search query in a vector index using a query vector. By default, it returns the keys of approximate nearest neighbors. You can optionally include the computed distance (between the query vector and each vector in the response), the vector data, and metadata of each vector in the response. To specify the vector index, you can either use both the vector bucket name and the vector index name, or use the vector index Amazon Resource Name (ARN). Permissions You must have the s3vectors:QueryVectors permission to use this operation. Additional permissions are required based on the request parameters you specify: With only s3vectors:QueryVectors permission, you can retrieve vector keys of approximate nearest neighbors and computed distances between these vectors. This permission is sufficient only when you don't set any metadata filters and don't request vector data or metadata (by keeping the returnMetadata parameter set to false or not specified). If you specify a metadata filter or set returnMetadata to true, you must have both s3vectors:QueryVectors and s3vectors:GetVectors permissions. The request fails with a 403 Forbidden error if you request metadata filtering, vector data, or metadata without the s3vectors:GetVectors permission."]modulePutVectorsOutput=structtypenonrect=unittypenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`KmsDisabledExceptionofKmsDisabledException.t|`KmsInvalidKeyUsageExceptionofKmsInvalidKeyUsageException.t|`KmsInvalidStateExceptionofKmsInvalidStateException.t|`KmsNotFoundExceptionofKmsNotFoundException.t|`NotFoundExceptionofNotFoundException.t|`RequestTimeoutExceptionofRequestTimeoutException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`TooManyRequestsExceptionofTooManyRequestsException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake()=()leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"KmsDisabledException"->`KmsDisabledException(KmsDisabledException.of_jsonjson)|"KmsInvalidKeyUsageException"->`KmsInvalidKeyUsageException(KmsInvalidKeyUsageException.of_jsonjson)|"KmsInvalidStateException"->`KmsInvalidStateException(KmsInvalidStateException.of_jsonjson)|"KmsNotFoundException"->`KmsNotFoundException(KmsNotFoundException.of_jsonjson)|"NotFoundException"->`NotFoundException(NotFoundException.of_jsonjson)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_jsonjson)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"KmsDisabledException"->`KmsDisabledException(KmsDisabledException.of_xmlxml)|"KmsInvalidKeyUsageException"->`KmsInvalidKeyUsageException(KmsInvalidKeyUsageException.of_xmlxml)|"KmsInvalidStateException"->`KmsInvalidStateException(KmsInvalidStateException.of_xmlxml)|"KmsNotFoundException"->`KmsNotFoundException(KmsNotFoundException.of_xmlxml)|"NotFoundException"->`NotFoundException(NotFoundException.of_xmlxml)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_xmlxml)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`KmsDisabledExceptione->`Assoc[("error",(`String"KmsDisabledException"));("details",(KmsDisabledException.to_jsone))]|`KmsInvalidKeyUsageExceptione->`Assoc[("error",(`String"KmsInvalidKeyUsageException"));("details",(KmsInvalidKeyUsageException.to_jsone))]|`KmsInvalidStateExceptione->`Assoc[("error",(`String"KmsInvalidStateException"));("details",(KmsInvalidStateException.to_jsone))]|`KmsNotFoundExceptione->`Assoc[("error",(`String"KmsNotFoundException"));("details",(KmsNotFoundException.to_jsone))]|`NotFoundExceptione->`Assoc[("error",(`String"NotFoundException"));("details",(NotFoundException.to_jsone))]|`RequestTimeoutExceptione->`Assoc[("error",(`String"RequestTimeoutException"));("details",(RequestTimeoutException.to_jsone))]|`ServiceQuotaExceededExceptione->`Assoc[("error",(`String"ServiceQuotaExceededException"));("details",(ServiceQuotaExceededException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`TooManyRequestsExceptione->`Assoc[("error",(`String"TooManyRequestsException"));("details",(TooManyRequestsException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Adds one or more vectors to a vector index. To specify the vector index, you can either use both the vector bucket name and the vector index name, or use the vector index Amazon Resource Name (ARN). For more information about limits, see Limitations and restrictions in the Amazon S3 User Guide. When inserting vector data into your vector index, you must provide the vector data as float32 (32-bit floating point) values. If you pass higher-precision values to an Amazon Web Services SDK, S3 Vectors converts the values to 32-bit floating point before storing them, and GetVectors, ListVectors, and QueryVectors operations return the float32 values. Different Amazon Web Services SDKs may have different default numeric types, so ensure your vectors are properly formatted as float32 values regardless of which SDK you're using. For example, in Python, use numpy.float32 or explicitly cast your values. Permissions You must have the s3vectors:PutVectors permission to use this operation."]modulePutVectorsInput=structtypenonrect={vectorBucketName:VectorBucketName.toption[@ocaml.doc"The name of the vector bucket that contains the vector index."];indexName:IndexName.toption[@ocaml.doc"The name of the vector index where you want to write vectors."];indexArn:IndexArn.toption[@ocaml.doc"The ARN of the vector index where you want to write vectors."];vectors:PutVectorsInputList.t[@ocaml.doc"The vectors to add to a vector index. The number of vectors in a single request must not exceed the resource capacity, otherwise the request will be rejected with the error ServiceUnavailableException with the error message \"Currently unable to handle the request\"."]}letcontext_="PutVectorsInput"letmake?vectorBucketName=fun?indexName->fun?indexArn->fun~vectors->fun()->{vectorBucketName;indexName;indexArn;vectors}letto_valuex=structure_to_value[("vectorBucketName",(Option.mapx.vectorBucketName~f:VectorBucketName.to_value));("indexName",(Option.mapx.indexName~f:IndexName.to_value));("indexArn",(Option.mapx.indexArn~f:IndexArn.to_value));("vectors",(Some(PutVectorsInputList.to_valuex.vectors)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvectors=PutVectorsInputList.of_xml(Xml.child_exn~context:context_xml_arg0"vectors")inletindexArn=(Option.map~f:IndexArn.of_xml)(Xml.childxml_arg0"indexArn")inletindexName=(Option.map~f:IndexName.of_xml)(Xml.childxml_arg0"indexName")inletvectorBucketName=(Option.map~f:VectorBucketName.of_xml)(Xml.childxml_arg0"vectorBucketName")inmake~vectors?indexArn?indexName?vectorBucketName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvectors=field_map_exnjson__"vectors"PutVectorsInputList.of_jsoninletindexArn=field_mapjson__"indexArn"IndexArn.of_jsoninletindexName=field_mapjson__"indexName"IndexName.of_jsoninletvectorBucketName=field_mapjson__"vectorBucketName"VectorBucketName.of_jsoninmake~vectors?indexArn?indexName?vectorBucketName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Adds one or more vectors to a vector index. To specify the vector index, you can either use both the vector bucket name and the vector index name, or use the vector index Amazon Resource Name (ARN). For more information about limits, see Limitations and restrictions in the Amazon S3 User Guide. When inserting vector data into your vector index, you must provide the vector data as float32 (32-bit floating point) values. If you pass higher-precision values to an Amazon Web Services SDK, S3 Vectors converts the values to 32-bit floating point before storing them, and GetVectors, ListVectors, and QueryVectors operations return the float32 values. Different Amazon Web Services SDKs may have different default numeric types, so ensure your vectors are properly formatted as float32 values regardless of which SDK you're using. For example, in Python, use numpy.float32 or explicitly cast your values. Permissions You must have the s3vectors:PutVectors permission to use this operation."]modulePutVectorBucketPolicyOutput=structtypenonrect=unittypenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`NotFoundExceptionofNotFoundException.t|`RequestTimeoutExceptionofRequestTimeoutException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`TooManyRequestsExceptionofTooManyRequestsException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake()=()leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"NotFoundException"->`NotFoundException(NotFoundException.of_jsonjson)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"NotFoundException"->`NotFoundException(NotFoundException.of_xmlxml)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`NotFoundExceptione->`Assoc[("error",(`String"NotFoundException"));("details",(NotFoundException.to_jsone))]|`RequestTimeoutExceptione->`Assoc[("error",(`String"RequestTimeoutException"));("details",(RequestTimeoutException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`TooManyRequestsExceptione->`Assoc[("error",(`String"TooManyRequestsException"));("details",(TooManyRequestsException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a bucket policy for a vector bucket. To specify the bucket, you must use either the vector bucket name or the vector bucket Amazon Resource Name (ARN). Permissions You must have the s3vectors:PutVectorBucketPolicy permission to use this operation."]modulePutVectorBucketPolicyInput=structtypenonrect={vectorBucketName:VectorBucketName.toption[@ocaml.doc"The name of the vector bucket."];vectorBucketArn:VectorBucketArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the vector bucket."];policy:VectorBucketPolicy.t[@ocaml.doc"The JSON that defines the policy. For more information about bucket policies for S3 Vectors, see Managing vector bucket policies in the Amazon S3 User Guide."]}letcontext_="PutVectorBucketPolicyInput"letmake?vectorBucketName=fun?vectorBucketArn->fun~policy->fun()->{vectorBucketName;vectorBucketArn;policy}letto_valuex=structure_to_value[("vectorBucketName",(Option.mapx.vectorBucketName~f:VectorBucketName.to_value));("vectorBucketArn",(Option.mapx.vectorBucketArn~f:VectorBucketArn.to_value));("policy",(Some(VectorBucketPolicy.to_valuex.policy)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpolicy=VectorBucketPolicy.of_xml(Xml.child_exn~context:context_xml_arg0"policy")inletvectorBucketArn=(Option.map~f:VectorBucketArn.of_xml)(Xml.childxml_arg0"vectorBucketArn")inletvectorBucketName=(Option.map~f:VectorBucketName.of_xml)(Xml.childxml_arg0"vectorBucketName")inmake~policy?vectorBucketArn?vectorBucketName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpolicy=field_map_exnjson__"policy"VectorBucketPolicy.of_jsoninletvectorBucketArn=field_mapjson__"vectorBucketArn"VectorBucketArn.of_jsoninletvectorBucketName=field_mapjson__"vectorBucketName"VectorBucketName.of_jsoninmake~policy?vectorBucketArn?vectorBucketName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a bucket policy for a vector bucket. To specify the bucket, you must use either the vector bucket name or the vector bucket Amazon Resource Name (ARN). Permissions You must have the s3vectors:PutVectorBucketPolicy permission to use this operation."]moduleListVectorsOutput=structtypenonrect={nextToken:ListVectorsNextToken.toption[@ocaml.doc"Pagination token to be used in the subsequent request. The field is empty if no further pagination is required."];vectors:ListVectorsOutputList.toption[@ocaml.doc"Vectors in the current segment."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`NotFoundExceptionofNotFoundException.t|`RequestTimeoutExceptionofRequestTimeoutException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`TooManyRequestsExceptionofTooManyRequestsException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?nextToken=fun?vectors->fun()->{nextToken;vectors}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"NotFoundException"->`NotFoundException(NotFoundException.of_jsonjson)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"NotFoundException"->`NotFoundException(NotFoundException.of_xmlxml)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`NotFoundExceptione->`Assoc[("error",(`String"NotFoundException"));("details",(NotFoundException.to_jsone))]|`RequestTimeoutExceptione->`Assoc[("error",(`String"RequestTimeoutException"));("details",(RequestTimeoutException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`TooManyRequestsExceptione->`Assoc[("error",(`String"TooManyRequestsException"));("details",(TooManyRequestsException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("nextToken",(Option.mapx.nextToken~f:ListVectorsNextToken.to_value));("vectors",(Option.mapx.vectors~f:ListVectorsOutputList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvectors=(Option.map~f:ListVectorsOutputList.of_xml)(Xml.childxml_arg0"vectors")inletnextToken=(Option.map~f:ListVectorsNextToken.of_xml)(Xml.childxml_arg0"nextToken")inmake?vectors?nextToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvectors=field_mapjson__"vectors"ListVectorsOutputList.of_jsoninletnextToken=field_mapjson__"nextToken"ListVectorsNextToken.of_jsoninmake?vectors?nextToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"List vectors in the specified vector index. To specify the vector index, you can either use both the vector bucket name and the vector index name, or use the vector index Amazon Resource Name (ARN). ListVectors operations proceed sequentially; however, for faster performance on a large number of vectors in a vector index, applications can request a parallel ListVectors operation by providing the segmentCount and segmentIndex parameters. Permissions You must have the s3vectors:ListVectors permission to use this operation. Additional permissions are required based on the request parameters you specify: With only s3vectors:ListVectors permission, you can list vector keys when returnData and returnMetadata are both set to false or not specified.. If you set returnData or returnMetadata to true, you must have both s3vectors:ListVectors and s3vectors:GetVectors permissions. The request fails with a 403 Forbidden error if you request vector data or metadata without the s3vectors:GetVectors permission."]moduleListVectorsInput=structtypenonrect={vectorBucketName:VectorBucketName.toption[@ocaml.doc"The name of the vector bucket."];indexName:IndexName.toption[@ocaml.doc"The name of the vector index."];indexArn:IndexArn.toption[@ocaml.doc"The Amazon resource Name (ARN) of the vector index."];maxResults:ListVectorsMaxResults.toption[@ocaml.doc"The maximum number of vectors to return on a page. If you don't specify maxResults, the ListVectors operation uses a default value of 500. If the processed dataset size exceeds 1 MB before reaching the maxResults value, the operation stops and returns the vectors that are retrieved up to that point, along with a nextToken that you can use in a subsequent request to retrieve the next set of results."];nextToken:ListVectorsNextToken.toption[@ocaml.doc"Pagination token from a previous request. The value of this field is empty for an initial request."];segmentCount:ListVectorsSegmentCount.toption[@ocaml.doc"For a parallel ListVectors request, segmentCount represents the total number of vector segments into which the ListVectors operation will be divided. The value of segmentCount corresponds to the number of application workers that will perform the parallel ListVectors operation. For example, if you want to use four application threads to list vectors in a vector index, specify a segmentCount value of 4. If you specify a segmentCount value of 1, the ListVectors operation will be sequential rather than parallel. If you specify segmentCount, you must also specify segmentIndex."];segmentIndex:ListVectorsSegmentIndex.toption[@ocaml.doc"For a parallel ListVectors request, segmentIndex is the index of the segment from which to list vectors in the current request. It identifies an individual segment to be listed by an application worker. Segment IDs are zero-based, so the first segment is always 0. For example, if you want to use four application threads to list vectors in a vector index, then the first thread specifies a segmentIndex value of 0, the second thread specifies 1, and so on. The value of segmentIndex must be less than the value provided for segmentCount. If you provide segmentIndex, you must also provide segmentCount."];returnData:Boolean.toption[@ocaml.doc"If true, the vector data of each vector will be included in the response. The default value is false."];returnMetadata:Boolean.toption[@ocaml.doc"If true, the metadata associated with each vector will be included in the response. The default value is false."]}letmake?vectorBucketName=fun?indexName->fun?indexArn->fun?maxResults->fun?nextToken->fun?segmentCount->fun?segmentIndex->fun?returnData->fun?returnMetadata->fun()->{vectorBucketName;indexName;indexArn;maxResults;nextToken;segmentCount;segmentIndex;returnData;returnMetadata}letto_valuex=structure_to_value[("vectorBucketName",(Option.mapx.vectorBucketName~f:VectorBucketName.to_value));("indexName",(Option.mapx.indexName~f:IndexName.to_value));("indexArn",(Option.mapx.indexArn~f:IndexArn.to_value));("maxResults",(Option.mapx.maxResults~f:ListVectorsMaxResults.to_value));("nextToken",(Option.mapx.nextToken~f:ListVectorsNextToken.to_value));("segmentCount",(Option.mapx.segmentCount~f:ListVectorsSegmentCount.to_value));("segmentIndex",(Option.mapx.segmentIndex~f:ListVectorsSegmentIndex.to_value));("returnData",(Option.mapx.returnData~f:Boolean.to_value));("returnMetadata",(Option.mapx.returnMetadata~f:Boolean.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letreturnMetadata=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"returnMetadata")inletreturnData=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"returnData")inletsegmentIndex=(Option.map~f:ListVectorsSegmentIndex.of_xml)(Xml.childxml_arg0"segmentIndex")inletsegmentCount=(Option.map~f:ListVectorsSegmentCount.of_xml)(Xml.childxml_arg0"segmentCount")inletnextToken=(Option.map~f:ListVectorsNextToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:ListVectorsMaxResults.of_xml)(Xml.childxml_arg0"maxResults")inletindexArn=(Option.map~f:IndexArn.of_xml)(Xml.childxml_arg0"indexArn")inletindexName=(Option.map~f:IndexName.of_xml)(Xml.childxml_arg0"indexName")inletvectorBucketName=(Option.map~f:VectorBucketName.of_xml)(Xml.childxml_arg0"vectorBucketName")inmake?returnMetadata?returnData?segmentIndex?segmentCount?nextToken?maxResults?indexArn?indexName?vectorBucketName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letreturnMetadata=field_mapjson__"returnMetadata"Boolean.of_jsoninletreturnData=field_mapjson__"returnData"Boolean.of_jsoninletsegmentIndex=field_mapjson__"segmentIndex"ListVectorsSegmentIndex.of_jsoninletsegmentCount=field_mapjson__"segmentCount"ListVectorsSegmentCount.of_jsoninletnextToken=field_mapjson__"nextToken"ListVectorsNextToken.of_jsoninletmaxResults=field_mapjson__"maxResults"ListVectorsMaxResults.of_jsoninletindexArn=field_mapjson__"indexArn"IndexArn.of_jsoninletindexName=field_mapjson__"indexName"IndexName.of_jsoninletvectorBucketName=field_mapjson__"vectorBucketName"VectorBucketName.of_jsoninmake?returnMetadata?returnData?segmentIndex?segmentCount?nextToken?maxResults?indexArn?indexName?vectorBucketName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"List vectors in the specified vector index. To specify the vector index, you can either use both the vector bucket name and the vector index name, or use the vector index Amazon Resource Name (ARN). ListVectors operations proceed sequentially; however, for faster performance on a large number of vectors in a vector index, applications can request a parallel ListVectors operation by providing the segmentCount and segmentIndex parameters. Permissions You must have the s3vectors:ListVectors permission to use this operation. Additional permissions are required based on the request parameters you specify: With only s3vectors:ListVectors permission, you can list vector keys when returnData and returnMetadata are both set to false or not specified.. If you set returnData or returnMetadata to true, you must have both s3vectors:ListVectors and s3vectors:GetVectors permissions. The request fails with a 403 Forbidden error if you request vector data or metadata without the s3vectors:GetVectors permission."]moduleListVectorBucketsOutput=structtypenonrect={nextToken:ListVectorBucketsNextToken.toption[@ocaml.doc"The element is included in the response when there are more buckets to be listed with pagination."];vectorBuckets:ListVectorBucketsOutputList.toption[@ocaml.doc"The list of vector buckets owned by the requester."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`RequestTimeoutExceptionofRequestTimeoutException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`TooManyRequestsExceptionofTooManyRequestsException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?nextToken=fun?vectorBuckets->fun()->{nextToken;vectorBuckets}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`RequestTimeoutExceptione->`Assoc[("error",(`String"RequestTimeoutException"));("details",(RequestTimeoutException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`TooManyRequestsExceptione->`Assoc[("error",(`String"TooManyRequestsException"));("details",(TooManyRequestsException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("nextToken",(Option.mapx.nextToken~f:ListVectorBucketsNextToken.to_value));("vectorBuckets",(Option.mapx.vectorBuckets~f:ListVectorBucketsOutputList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvectorBuckets=(Option.map~f:ListVectorBucketsOutputList.of_xml)(Xml.childxml_arg0"vectorBuckets")inletnextToken=(Option.map~f:ListVectorBucketsNextToken.of_xml)(Xml.childxml_arg0"nextToken")inmake?vectorBuckets?nextToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvectorBuckets=field_mapjson__"vectorBuckets"ListVectorBucketsOutputList.of_jsoninletnextToken=field_mapjson__"nextToken"ListVectorBucketsNextToken.of_jsoninmake?vectorBuckets?nextToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a list of all the vector buckets that are owned by the authenticated sender of the request. Permissions You must have the s3vectors:ListVectorBuckets permission to use this operation."]moduleListVectorBucketsInput=structtypenonrect={maxResults:ListVectorBucketsMaxResults.toption[@ocaml.doc"The maximum number of vector buckets to be returned in the response."];nextToken:ListVectorBucketsNextToken.toption[@ocaml.doc"The previous pagination token."];prefix:ListVectorBucketsPrefix.toption[@ocaml.doc"Limits the response to vector buckets that begin with the specified prefix."]}letmake?maxResults=fun?nextToken->fun?prefix->fun()->{maxResults;nextToken;prefix}letto_valuex=structure_to_value[("maxResults",(Option.mapx.maxResults~f:ListVectorBucketsMaxResults.to_value));("nextToken",(Option.mapx.nextToken~f:ListVectorBucketsNextToken.to_value));("prefix",(Option.mapx.prefix~f:ListVectorBucketsPrefix.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letprefix=(Option.map~f:ListVectorBucketsPrefix.of_xml)(Xml.childxml_arg0"prefix")inletnextToken=(Option.map~f:ListVectorBucketsNextToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:ListVectorBucketsMaxResults.of_xml)(Xml.childxml_arg0"maxResults")inmake?prefix?nextToken?maxResults()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letprefix=field_mapjson__"prefix"ListVectorBucketsPrefix.of_jsoninletnextToken=field_mapjson__"nextToken"ListVectorBucketsNextToken.of_jsoninletmaxResults=field_mapjson__"maxResults"ListVectorBucketsMaxResults.of_jsoninmake?prefix?nextToken?maxResults()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a list of all the vector buckets that are owned by the authenticated sender of the request. Permissions You must have the s3vectors:ListVectorBuckets permission to use this operation."]moduleListTagsForResourceOutput=structtypenonrect={tags:TagsMap.toption[@ocaml.doc"The user-defined tags that are applied to the S3 Vectors resource. For more information, see Tagging for cost allocation or attribute-based access control (ABAC)."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`NotFoundExceptionofNotFoundException.t|`RequestTimeoutExceptionofRequestTimeoutException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`TooManyRequestsExceptionofTooManyRequestsException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?tags=fun()->{tags}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"NotFoundException"->`NotFoundException(NotFoundException.of_jsonjson)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"NotFoundException"->`NotFoundException(NotFoundException.of_xmlxml)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`NotFoundExceptione->`Assoc[("error",(`String"NotFoundException"));("details",(NotFoundException.to_jsone))]|`RequestTimeoutExceptione->`Assoc[("error",(`String"RequestTimeoutException"));("details",(RequestTimeoutException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`TooManyRequestsExceptione->`Assoc[("error",(`String"TooManyRequestsException"));("details",(TooManyRequestsException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("tags",(Option.mapx.tags~f:TagsMap.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:TagsMap.of_xml)(Xml.childxml_arg0"tags")inmake?tags()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"tags"TagsMap.of_jsoninmake?tags()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists all of the tags applied to a specified Amazon S3 Vectors resource. Each tag is a label consisting of a key and value pair. Tags can help you organize, track costs for, and control access to resources. For a list of S3 resources that support tagging, see Managing tags for Amazon S3 resources. Permissions For vector buckets and vector indexes, you must have the s3vectors:ListTagsForResource permission to use this operation."]moduleListTagsForResourceInput=structtypenonrect={resourceArn:ResourceARN.t[@ocaml.doc"The Amazon Resource Name (ARN) of the Amazon S3 Vectors resource that you want to list tags for. The tagged resource can be a vector bucket or a vector index."]}letcontext_="ListTagsForResourceInput"letmake~resourceArn=fun()->{resourceArn}letto_valuex=structure_to_value[("resourceArn",(Some(ResourceARN.to_valuex.resourceArn)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceArn=ResourceARN.of_xml(Xml.child_exn~context:context_xml_arg0"resourceArn")inmake~resourceArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceArn=field_map_exnjson__"resourceArn"ResourceARN.of_jsoninmake~resourceArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists all of the tags applied to a specified Amazon S3 Vectors resource. Each tag is a label consisting of a key and value pair. Tags can help you organize, track costs for, and control access to resources. For a list of S3 resources that support tagging, see Managing tags for Amazon S3 resources. Permissions For vector buckets and vector indexes, you must have the s3vectors:ListTagsForResource permission to use this operation."]moduleListIndexesOutput=structtypenonrect={nextToken:ListIndexesNextToken.toption[@ocaml.doc"The next pagination token."];indexes:ListIndexesOutputList.toption[@ocaml.doc"The attributes of the vector indexes"]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`NotFoundExceptionofNotFoundException.t|`RequestTimeoutExceptionofRequestTimeoutException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`TooManyRequestsExceptionofTooManyRequestsException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?nextToken=fun?indexes->fun()->{nextToken;indexes}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"NotFoundException"->`NotFoundException(NotFoundException.of_jsonjson)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"NotFoundException"->`NotFoundException(NotFoundException.of_xmlxml)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`NotFoundExceptione->`Assoc[("error",(`String"NotFoundException"));("details",(NotFoundException.to_jsone))]|`RequestTimeoutExceptione->`Assoc[("error",(`String"RequestTimeoutException"));("details",(RequestTimeoutException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`TooManyRequestsExceptione->`Assoc[("error",(`String"TooManyRequestsException"));("details",(TooManyRequestsException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("nextToken",(Option.mapx.nextToken~f:ListIndexesNextToken.to_value));("indexes",(Option.mapx.indexes~f:ListIndexesOutputList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letindexes=(Option.map~f:ListIndexesOutputList.of_xml)(Xml.childxml_arg0"indexes")inletnextToken=(Option.map~f:ListIndexesNextToken.of_xml)(Xml.childxml_arg0"nextToken")inmake?indexes?nextToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letindexes=field_mapjson__"indexes"ListIndexesOutputList.of_jsoninletnextToken=field_mapjson__"nextToken"ListIndexesNextToken.of_jsoninmake?indexes?nextToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a list of all the vector indexes within the specified vector bucket. To specify the bucket, you must use either the vector bucket name or the vector bucket Amazon Resource Name (ARN). Permissions You must have the s3vectors:ListIndexes permission to use this operation."]moduleListIndexesInput=structtypenonrect={vectorBucketName:VectorBucketName.toption[@ocaml.doc"The name of the vector bucket that contains the vector indexes."];vectorBucketArn:VectorBucketArn.toption[@ocaml.doc"The ARN of the vector bucket that contains the vector indexes."];maxResults:ListIndexesMaxResults.toption[@ocaml.doc"The maximum number of items to be returned in the response."];nextToken:ListIndexesNextToken.toption[@ocaml.doc"The previous pagination token."];prefix:ListIndexesPrefix.toption[@ocaml.doc"Limits the response to vector indexes that begin with the specified prefix."]}letmake?vectorBucketName=fun?vectorBucketArn->fun?maxResults->fun?nextToken->fun?prefix->fun()->{vectorBucketName;vectorBucketArn;maxResults;nextToken;prefix}letto_valuex=structure_to_value[("vectorBucketName",(Option.mapx.vectorBucketName~f:VectorBucketName.to_value));("vectorBucketArn",(Option.mapx.vectorBucketArn~f:VectorBucketArn.to_value));("maxResults",(Option.mapx.maxResults~f:ListIndexesMaxResults.to_value));("nextToken",(Option.mapx.nextToken~f:ListIndexesNextToken.to_value));("prefix",(Option.mapx.prefix~f:ListIndexesPrefix.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letprefix=(Option.map~f:ListIndexesPrefix.of_xml)(Xml.childxml_arg0"prefix")inletnextToken=(Option.map~f:ListIndexesNextToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:ListIndexesMaxResults.of_xml)(Xml.childxml_arg0"maxResults")inletvectorBucketArn=(Option.map~f:VectorBucketArn.of_xml)(Xml.childxml_arg0"vectorBucketArn")inletvectorBucketName=(Option.map~f:VectorBucketName.of_xml)(Xml.childxml_arg0"vectorBucketName")inmake?prefix?nextToken?maxResults?vectorBucketArn?vectorBucketName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letprefix=field_mapjson__"prefix"ListIndexesPrefix.of_jsoninletnextToken=field_mapjson__"nextToken"ListIndexesNextToken.of_jsoninletmaxResults=field_mapjson__"maxResults"ListIndexesMaxResults.of_jsoninletvectorBucketArn=field_mapjson__"vectorBucketArn"VectorBucketArn.of_jsoninletvectorBucketName=field_mapjson__"vectorBucketName"VectorBucketName.of_jsoninmake?prefix?nextToken?maxResults?vectorBucketArn?vectorBucketName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a list of all the vector indexes within the specified vector bucket. To specify the bucket, you must use either the vector bucket name or the vector bucket Amazon Resource Name (ARN). Permissions You must have the s3vectors:ListIndexes permission to use this operation."]moduleGetVectorsOutput=structtypenonrect={vectors:GetVectorsOutputList.toption[@ocaml.doc"The attributes of the vectors."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`KmsDisabledExceptionofKmsDisabledException.t|`KmsInvalidKeyUsageExceptionofKmsInvalidKeyUsageException.t|`KmsInvalidStateExceptionofKmsInvalidStateException.t|`KmsNotFoundExceptionofKmsNotFoundException.t|`NotFoundExceptionofNotFoundException.t|`RequestTimeoutExceptionofRequestTimeoutException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`TooManyRequestsExceptionofTooManyRequestsException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?vectors=fun()->{vectors}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"KmsDisabledException"->`KmsDisabledException(KmsDisabledException.of_jsonjson)|"KmsInvalidKeyUsageException"->`KmsInvalidKeyUsageException(KmsInvalidKeyUsageException.of_jsonjson)|"KmsInvalidStateException"->`KmsInvalidStateException(KmsInvalidStateException.of_jsonjson)|"KmsNotFoundException"->`KmsNotFoundException(KmsNotFoundException.of_jsonjson)|"NotFoundException"->`NotFoundException(NotFoundException.of_jsonjson)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"KmsDisabledException"->`KmsDisabledException(KmsDisabledException.of_xmlxml)|"KmsInvalidKeyUsageException"->`KmsInvalidKeyUsageException(KmsInvalidKeyUsageException.of_xmlxml)|"KmsInvalidStateException"->`KmsInvalidStateException(KmsInvalidStateException.of_xmlxml)|"KmsNotFoundException"->`KmsNotFoundException(KmsNotFoundException.of_xmlxml)|"NotFoundException"->`NotFoundException(NotFoundException.of_xmlxml)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`KmsDisabledExceptione->`Assoc[("error",(`String"KmsDisabledException"));("details",(KmsDisabledException.to_jsone))]|`KmsInvalidKeyUsageExceptione->`Assoc[("error",(`String"KmsInvalidKeyUsageException"));("details",(KmsInvalidKeyUsageException.to_jsone))]|`KmsInvalidStateExceptione->`Assoc[("error",(`String"KmsInvalidStateException"));("details",(KmsInvalidStateException.to_jsone))]|`KmsNotFoundExceptione->`Assoc[("error",(`String"KmsNotFoundException"));("details",(KmsNotFoundException.to_jsone))]|`NotFoundExceptione->`Assoc[("error",(`String"NotFoundException"));("details",(NotFoundException.to_jsone))]|`RequestTimeoutExceptione->`Assoc[("error",(`String"RequestTimeoutException"));("details",(RequestTimeoutException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`TooManyRequestsExceptione->`Assoc[("error",(`String"TooManyRequestsException"));("details",(TooManyRequestsException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("vectors",(Option.mapx.vectors~f:GetVectorsOutputList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvectors=(Option.map~f:GetVectorsOutputList.of_xml)(Xml.childxml_arg0"vectors")inmake?vectors()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvectors=field_mapjson__"vectors"GetVectorsOutputList.of_jsoninmake?vectors()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns vector attributes. To specify the vector index, you can either use both the vector bucket name and the vector index name, or use the vector index Amazon Resource Name (ARN). Permissions You must have the s3vectors:GetVectors permission to use this operation."]moduleGetVectorsInput=structtypenonrect={vectorBucketName:VectorBucketName.toption[@ocaml.doc"The name of the vector bucket that contains the vector index."];indexName:IndexName.toption[@ocaml.doc"The name of the vector index."];indexArn:IndexArn.toption[@ocaml.doc"The ARN of the vector index."];keys:GetVectorsInputList.t[@ocaml.doc"The names of the vectors you want to return attributes for."];returnData:Boolean.toption[@ocaml.doc"Indicates whether to include the vector data in the response. The default value is false."];returnMetadata:Boolean.toption[@ocaml.doc"Indicates whether to include metadata in the response. The default value is false."]}letcontext_="GetVectorsInput"letmake?vectorBucketName=fun?indexName->fun?indexArn->fun?returnData->fun?returnMetadata->fun~keys->fun()->{vectorBucketName;indexName;indexArn;returnData;returnMetadata;keys}letto_valuex=structure_to_value[("vectorBucketName",(Option.mapx.vectorBucketName~f:VectorBucketName.to_value));("indexName",(Option.mapx.indexName~f:IndexName.to_value));("indexArn",(Option.mapx.indexArn~f:IndexArn.to_value));("keys",(Some(GetVectorsInputList.to_valuex.keys)));("returnData",(Option.mapx.returnData~f:Boolean.to_value));("returnMetadata",(Option.mapx.returnMetadata~f:Boolean.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letreturnMetadata=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"returnMetadata")inletreturnData=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"returnData")inletkeys=GetVectorsInputList.of_xml(Xml.child_exn~context:context_xml_arg0"keys")inletindexArn=(Option.map~f:IndexArn.of_xml)(Xml.childxml_arg0"indexArn")inletindexName=(Option.map~f:IndexName.of_xml)(Xml.childxml_arg0"indexName")inletvectorBucketName=(Option.map~f:VectorBucketName.of_xml)(Xml.childxml_arg0"vectorBucketName")inmake?returnMetadata?returnData~keys?indexArn?indexName?vectorBucketName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letreturnMetadata=field_mapjson__"returnMetadata"Boolean.of_jsoninletreturnData=field_mapjson__"returnData"Boolean.of_jsoninletkeys=field_map_exnjson__"keys"GetVectorsInputList.of_jsoninletindexArn=field_mapjson__"indexArn"IndexArn.of_jsoninletindexName=field_mapjson__"indexName"IndexName.of_jsoninletvectorBucketName=field_mapjson__"vectorBucketName"VectorBucketName.of_jsoninmake?returnMetadata?returnData~keys?indexArn?indexName?vectorBucketName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns vector attributes. To specify the vector index, you can either use both the vector bucket name and the vector index name, or use the vector index Amazon Resource Name (ARN). Permissions You must have the s3vectors:GetVectors permission to use this operation."]moduleGetVectorBucketPolicyOutput=structtypenonrect={policy:VectorBucketPolicy.toption[@ocaml.doc"The JSON that defines the policy."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`NotFoundExceptionofNotFoundException.t|`RequestTimeoutExceptionofRequestTimeoutException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`TooManyRequestsExceptionofTooManyRequestsException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?policy=fun()->{policy}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"NotFoundException"->`NotFoundException(NotFoundException.of_jsonjson)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"NotFoundException"->`NotFoundException(NotFoundException.of_xmlxml)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`NotFoundExceptione->`Assoc[("error",(`String"NotFoundException"));("details",(NotFoundException.to_jsone))]|`RequestTimeoutExceptione->`Assoc[("error",(`String"RequestTimeoutException"));("details",(RequestTimeoutException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`TooManyRequestsExceptione->`Assoc[("error",(`String"TooManyRequestsException"));("details",(TooManyRequestsException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("policy",(Option.mapx.policy~f:VectorBucketPolicy.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpolicy=(Option.map~f:VectorBucketPolicy.of_xml)(Xml.childxml_arg0"policy")inmake?policy()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpolicy=field_mapjson__"policy"VectorBucketPolicy.of_jsoninmake?policy()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Gets details about a vector bucket policy. To specify the bucket, you must use either the vector bucket name or the vector bucket Amazon Resource Name (ARN). Permissions You must have the s3vectors:GetVectorBucketPolicy permission to use this operation."]moduleGetVectorBucketPolicyInput=structtypenonrect={vectorBucketName:VectorBucketName.toption[@ocaml.doc"The name of the vector bucket."];vectorBucketArn:VectorBucketArn.toption[@ocaml.doc"The ARN of the vector bucket."]}letmake?vectorBucketName=fun?vectorBucketArn->fun()->{vectorBucketName;vectorBucketArn}letto_valuex=structure_to_value[("vectorBucketName",(Option.mapx.vectorBucketName~f:VectorBucketName.to_value));("vectorBucketArn",(Option.mapx.vectorBucketArn~f:VectorBucketArn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvectorBucketArn=(Option.map~f:VectorBucketArn.of_xml)(Xml.childxml_arg0"vectorBucketArn")inletvectorBucketName=(Option.map~f:VectorBucketName.of_xml)(Xml.childxml_arg0"vectorBucketName")inmake?vectorBucketArn?vectorBucketName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvectorBucketArn=field_mapjson__"vectorBucketArn"VectorBucketArn.of_jsoninletvectorBucketName=field_mapjson__"vectorBucketName"VectorBucketName.of_jsoninmake?vectorBucketArn?vectorBucketName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Gets details about a vector bucket policy. To specify the bucket, you must use either the vector bucket name or the vector bucket Amazon Resource Name (ARN). Permissions You must have the s3vectors:GetVectorBucketPolicy permission to use this operation."]moduleGetVectorBucketOutput=structtypenonrect={vectorBucket:VectorBucket.toption[@ocaml.doc"The attributes of the vector bucket."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`NotFoundExceptionofNotFoundException.t|`RequestTimeoutExceptionofRequestTimeoutException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`TooManyRequestsExceptionofTooManyRequestsException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?vectorBucket=fun()->{vectorBucket}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"NotFoundException"->`NotFoundException(NotFoundException.of_jsonjson)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"NotFoundException"->`NotFoundException(NotFoundException.of_xmlxml)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`NotFoundExceptione->`Assoc[("error",(`String"NotFoundException"));("details",(NotFoundException.to_jsone))]|`RequestTimeoutExceptione->`Assoc[("error",(`String"RequestTimeoutException"));("details",(RequestTimeoutException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`TooManyRequestsExceptione->`Assoc[("error",(`String"TooManyRequestsException"));("details",(TooManyRequestsException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("vectorBucket",(Option.mapx.vectorBucket~f:VectorBucket.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvectorBucket=(Option.map~f:VectorBucket.of_xml)(Xml.childxml_arg0"vectorBucket")inmake?vectorBucket()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvectorBucket=field_mapjson__"vectorBucket"VectorBucket.of_jsoninmake?vectorBucket()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns vector bucket attributes. To specify the bucket, you must use either the vector bucket name or the vector bucket Amazon Resource Name (ARN). Permissions You must have the s3vectors:GetVectorBucket permission to use this operation."]moduleGetVectorBucketInput=structtypenonrect={vectorBucketName:VectorBucketName.toption[@ocaml.doc"The name of the vector bucket to retrieve information about."];vectorBucketArn:VectorBucketArn.toption[@ocaml.doc"The ARN of the vector bucket to retrieve information about."]}letmake?vectorBucketName=fun?vectorBucketArn->fun()->{vectorBucketName;vectorBucketArn}letto_valuex=structure_to_value[("vectorBucketName",(Option.mapx.vectorBucketName~f:VectorBucketName.to_value));("vectorBucketArn",(Option.mapx.vectorBucketArn~f:VectorBucketArn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvectorBucketArn=(Option.map~f:VectorBucketArn.of_xml)(Xml.childxml_arg0"vectorBucketArn")inletvectorBucketName=(Option.map~f:VectorBucketName.of_xml)(Xml.childxml_arg0"vectorBucketName")inmake?vectorBucketArn?vectorBucketName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvectorBucketArn=field_mapjson__"vectorBucketArn"VectorBucketArn.of_jsoninletvectorBucketName=field_mapjson__"vectorBucketName"VectorBucketName.of_jsoninmake?vectorBucketArn?vectorBucketName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns vector bucket attributes. To specify the bucket, you must use either the vector bucket name or the vector bucket Amazon Resource Name (ARN). Permissions You must have the s3vectors:GetVectorBucket permission to use this operation."]moduleGetIndexOutput=structtypenonrect={index:Index.toption[@ocaml.doc"The attributes of the vector index."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`NotFoundExceptionofNotFoundException.t|`RequestTimeoutExceptionofRequestTimeoutException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`TooManyRequestsExceptionofTooManyRequestsException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?index=fun()->{index}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"NotFoundException"->`NotFoundException(NotFoundException.of_jsonjson)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"NotFoundException"->`NotFoundException(NotFoundException.of_xmlxml)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`NotFoundExceptione->`Assoc[("error",(`String"NotFoundException"));("details",(NotFoundException.to_jsone))]|`RequestTimeoutExceptione->`Assoc[("error",(`String"RequestTimeoutException"));("details",(RequestTimeoutException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`TooManyRequestsExceptione->`Assoc[("error",(`String"TooManyRequestsException"));("details",(TooManyRequestsException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("index",(Option.mapx.index~f:Index.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letindex=(Option.map~f:Index.of_xml)(Xml.childxml_arg0"index")inmake?index()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letindex=field_mapjson__"index"Index.of_jsoninmake?index()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns vector index attributes. To specify the vector index, you can either use both the vector bucket name and the vector index name, or use the vector index Amazon Resource Name (ARN). Permissions You must have the s3vectors:GetIndex permission to use this operation."]moduleGetIndexInput=structtypenonrect={vectorBucketName:VectorBucketName.toption[@ocaml.doc"The name of the vector bucket that contains the vector index."];indexName:IndexName.toption[@ocaml.doc"The name of the vector index."];indexArn:IndexArn.toption[@ocaml.doc"The ARN of the vector index."]}letmake?vectorBucketName=fun?indexName->fun?indexArn->fun()->{vectorBucketName;indexName;indexArn}letto_valuex=structure_to_value[("vectorBucketName",(Option.mapx.vectorBucketName~f:VectorBucketName.to_value));("indexName",(Option.mapx.indexName~f:IndexName.to_value));("indexArn",(Option.mapx.indexArn~f:IndexArn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letindexArn=(Option.map~f:IndexArn.of_xml)(Xml.childxml_arg0"indexArn")inletindexName=(Option.map~f:IndexName.of_xml)(Xml.childxml_arg0"indexName")inletvectorBucketName=(Option.map~f:VectorBucketName.of_xml)(Xml.childxml_arg0"vectorBucketName")inmake?indexArn?indexName?vectorBucketName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letindexArn=field_mapjson__"indexArn"IndexArn.of_jsoninletindexName=field_mapjson__"indexName"IndexName.of_jsoninletvectorBucketName=field_mapjson__"vectorBucketName"VectorBucketName.of_jsoninmake?indexArn?indexName?vectorBucketName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns vector index attributes. To specify the vector index, you can either use both the vector bucket name and the vector index name, or use the vector index Amazon Resource Name (ARN). Permissions You must have the s3vectors:GetIndex permission to use this operation."]moduleDeleteVectorsOutput=structtypenonrect=unittypenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`KmsDisabledExceptionofKmsDisabledException.t|`KmsInvalidKeyUsageExceptionofKmsInvalidKeyUsageException.t|`KmsInvalidStateExceptionofKmsInvalidStateException.t|`KmsNotFoundExceptionofKmsNotFoundException.t|`NotFoundExceptionofNotFoundException.t|`RequestTimeoutExceptionofRequestTimeoutException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`TooManyRequestsExceptionofTooManyRequestsException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake()=()leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"KmsDisabledException"->`KmsDisabledException(KmsDisabledException.of_jsonjson)|"KmsInvalidKeyUsageException"->`KmsInvalidKeyUsageException(KmsInvalidKeyUsageException.of_jsonjson)|"KmsInvalidStateException"->`KmsInvalidStateException(KmsInvalidStateException.of_jsonjson)|"KmsNotFoundException"->`KmsNotFoundException(KmsNotFoundException.of_jsonjson)|"NotFoundException"->`NotFoundException(NotFoundException.of_jsonjson)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"KmsDisabledException"->`KmsDisabledException(KmsDisabledException.of_xmlxml)|"KmsInvalidKeyUsageException"->`KmsInvalidKeyUsageException(KmsInvalidKeyUsageException.of_xmlxml)|"KmsInvalidStateException"->`KmsInvalidStateException(KmsInvalidStateException.of_xmlxml)|"KmsNotFoundException"->`KmsNotFoundException(KmsNotFoundException.of_xmlxml)|"NotFoundException"->`NotFoundException(NotFoundException.of_xmlxml)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`KmsDisabledExceptione->`Assoc[("error",(`String"KmsDisabledException"));("details",(KmsDisabledException.to_jsone))]|`KmsInvalidKeyUsageExceptione->`Assoc[("error",(`String"KmsInvalidKeyUsageException"));("details",(KmsInvalidKeyUsageException.to_jsone))]|`KmsInvalidStateExceptione->`Assoc[("error",(`String"KmsInvalidStateException"));("details",(KmsInvalidStateException.to_jsone))]|`KmsNotFoundExceptione->`Assoc[("error",(`String"KmsNotFoundException"));("details",(KmsNotFoundException.to_jsone))]|`NotFoundExceptione->`Assoc[("error",(`String"NotFoundException"));("details",(NotFoundException.to_jsone))]|`RequestTimeoutExceptione->`Assoc[("error",(`String"RequestTimeoutException"));("details",(RequestTimeoutException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`TooManyRequestsExceptione->`Assoc[("error",(`String"TooManyRequestsException"));("details",(TooManyRequestsException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes one or more vectors in a vector index. To specify the vector index, you can either use both the vector bucket name and vector index name, or use the vector index Amazon Resource Name (ARN). Permissions You must have the s3vectors:DeleteVectors permission to use this operation."]moduleDeleteVectorsInput=structtypenonrect={vectorBucketName:VectorBucketName.toption[@ocaml.doc"The name of the vector bucket that contains the vector index."];indexName:IndexName.toption[@ocaml.doc"The name of the vector index that contains a vector you want to delete."];indexArn:IndexArn.toption[@ocaml.doc"The ARN of the vector index that contains a vector you want to delete."];keys:DeleteVectorsInputList.t[@ocaml.doc"The keys of the vectors to delete."]}letcontext_="DeleteVectorsInput"letmake?vectorBucketName=fun?indexName->fun?indexArn->fun~keys->fun()->{vectorBucketName;indexName;indexArn;keys}letto_valuex=structure_to_value[("vectorBucketName",(Option.mapx.vectorBucketName~f:VectorBucketName.to_value));("indexName",(Option.mapx.indexName~f:IndexName.to_value));("indexArn",(Option.mapx.indexArn~f:IndexArn.to_value));("keys",(Some(DeleteVectorsInputList.to_valuex.keys)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letkeys=DeleteVectorsInputList.of_xml(Xml.child_exn~context:context_xml_arg0"keys")inletindexArn=(Option.map~f:IndexArn.of_xml)(Xml.childxml_arg0"indexArn")inletindexName=(Option.map~f:IndexName.of_xml)(Xml.childxml_arg0"indexName")inletvectorBucketName=(Option.map~f:VectorBucketName.of_xml)(Xml.childxml_arg0"vectorBucketName")inmake~keys?indexArn?indexName?vectorBucketName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letkeys=field_map_exnjson__"keys"DeleteVectorsInputList.of_jsoninletindexArn=field_mapjson__"indexArn"IndexArn.of_jsoninletindexName=field_mapjson__"indexName"IndexName.of_jsoninletvectorBucketName=field_mapjson__"vectorBucketName"VectorBucketName.of_jsoninmake~keys?indexArn?indexName?vectorBucketName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes one or more vectors in a vector index. To specify the vector index, you can either use both the vector bucket name and vector index name, or use the vector index Amazon Resource Name (ARN). Permissions You must have the s3vectors:DeleteVectors permission to use this operation."]moduleDeleteVectorBucketPolicyOutput=structtypenonrect=unittypenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`NotFoundExceptionofNotFoundException.t|`RequestTimeoutExceptionofRequestTimeoutException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`TooManyRequestsExceptionofTooManyRequestsException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake()=()leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"NotFoundException"->`NotFoundException(NotFoundException.of_jsonjson)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"NotFoundException"->`NotFoundException(NotFoundException.of_xmlxml)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`NotFoundExceptione->`Assoc[("error",(`String"NotFoundException"));("details",(NotFoundException.to_jsone))]|`RequestTimeoutExceptione->`Assoc[("error",(`String"RequestTimeoutException"));("details",(RequestTimeoutException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`TooManyRequestsExceptione->`Assoc[("error",(`String"TooManyRequestsException"));("details",(TooManyRequestsException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a vector bucket policy. To specify the bucket, you must use either the vector bucket name or the vector bucket Amazon Resource Name (ARN). Permissions You must have the s3vectors:DeleteVectorBucketPolicy permission to use this operation."]moduleDeleteVectorBucketPolicyInput=structtypenonrect={vectorBucketName:VectorBucketName.toption[@ocaml.doc"The name of the vector bucket to delete the policy from."];vectorBucketArn:VectorBucketArn.toption[@ocaml.doc"The ARN of the vector bucket to delete the policy from."]}letmake?vectorBucketName=fun?vectorBucketArn->fun()->{vectorBucketName;vectorBucketArn}letto_valuex=structure_to_value[("vectorBucketName",(Option.mapx.vectorBucketName~f:VectorBucketName.to_value));("vectorBucketArn",(Option.mapx.vectorBucketArn~f:VectorBucketArn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvectorBucketArn=(Option.map~f:VectorBucketArn.of_xml)(Xml.childxml_arg0"vectorBucketArn")inletvectorBucketName=(Option.map~f:VectorBucketName.of_xml)(Xml.childxml_arg0"vectorBucketName")inmake?vectorBucketArn?vectorBucketName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvectorBucketArn=field_mapjson__"vectorBucketArn"VectorBucketArn.of_jsoninletvectorBucketName=field_mapjson__"vectorBucketName"VectorBucketName.of_jsoninmake?vectorBucketArn?vectorBucketName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a vector bucket policy. To specify the bucket, you must use either the vector bucket name or the vector bucket Amazon Resource Name (ARN). Permissions You must have the s3vectors:DeleteVectorBucketPolicy permission to use this operation."]moduleDeleteVectorBucketOutput=structtypenonrect=unittypenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`NotFoundExceptionofNotFoundException.t|`RequestTimeoutExceptionofRequestTimeoutException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`TooManyRequestsExceptionofTooManyRequestsException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake()=()leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"NotFoundException"->`NotFoundException(NotFoundException.of_jsonjson)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"NotFoundException"->`NotFoundException(NotFoundException.of_xmlxml)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`NotFoundExceptione->`Assoc[("error",(`String"NotFoundException"));("details",(NotFoundException.to_jsone))]|`RequestTimeoutExceptione->`Assoc[("error",(`String"RequestTimeoutException"));("details",(RequestTimeoutException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`TooManyRequestsExceptione->`Assoc[("error",(`String"TooManyRequestsException"));("details",(TooManyRequestsException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a vector bucket. All vector indexes in the vector bucket must be deleted before the vector bucket can be deleted. To perform this operation, you must use either the vector bucket name or the vector bucket Amazon Resource Name (ARN). Permissions You must have the s3vectors:DeleteVectorBucket permission to use this operation."]moduleDeleteVectorBucketInput=structtypenonrect={vectorBucketName:VectorBucketName.toption[@ocaml.doc"The name of the vector bucket to delete."];vectorBucketArn:VectorBucketArn.toption[@ocaml.doc"The ARN of the vector bucket to delete."]}letmake?vectorBucketName=fun?vectorBucketArn->fun()->{vectorBucketName;vectorBucketArn}letto_valuex=structure_to_value[("vectorBucketName",(Option.mapx.vectorBucketName~f:VectorBucketName.to_value));("vectorBucketArn",(Option.mapx.vectorBucketArn~f:VectorBucketArn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvectorBucketArn=(Option.map~f:VectorBucketArn.of_xml)(Xml.childxml_arg0"vectorBucketArn")inletvectorBucketName=(Option.map~f:VectorBucketName.of_xml)(Xml.childxml_arg0"vectorBucketName")inmake?vectorBucketArn?vectorBucketName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvectorBucketArn=field_mapjson__"vectorBucketArn"VectorBucketArn.of_jsoninletvectorBucketName=field_mapjson__"vectorBucketName"VectorBucketName.of_jsoninmake?vectorBucketArn?vectorBucketName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a vector bucket. All vector indexes in the vector bucket must be deleted before the vector bucket can be deleted. To perform this operation, you must use either the vector bucket name or the vector bucket Amazon Resource Name (ARN). Permissions You must have the s3vectors:DeleteVectorBucket permission to use this operation."]moduleDeleteIndexOutput=structtypenonrect=unittypenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`NotFoundExceptionofNotFoundException.t|`RequestTimeoutExceptionofRequestTimeoutException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`TooManyRequestsExceptionofTooManyRequestsException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake()=()leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"NotFoundException"->`NotFoundException(NotFoundException.of_jsonjson)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"NotFoundException"->`NotFoundException(NotFoundException.of_xmlxml)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`NotFoundExceptione->`Assoc[("error",(`String"NotFoundException"));("details",(NotFoundException.to_jsone))]|`RequestTimeoutExceptione->`Assoc[("error",(`String"RequestTimeoutException"));("details",(RequestTimeoutException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`TooManyRequestsExceptione->`Assoc[("error",(`String"TooManyRequestsException"));("details",(TooManyRequestsException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a vector index. To specify the vector index, you can either use both the vector bucket name and vector index name, or use the vector index Amazon Resource Name (ARN). Permissions You must have the s3vectors:DeleteIndex permission to use this operation."]moduleDeleteIndexInput=structtypenonrect={vectorBucketName:VectorBucketName.toption[@ocaml.doc"The name of the vector bucket that contains the vector index."];indexName:IndexName.toption[@ocaml.doc"The name of the vector index to delete."];indexArn:IndexArn.toption[@ocaml.doc"The ARN of the vector index to delete."]}letmake?vectorBucketName=fun?indexName->fun?indexArn->fun()->{vectorBucketName;indexName;indexArn}letto_valuex=structure_to_value[("vectorBucketName",(Option.mapx.vectorBucketName~f:VectorBucketName.to_value));("indexName",(Option.mapx.indexName~f:IndexName.to_value));("indexArn",(Option.mapx.indexArn~f:IndexArn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letindexArn=(Option.map~f:IndexArn.of_xml)(Xml.childxml_arg0"indexArn")inletindexName=(Option.map~f:IndexName.of_xml)(Xml.childxml_arg0"indexName")inletvectorBucketName=(Option.map~f:VectorBucketName.of_xml)(Xml.childxml_arg0"vectorBucketName")inmake?indexArn?indexName?vectorBucketName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letindexArn=field_mapjson__"indexArn"IndexArn.of_jsoninletindexName=field_mapjson__"indexName"IndexName.of_jsoninletvectorBucketName=field_mapjson__"vectorBucketName"VectorBucketName.of_jsoninmake?indexArn?indexName?vectorBucketName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a vector index. To specify the vector index, you can either use both the vector bucket name and vector index name, or use the vector index Amazon Resource Name (ARN). Permissions You must have the s3vectors:DeleteIndex permission to use this operation."]moduleCreateVectorBucketOutput=structtypenonrect={vectorBucketArn:VectorBucketArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the newly created vector bucket."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`RequestTimeoutExceptionofRequestTimeoutException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`TooManyRequestsExceptionofTooManyRequestsException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?vectorBucketArn=fun()->{vectorBucketArn}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_jsonjson)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_xmlxml)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`RequestTimeoutExceptione->`Assoc[("error",(`String"RequestTimeoutException"));("details",(RequestTimeoutException.to_jsone))]|`ServiceQuotaExceededExceptione->`Assoc[("error",(`String"ServiceQuotaExceededException"));("details",(ServiceQuotaExceededException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`TooManyRequestsExceptione->`Assoc[("error",(`String"TooManyRequestsException"));("details",(TooManyRequestsException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("vectorBucketArn",(Option.mapx.vectorBucketArn~f:VectorBucketArn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvectorBucketArn=(Option.map~f:VectorBucketArn.of_xml)(Xml.childxml_arg0"vectorBucketArn")inmake?vectorBucketArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvectorBucketArn=field_mapjson__"vectorBucketArn"VectorBucketArn.of_jsoninmake?vectorBucketArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a vector bucket in the Amazon Web Services Region that you want your bucket to be in. Permissions You must have the s3vectors:CreateVectorBucket permission to use this operation. You must have the s3vectors:TagResource permission in addition to s3vectors:CreateVectorBucket permission to create a vector bucket with tags."]moduleCreateVectorBucketInput=structtypenonrect={vectorBucketName:VectorBucketName.t[@ocaml.doc"The name of the vector bucket to create."];encryptionConfiguration:EncryptionConfiguration.toption[@ocaml.doc"The encryption configuration for the vector bucket. By default, if you don't specify, all new vectors in Amazon S3 vector buckets use server-side encryption with Amazon S3 managed keys (SSE-S3), specifically AES256."];tags:TagsMap.toption[@ocaml.doc"An array of user-defined tags that you would like to apply to the vector bucket that you are creating. A tag is a key-value pair that you apply to your resources. Tags can help you organize and control access to resources. For more information, see Tagging for cost allocation or attribute-based access control (ABAC). You must have the s3vectors:TagResource permission in addition to s3vectors:CreateVectorBucket permission to create a vector bucket with tags."]}letcontext_="CreateVectorBucketInput"letmake?encryptionConfiguration=fun?tags->fun~vectorBucketName->fun()->{encryptionConfiguration;tags;vectorBucketName}letto_valuex=structure_to_value[("vectorBucketName",(Some(VectorBucketName.to_valuex.vectorBucketName)));("encryptionConfiguration",(Option.mapx.encryptionConfiguration~f:EncryptionConfiguration.to_value));("tags",(Option.mapx.tags~f:TagsMap.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:TagsMap.of_xml)(Xml.childxml_arg0"tags")inletencryptionConfiguration=(Option.map~f:EncryptionConfiguration.of_xml)(Xml.childxml_arg0"encryptionConfiguration")inletvectorBucketName=VectorBucketName.of_xml(Xml.child_exn~context:context_xml_arg0"vectorBucketName")inmake?tags?encryptionConfiguration~vectorBucketName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"tags"TagsMap.of_jsoninletencryptionConfiguration=field_mapjson__"encryptionConfiguration"EncryptionConfiguration.of_jsoninletvectorBucketName=field_map_exnjson__"vectorBucketName"VectorBucketName.of_jsoninmake?tags?encryptionConfiguration~vectorBucketName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a vector bucket in the Amazon Web Services Region that you want your bucket to be in. Permissions You must have the s3vectors:CreateVectorBucket permission to use this operation. You must have the s3vectors:TagResource permission in addition to s3vectors:CreateVectorBucket permission to create a vector bucket with tags."]moduleCreateIndexOutput=structtypenonrect={indexArn:IndexArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the newly created vector index."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`NotFoundExceptionofNotFoundException.t|`RequestTimeoutExceptionofRequestTimeoutException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`ServiceUnavailableExceptionofServiceUnavailableException.t|`TooManyRequestsExceptionofTooManyRequestsException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?indexArn=fun()->{indexArn}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"NotFoundException"->`NotFoundException(NotFoundException.of_jsonjson)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_jsonjson)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_jsonjson)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_jsonjson)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"NotFoundException"->`NotFoundException(NotFoundException.of_xmlxml)|"RequestTimeoutException"->`RequestTimeoutException(RequestTimeoutException.of_xmlxml)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_xmlxml)|"ServiceUnavailableException"->`ServiceUnavailableException(ServiceUnavailableException.of_xmlxml)|"TooManyRequestsException"->`TooManyRequestsException(TooManyRequestsException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`NotFoundExceptione->`Assoc[("error",(`String"NotFoundException"));("details",(NotFoundException.to_jsone))]|`RequestTimeoutExceptione->`Assoc[("error",(`String"RequestTimeoutException"));("details",(RequestTimeoutException.to_jsone))]|`ServiceQuotaExceededExceptione->`Assoc[("error",(`String"ServiceQuotaExceededException"));("details",(ServiceQuotaExceededException.to_jsone))]|`ServiceUnavailableExceptione->`Assoc[("error",(`String"ServiceUnavailableException"));("details",(ServiceUnavailableException.to_jsone))]|`TooManyRequestsExceptione->`Assoc[("error",(`String"TooManyRequestsException"));("details",(TooManyRequestsException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("indexArn",(Option.mapx.indexArn~f:IndexArn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letindexArn=(Option.map~f:IndexArn.of_xml)(Xml.childxml_arg0"indexArn")inmake?indexArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letindexArn=field_mapjson__"indexArn"IndexArn.of_jsoninmake?indexArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a vector index within a vector bucket. To specify the vector bucket, you must use either the vector bucket name or the vector bucket Amazon Resource Name (ARN). Permissions You must have the s3vectors:CreateIndex permission to use this operation. You must have the s3vectors:TagResource permission in addition to s3vectors:CreateIndex permission to create a vector index with tags."]moduleCreateIndexInput=structtypenonrect={vectorBucketName:VectorBucketName.toption[@ocaml.doc"The name of the vector bucket to create the vector index in."];vectorBucketArn:VectorBucketArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the vector bucket to create the vector index in."];indexName:IndexName.t[@ocaml.doc"The name of the vector index to create."];dataType:DataType.t[@ocaml.doc"The data type of the vectors to be inserted into the vector index."];dimension:Dimension.t[@ocaml.doc"The dimensions of the vectors to be inserted into the vector index."];distanceMetric:DistanceMetric.t[@ocaml.doc"The distance metric to be used for similarity search."];metadataConfiguration:MetadataConfiguration.toption[@ocaml.doc"The metadata configuration for the vector index."];encryptionConfiguration:EncryptionConfiguration.toption[@ocaml.doc"The encryption configuration for a vector index. By default, if you don't specify, all new vectors in the vector index will use the encryption configuration of the vector bucket."];tags:TagsMap.toption[@ocaml.doc"An array of user-defined tags that you would like to apply to the vector index that you are creating. A tag is a key-value pair that you apply to your resources. Tags can help you organize, track costs, and control access to resources. For more information, see Tagging for cost allocation or attribute-based access control (ABAC). You must have the s3vectors:TagResource permission in addition to s3vectors:CreateIndex permission to create a vector index with tags."]}letcontext_="CreateIndexInput"letmake?vectorBucketName=fun?vectorBucketArn->fun?metadataConfiguration->fun?encryptionConfiguration->fun?tags->fun~indexName->fun~dataType->fun~dimension->fun~distanceMetric->fun()->{vectorBucketName;vectorBucketArn;metadataConfiguration;encryptionConfiguration;tags;indexName;dataType;dimension;distanceMetric}letto_valuex=structure_to_value[("vectorBucketName",(Option.mapx.vectorBucketName~f:VectorBucketName.to_value));("vectorBucketArn",(Option.mapx.vectorBucketArn~f:VectorBucketArn.to_value));("indexName",(Some(IndexName.to_valuex.indexName)));("dataType",(Some(DataType.to_valuex.dataType)));("dimension",(Some(Dimension.to_valuex.dimension)));("distanceMetric",(Some(DistanceMetric.to_valuex.distanceMetric)));("metadataConfiguration",(Option.mapx.metadataConfiguration~f:MetadataConfiguration.to_value));("encryptionConfiguration",(Option.mapx.encryptionConfiguration~f:EncryptionConfiguration.to_value));("tags",(Option.mapx.tags~f:TagsMap.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:TagsMap.of_xml)(Xml.childxml_arg0"tags")inletencryptionConfiguration=(Option.map~f:EncryptionConfiguration.of_xml)(Xml.childxml_arg0"encryptionConfiguration")inletmetadataConfiguration=(Option.map~f:MetadataConfiguration.of_xml)(Xml.childxml_arg0"metadataConfiguration")inletdistanceMetric=DistanceMetric.of_xml(Xml.child_exn~context:context_xml_arg0"distanceMetric")inletdimension=Dimension.of_xml(Xml.child_exn~context:context_xml_arg0"dimension")inletdataType=DataType.of_xml(Xml.child_exn~context:context_xml_arg0"dataType")inletindexName=IndexName.of_xml(Xml.child_exn~context:context_xml_arg0"indexName")inletvectorBucketArn=(Option.map~f:VectorBucketArn.of_xml)(Xml.childxml_arg0"vectorBucketArn")inletvectorBucketName=(Option.map~f:VectorBucketName.of_xml)(Xml.childxml_arg0"vectorBucketName")inmake?tags?encryptionConfiguration?metadataConfiguration~distanceMetric~dimension~dataType~indexName?vectorBucketArn?vectorBucketName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"tags"TagsMap.of_jsoninletencryptionConfiguration=field_mapjson__"encryptionConfiguration"EncryptionConfiguration.of_jsoninletmetadataConfiguration=field_mapjson__"metadataConfiguration"MetadataConfiguration.of_jsoninletdistanceMetric=field_map_exnjson__"distanceMetric"DistanceMetric.of_jsoninletdimension=field_map_exnjson__"dimension"Dimension.of_jsoninletdataType=field_map_exnjson__"dataType"DataType.of_jsoninletindexName=field_map_exnjson__"indexName"IndexName.of_jsoninletvectorBucketArn=field_mapjson__"vectorBucketArn"VectorBucketArn.of_jsoninletvectorBucketName=field_mapjson__"vectorBucketName"VectorBucketName.of_jsoninmake?tags?encryptionConfiguration?metadataConfiguration~distanceMetric~dimension~dataType~indexName?vectorBucketArn?vectorBucketName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a vector index within a vector bucket. To specify the vector bucket, you must use either the vector bucket name or the vector bucket Amazon Resource Name (ARN). Permissions You must have the s3vectors:CreateIndex permission to use this operation. You must have the s3vectors:TagResource permission in addition to s3vectors:CreateIndex permission to create a vector index with tags."]