1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195(* 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.voice_idletapiVersion="2021-09-27"letendpointPrefix="voiceid"letserviceFullName="Amazon Voice ID"letsignatureVersion="v4"letprotocol="json"letglobalEndpoint=endpointPrefix^".amazonaws.com"lettargetPrefix="VoiceID"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[]))])moduleWatchlistId=structtypenonrect=stringletcontext_="WatchlistId"letmakei=letopenResultinok_or_failwith((check_string_mini~min:22)>>=(fun()->(check_string_maxi~max:22)>>=(fun()->check_patterni~pattern:"^[a-zA-Z0-9]{22}$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"WatchlistId"jletto_json=simple_to_jsonto_valueendmoduleEnrollmentJobFraudDetectionConfigWatchlistIds=structtypenonrect=WatchlistId.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:1)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:WatchlistId.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:WatchlistId.of_xml)letof_jsonj=list_of_json~kind:"EnrollmentJobFraudDetectionConfigWatchlistIds"~of_json:WatchlistId.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleFraudDetectionAction=structtypenonrect=|IGNORE|FAIL|Non_static_idofstringletmakei=iletto_string=function|IGNORE->"IGNORE"|FAIL->"FAIL"|Non_static_ids->sletof_string=function|"IGNORE"->IGNORE|"FAIL"->FAIL|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 FraudDetectionAction"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"FraudDetectionAction"j)letto_json=simple_to_jsonto_valueendmoduleScore=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:100)>>=(fun()->check_int_mini~min:0));iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for Score"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleInteger=structtypenonrect=intletmakei=iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for Integer"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleString_=structtypenonrect=stringletcontext_="String"letmakei=letopenResultinok_or_failwith(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:"String"jletto_json=simple_to_jsonto_valueendmoduleKmsKeyId=structtypenonrect=stringletcontext_="KmsKeyId"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:"KmsKeyId"jletto_json=simple_to_jsonto_valueendmoduleServerSideEncryptionUpdateStatus=structtypenonrect=|IN_PROGRESS|COMPLETED|FAILED|Non_static_idofstringletmakei=iletto_string=function|IN_PROGRESS->"IN_PROGRESS"|COMPLETED->"COMPLETED"|FAILED->"FAILED"|Non_static_ids->sletof_string=function|"IN_PROGRESS"->IN_PROGRESS|"COMPLETED"->COMPLETED|"FAILED"->FAILED|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration ServerSideEncryptionUpdateStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ServerSideEncryptionUpdateStatus"j)letto_json=simple_to_jsonto_valueendmoduleGeneratedFraudsterId=structtypenonrect=stringletcontext_="GeneratedFraudsterId"letmakei=letopenResultinok_or_failwith((check_string_mini~min:25)>>=(fun()->(check_string_maxi~max:25)>>=(fun()->check_patterni~pattern:"^id#[a-zA-Z0-9]{22}$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"GeneratedFraudsterId"jletto_json=simple_to_jsonto_valueendmoduleTagKey=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_valueendmoduleEnrollmentJobFraudDetectionConfig=structtypenonrect={fraudDetectionAction:FraudDetectionAction.toption[@ocaml.doc"The action to take when the given speaker is flagged by the fraud detection system. The default value is FAIL, which fails the speaker enrollment. Changing this value to IGNORE results in the speaker being enrolled even if they are flagged by the fraud detection system."];riskThreshold:Score.toption[@ocaml.doc"Threshold value for determining whether the speaker is a high risk to be fraudulent. If the detected risk score calculated by Voice ID is greater than or equal to the threshold, the speaker is considered a fraudster."];watchlistIds:EnrollmentJobFraudDetectionConfigWatchlistIds.toption[@ocaml.doc"The identifier of watchlists against which fraud detection is performed."]}letmake?fraudDetectionAction=fun?riskThreshold->fun?watchlistIds->fun()->{fraudDetectionAction;riskThreshold;watchlistIds}letto_valuex=structure_to_value[("FraudDetectionAction",(Option.mapx.fraudDetectionAction~f:FraudDetectionAction.to_value));("RiskThreshold",(Option.mapx.riskThreshold~f:Score.to_value));("WatchlistIds",(Option.mapx.watchlistIds~f:EnrollmentJobFraudDetectionConfigWatchlistIds.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letwatchlistIds=(Option.map~f:EnrollmentJobFraudDetectionConfigWatchlistIds.of_xml)(Xml.childxml_arg0"WatchlistIds")inletriskThreshold=(Option.map~f:Score.of_xml)(Xml.childxml_arg0"RiskThreshold")inletfraudDetectionAction=(Option.map~f:FraudDetectionAction.of_xml)(Xml.childxml_arg0"FraudDetectionAction")inmake?watchlistIds?riskThreshold?fraudDetectionAction()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letwatchlistIds=field_mapjson__"WatchlistIds"EnrollmentJobFraudDetectionConfigWatchlistIds.of_jsoninletriskThreshold=field_mapjson__"RiskThreshold"Score.of_jsoninletfraudDetectionAction=field_mapjson__"FraudDetectionAction"FraudDetectionAction.of_jsoninmake?watchlistIds?riskThreshold?fraudDetectionAction()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The fraud detection configuration to be used during the batch speaker enrollment job."]moduleExistingEnrollmentAction=structtypenonrect=|SKIP|OVERWRITE|Non_static_idofstringletmakei=iletto_string=function|SKIP->"SKIP"|OVERWRITE->"OVERWRITE"|Non_static_ids->sletof_string=function|"SKIP"->SKIP|"OVERWRITE"->OVERWRITE|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 ExistingEnrollmentAction"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ExistingEnrollmentAction"j)letto_json=simple_to_jsonto_valueendmoduleS3Uri=structtypenonrect=stringletcontext_="S3Uri"letmakei=letopenResultinok_or_failwith((check_string_mini~min:0)>>=(fun()->(check_string_maxi~max:1024)>>=(fun()->check_patterni~pattern:"^s3://[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:"S3Uri"jletto_json=simple_to_jsonto_valueendmoduleDuplicateRegistrationAction=structtypenonrect=|SKIP|REGISTER_AS_NEW|Non_static_idofstringletmakei=iletto_string=function|SKIP->"SKIP"|REGISTER_AS_NEW->"REGISTER_AS_NEW"|Non_static_ids->sletof_string=function|"SKIP"->SKIP|"REGISTER_AS_NEW"->REGISTER_AS_NEW|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 DuplicateRegistrationAction"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"DuplicateRegistrationAction"j)letto_json=simple_to_jsonto_valueendmoduleRegistrationConfigWatchlistIds=structtypenonrect=WatchlistId.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:1)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:WatchlistId.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:WatchlistId.of_xml)letof_jsonj=list_of_json~kind:"RegistrationConfigWatchlistIds"~of_json:WatchlistId.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_valueendmoduleDomainId=structtypenonrect=stringletcontext_="DomainId"letmakei=letopenResultinok_or_failwith((check_string_mini~min:22)>>=(fun()->(check_string_maxi~max:22)>>=(fun()->check_patterni~pattern:"^[a-zA-Z0-9]{22}$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"DomainId"jletto_json=simple_to_jsonto_valueendmoduleTimestamp=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_valueendmoduleWatchlistDescription=structtypenonrect=stringletcontext_="WatchlistDescription"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:1024)>>=(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:"WatchlistDescription"jletto_json=simple_to_jsonto_valueendmoduleWatchlistName=structtypenonrect=stringletcontext_="WatchlistName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:256)>>=(fun()->check_patterni~pattern:"^[a-zA-Z0-9][a-zA-Z0-9_-]*$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"WatchlistName"jletto_json=simple_to_jsonto_valueendmoduleCustomerSpeakerId=structtypenonrect=stringletcontext_="CustomerSpeakerId"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:256)>>=(fun()->check_patterni~pattern:"^[a-zA-Z0-9][a-zA-Z0-9_-]*$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"CustomerSpeakerId"jletto_json=simple_to_jsonto_valueendmoduleGeneratedSpeakerId=structtypenonrect=stringletcontext_="GeneratedSpeakerId"letmakei=letopenResultinok_or_failwith((check_string_mini~min:25)>>=(fun()->(check_string_maxi~max:25)>>=(fun()->check_patterni~pattern:"^id#[a-zA-Z0-9]{22}$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"GeneratedSpeakerId"jletto_json=simple_to_jsonto_valueendmoduleSpeakerStatus=structtypenonrect=|ENROLLED|EXPIRED|OPTED_OUT|PENDING|Non_static_idofstringletmakei=iletto_string=function|ENROLLED->"ENROLLED"|EXPIRED->"EXPIRED"|OPTED_OUT->"OPTED_OUT"|PENDING->"PENDING"|Non_static_ids->sletof_string=function|"ENROLLED"->ENROLLED|"EXPIRED"->EXPIRED|"OPTED_OUT"->OPTED_OUT|"PENDING"->PENDING|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration SpeakerStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"SpeakerStatus"j)letto_json=simple_to_jsonto_valueendmoduleFailureDetails=structtypenonrect={message:String_.toption[@ocaml.doc"A description of the error that caused the batch job failure."];statusCode:Integer.toption[@ocaml.doc"An HTTP status code representing the nature of the error."]}letmake?message=fun?statusCode->fun()->{message;statusCode}letto_valuex=structure_to_value[("Message",(Option.mapx.message~f:String_.to_value));("StatusCode",(Option.mapx.statusCode~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstatusCode=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"StatusCode")inletmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Message")inmake?statusCode?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstatusCode=field_mapjson__"StatusCode"Integer.of_jsoninletmessage=field_mapjson__"Message"String_.of_jsoninmake?statusCode?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains error details for a failed batch job."]moduleJobId=structtypenonrect=stringletcontext_="JobId"letmakei=letopenResultinok_or_failwith((check_string_mini~min:22)>>=(fun()->(check_string_maxi~max:22)>>=(fun()->check_patterni~pattern:"^[a-zA-Z0-9]{22}$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"JobId"jletto_json=simple_to_jsonto_valueendmoduleJobName=structtypenonrect=stringletcontext_="JobName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:256)>>=(fun()->check_patterni~pattern:"^[a-zA-Z0-9][a-zA-Z0-9_-]*$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"JobName"jletto_json=simple_to_jsonto_valueendmoduleJobProgress=structtypenonrect={percentComplete:Score.toption[@ocaml.doc"Shows the completed percentage of enrollment or registration requests listed in the input file."]}letmake?percentComplete=fun()->{percentComplete}letto_valuex=structure_to_value[("PercentComplete",(Option.mapx.percentComplete~f:Score.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpercentComplete=(Option.map~f:Score.of_xml)(Xml.childxml_arg0"PercentComplete")inmake?percentComplete()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpercentComplete=field_mapjson__"PercentComplete"Score.of_jsoninmake?percentComplete()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Indicates the completion progress for a batch job."]moduleSpeakerEnrollmentJobStatus=structtypenonrect=|SUBMITTED|IN_PROGRESS|COMPLETED|COMPLETED_WITH_ERRORS|FAILED|Non_static_idofstringletmakei=iletto_string=function|SUBMITTED->"SUBMITTED"|IN_PROGRESS->"IN_PROGRESS"|COMPLETED->"COMPLETED"|COMPLETED_WITH_ERRORS->"COMPLETED_WITH_ERRORS"|FAILED->"FAILED"|Non_static_ids->sletof_string=function|"SUBMITTED"->SUBMITTED|"IN_PROGRESS"->IN_PROGRESS|"COMPLETED"->COMPLETED|"COMPLETED_WITH_ERRORS"->COMPLETED_WITH_ERRORS|"FAILED"->FAILED|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration SpeakerEnrollmentJobStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"SpeakerEnrollmentJobStatus"j)letto_json=simple_to_jsonto_valueendmoduleResponseWatchlistIds=structtypenonrect=WatchlistId.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:WatchlistId.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:WatchlistId.of_xml)letof_jsonj=list_of_json~kind:"ResponseWatchlistIds"~of_json:WatchlistId.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleFraudsterRegistrationJobStatus=structtypenonrect=|SUBMITTED|IN_PROGRESS|COMPLETED|COMPLETED_WITH_ERRORS|FAILED|Non_static_idofstringletmakei=iletto_string=function|SUBMITTED->"SUBMITTED"|IN_PROGRESS->"IN_PROGRESS"|COMPLETED->"COMPLETED"|COMPLETED_WITH_ERRORS->"COMPLETED_WITH_ERRORS"|FAILED->"FAILED"|Non_static_ids->sletof_string=function|"SUBMITTED"->SUBMITTED|"IN_PROGRESS"->IN_PROGRESS|"COMPLETED"->COMPLETED|"COMPLETED_WITH_ERRORS"->COMPLETED_WITH_ERRORS|"FAILED"->FAILED|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration FraudsterRegistrationJobStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"FraudsterRegistrationJobStatus"j)letto_json=simple_to_jsonto_valueendmoduleArn=structtypenonrect=stringletcontext_="Arn"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^arn:aws(-[^:]+)?:voiceid.+:[0-9]{12}:domain/[a-zA-Z0-9]{22}$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"Arn"jletto_json=simple_to_jsonto_valueendmoduleDescription=structtypenonrect=stringletcontext_="Description"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:1024)>>=(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:"Description"jletto_json=simple_to_jsonto_valueendmoduleDomainName=structtypenonrect=stringletcontext_="DomainName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:256)>>=(fun()->check_patterni~pattern:"^[a-zA-Z0-9][a-zA-Z0-9_-]*$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"DomainName"jletto_json=simple_to_jsonto_valueendmoduleDomainStatus=structtypenonrect=|ACTIVE|PENDING|SUSPENDED|Non_static_idofstringletmakei=iletto_string=function|ACTIVE->"ACTIVE"|PENDING->"PENDING"|SUSPENDED->"SUSPENDED"|Non_static_ids->sletof_string=function|"ACTIVE"->ACTIVE|"PENDING"->PENDING|"SUSPENDED"->SUSPENDED|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 DomainStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"DomainStatus"j)letto_json=simple_to_jsonto_valueendmoduleServerSideEncryptionConfiguration=structtypenonrect={kmsKeyId:KmsKeyId.t[@ocaml.doc"The identifier of the KMS key to use to encrypt data stored by Voice ID. Voice ID doesn't support asymmetric customer managed keys."]}letcontext_="ServerSideEncryptionConfiguration"letmake~kmsKeyId=fun()->{kmsKeyId}letto_valuex=structure_to_value[("KmsKeyId",(Some(KmsKeyId.to_valuex.kmsKeyId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letkmsKeyId=KmsKeyId.of_xml(Xml.child_exn~context:context_xml_arg0"KmsKeyId")inmake~kmsKeyId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letkmsKeyId=field_map_exnjson__"KmsKeyId"KmsKeyId.of_jsoninmake~kmsKeyId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The configuration containing information about the customer managed key used for encrypting customer data."]moduleServerSideEncryptionUpdateDetails=structtypenonrect={message:String_.toption[@ocaml.doc"Message explaining the current UpdateStatus. When the UpdateStatus is FAILED, this message explains the cause of the failure."];oldKmsKeyId:KmsKeyId.toption[@ocaml.doc"The previous KMS key ID the domain was encrypted with, before ServerSideEncryptionConfiguration was updated to a new KMS key ID."];updateStatus:ServerSideEncryptionUpdateStatus.toption[@ocaml.doc"Status of the server-side encryption update. During an update, if there is an issue with the domain's current or old KMS key ID, such as an inaccessible or disabled key, then the status is FAILED. In order to resolve this, the key needs to be made accessible, and then an UpdateDomain call with the existing server-side encryption configuration will re-attempt this update process."]}letmake?message=fun?oldKmsKeyId->fun?updateStatus->fun()->{message;oldKmsKeyId;updateStatus}letto_valuex=structure_to_value[("Message",(Option.mapx.message~f:String_.to_value));("OldKmsKeyId",(Option.mapx.oldKmsKeyId~f:KmsKeyId.to_value));("UpdateStatus",(Option.mapx.updateStatus~f:ServerSideEncryptionUpdateStatus.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letupdateStatus=(Option.map~f:ServerSideEncryptionUpdateStatus.of_xml)(Xml.childxml_arg0"UpdateStatus")inletoldKmsKeyId=(Option.map~f:KmsKeyId.of_xml)(Xml.childxml_arg0"OldKmsKeyId")inletmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Message")inmake?updateStatus?oldKmsKeyId?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letupdateStatus=field_mapjson__"UpdateStatus"ServerSideEncryptionUpdateStatus.of_jsoninletoldKmsKeyId=field_mapjson__"OldKmsKeyId"KmsKeyId.of_jsoninletmessage=field_mapjson__"Message"String_.of_jsoninmake?updateStatus?oldKmsKeyId?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Details about the most recent server-side encryption configuration update. When the server-side encryption configuration is changed, dependency on the old KMS key is removed through an asynchronous process. When this update is complete, the domain\226\128\153s data can only be accessed using the new KMS key."]moduleWatchlistDetails=structtypenonrect={defaultWatchlistId:WatchlistId.toption[@ocaml.doc"The identifier of the default watchlist."]}letmake?defaultWatchlistId=fun()->{defaultWatchlistId}letto_valuex=structure_to_value[("DefaultWatchlistId",(Option.mapx.defaultWatchlistId~f:WatchlistId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letdefaultWatchlistId=(Option.map~f:WatchlistId.of_xml)(Xml.childxml_arg0"DefaultWatchlistId")inmake?defaultWatchlistId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letdefaultWatchlistId=field_mapjson__"DefaultWatchlistId"WatchlistId.of_jsoninmake?defaultWatchlistId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Details of the watchlists in a domain."]moduleFraudDetectionReason=structtypenonrect=|KNOWN_FRAUDSTER|VOICE_SPOOFING|Non_static_idofstringletmakei=iletto_string=function|KNOWN_FRAUDSTER->"KNOWN_FRAUDSTER"|VOICE_SPOOFING->"VOICE_SPOOFING"|Non_static_ids->sletof_string=function|"KNOWN_FRAUDSTER"->KNOWN_FRAUDSTER|"VOICE_SPOOFING"->VOICE_SPOOFING|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 FraudDetectionReason"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"FraudDetectionReason"j)letto_json=simple_to_jsonto_valueendmoduleKnownFraudsterRisk=structtypenonrect={generatedFraudsterId:GeneratedFraudsterId.toption[@ocaml.doc"The identifier of the fraudster that is the closest match to the speaker. If there are no fraudsters registered in a given domain, or if there are no fraudsters with a non-zero RiskScore, this value is null."];riskScore:Score.toption[@ocaml.doc"The score indicating the likelihood the speaker is a known fraudster."]}letmake?generatedFraudsterId=fun?riskScore->fun()->{generatedFraudsterId;riskScore}letto_valuex=structure_to_value[("GeneratedFraudsterId",(Option.mapx.generatedFraudsterId~f:GeneratedFraudsterId.to_value));("RiskScore",(Option.mapx.riskScore~f:Score.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letriskScore=(Option.map~f:Score.of_xml)(Xml.childxml_arg0"RiskScore")inletgeneratedFraudsterId=(Option.map~f:GeneratedFraudsterId.of_xml)(Xml.childxml_arg0"GeneratedFraudsterId")inmake?riskScore?generatedFraudsterId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letriskScore=field_mapjson__"RiskScore"Score.of_jsoninletgeneratedFraudsterId=field_mapjson__"GeneratedFraudsterId"GeneratedFraudsterId.of_jsoninmake?riskScore?generatedFraudsterId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains details produced as a result of performing known fraudster risk analysis on a speaker."]moduleVoiceSpoofingRisk=structtypenonrect={riskScore:Score.toption[@ocaml.doc"The score indicating the likelihood of speaker\226\128\153s voice being spoofed."]}letmake?riskScore=fun()->{riskScore}letto_valuex=structure_to_value[("RiskScore",(Option.mapx.riskScore~f:Score.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letriskScore=(Option.map~f:Score.of_xml)(Xml.childxml_arg0"RiskScore")inmake?riskScore()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letriskScore=field_mapjson__"RiskScore"Score.of_jsoninmake?riskScore()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The details resulting from 'Voice Spoofing Risk' analysis of the speaker."]moduleConflictType=structtypenonrect=|ANOTHER_ACTIVE_STREAM|DOMAIN_NOT_ACTIVE|CANNOT_CHANGE_SPEAKER_AFTER_ENROLLMENT|ENROLLMENT_ALREADY_EXISTS|SPEAKER_NOT_SET|SPEAKER_OPTED_OUT|CONCURRENT_CHANGES|DOMAIN_LOCKED_FROM_ENCRYPTION_UPDATES|CANNOT_DELETE_NON_EMPTY_WATCHLIST|FRAUDSTER_MUST_BELONG_TO_AT_LEAST_ONE_WATCHLIST|Non_static_idofstringletmakei=iletto_string=function|ANOTHER_ACTIVE_STREAM->"ANOTHER_ACTIVE_STREAM"|DOMAIN_NOT_ACTIVE->"DOMAIN_NOT_ACTIVE"|CANNOT_CHANGE_SPEAKER_AFTER_ENROLLMENT->"CANNOT_CHANGE_SPEAKER_AFTER_ENROLLMENT"|ENROLLMENT_ALREADY_EXISTS->"ENROLLMENT_ALREADY_EXISTS"|SPEAKER_NOT_SET->"SPEAKER_NOT_SET"|SPEAKER_OPTED_OUT->"SPEAKER_OPTED_OUT"|CONCURRENT_CHANGES->"CONCURRENT_CHANGES"|DOMAIN_LOCKED_FROM_ENCRYPTION_UPDATES->"DOMAIN_LOCKED_FROM_ENCRYPTION_UPDATES"|CANNOT_DELETE_NON_EMPTY_WATCHLIST->"CANNOT_DELETE_NON_EMPTY_WATCHLIST"|FRAUDSTER_MUST_BELONG_TO_AT_LEAST_ONE_WATCHLIST->"FRAUDSTER_MUST_BELONG_TO_AT_LEAST_ONE_WATCHLIST"|Non_static_ids->sletof_string=function|"ANOTHER_ACTIVE_STREAM"->ANOTHER_ACTIVE_STREAM|"DOMAIN_NOT_ACTIVE"->DOMAIN_NOT_ACTIVE|"CANNOT_CHANGE_SPEAKER_AFTER_ENROLLMENT"->CANNOT_CHANGE_SPEAKER_AFTER_ENROLLMENT|"ENROLLMENT_ALREADY_EXISTS"->ENROLLMENT_ALREADY_EXISTS|"SPEAKER_NOT_SET"->SPEAKER_NOT_SET|"SPEAKER_OPTED_OUT"->SPEAKER_OPTED_OUT|"CONCURRENT_CHANGES"->CONCURRENT_CHANGES|"DOMAIN_LOCKED_FROM_ENCRYPTION_UPDATES"->DOMAIN_LOCKED_FROM_ENCRYPTION_UPDATES|"CANNOT_DELETE_NON_EMPTY_WATCHLIST"->CANNOT_DELETE_NON_EMPTY_WATCHLIST|"FRAUDSTER_MUST_BELONG_TO_AT_LEAST_ONE_WATCHLIST"->FRAUDSTER_MUST_BELONG_TO_AT_LEAST_ONE_WATCHLIST|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 ConflictType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ConflictType"j)letto_json=simple_to_jsonto_valueendmoduleResourceType=structtypenonrect=|BATCH_JOB|COMPLIANCE_CONSENT|DOMAIN|FRAUDSTER|SESSION|SPEAKER|WATCHLIST|Non_static_idofstringletmakei=iletto_string=function|BATCH_JOB->"BATCH_JOB"|COMPLIANCE_CONSENT->"COMPLIANCE_CONSENT"|DOMAIN->"DOMAIN"|FRAUDSTER->"FRAUDSTER"|SESSION->"SESSION"|SPEAKER->"SPEAKER"|WATCHLIST->"WATCHLIST"|Non_static_ids->sletof_string=function|"BATCH_JOB"->BATCH_JOB|"COMPLIANCE_CONSENT"->COMPLIANCE_CONSENT|"DOMAIN"->DOMAIN|"FRAUDSTER"->FRAUDSTER|"SESSION"->SESSION|"SPEAKER"->SPEAKER|"WATCHLIST"->WATCHLIST|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 ResourceType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ResourceType"j)letto_json=simple_to_jsonto_valueendmoduleTag=structtypenonrect={key:TagKey.t[@ocaml.doc"The first part of a key:value pair that forms a tag associated with a given resource. For example, in the tag 'Department':'Sales', the key is 'Department'."];value:TagValue.t[@ocaml.doc"The second part of a key:value pair that forms a tag associated with a given resource. For example, in the tag 'Department':'Sales', the value is 'Sales'."]}letcontext_="Tag"letmake~key=fun~value->fun()->{key;value}letto_valuex=structure_to_value[("Key",(Some(TagKey.to_valuex.key)));("Value",(Some(TagValue.to_valuex.value)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvalue=TagValue.of_xml(Xml.child_exn~context:context_xml_arg0"Value")inletkey=TagKey.of_xml(Xml.child_exn~context:context_xml_arg0"Key")inmake~value~key()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvalue=field_map_exnjson__"Value"TagValue.of_jsoninletkey=field_map_exnjson__"Key"TagKey.of_jsoninmake~value~key()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The tags used to organize, track, or control access for this resource. For example, \\{ \"tags\": \\{\"key1\":\"value1\", \"key2\":\"value2\"\\} \\}."]moduleEnrollmentConfig=structtypenonrect={existingEnrollmentAction:ExistingEnrollmentAction.toption[@ocaml.doc"The action to take when the specified speaker is already enrolled in the specified domain. The default value is SKIP, which skips the enrollment for the existing speaker. Setting the value to OVERWRITE replaces the existing voice prints and enrollment audio stored for that speaker with new data generated from the latest audio."];fraudDetectionConfig:EnrollmentJobFraudDetectionConfig.toption[@ocaml.doc"The fraud detection configuration to use for the speaker enrollment job."]}letmake?existingEnrollmentAction=fun?fraudDetectionConfig->fun()->{existingEnrollmentAction;fraudDetectionConfig}letto_valuex=structure_to_value[("ExistingEnrollmentAction",(Option.mapx.existingEnrollmentAction~f:ExistingEnrollmentAction.to_value));("FraudDetectionConfig",(Option.mapx.fraudDetectionConfig~f:EnrollmentJobFraudDetectionConfig.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfraudDetectionConfig=(Option.map~f:EnrollmentJobFraudDetectionConfig.of_xml)(Xml.childxml_arg0"FraudDetectionConfig")inletexistingEnrollmentAction=(Option.map~f:ExistingEnrollmentAction.of_xml)(Xml.childxml_arg0"ExistingEnrollmentAction")inmake?fraudDetectionConfig?existingEnrollmentAction()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfraudDetectionConfig=field_mapjson__"FraudDetectionConfig"EnrollmentJobFraudDetectionConfig.of_jsoninletexistingEnrollmentAction=field_mapjson__"ExistingEnrollmentAction"ExistingEnrollmentAction.of_jsoninmake?fraudDetectionConfig?existingEnrollmentAction()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains configurations defining enrollment behavior for the batch job."]moduleIamRoleArn=structtypenonrect=stringletcontext_="IamRoleArn"letmakei=letopenResultinok_or_failwith((check_string_mini~min:20)>>=(fun()->(check_string_maxi~max:2048)>>=(fun()->check_patterni~pattern:"^arn:aws(-[^:]+)?:iam::[0-9]{12}:role/.+$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"IamRoleArn"jletto_json=simple_to_jsonto_valueendmoduleInputDataConfig=structtypenonrect={s3Uri:S3Uri.t[@ocaml.doc"The S3 location for the input manifest file that contains the list of individual enrollment or registration job requests."]}letcontext_="InputDataConfig"letmake~s3Uri=fun()->{s3Uri}letto_valuex=structure_to_value[("S3Uri",(Some(S3Uri.to_valuex.s3Uri)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lets3Uri=S3Uri.of_xml(Xml.child_exn~context:context_xml_arg0"S3Uri")inmake~s3Uri()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lets3Uri=field_map_exnjson__"S3Uri"S3Uri.of_jsoninmake~s3Uri()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The configuration containing input file information for a batch job."]moduleOutputDataConfig=structtypenonrect={kmsKeyId:KmsKeyId.toption[@ocaml.doc"The identifier of the KMS key you want Voice ID to use to encrypt the output file of a speaker enrollment job/fraudster registration job."];s3Uri:S3Uri.t[@ocaml.doc"The S3 path of the folder where Voice ID writes the job output file. It has a *.out extension. For example, if the input file name is input-file.json and the output folder path is s3://output-bucket/output-folder, the full output file path is s3://output-bucket/output-folder/job-Id/input-file.json.out."]}letcontext_="OutputDataConfig"letmake?kmsKeyId=fun~s3Uri->fun()->{kmsKeyId;s3Uri}letto_valuex=structure_to_value[("KmsKeyId",(Option.mapx.kmsKeyId~f:KmsKeyId.to_value));("S3Uri",(Some(S3Uri.to_valuex.s3Uri)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lets3Uri=S3Uri.of_xml(Xml.child_exn~context:context_xml_arg0"S3Uri")inletkmsKeyId=(Option.map~f:KmsKeyId.of_xml)(Xml.childxml_arg0"KmsKeyId")inmake~s3Uri?kmsKeyId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lets3Uri=field_map_exnjson__"S3Uri"S3Uri.of_jsoninletkmsKeyId=field_mapjson__"KmsKeyId"KmsKeyId.of_jsoninmake~s3Uri?kmsKeyId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The configuration containing output file information for a batch job."]moduleRegistrationConfig=structtypenonrect={duplicateRegistrationAction:DuplicateRegistrationAction.toption[@ocaml.doc"The action to take when a fraudster is identified as a duplicate. The default action is SKIP, which skips registering the duplicate fraudster. Setting the value to REGISTER_AS_NEW always registers a new fraudster into the specified domain."];fraudsterSimilarityThreshold:Score.toption[@ocaml.doc"The minimum similarity score between the new and old fraudsters in order to consider the new fraudster a duplicate."];watchlistIds:RegistrationConfigWatchlistIds.toption[@ocaml.doc"The identifiers of watchlists that a fraudster is registered to. If a watchlist isn't provided, the fraudsters are registered to the default watchlist."]}letmake?duplicateRegistrationAction=fun?fraudsterSimilarityThreshold->fun?watchlistIds->fun()->{duplicateRegistrationAction;fraudsterSimilarityThreshold;watchlistIds}letto_valuex=structure_to_value[("DuplicateRegistrationAction",(Option.mapx.duplicateRegistrationAction~f:DuplicateRegistrationAction.to_value));("FraudsterSimilarityThreshold",(Option.mapx.fraudsterSimilarityThreshold~f:Score.to_value));("WatchlistIds",(Option.mapx.watchlistIds~f:RegistrationConfigWatchlistIds.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letwatchlistIds=(Option.map~f:RegistrationConfigWatchlistIds.of_xml)(Xml.childxml_arg0"WatchlistIds")inletfraudsterSimilarityThreshold=(Option.map~f:Score.of_xml)(Xml.childxml_arg0"FraudsterSimilarityThreshold")inletduplicateRegistrationAction=(Option.map~f:DuplicateRegistrationAction.of_xml)(Xml.childxml_arg0"DuplicateRegistrationAction")inmake?watchlistIds?fraudsterSimilarityThreshold?duplicateRegistrationAction()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letwatchlistIds=field_mapjson__"WatchlistIds"RegistrationConfigWatchlistIds.of_jsoninletfraudsterSimilarityThreshold=field_mapjson__"FraudsterSimilarityThreshold"Score.of_jsoninletduplicateRegistrationAction=field_mapjson__"DuplicateRegistrationAction"DuplicateRegistrationAction.of_jsoninmake?watchlistIds?fraudsterSimilarityThreshold?duplicateRegistrationAction()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The registration configuration to be used during the batch fraudster registration job."]moduleWatchlistSummary=structtypenonrect={createdAt:Timestamp.toption[@ocaml.doc"The timestamp of when the watchlist was created."];defaultWatchlist:Boolean.toption[@ocaml.doc"Whether the specified watchlist is the default watchlist of a domain."];description:WatchlistDescription.toption[@ocaml.doc"The description of the watchlist."];domainId:DomainId.toption[@ocaml.doc"The identifier of the domain that contains the watchlist."];name:WatchlistName.toption[@ocaml.doc"The name for the watchlist."];updatedAt:Timestamp.toption[@ocaml.doc"The timestamp of when the watchlist was last updated."];watchlistId:WatchlistId.toption[@ocaml.doc"The identifier of the watchlist."]}letmake?createdAt=fun?defaultWatchlist->fun?description->fun?domainId->fun?name->fun?updatedAt->fun?watchlistId->fun()->{createdAt;defaultWatchlist;description;domainId;name;updatedAt;watchlistId}letto_valuex=structure_to_value[("CreatedAt",(Option.mapx.createdAt~f:Timestamp.to_value));("DefaultWatchlist",(Option.mapx.defaultWatchlist~f:Boolean.to_value));("Description",(Option.mapx.description~f:WatchlistDescription.to_value));("DomainId",(Option.mapx.domainId~f:DomainId.to_value));("Name",(Option.mapx.name~f:WatchlistName.to_value));("UpdatedAt",(Option.mapx.updatedAt~f:Timestamp.to_value));("WatchlistId",(Option.mapx.watchlistId~f:WatchlistId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letwatchlistId=(Option.map~f:WatchlistId.of_xml)(Xml.childxml_arg0"WatchlistId")inletupdatedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"UpdatedAt")inletname=(Option.map~f:WatchlistName.of_xml)(Xml.childxml_arg0"Name")inletdomainId=(Option.map~f:DomainId.of_xml)(Xml.childxml_arg0"DomainId")inletdescription=(Option.map~f:WatchlistDescription.of_xml)(Xml.childxml_arg0"Description")inletdefaultWatchlist=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"DefaultWatchlist")inletcreatedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"CreatedAt")inmake?watchlistId?updatedAt?name?domainId?description?defaultWatchlist?createdAt()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letwatchlistId=field_mapjson__"WatchlistId"WatchlistId.of_jsoninletupdatedAt=field_mapjson__"UpdatedAt"Timestamp.of_jsoninletname=field_mapjson__"Name"WatchlistName.of_jsoninletdomainId=field_mapjson__"DomainId"DomainId.of_jsoninletdescription=field_mapjson__"Description"WatchlistDescription.of_jsoninletdefaultWatchlist=field_mapjson__"DefaultWatchlist"Boolean.of_jsoninletcreatedAt=field_mapjson__"CreatedAt"Timestamp.of_jsoninmake?watchlistId?updatedAt?name?domainId?description?defaultWatchlist?createdAt()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains a summary of information about a watchlist."]moduleSpeakerSummary=structtypenonrect={createdAt:Timestamp.toption[@ocaml.doc"A timestamp showing the speaker's creation time."];customerSpeakerId:CustomerSpeakerId.toption[@ocaml.doc"The client-provided identifier for the speaker."];domainId:DomainId.toption[@ocaml.doc"The identifier of the domain that contains the speaker."];generatedSpeakerId:GeneratedSpeakerId.toption[@ocaml.doc"The service-generated identifier for the speaker."];lastAccessedAt:Timestamp.toption[@ocaml.doc"The timestamp when the speaker was last accessed for enrollment, re-enrollment or a successful authentication. This timestamp is accurate to one hour."];status:SpeakerStatus.toption[@ocaml.doc"The current status of the speaker."];updatedAt:Timestamp.toption[@ocaml.doc"A timestamp showing the speaker's last update."]}letmake?createdAt=fun?customerSpeakerId->fun?domainId->fun?generatedSpeakerId->fun?lastAccessedAt->fun?status->fun?updatedAt->fun()->{createdAt;customerSpeakerId;domainId;generatedSpeakerId;lastAccessedAt;status;updatedAt}letto_valuex=structure_to_value[("CreatedAt",(Option.mapx.createdAt~f:Timestamp.to_value));("CustomerSpeakerId",(Option.mapx.customerSpeakerId~f:CustomerSpeakerId.to_value));("DomainId",(Option.mapx.domainId~f:DomainId.to_value));("GeneratedSpeakerId",(Option.mapx.generatedSpeakerId~f:GeneratedSpeakerId.to_value));("LastAccessedAt",(Option.mapx.lastAccessedAt~f:Timestamp.to_value));("Status",(Option.mapx.status~f:SpeakerStatus.to_value));("UpdatedAt",(Option.mapx.updatedAt~f:Timestamp.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letupdatedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"UpdatedAt")inletstatus=(Option.map~f:SpeakerStatus.of_xml)(Xml.childxml_arg0"Status")inletlastAccessedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"LastAccessedAt")inletgeneratedSpeakerId=(Option.map~f:GeneratedSpeakerId.of_xml)(Xml.childxml_arg0"GeneratedSpeakerId")inletdomainId=(Option.map~f:DomainId.of_xml)(Xml.childxml_arg0"DomainId")inletcustomerSpeakerId=(Option.map~f:CustomerSpeakerId.of_xml)(Xml.childxml_arg0"CustomerSpeakerId")inletcreatedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"CreatedAt")inmake?updatedAt?status?lastAccessedAt?generatedSpeakerId?domainId?customerSpeakerId?createdAt()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letupdatedAt=field_mapjson__"UpdatedAt"Timestamp.of_jsoninletstatus=field_mapjson__"Status"SpeakerStatus.of_jsoninletlastAccessedAt=field_mapjson__"LastAccessedAt"Timestamp.of_jsoninletgeneratedSpeakerId=field_mapjson__"GeneratedSpeakerId"GeneratedSpeakerId.of_jsoninletdomainId=field_mapjson__"DomainId"DomainId.of_jsoninletcustomerSpeakerId=field_mapjson__"CustomerSpeakerId"CustomerSpeakerId.of_jsoninletcreatedAt=field_mapjson__"CreatedAt"Timestamp.of_jsoninmake?updatedAt?status?lastAccessedAt?generatedSpeakerId?domainId?customerSpeakerId?createdAt()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains a summary of information about a speaker."]moduleSpeakerEnrollmentJobSummary=structtypenonrect={createdAt:Timestamp.toption[@ocaml.doc"A timestamp of when of the speaker enrollment job was created."];domainId:DomainId.toption[@ocaml.doc"The identifier of the domain that contains the speaker enrollment job."];endedAt:Timestamp.toption[@ocaml.doc"A timestamp of when the speaker enrollment job ended."];failureDetails:FailureDetails.toption[@ocaml.doc"Contains details that are populated when an entire batch job fails. In cases of individual registration job failures, the batch job as a whole doesn't fail; it is completed with a JobStatus of COMPLETED_WITH_ERRORS. You can use the job output file to identify the individual registration requests that failed."];jobId:JobId.toption[@ocaml.doc"The service-generated identifier for the speaker enrollment job."];jobName:JobName.toption[@ocaml.doc"The client-provided name for the speaker enrollment job."];jobProgress:JobProgress.toption[@ocaml.doc"Provides details regarding job progress. This field shows the completed percentage of enrollment requests listed in the input file."];jobStatus:SpeakerEnrollmentJobStatus.toption[@ocaml.doc"The current status of the speaker enrollment job."]}letmake?createdAt=fun?domainId->fun?endedAt->fun?failureDetails->fun?jobId->fun?jobName->fun?jobProgress->fun?jobStatus->fun()->{createdAt;domainId;endedAt;failureDetails;jobId;jobName;jobProgress;jobStatus}letto_valuex=structure_to_value[("CreatedAt",(Option.mapx.createdAt~f:Timestamp.to_value));("DomainId",(Option.mapx.domainId~f:DomainId.to_value));("EndedAt",(Option.mapx.endedAt~f:Timestamp.to_value));("FailureDetails",(Option.mapx.failureDetails~f:FailureDetails.to_value));("JobId",(Option.mapx.jobId~f:JobId.to_value));("JobName",(Option.mapx.jobName~f:JobName.to_value));("JobProgress",(Option.mapx.jobProgress~f:JobProgress.to_value));("JobStatus",(Option.mapx.jobStatus~f:SpeakerEnrollmentJobStatus.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letjobStatus=(Option.map~f:SpeakerEnrollmentJobStatus.of_xml)(Xml.childxml_arg0"JobStatus")inletjobProgress=(Option.map~f:JobProgress.of_xml)(Xml.childxml_arg0"JobProgress")inletjobName=(Option.map~f:JobName.of_xml)(Xml.childxml_arg0"JobName")inletjobId=(Option.map~f:JobId.of_xml)(Xml.childxml_arg0"JobId")inletfailureDetails=(Option.map~f:FailureDetails.of_xml)(Xml.childxml_arg0"FailureDetails")inletendedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"EndedAt")inletdomainId=(Option.map~f:DomainId.of_xml)(Xml.childxml_arg0"DomainId")inletcreatedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"CreatedAt")inmake?jobStatus?jobProgress?jobName?jobId?failureDetails?endedAt?domainId?createdAt()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letjobStatus=field_mapjson__"JobStatus"SpeakerEnrollmentJobStatus.of_jsoninletjobProgress=field_mapjson__"JobProgress"JobProgress.of_jsoninletjobName=field_mapjson__"JobName"JobName.of_jsoninletjobId=field_mapjson__"JobId"JobId.of_jsoninletfailureDetails=field_mapjson__"FailureDetails"FailureDetails.of_jsoninletendedAt=field_mapjson__"EndedAt"Timestamp.of_jsoninletdomainId=field_mapjson__"DomainId"DomainId.of_jsoninletcreatedAt=field_mapjson__"CreatedAt"Timestamp.of_jsoninmake?jobStatus?jobProgress?jobName?jobId?failureDetails?endedAt?domainId?createdAt()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains a summary of information about a speaker enrollment job."]moduleFraudsterSummary=structtypenonrect={createdAt:Timestamp.toption[@ocaml.doc"The timestamp of when the fraudster summary was created."];domainId:DomainId.toption[@ocaml.doc"The identifier of the domain that contains the fraudster summary."];generatedFraudsterId:GeneratedFraudsterId.toption[@ocaml.doc"The service-generated identifier for the fraudster."];watchlistIds:ResponseWatchlistIds.toption[@ocaml.doc"The identifier of the watchlists the fraudster is a part of."]}letmake?createdAt=fun?domainId->fun?generatedFraudsterId->fun?watchlistIds->fun()->{createdAt;domainId;generatedFraudsterId;watchlistIds}letto_valuex=structure_to_value[("CreatedAt",(Option.mapx.createdAt~f:Timestamp.to_value));("DomainId",(Option.mapx.domainId~f:DomainId.to_value));("GeneratedFraudsterId",(Option.mapx.generatedFraudsterId~f:GeneratedFraudsterId.to_value));("WatchlistIds",(Option.mapx.watchlistIds~f:ResponseWatchlistIds.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letwatchlistIds=(Option.map~f:ResponseWatchlistIds.of_xml)(Xml.childxml_arg0"WatchlistIds")inletgeneratedFraudsterId=(Option.map~f:GeneratedFraudsterId.of_xml)(Xml.childxml_arg0"GeneratedFraudsterId")inletdomainId=(Option.map~f:DomainId.of_xml)(Xml.childxml_arg0"DomainId")inletcreatedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"CreatedAt")inmake?watchlistIds?generatedFraudsterId?domainId?createdAt()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letwatchlistIds=field_mapjson__"WatchlistIds"ResponseWatchlistIds.of_jsoninletgeneratedFraudsterId=field_mapjson__"GeneratedFraudsterId"GeneratedFraudsterId.of_jsoninletdomainId=field_mapjson__"DomainId"DomainId.of_jsoninletcreatedAt=field_mapjson__"CreatedAt"Timestamp.of_jsoninmake?watchlistIds?generatedFraudsterId?domainId?createdAt()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains a summary of information about a fraudster."]moduleFraudsterRegistrationJobSummary=structtypenonrect={createdAt:Timestamp.toption[@ocaml.doc"A timestamp of when the fraudster registration job was created."];domainId:DomainId.toption[@ocaml.doc"The identifier of the domain that contains the fraudster registration job."];endedAt:Timestamp.toption[@ocaml.doc"A timestamp of when the fraudster registration job ended."];failureDetails:FailureDetails.toption[@ocaml.doc"Contains details that are populated when an entire batch job fails. In cases of individual registration job failures, the batch job as a whole doesn't fail; it is completed with a JobStatus of COMPLETED_WITH_ERRORS. You can use the job output file to identify the individual registration requests that failed."];jobId:JobId.toption[@ocaml.doc"The service-generated identifier for the fraudster registration job."];jobName:JobName.toption[@ocaml.doc"The client-provided name for the fraudster registration job."];jobProgress:JobProgress.toption[@ocaml.doc"Shows the completed percentage of registration requests listed in the input file."];jobStatus:FraudsterRegistrationJobStatus.toption[@ocaml.doc"The current status of the fraudster registration job."]}letmake?createdAt=fun?domainId->fun?endedAt->fun?failureDetails->fun?jobId->fun?jobName->fun?jobProgress->fun?jobStatus->fun()->{createdAt;domainId;endedAt;failureDetails;jobId;jobName;jobProgress;jobStatus}letto_valuex=structure_to_value[("CreatedAt",(Option.mapx.createdAt~f:Timestamp.to_value));("DomainId",(Option.mapx.domainId~f:DomainId.to_value));("EndedAt",(Option.mapx.endedAt~f:Timestamp.to_value));("FailureDetails",(Option.mapx.failureDetails~f:FailureDetails.to_value));("JobId",(Option.mapx.jobId~f:JobId.to_value));("JobName",(Option.mapx.jobName~f:JobName.to_value));("JobProgress",(Option.mapx.jobProgress~f:JobProgress.to_value));("JobStatus",(Option.mapx.jobStatus~f:FraudsterRegistrationJobStatus.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letjobStatus=(Option.map~f:FraudsterRegistrationJobStatus.of_xml)(Xml.childxml_arg0"JobStatus")inletjobProgress=(Option.map~f:JobProgress.of_xml)(Xml.childxml_arg0"JobProgress")inletjobName=(Option.map~f:JobName.of_xml)(Xml.childxml_arg0"JobName")inletjobId=(Option.map~f:JobId.of_xml)(Xml.childxml_arg0"JobId")inletfailureDetails=(Option.map~f:FailureDetails.of_xml)(Xml.childxml_arg0"FailureDetails")inletendedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"EndedAt")inletdomainId=(Option.map~f:DomainId.of_xml)(Xml.childxml_arg0"DomainId")inletcreatedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"CreatedAt")inmake?jobStatus?jobProgress?jobName?jobId?failureDetails?endedAt?domainId?createdAt()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letjobStatus=field_mapjson__"JobStatus"FraudsterRegistrationJobStatus.of_jsoninletjobProgress=field_mapjson__"JobProgress"JobProgress.of_jsoninletjobName=field_mapjson__"JobName"JobName.of_jsoninletjobId=field_mapjson__"JobId"JobId.of_jsoninletfailureDetails=field_mapjson__"FailureDetails"FailureDetails.of_jsoninletendedAt=field_mapjson__"EndedAt"Timestamp.of_jsoninletdomainId=field_mapjson__"DomainId"DomainId.of_jsoninletcreatedAt=field_mapjson__"CreatedAt"Timestamp.of_jsoninmake?jobStatus?jobProgress?jobName?jobId?failureDetails?endedAt?domainId?createdAt()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains a summary of information about a fraudster registration job."]moduleDomainSummary=structtypenonrect={arn:Arn.toption[@ocaml.doc"The Amazon Resource Name (ARN) for the domain."];createdAt:Timestamp.toption[@ocaml.doc"The timestamp of when the domain was created."];description:Description.toption[@ocaml.doc"The description of the domain."];domainId:DomainId.toption[@ocaml.doc"The identifier of the domain."];domainStatus:DomainStatus.toption[@ocaml.doc"The current status of the domain."];name:DomainName.toption[@ocaml.doc"The client-provided name for the domain."];serverSideEncryptionConfiguration:ServerSideEncryptionConfiguration.toption[@ocaml.doc"The server-side encryption configuration containing the KMS key identifier you want Voice ID to use to encrypt your data."];serverSideEncryptionUpdateDetails:ServerSideEncryptionUpdateDetails.toption[@ocaml.doc"Details about the most recent server-side encryption configuration update. When the server-side encryption configuration is changed, dependency on the old KMS key is removed through an asynchronous process. When this update is complete, the domain's data can only be accessed using the new KMS key."];updatedAt:Timestamp.toption[@ocaml.doc"The timestamp of when the domain was last updated."];watchlistDetails:WatchlistDetails.toption[@ocaml.doc"Provides information about watchlistDetails and DefaultWatchlistID."]}letmake?arn=fun?createdAt->fun?description->fun?domainId->fun?domainStatus->fun?name->fun?serverSideEncryptionConfiguration->fun?serverSideEncryptionUpdateDetails->fun?updatedAt->fun?watchlistDetails->fun()->{arn;createdAt;description;domainId;domainStatus;name;serverSideEncryptionConfiguration;serverSideEncryptionUpdateDetails;updatedAt;watchlistDetails}letto_valuex=structure_to_value[("Arn",(Option.mapx.arn~f:Arn.to_value));("CreatedAt",(Option.mapx.createdAt~f:Timestamp.to_value));("Description",(Option.mapx.description~f:Description.to_value));("DomainId",(Option.mapx.domainId~f:DomainId.to_value));("DomainStatus",(Option.mapx.domainStatus~f:DomainStatus.to_value));("Name",(Option.mapx.name~f:DomainName.to_value));("ServerSideEncryptionConfiguration",(Option.mapx.serverSideEncryptionConfiguration~f:ServerSideEncryptionConfiguration.to_value));("ServerSideEncryptionUpdateDetails",(Option.mapx.serverSideEncryptionUpdateDetails~f:ServerSideEncryptionUpdateDetails.to_value));("UpdatedAt",(Option.mapx.updatedAt~f:Timestamp.to_value));("WatchlistDetails",(Option.mapx.watchlistDetails~f:WatchlistDetails.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letwatchlistDetails=(Option.map~f:WatchlistDetails.of_xml)(Xml.childxml_arg0"WatchlistDetails")inletupdatedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"UpdatedAt")inletserverSideEncryptionUpdateDetails=(Option.map~f:ServerSideEncryptionUpdateDetails.of_xml)(Xml.childxml_arg0"ServerSideEncryptionUpdateDetails")inletserverSideEncryptionConfiguration=(Option.map~f:ServerSideEncryptionConfiguration.of_xml)(Xml.childxml_arg0"ServerSideEncryptionConfiguration")inletname=(Option.map~f:DomainName.of_xml)(Xml.childxml_arg0"Name")inletdomainStatus=(Option.map~f:DomainStatus.of_xml)(Xml.childxml_arg0"DomainStatus")inletdomainId=(Option.map~f:DomainId.of_xml)(Xml.childxml_arg0"DomainId")inletdescription=(Option.map~f:Description.of_xml)(Xml.childxml_arg0"Description")inletcreatedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"CreatedAt")inletarn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"Arn")inmake?watchlistDetails?updatedAt?serverSideEncryptionUpdateDetails?serverSideEncryptionConfiguration?name?domainStatus?domainId?description?createdAt?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letwatchlistDetails=field_mapjson__"WatchlistDetails"WatchlistDetails.of_jsoninletupdatedAt=field_mapjson__"UpdatedAt"Timestamp.of_jsoninletserverSideEncryptionUpdateDetails=field_mapjson__"ServerSideEncryptionUpdateDetails"ServerSideEncryptionUpdateDetails.of_jsoninletserverSideEncryptionConfiguration=field_mapjson__"ServerSideEncryptionConfiguration"ServerSideEncryptionConfiguration.of_jsoninletname=field_mapjson__"Name"DomainName.of_jsoninletdomainStatus=field_mapjson__"DomainStatus"DomainStatus.of_jsoninletdomainId=field_mapjson__"DomainId"DomainId.of_jsoninletdescription=field_mapjson__"Description"Description.of_jsoninletcreatedAt=field_mapjson__"CreatedAt"Timestamp.of_jsoninletarn=field_mapjson__"Arn"Arn.of_jsoninmake?watchlistDetails?updatedAt?serverSideEncryptionUpdateDetails?serverSideEncryptionConfiguration?name?domainStatus?domainId?description?createdAt?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains a summary of information about a domain."]moduleAuthenticationConfiguration=structtypenonrect={acceptanceThreshold:Score.toption[@ocaml.doc"The minimum threshold needed to successfully authenticate a speaker."]}letmake?acceptanceThreshold=fun()->{acceptanceThreshold}letto_valuex=structure_to_value[("AcceptanceThreshold",(Option.mapx.acceptanceThreshold~f:Score.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letacceptanceThreshold=(Option.map~f:Score.of_xml)(Xml.childxml_arg0"AcceptanceThreshold")inmake?acceptanceThreshold()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letacceptanceThreshold=field_mapjson__"AcceptanceThreshold"Score.of_jsoninmake?acceptanceThreshold()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The configuration used to authenticate a speaker during a session."]moduleAuthenticationDecision=structtypenonrect=|ACCEPT|REJECT|NOT_ENOUGH_SPEECH|SPEAKER_NOT_ENROLLED|SPEAKER_OPTED_OUT|SPEAKER_ID_NOT_PROVIDED|SPEAKER_EXPIRED|Non_static_idofstringletmakei=iletto_string=function|ACCEPT->"ACCEPT"|REJECT->"REJECT"|NOT_ENOUGH_SPEECH->"NOT_ENOUGH_SPEECH"|SPEAKER_NOT_ENROLLED->"SPEAKER_NOT_ENROLLED"|SPEAKER_OPTED_OUT->"SPEAKER_OPTED_OUT"|SPEAKER_ID_NOT_PROVIDED->"SPEAKER_ID_NOT_PROVIDED"|SPEAKER_EXPIRED->"SPEAKER_EXPIRED"|Non_static_ids->sletof_string=function|"ACCEPT"->ACCEPT|"REJECT"->REJECT|"NOT_ENOUGH_SPEECH"->NOT_ENOUGH_SPEECH|"SPEAKER_NOT_ENROLLED"->SPEAKER_NOT_ENROLLED|"SPEAKER_OPTED_OUT"->SPEAKER_OPTED_OUT|"SPEAKER_ID_NOT_PROVIDED"->SPEAKER_ID_NOT_PROVIDED|"SPEAKER_EXPIRED"->SPEAKER_EXPIRED|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 AuthenticationDecision"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"AuthenticationDecision"j)letto_json=simple_to_jsonto_valueendmoduleUniqueIdLarge=structtypenonrect=stringletcontext_="UniqueIdLarge"letmakei=letopenResultinok_or_failwith((check_string_mini~min:22)>>=(fun()->(check_string_maxi~max:22)>>=(fun()->check_patterni~pattern:"^[a-zA-Z0-9]{22}$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"UniqueIdLarge"jletto_json=simple_to_jsonto_valueendmoduleFraudDetectionConfiguration=structtypenonrect={riskThreshold:Score.toption[@ocaml.doc"Threshold value for determining whether the speaker is a fraudster. If the detected risk score calculated by Voice ID is higher than the threshold, the speaker is considered a fraudster."];watchlistId:WatchlistId.toption[@ocaml.doc"The identifier of the watchlist against which fraud detection is performed."]}letmake?riskThreshold=fun?watchlistId->fun()->{riskThreshold;watchlistId}letto_valuex=structure_to_value[("RiskThreshold",(Option.mapx.riskThreshold~f:Score.to_value));("WatchlistId",(Option.mapx.watchlistId~f:WatchlistId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letwatchlistId=(Option.map~f:WatchlistId.of_xml)(Xml.childxml_arg0"WatchlistId")inletriskThreshold=(Option.map~f:Score.of_xml)(Xml.childxml_arg0"RiskThreshold")inmake?watchlistId?riskThreshold()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letwatchlistId=field_mapjson__"WatchlistId"WatchlistId.of_jsoninletriskThreshold=field_mapjson__"RiskThreshold"Score.of_jsoninmake?watchlistId?riskThreshold()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The configuration used for performing fraud detection over a speaker during a session."]moduleFraudDetectionDecision=structtypenonrect=|HIGH_RISK|LOW_RISK|NOT_ENOUGH_SPEECH|Non_static_idofstringletmakei=iletto_string=function|HIGH_RISK->"HIGH_RISK"|LOW_RISK->"LOW_RISK"|NOT_ENOUGH_SPEECH->"NOT_ENOUGH_SPEECH"|Non_static_ids->sletof_string=function|"HIGH_RISK"->HIGH_RISK|"LOW_RISK"->LOW_RISK|"NOT_ENOUGH_SPEECH"->NOT_ENOUGH_SPEECH|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 FraudDetectionDecision"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"FraudDetectionDecision"j)letto_json=simple_to_jsonto_valueendmoduleFraudDetectionReasons=structtypenonrect=FraudDetectionReason.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:3)>>=(fun()->check_list_mini~min:0));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:FraudDetectionReason.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:FraudDetectionReason.of_xml)letof_jsonj=list_of_json~kind:"FraudDetectionReasons"~of_json:FraudDetectionReason.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleFraudRiskDetails=structtypenonrect={knownFraudsterRisk:KnownFraudsterRisk.toption[@ocaml.doc"The details resulting from 'Known Fraudster Risk' analysis of the speaker."];voiceSpoofingRisk:VoiceSpoofingRisk.toption[@ocaml.doc"The details resulting from 'Voice Spoofing Risk' analysis of the speaker."]}letmake?knownFraudsterRisk=fun?voiceSpoofingRisk->fun()->{knownFraudsterRisk;voiceSpoofingRisk}letto_valuex=structure_to_value[("KnownFraudsterRisk",(Option.mapx.knownFraudsterRisk~f:KnownFraudsterRisk.to_value));("VoiceSpoofingRisk",(Option.mapx.voiceSpoofingRisk~f:VoiceSpoofingRisk.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvoiceSpoofingRisk=(Option.map~f:VoiceSpoofingRisk.of_xml)(Xml.childxml_arg0"VoiceSpoofingRisk")inletknownFraudsterRisk=(Option.map~f:KnownFraudsterRisk.of_xml)(Xml.childxml_arg0"KnownFraudsterRisk")inmake?voiceSpoofingRisk?knownFraudsterRisk()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvoiceSpoofingRisk=field_mapjson__"VoiceSpoofingRisk"VoiceSpoofingRisk.of_jsoninletknownFraudsterRisk=field_mapjson__"KnownFraudsterRisk"KnownFraudsterRisk.of_jsoninmake?voiceSpoofingRisk?knownFraudsterRisk()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Details regarding various fraud risk analyses performed against the current session state and streamed audio of the speaker."]moduleAccessDeniedException=structtypenonrect={message:String_.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("Message",(Option.mapx.message~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"Message"String_.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"You do not have sufficient permissions to perform this action. Check the error message and try again."]moduleConflictException=structtypenonrect={conflictType:ConflictType.toption[@ocaml.doc"The type of conflict which caused a ConflictException. Possible types and the corresponding error messages are as follows: DOMAIN_NOT_ACTIVE: The domain is not active. CANNOT_CHANGE_SPEAKER_AFTER_ENROLLMENT: You cannot change the speaker ID after an enrollment has been requested. ENROLLMENT_ALREADY_EXISTS: There is already an enrollment for this session. SPEAKER_NOT_SET: You must set the speaker ID before requesting an enrollment. SPEAKER_OPTED_OUT: You cannot request an enrollment for an opted out speaker. CONCURRENT_CHANGES: The request could not be processed as the resource was modified by another request during execution."];message:String_.toption}letmake?conflictType=fun?message->fun()->{conflictType;message}letto_valuex=structure_to_value[("ConflictType",(Option.mapx.conflictType~f:ConflictType.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")inletconflictType=(Option.map~f:ConflictType.of_xml)(Xml.childxml_arg0"ConflictType")inmake?message?conflictType()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"Message"String_.of_jsoninletconflictType=field_mapjson__"ConflictType"ConflictType.of_jsoninmake?message?conflictType()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The request failed due to a conflict. Check the ConflictType and error message for more details."]moduleInternalServerException=structtypenonrect={message:String_.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("Message",(Option.mapx.message~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"Message"String_.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The request failed due to an unknown error on the server side."]moduleResourceNotFoundException=structtypenonrect={message:String_.toption;resourceType:ResourceType.toption[@ocaml.doc"The type of resource which cannot not be found. Possible types are BATCH_JOB, COMPLIANCE_CONSENT, DOMAIN, FRAUDSTER, SESSION and SPEAKER."]}letmake?message=fun?resourceType->fun()->{message;resourceType}letto_valuex=structure_to_value[("Message",(Option.mapx.message~f:String_.to_value));("ResourceType",(Option.mapx.resourceType~f:ResourceType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceType=(Option.map~f:ResourceType.of_xml)(Xml.childxml_arg0"ResourceType")inletmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Message")inmake?resourceType?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letresourceType=field_mapjson__"ResourceType"ResourceType.of_jsoninletmessage=field_mapjson__"Message"String_.of_jsoninmake?resourceType?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The specified resource cannot be found. Check the ResourceType and error message for more details."]moduleThrottlingException=structtypenonrect={message:String_.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("Message",(Option.mapx.message~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"Message"String_.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The request was denied due to request throttling. Please slow down your request rate. Refer to Amazon Connect Voice ID Service API throttling quotas and try your request again."]moduleValidationException=structtypenonrect={message:String_.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("Message",(Option.mapx.message~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"Message"String_.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The request failed one or more validations; check the error message for more details."]moduleWatchlist=structtypenonrect={createdAt:Timestamp.toption[@ocaml.doc"The timestamp of when the watchlist was created."];defaultWatchlist:Boolean.toption[@ocaml.doc"Whether the specified watchlist is the default watchlist of a domain."];description:WatchlistDescription.toption[@ocaml.doc"The description of the watchlist."];domainId:DomainId.toption[@ocaml.doc"The identifier of the domain that contains the watchlist."];name:WatchlistName.toption[@ocaml.doc"The name for the watchlist."];updatedAt:Timestamp.toption[@ocaml.doc"The timestamp of when the watchlist was updated."];watchlistId:WatchlistId.toption[@ocaml.doc"The identifier of the watchlist."]}letmake?createdAt=fun?defaultWatchlist->fun?description->fun?domainId->fun?name->fun?updatedAt->fun?watchlistId->fun()->{createdAt;defaultWatchlist;description;domainId;name;updatedAt;watchlistId}letto_valuex=structure_to_value[("CreatedAt",(Option.mapx.createdAt~f:Timestamp.to_value));("DefaultWatchlist",(Option.mapx.defaultWatchlist~f:Boolean.to_value));("Description",(Option.mapx.description~f:WatchlistDescription.to_value));("DomainId",(Option.mapx.domainId~f:DomainId.to_value));("Name",(Option.mapx.name~f:WatchlistName.to_value));("UpdatedAt",(Option.mapx.updatedAt~f:Timestamp.to_value));("WatchlistId",(Option.mapx.watchlistId~f:WatchlistId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letwatchlistId=(Option.map~f:WatchlistId.of_xml)(Xml.childxml_arg0"WatchlistId")inletupdatedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"UpdatedAt")inletname=(Option.map~f:WatchlistName.of_xml)(Xml.childxml_arg0"Name")inletdomainId=(Option.map~f:DomainId.of_xml)(Xml.childxml_arg0"DomainId")inletdescription=(Option.map~f:WatchlistDescription.of_xml)(Xml.childxml_arg0"Description")inletdefaultWatchlist=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"DefaultWatchlist")inletcreatedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"CreatedAt")inmake?watchlistId?updatedAt?name?domainId?description?defaultWatchlist?createdAt()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letwatchlistId=field_mapjson__"WatchlistId"WatchlistId.of_jsoninletupdatedAt=field_mapjson__"UpdatedAt"Timestamp.of_jsoninletname=field_mapjson__"Name"WatchlistName.of_jsoninletdomainId=field_mapjson__"DomainId"DomainId.of_jsoninletdescription=field_mapjson__"Description"WatchlistDescription.of_jsoninletdefaultWatchlist=field_mapjson__"DefaultWatchlist"Boolean.of_jsoninletcreatedAt=field_mapjson__"CreatedAt"Timestamp.of_jsoninmake?watchlistId?updatedAt?name?domainId?description?defaultWatchlist?createdAt()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains all the information about a watchlist."]moduleDomain=structtypenonrect={arn:Arn.toption[@ocaml.doc"The Amazon Resource Name (ARN) for the domain."];createdAt:Timestamp.toption[@ocaml.doc"The timestamp of when the domain was created."];description:Description.toption[@ocaml.doc"The description of the domain."];domainId:DomainId.toption[@ocaml.doc"The identifier of the domain."];domainStatus:DomainStatus.toption[@ocaml.doc"The current status of the domain."];name:DomainName.toption[@ocaml.doc"The name for the domain."];serverSideEncryptionConfiguration:ServerSideEncryptionConfiguration.toption[@ocaml.doc"The server-side encryption configuration containing the KMS key identifier you want Voice ID to use to encrypt your data."];serverSideEncryptionUpdateDetails:ServerSideEncryptionUpdateDetails.toption[@ocaml.doc"Details about the most recent server-side encryption configuration update. When the server-side encryption configuration is changed, dependency on the old KMS key is removed through an asynchronous process. When this update is complete, the domain's data can only be accessed using the new KMS key."];updatedAt:Timestamp.toption[@ocaml.doc"The timestamp of when the domain was last update."];watchlistDetails:WatchlistDetails.toption[@ocaml.doc"The watchlist details of a domain. Contains the default watchlist ID of the domain."]}letmake?arn=fun?createdAt->fun?description->fun?domainId->fun?domainStatus->fun?name->fun?serverSideEncryptionConfiguration->fun?serverSideEncryptionUpdateDetails->fun?updatedAt->fun?watchlistDetails->fun()->{arn;createdAt;description;domainId;domainStatus;name;serverSideEncryptionConfiguration;serverSideEncryptionUpdateDetails;updatedAt;watchlistDetails}letto_valuex=structure_to_value[("Arn",(Option.mapx.arn~f:Arn.to_value));("CreatedAt",(Option.mapx.createdAt~f:Timestamp.to_value));("Description",(Option.mapx.description~f:Description.to_value));("DomainId",(Option.mapx.domainId~f:DomainId.to_value));("DomainStatus",(Option.mapx.domainStatus~f:DomainStatus.to_value));("Name",(Option.mapx.name~f:DomainName.to_value));("ServerSideEncryptionConfiguration",(Option.mapx.serverSideEncryptionConfiguration~f:ServerSideEncryptionConfiguration.to_value));("ServerSideEncryptionUpdateDetails",(Option.mapx.serverSideEncryptionUpdateDetails~f:ServerSideEncryptionUpdateDetails.to_value));("UpdatedAt",(Option.mapx.updatedAt~f:Timestamp.to_value));("WatchlistDetails",(Option.mapx.watchlistDetails~f:WatchlistDetails.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letwatchlistDetails=(Option.map~f:WatchlistDetails.of_xml)(Xml.childxml_arg0"WatchlistDetails")inletupdatedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"UpdatedAt")inletserverSideEncryptionUpdateDetails=(Option.map~f:ServerSideEncryptionUpdateDetails.of_xml)(Xml.childxml_arg0"ServerSideEncryptionUpdateDetails")inletserverSideEncryptionConfiguration=(Option.map~f:ServerSideEncryptionConfiguration.of_xml)(Xml.childxml_arg0"ServerSideEncryptionConfiguration")inletname=(Option.map~f:DomainName.of_xml)(Xml.childxml_arg0"Name")inletdomainStatus=(Option.map~f:DomainStatus.of_xml)(Xml.childxml_arg0"DomainStatus")inletdomainId=(Option.map~f:DomainId.of_xml)(Xml.childxml_arg0"DomainId")inletdescription=(Option.map~f:Description.of_xml)(Xml.childxml_arg0"Description")inletcreatedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"CreatedAt")inletarn=(Option.map~f:Arn.of_xml)(Xml.childxml_arg0"Arn")inmake?watchlistDetails?updatedAt?serverSideEncryptionUpdateDetails?serverSideEncryptionConfiguration?name?domainStatus?domainId?description?createdAt?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letwatchlistDetails=field_mapjson__"WatchlistDetails"WatchlistDetails.of_jsoninletupdatedAt=field_mapjson__"UpdatedAt"Timestamp.of_jsoninletserverSideEncryptionUpdateDetails=field_mapjson__"ServerSideEncryptionUpdateDetails"ServerSideEncryptionUpdateDetails.of_jsoninletserverSideEncryptionConfiguration=field_mapjson__"ServerSideEncryptionConfiguration"ServerSideEncryptionConfiguration.of_jsoninletname=field_mapjson__"Name"DomainName.of_jsoninletdomainStatus=field_mapjson__"DomainStatus"DomainStatus.of_jsoninletdomainId=field_mapjson__"DomainId"DomainId.of_jsoninletdescription=field_mapjson__"Description"Description.of_jsoninletcreatedAt=field_mapjson__"CreatedAt"Timestamp.of_jsoninletarn=field_mapjson__"Arn"Arn.of_jsoninmake?watchlistDetails?updatedAt?serverSideEncryptionUpdateDetails?serverSideEncryptionConfiguration?name?domainStatus?domainId?description?createdAt?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains all the information about a domain."]moduleAmazonResourceName=structtypenonrect=stringletcontext_="AmazonResourceName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:1011)>>=(fun()->check_patterni~pattern:"^arn:aws(-[^:]+)?:voiceid.+:[0-9]{12}:domain/[a-zA-Z0-9]{22}$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"AmazonResourceName"jletto_json=simple_to_jsonto_valueendmoduleTagKeyList=structtypenonrect=TagKey.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:200)>>=(fun()->check_list_mini~min:0));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f: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_valuevendmoduleTagList=structtypenonrect=Tag.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:200)>>=(fun()->check_list_mini~min:0));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Tag.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:Tag.of_xml)letof_jsonj=list_of_json~kind:"TagList"~of_json:Tag.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleServiceQuotaExceededException=structtypenonrect={message:String_.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("Message",(Option.mapx.message~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"Message"String_.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The request exceeded the service quota. Refer to Voice ID Service Quotas and try your request again."]moduleSpeakerEnrollmentJob=structtypenonrect={createdAt:Timestamp.toption[@ocaml.doc"A timestamp of when the speaker enrollment job was created."];dataAccessRoleArn:IamRoleArn.toption[@ocaml.doc"The IAM role Amazon Resource Name (ARN) that grants Voice ID permissions to access customer's buckets to read the input manifest file and write the job output file."];domainId:DomainId.toption[@ocaml.doc"The identifier of the domain that contains the speaker enrollment job."];endedAt:Timestamp.toption[@ocaml.doc"A timestamp of when the speaker enrollment job ended."];enrollmentConfig:EnrollmentConfig.toption[@ocaml.doc"The configuration that defines the action to take when the speaker is already enrolled in Voice ID, and the FraudDetectionConfig to use."];failureDetails:FailureDetails.toption[@ocaml.doc"Contains details that are populated when an entire batch job fails. In cases of individual registration job failures, the batch job as a whole doesn't fail; it is completed with a JobStatus of COMPLETED_WITH_ERRORS. You can use the job output file to identify the individual registration requests that failed."];inputDataConfig:InputDataConfig.toption[@ocaml.doc"The input data config containing an S3 URI for the input manifest file that contains the list of speaker enrollment job requests."];jobId:JobId.toption[@ocaml.doc"The service-generated identifier for the speaker enrollment job."];jobName:JobName.toption[@ocaml.doc"The client-provided name for the speaker enrollment job."];jobProgress:JobProgress.toption[@ocaml.doc"Provides details on job progress. This field shows the completed percentage of registration requests listed in the input file."];jobStatus:SpeakerEnrollmentJobStatus.toption[@ocaml.doc"The current status of the speaker enrollment job."];outputDataConfig:OutputDataConfig.toption[@ocaml.doc"The output data config containing the S3 location where Voice ID writes the job output file; you must also include a KMS key ID to encrypt the file."]}letmake?createdAt=fun?dataAccessRoleArn->fun?domainId->fun?endedAt->fun?enrollmentConfig->fun?failureDetails->fun?inputDataConfig->fun?jobId->fun?jobName->fun?jobProgress->fun?jobStatus->fun?outputDataConfig->fun()->{createdAt;dataAccessRoleArn;domainId;endedAt;enrollmentConfig;failureDetails;inputDataConfig;jobId;jobName;jobProgress;jobStatus;outputDataConfig}letto_valuex=structure_to_value[("CreatedAt",(Option.mapx.createdAt~f:Timestamp.to_value));("DataAccessRoleArn",(Option.mapx.dataAccessRoleArn~f:IamRoleArn.to_value));("DomainId",(Option.mapx.domainId~f:DomainId.to_value));("EndedAt",(Option.mapx.endedAt~f:Timestamp.to_value));("EnrollmentConfig",(Option.mapx.enrollmentConfig~f:EnrollmentConfig.to_value));("FailureDetails",(Option.mapx.failureDetails~f:FailureDetails.to_value));("InputDataConfig",(Option.mapx.inputDataConfig~f:InputDataConfig.to_value));("JobId",(Option.mapx.jobId~f:JobId.to_value));("JobName",(Option.mapx.jobName~f:JobName.to_value));("JobProgress",(Option.mapx.jobProgress~f:JobProgress.to_value));("JobStatus",(Option.mapx.jobStatus~f:SpeakerEnrollmentJobStatus.to_value));("OutputDataConfig",(Option.mapx.outputDataConfig~f:OutputDataConfig.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letoutputDataConfig=(Option.map~f:OutputDataConfig.of_xml)(Xml.childxml_arg0"OutputDataConfig")inletjobStatus=(Option.map~f:SpeakerEnrollmentJobStatus.of_xml)(Xml.childxml_arg0"JobStatus")inletjobProgress=(Option.map~f:JobProgress.of_xml)(Xml.childxml_arg0"JobProgress")inletjobName=(Option.map~f:JobName.of_xml)(Xml.childxml_arg0"JobName")inletjobId=(Option.map~f:JobId.of_xml)(Xml.childxml_arg0"JobId")inletinputDataConfig=(Option.map~f:InputDataConfig.of_xml)(Xml.childxml_arg0"InputDataConfig")inletfailureDetails=(Option.map~f:FailureDetails.of_xml)(Xml.childxml_arg0"FailureDetails")inletenrollmentConfig=(Option.map~f:EnrollmentConfig.of_xml)(Xml.childxml_arg0"EnrollmentConfig")inletendedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"EndedAt")inletdomainId=(Option.map~f:DomainId.of_xml)(Xml.childxml_arg0"DomainId")inletdataAccessRoleArn=(Option.map~f:IamRoleArn.of_xml)(Xml.childxml_arg0"DataAccessRoleArn")inletcreatedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"CreatedAt")inmake?outputDataConfig?jobStatus?jobProgress?jobName?jobId?inputDataConfig?failureDetails?enrollmentConfig?endedAt?domainId?dataAccessRoleArn?createdAt()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letoutputDataConfig=field_mapjson__"OutputDataConfig"OutputDataConfig.of_jsoninletjobStatus=field_mapjson__"JobStatus"SpeakerEnrollmentJobStatus.of_jsoninletjobProgress=field_mapjson__"JobProgress"JobProgress.of_jsoninletjobName=field_mapjson__"JobName"JobName.of_jsoninletjobId=field_mapjson__"JobId"JobId.of_jsoninletinputDataConfig=field_mapjson__"InputDataConfig"InputDataConfig.of_jsoninletfailureDetails=field_mapjson__"FailureDetails"FailureDetails.of_jsoninletenrollmentConfig=field_mapjson__"EnrollmentConfig"EnrollmentConfig.of_jsoninletendedAt=field_mapjson__"EndedAt"Timestamp.of_jsoninletdomainId=field_mapjson__"DomainId"DomainId.of_jsoninletdataAccessRoleArn=field_mapjson__"DataAccessRoleArn"IamRoleArn.of_jsoninletcreatedAt=field_mapjson__"CreatedAt"Timestamp.of_jsoninmake?outputDataConfig?jobStatus?jobProgress?jobName?jobId?inputDataConfig?failureDetails?enrollmentConfig?endedAt?domainId?dataAccessRoleArn?createdAt()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains all the information about a speaker enrollment job."]moduleClientTokenString=structtypenonrect=stringletcontext_="ClientTokenString"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:64)>>=(fun()->check_patterni~pattern:"^[a-zA-Z0-9-_]+$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ClientTokenString"jletto_json=simple_to_jsonto_valueendmoduleFraudsterRegistrationJob=structtypenonrect={createdAt:Timestamp.toption[@ocaml.doc"A timestamp of when the fraudster registration job was created."];dataAccessRoleArn:IamRoleArn.toption[@ocaml.doc"The IAM role Amazon Resource Name (ARN) that grants Voice ID permissions to access customer's buckets to read the input manifest file and write the job output file."];domainId:DomainId.toption[@ocaml.doc"The identifier of the domain that contains the fraudster registration job."];endedAt:Timestamp.toption[@ocaml.doc"A timestamp of when the fraudster registration job ended."];failureDetails:FailureDetails.toption[@ocaml.doc"Contains details that are populated when an entire batch job fails. In cases of individual registration job failures, the batch job as a whole doesn't fail; it is completed with a JobStatus of COMPLETED_WITH_ERRORS. You can use the job output file to identify the individual registration requests that failed."];inputDataConfig:InputDataConfig.toption[@ocaml.doc"The input data config containing an S3 URI for the input manifest file that contains the list of fraudster registration job requests."];jobId:JobId.toption[@ocaml.doc"The service-generated identifier for the fraudster registration job."];jobName:JobName.toption[@ocaml.doc"The client-provided name for the fraudster registration job."];jobProgress:JobProgress.toption[@ocaml.doc"Shows the completed percentage of registration requests listed in the input file."];jobStatus:FraudsterRegistrationJobStatus.toption[@ocaml.doc"The current status of the fraudster registration job."];outputDataConfig:OutputDataConfig.toption[@ocaml.doc"The output data config containing the S3 location where you want Voice ID to write your job output file; you must also include a KMS key ID in order to encrypt the file."];registrationConfig:RegistrationConfig.toption[@ocaml.doc"The registration config containing details such as the action to take when a duplicate fraudster is detected, and the similarity threshold to use for detecting a duplicate fraudster."]}letmake?createdAt=fun?dataAccessRoleArn->fun?domainId->fun?endedAt->fun?failureDetails->fun?inputDataConfig->fun?jobId->fun?jobName->fun?jobProgress->fun?jobStatus->fun?outputDataConfig->fun?registrationConfig->fun()->{createdAt;dataAccessRoleArn;domainId;endedAt;failureDetails;inputDataConfig;jobId;jobName;jobProgress;jobStatus;outputDataConfig;registrationConfig}letto_valuex=structure_to_value[("CreatedAt",(Option.mapx.createdAt~f:Timestamp.to_value));("DataAccessRoleArn",(Option.mapx.dataAccessRoleArn~f:IamRoleArn.to_value));("DomainId",(Option.mapx.domainId~f:DomainId.to_value));("EndedAt",(Option.mapx.endedAt~f:Timestamp.to_value));("FailureDetails",(Option.mapx.failureDetails~f:FailureDetails.to_value));("InputDataConfig",(Option.mapx.inputDataConfig~f:InputDataConfig.to_value));("JobId",(Option.mapx.jobId~f:JobId.to_value));("JobName",(Option.mapx.jobName~f:JobName.to_value));("JobProgress",(Option.mapx.jobProgress~f:JobProgress.to_value));("JobStatus",(Option.mapx.jobStatus~f:FraudsterRegistrationJobStatus.to_value));("OutputDataConfig",(Option.mapx.outputDataConfig~f:OutputDataConfig.to_value));("RegistrationConfig",(Option.mapx.registrationConfig~f:RegistrationConfig.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letregistrationConfig=(Option.map~f:RegistrationConfig.of_xml)(Xml.childxml_arg0"RegistrationConfig")inletoutputDataConfig=(Option.map~f:OutputDataConfig.of_xml)(Xml.childxml_arg0"OutputDataConfig")inletjobStatus=(Option.map~f:FraudsterRegistrationJobStatus.of_xml)(Xml.childxml_arg0"JobStatus")inletjobProgress=(Option.map~f:JobProgress.of_xml)(Xml.childxml_arg0"JobProgress")inletjobName=(Option.map~f:JobName.of_xml)(Xml.childxml_arg0"JobName")inletjobId=(Option.map~f:JobId.of_xml)(Xml.childxml_arg0"JobId")inletinputDataConfig=(Option.map~f:InputDataConfig.of_xml)(Xml.childxml_arg0"InputDataConfig")inletfailureDetails=(Option.map~f:FailureDetails.of_xml)(Xml.childxml_arg0"FailureDetails")inletendedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"EndedAt")inletdomainId=(Option.map~f:DomainId.of_xml)(Xml.childxml_arg0"DomainId")inletdataAccessRoleArn=(Option.map~f:IamRoleArn.of_xml)(Xml.childxml_arg0"DataAccessRoleArn")inletcreatedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"CreatedAt")inmake?registrationConfig?outputDataConfig?jobStatus?jobProgress?jobName?jobId?inputDataConfig?failureDetails?endedAt?domainId?dataAccessRoleArn?createdAt()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letregistrationConfig=field_mapjson__"RegistrationConfig"RegistrationConfig.of_jsoninletoutputDataConfig=field_mapjson__"OutputDataConfig"OutputDataConfig.of_jsoninletjobStatus=field_mapjson__"JobStatus"FraudsterRegistrationJobStatus.of_jsoninletjobProgress=field_mapjson__"JobProgress"JobProgress.of_jsoninletjobName=field_mapjson__"JobName"JobName.of_jsoninletjobId=field_mapjson__"JobId"JobId.of_jsoninletinputDataConfig=field_mapjson__"InputDataConfig"InputDataConfig.of_jsoninletfailureDetails=field_mapjson__"FailureDetails"FailureDetails.of_jsoninletendedAt=field_mapjson__"EndedAt"Timestamp.of_jsoninletdomainId=field_mapjson__"DomainId"DomainId.of_jsoninletdataAccessRoleArn=field_mapjson__"DataAccessRoleArn"IamRoleArn.of_jsoninletcreatedAt=field_mapjson__"CreatedAt"Timestamp.of_jsoninmake?registrationConfig?outputDataConfig?jobStatus?jobProgress?jobName?jobId?inputDataConfig?failureDetails?endedAt?domainId?dataAccessRoleArn?createdAt()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains all the information about a fraudster registration job."]moduleSpeaker=structtypenonrect={createdAt:Timestamp.toption[@ocaml.doc"A timestamp of when the speaker was created."];customerSpeakerId:CustomerSpeakerId.toption[@ocaml.doc"The client-provided identifier for the speaker."];domainId:DomainId.toption[@ocaml.doc"The identifier of the domain that contains the speaker."];generatedSpeakerId:GeneratedSpeakerId.toption[@ocaml.doc"The service-generated identifier for the speaker."];lastAccessedAt:Timestamp.toption[@ocaml.doc"The timestamp of when the speaker was last accessed for enrollment, re-enrollment or a successful authentication. This timestamp is accurate to one hour."];status:SpeakerStatus.toption[@ocaml.doc"The current status of the speaker."];updatedAt:Timestamp.toption[@ocaml.doc"A timestamp of the speaker's last update."]}letmake?createdAt=fun?customerSpeakerId->fun?domainId->fun?generatedSpeakerId->fun?lastAccessedAt->fun?status->fun?updatedAt->fun()->{createdAt;customerSpeakerId;domainId;generatedSpeakerId;lastAccessedAt;status;updatedAt}letto_valuex=structure_to_value[("CreatedAt",(Option.mapx.createdAt~f:Timestamp.to_value));("CustomerSpeakerId",(Option.mapx.customerSpeakerId~f:CustomerSpeakerId.to_value));("DomainId",(Option.mapx.domainId~f:DomainId.to_value));("GeneratedSpeakerId",(Option.mapx.generatedSpeakerId~f:GeneratedSpeakerId.to_value));("LastAccessedAt",(Option.mapx.lastAccessedAt~f:Timestamp.to_value));("Status",(Option.mapx.status~f:SpeakerStatus.to_value));("UpdatedAt",(Option.mapx.updatedAt~f:Timestamp.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letupdatedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"UpdatedAt")inletstatus=(Option.map~f:SpeakerStatus.of_xml)(Xml.childxml_arg0"Status")inletlastAccessedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"LastAccessedAt")inletgeneratedSpeakerId=(Option.map~f:GeneratedSpeakerId.of_xml)(Xml.childxml_arg0"GeneratedSpeakerId")inletdomainId=(Option.map~f:DomainId.of_xml)(Xml.childxml_arg0"DomainId")inletcustomerSpeakerId=(Option.map~f:CustomerSpeakerId.of_xml)(Xml.childxml_arg0"CustomerSpeakerId")inletcreatedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"CreatedAt")inmake?updatedAt?status?lastAccessedAt?generatedSpeakerId?domainId?customerSpeakerId?createdAt()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letupdatedAt=field_mapjson__"UpdatedAt"Timestamp.of_jsoninletstatus=field_mapjson__"Status"SpeakerStatus.of_jsoninletlastAccessedAt=field_mapjson__"LastAccessedAt"Timestamp.of_jsoninletgeneratedSpeakerId=field_mapjson__"GeneratedSpeakerId"GeneratedSpeakerId.of_jsoninletdomainId=field_mapjson__"DomainId"DomainId.of_jsoninletcustomerSpeakerId=field_mapjson__"CustomerSpeakerId"CustomerSpeakerId.of_jsoninletcreatedAt=field_mapjson__"CreatedAt"Timestamp.of_jsoninmake?updatedAt?status?lastAccessedAt?generatedSpeakerId?domainId?customerSpeakerId?createdAt()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains all the information about a speaker."]moduleSpeakerId=structtypenonrect=stringletcontext_="SpeakerId"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:256)>>=(fun()->check_patterni~pattern:"^(id#[a-zA-Z0-9]{22}|[a-zA-Z0-9][a-zA-Z0-9_-]*)$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"SpeakerId"jletto_json=simple_to_jsonto_valueendmoduleWatchlistSummaries=structtypenonrect=WatchlistSummary.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:WatchlistSummary.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:WatchlistSummary.of_xml)letof_jsonj=list_of_json~kind:"WatchlistSummaries"~of_json:WatchlistSummary.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleMaxResultsForList=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:100)>>=(fun()->check_int_mini~min:1));iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for MaxResultsForList"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleNextToken=structtypenonrect=stringletcontext_="NextToken"letmakei=letopenResultinok_or_failwith((check_string_mini~min:0)>>=(fun()->(check_string_maxi~max:8192)>>=(fun()->check_patterni~pattern:"^\\p{ASCII}{0,8192}$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"NextToken"jletto_json=simple_to_jsonto_valueendmoduleSpeakerSummaries=structtypenonrect=SpeakerSummary.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:SpeakerSummary.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:SpeakerSummary.of_xml)letof_jsonj=list_of_json~kind:"SpeakerSummaries"~of_json:SpeakerSummary.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleSpeakerEnrollmentJobSummaries=structtypenonrect=SpeakerEnrollmentJobSummary.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:SpeakerEnrollmentJobSummary.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:SpeakerEnrollmentJobSummary.of_xml)letof_jsonj=list_of_json~kind:"SpeakerEnrollmentJobSummaries"~of_json:SpeakerEnrollmentJobSummary.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleFraudsterSummaries=structtypenonrect=FraudsterSummary.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:FraudsterSummary.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:FraudsterSummary.of_xml)letof_jsonj=list_of_json~kind:"FraudsterSummaries"~of_json:FraudsterSummary.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleFraudsterRegistrationJobSummaries=structtypenonrect=FraudsterRegistrationJobSummary.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:FraudsterRegistrationJobSummary.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:FraudsterRegistrationJobSummary.of_xml)letof_jsonj=list_of_json~kind:"FraudsterRegistrationJobSummaries"~of_json:FraudsterRegistrationJobSummary.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleDomainSummaries=structtypenonrect=DomainSummary.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:DomainSummary.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:DomainSummary.of_xml)letof_jsonj=list_of_json~kind:"DomainSummaries"~of_json:DomainSummary.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleMaxResultsForListDomainFe=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:10)>>=(fun()->check_int_mini~min:1));iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for MaxResultsForListDomainFe"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleAuthenticationResult=structtypenonrect={audioAggregationEndedAt:Timestamp.toption[@ocaml.doc"A timestamp of when audio aggregation ended for this authentication result."];audioAggregationStartedAt:Timestamp.toption[@ocaml.doc"A timestamp of when audio aggregation started for this authentication result."];authenticationResultId:UniqueIdLarge.toption[@ocaml.doc"The unique identifier for this authentication result. Because there can be multiple authentications for a given session, this field helps to identify if the returned result is from a previous streaming activity or a new result. Note that in absence of any new streaming activity, AcceptanceThreshold changes, or SpeakerId changes, Voice ID always returns cached Authentication Result for this API."];configuration:AuthenticationConfiguration.toption[@ocaml.doc"The AuthenticationConfiguration used to generate this authentication result."];customerSpeakerId:CustomerSpeakerId.toption[@ocaml.doc"The client-provided identifier for the speaker whose authentication result is produced. Only present if a SpeakerId is provided for the session."];decision:AuthenticationDecision.toption[@ocaml.doc"The authentication decision produced by Voice ID, processed against the current session state and streamed audio of the speaker."];generatedSpeakerId:GeneratedSpeakerId.toption[@ocaml.doc"The service-generated identifier for the speaker whose authentication result is produced."];score:Score.toption[@ocaml.doc"The authentication score for the speaker whose authentication result is produced. This value is only present if the authentication decision is either ACCEPT or REJECT."]}letmake?audioAggregationEndedAt=fun?audioAggregationStartedAt->fun?authenticationResultId->fun?configuration->fun?customerSpeakerId->fun?decision->fun?generatedSpeakerId->fun?score->fun()->{audioAggregationEndedAt;audioAggregationStartedAt;authenticationResultId;configuration;customerSpeakerId;decision;generatedSpeakerId;score}letto_valuex=structure_to_value[("AudioAggregationEndedAt",(Option.mapx.audioAggregationEndedAt~f:Timestamp.to_value));("AudioAggregationStartedAt",(Option.mapx.audioAggregationStartedAt~f:Timestamp.to_value));("AuthenticationResultId",(Option.mapx.authenticationResultId~f:UniqueIdLarge.to_value));("Configuration",(Option.mapx.configuration~f:AuthenticationConfiguration.to_value));("CustomerSpeakerId",(Option.mapx.customerSpeakerId~f:CustomerSpeakerId.to_value));("Decision",(Option.mapx.decision~f:AuthenticationDecision.to_value));("GeneratedSpeakerId",(Option.mapx.generatedSpeakerId~f:GeneratedSpeakerId.to_value));("Score",(Option.mapx.score~f:Score.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letscore=(Option.map~f:Score.of_xml)(Xml.childxml_arg0"Score")inletgeneratedSpeakerId=(Option.map~f:GeneratedSpeakerId.of_xml)(Xml.childxml_arg0"GeneratedSpeakerId")inletdecision=(Option.map~f:AuthenticationDecision.of_xml)(Xml.childxml_arg0"Decision")inletcustomerSpeakerId=(Option.map~f:CustomerSpeakerId.of_xml)(Xml.childxml_arg0"CustomerSpeakerId")inletconfiguration=(Option.map~f:AuthenticationConfiguration.of_xml)(Xml.childxml_arg0"Configuration")inletauthenticationResultId=(Option.map~f:UniqueIdLarge.of_xml)(Xml.childxml_arg0"AuthenticationResultId")inletaudioAggregationStartedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"AudioAggregationStartedAt")inletaudioAggregationEndedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"AudioAggregationEndedAt")inmake?score?generatedSpeakerId?decision?customerSpeakerId?configuration?authenticationResultId?audioAggregationStartedAt?audioAggregationEndedAt()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letscore=field_mapjson__"Score"Score.of_jsoninletgeneratedSpeakerId=field_mapjson__"GeneratedSpeakerId"GeneratedSpeakerId.of_jsoninletdecision=field_mapjson__"Decision"AuthenticationDecision.of_jsoninletcustomerSpeakerId=field_mapjson__"CustomerSpeakerId"CustomerSpeakerId.of_jsoninletconfiguration=field_mapjson__"Configuration"AuthenticationConfiguration.of_jsoninletauthenticationResultId=field_mapjson__"AuthenticationResultId"UniqueIdLarge.of_jsoninletaudioAggregationStartedAt=field_mapjson__"AudioAggregationStartedAt"Timestamp.of_jsoninletaudioAggregationEndedAt=field_mapjson__"AudioAggregationEndedAt"Timestamp.of_jsoninmake?score?generatedSpeakerId?decision?customerSpeakerId?configuration?authenticationResultId?audioAggregationStartedAt?audioAggregationEndedAt()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The authentication result produced by Voice ID, processed against the current session state and streamed audio of the speaker."]moduleFraudDetectionResult=structtypenonrect={audioAggregationEndedAt:Timestamp.toption[@ocaml.doc"A timestamp of when audio aggregation ended for this fraud detection result."];audioAggregationStartedAt:Timestamp.toption[@ocaml.doc"A timestamp of when audio aggregation started for this fraud detection result."];configuration:FraudDetectionConfiguration.toption[@ocaml.doc"The FraudDetectionConfiguration used to generate this fraud detection result."];decision:FraudDetectionDecision.toption[@ocaml.doc"The fraud detection decision produced by Voice ID, processed against the current session state and streamed audio of the speaker."];fraudDetectionResultId:UniqueIdLarge.toption[@ocaml.doc"The unique identifier for this fraud detection result. Given there can be multiple fraud detections for a given session, this field helps in identifying if the returned result is from previous streaming activity or a new result. Note that in the absence of any new streaming activity or risk threshold changes, Voice ID always returns cached Fraud Detection result for this API."];reasons:FraudDetectionReasons.toption[@ocaml.doc"The reason speaker was flagged by the fraud detection system. This is only be populated if fraud detection Decision is HIGH_RISK, and the following possible values: KNOWN_FRAUDSTER and VOICE_SPOOFING."];riskDetails:FraudRiskDetails.toption[@ocaml.doc"Details about each risk analyzed for this speaker. Currently, this contains KnownFraudsterRisk and VoiceSpoofingRisk details."]}letmake?audioAggregationEndedAt=fun?audioAggregationStartedAt->fun?configuration->fun?decision->fun?fraudDetectionResultId->fun?reasons->fun?riskDetails->fun()->{audioAggregationEndedAt;audioAggregationStartedAt;configuration;decision;fraudDetectionResultId;reasons;riskDetails}letto_valuex=structure_to_value[("AudioAggregationEndedAt",(Option.mapx.audioAggregationEndedAt~f:Timestamp.to_value));("AudioAggregationStartedAt",(Option.mapx.audioAggregationStartedAt~f:Timestamp.to_value));("Configuration",(Option.mapx.configuration~f:FraudDetectionConfiguration.to_value));("Decision",(Option.mapx.decision~f:FraudDetectionDecision.to_value));("FraudDetectionResultId",(Option.mapx.fraudDetectionResultId~f:UniqueIdLarge.to_value));("Reasons",(Option.mapx.reasons~f:FraudDetectionReasons.to_value));("RiskDetails",(Option.mapx.riskDetails~f:FraudRiskDetails.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letriskDetails=(Option.map~f:FraudRiskDetails.of_xml)(Xml.childxml_arg0"RiskDetails")inletreasons=(Option.map~f:FraudDetectionReasons.of_xml)(Xml.childxml_arg0"Reasons")inletfraudDetectionResultId=(Option.map~f:UniqueIdLarge.of_xml)(Xml.childxml_arg0"FraudDetectionResultId")inletdecision=(Option.map~f:FraudDetectionDecision.of_xml)(Xml.childxml_arg0"Decision")inletconfiguration=(Option.map~f:FraudDetectionConfiguration.of_xml)(Xml.childxml_arg0"Configuration")inletaudioAggregationStartedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"AudioAggregationStartedAt")inletaudioAggregationEndedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"AudioAggregationEndedAt")inmake?riskDetails?reasons?fraudDetectionResultId?decision?configuration?audioAggregationStartedAt?audioAggregationEndedAt()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letriskDetails=field_mapjson__"RiskDetails"FraudRiskDetails.of_jsoninletreasons=field_mapjson__"Reasons"FraudDetectionReasons.of_jsoninletfraudDetectionResultId=field_mapjson__"FraudDetectionResultId"UniqueIdLarge.of_jsoninletdecision=field_mapjson__"Decision"FraudDetectionDecision.of_jsoninletconfiguration=field_mapjson__"Configuration"FraudDetectionConfiguration.of_jsoninletaudioAggregationStartedAt=field_mapjson__"AudioAggregationStartedAt"Timestamp.of_jsoninletaudioAggregationEndedAt=field_mapjson__"AudioAggregationEndedAt"Timestamp.of_jsoninmake?riskDetails?reasons?fraudDetectionResultId?decision?configuration?audioAggregationStartedAt?audioAggregationEndedAt()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The fraud detection result produced by Voice ID, processed against the current session state and streamed audio of the speaker."]moduleSessionId=structtypenonrect=stringletcontext_="SessionId"letmakei=letopenResultinok_or_failwith((check_string_mini~min:25)>>=(fun()->(check_string_maxi~max:25)>>=(fun()->check_patterni~pattern:"^id#[a-zA-Z0-9]{22}$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"SessionId"jletto_json=simple_to_jsonto_valueendmoduleSessionName=structtypenonrect=stringletcontext_="SessionName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:36)>>=(fun()->check_patterni~pattern:"^[a-zA-Z0-9][a-zA-Z0-9_-]*$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"SessionName"jletto_json=simple_to_jsonto_valueendmoduleStreamingStatus=structtypenonrect=|PENDING_CONFIGURATION|ONGOING|ENDED|Non_static_idofstringletmakei=iletto_string=function|PENDING_CONFIGURATION->"PENDING_CONFIGURATION"|ONGOING->"ONGOING"|ENDED->"ENDED"|Non_static_ids->sletof_string=function|"PENDING_CONFIGURATION"->PENDING_CONFIGURATION|"ONGOING"->ONGOING|"ENDED"->ENDED|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 StreamingStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"StreamingStatus"j)letto_json=simple_to_jsonto_valueendmoduleSessionNameOrId=structtypenonrect=stringletcontext_="SessionNameOrId"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:36)>>=(fun()->check_patterni~pattern:"^(id#[a-zA-Z0-9]{22}|[a-zA-Z0-9][a-zA-Z0-9_-]*)$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"SessionNameOrId"jletto_json=simple_to_jsonto_valueendmoduleFraudster=structtypenonrect={createdAt:Timestamp.toption[@ocaml.doc"The timestamp of when Voice ID identified the fraudster."];domainId:DomainId.toption[@ocaml.doc"The identifier of the domain that contains the fraudster."];generatedFraudsterId:GeneratedFraudsterId.toption[@ocaml.doc"The service-generated identifier for the fraudster."];watchlistIds:ResponseWatchlistIds.toption[@ocaml.doc"The identifier of the watchlists the fraudster is a part of."]}letmake?createdAt=fun?domainId->fun?generatedFraudsterId->fun?watchlistIds->fun()->{createdAt;domainId;generatedFraudsterId;watchlistIds}letto_valuex=structure_to_value[("CreatedAt",(Option.mapx.createdAt~f:Timestamp.to_value));("DomainId",(Option.mapx.domainId~f:DomainId.to_value));("GeneratedFraudsterId",(Option.mapx.generatedFraudsterId~f:GeneratedFraudsterId.to_value));("WatchlistIds",(Option.mapx.watchlistIds~f:ResponseWatchlistIds.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letwatchlistIds=(Option.map~f:ResponseWatchlistIds.of_xml)(Xml.childxml_arg0"WatchlistIds")inletgeneratedFraudsterId=(Option.map~f:GeneratedFraudsterId.of_xml)(Xml.childxml_arg0"GeneratedFraudsterId")inletdomainId=(Option.map~f:DomainId.of_xml)(Xml.childxml_arg0"DomainId")inletcreatedAt=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"CreatedAt")inmake?watchlistIds?generatedFraudsterId?domainId?createdAt()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letwatchlistIds=field_mapjson__"WatchlistIds"ResponseWatchlistIds.of_jsoninletgeneratedFraudsterId=field_mapjson__"GeneratedFraudsterId"GeneratedFraudsterId.of_jsoninletdomainId=field_mapjson__"DomainId"DomainId.of_jsoninletcreatedAt=field_mapjson__"CreatedAt"Timestamp.of_jsoninmake?watchlistIds?generatedFraudsterId?domainId?createdAt()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Contains all the information about a fraudster."]moduleFraudsterId=structtypenonrect=stringletcontext_="FraudsterId"letmakei=letopenResultinok_or_failwith((check_string_mini~min:25)>>=(fun()->(check_string_maxi~max:25)>>=(fun()->check_patterni~pattern:"^id#[a-zA-Z0-9]{22}$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"FraudsterId"jletto_json=simple_to_jsonto_valueendmoduleUpdateWatchlistResponse=structtypenonrect={watchlist:Watchlist.toption[@ocaml.doc"Details about the updated watchlist."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?watchlist=fun()->{watchlist}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Watchlist",(Option.mapx.watchlist~f:Watchlist.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letwatchlist=(Option.map~f:Watchlist.of_xml)(Xml.childxml_arg0"Watchlist")inmake?watchlist()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letwatchlist=field_mapjson__"Watchlist"Watchlist.of_jsoninmake?watchlist()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates the specified watchlist. Every domain has a default watchlist which cannot be updated."]moduleUpdateWatchlistRequest=structtypenonrect={description:WatchlistDescription.toption[@ocaml.doc"A brief description about this watchlist."];domainId:DomainId.t[@ocaml.doc"The identifier of the domain that contains the watchlist."];name:WatchlistName.toption[@ocaml.doc"The name of the watchlist."];watchlistId:WatchlistId.t[@ocaml.doc"The identifier of the watchlist to be updated."]}letcontext_="UpdateWatchlistRequest"letmake?description=fun?name->fun~domainId->fun~watchlistId->fun()->{description;name;domainId;watchlistId}letto_valuex=structure_to_value[("Description",(Option.mapx.description~f:WatchlistDescription.to_value));("DomainId",(Some(DomainId.to_valuex.domainId)));("Name",(Option.mapx.name~f:WatchlistName.to_value));("WatchlistId",(Some(WatchlistId.to_valuex.watchlistId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letwatchlistId=WatchlistId.of_xml(Xml.child_exn~context:context_xml_arg0"WatchlistId")inletname=(Option.map~f:WatchlistName.of_xml)(Xml.childxml_arg0"Name")inletdomainId=DomainId.of_xml(Xml.child_exn~context:context_xml_arg0"DomainId")inletdescription=(Option.map~f:WatchlistDescription.of_xml)(Xml.childxml_arg0"Description")inmake~watchlistId?name~domainId?description()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letwatchlistId=field_map_exnjson__"WatchlistId"WatchlistId.of_jsoninletname=field_mapjson__"Name"WatchlistName.of_jsoninletdomainId=field_map_exnjson__"DomainId"DomainId.of_jsoninletdescription=field_mapjson__"Description"WatchlistDescription.of_jsoninmake~watchlistId?name~domainId?description()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates the specified watchlist. Every domain has a default watchlist which cannot be updated."]moduleUpdateDomainResponse=structtypenonrect={domain:Domain.toption[@ocaml.doc"Details about the updated domain"]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?domain=fun()->{domain}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Domain",(Option.mapx.domain~f:Domain.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letdomain=(Option.map~f:Domain.of_xml)(Xml.childxml_arg0"Domain")inmake?domain()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letdomain=field_mapjson__"Domain"Domain.of_jsoninmake?domain()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates the specified domain. This API has clobber behavior, and clears and replaces all attributes. If an optional field, such as 'Description' is not provided, it is removed from the domain."]moduleUpdateDomainRequest=structtypenonrect={description:Description.toption[@ocaml.doc"A brief description about this domain."];domainId:DomainId.t[@ocaml.doc"The identifier of the domain to be updated."];name:DomainName.t[@ocaml.doc"The name of the domain."];serverSideEncryptionConfiguration:ServerSideEncryptionConfiguration.t[@ocaml.doc"The configuration, containing the KMS key identifier, to be used by Voice ID for the server-side encryption of your data. Changing the domain's associated KMS key immediately triggers an asynchronous process to remove dependency on the old KMS key, such that the domain's data can only be accessed using the new KMS key. The domain's ServerSideEncryptionUpdateDetails contains the details for this process."]}letcontext_="UpdateDomainRequest"letmake?description=fun~domainId->fun~name->fun~serverSideEncryptionConfiguration->fun()->{description;domainId;name;serverSideEncryptionConfiguration}letto_valuex=structure_to_value[("Description",(Option.mapx.description~f:Description.to_value));("DomainId",(Some(DomainId.to_valuex.domainId)));("Name",(Some(DomainName.to_valuex.name)));("ServerSideEncryptionConfiguration",(Some(ServerSideEncryptionConfiguration.to_valuex.serverSideEncryptionConfiguration)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letserverSideEncryptionConfiguration=ServerSideEncryptionConfiguration.of_xml(Xml.child_exn~context:context_xml_arg0"ServerSideEncryptionConfiguration")inletname=DomainName.of_xml(Xml.child_exn~context:context_xml_arg0"Name")inletdomainId=DomainId.of_xml(Xml.child_exn~context:context_xml_arg0"DomainId")inletdescription=(Option.map~f:Description.of_xml)(Xml.childxml_arg0"Description")inmake~serverSideEncryptionConfiguration~name~domainId?description()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letserverSideEncryptionConfiguration=field_map_exnjson__"ServerSideEncryptionConfiguration"ServerSideEncryptionConfiguration.of_jsoninletname=field_map_exnjson__"Name"DomainName.of_jsoninletdomainId=field_map_exnjson__"DomainId"DomainId.of_jsoninletdescription=field_mapjson__"Description"Description.of_jsoninmake~serverSideEncryptionConfiguration~name~domainId?description()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates the specified domain. This API has clobber behavior, and clears and replaces all attributes. If an optional field, such as 'Description' is not provided, it is removed from the domain."]moduleUntagResourceResponse=structtypenonrect=unittypenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake()=()leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Removes specified tags from a specified Amazon Connect Voice ID resource."]moduleUntagResourceRequest=structtypenonrect={resourceArn:AmazonResourceName.t[@ocaml.doc"The Amazon Resource Name (ARN) of the Voice ID resource you want to remove tags from."];tagKeys:TagKeyList.t[@ocaml.doc"The list of tag keys you want to remove from the specified resource."]}letcontext_="UntagResourceRequest"letmake~resourceArn=fun~tagKeys->fun()->{resourceArn;tagKeys}letto_valuex=structure_to_value[("ResourceArn",(Some(AmazonResourceName.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=AmazonResourceName.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"AmazonResourceName.of_jsoninmake~tagKeys~resourceArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Removes specified tags from a specified Amazon Connect Voice ID resource."]moduleTagResourceResponse=structtypenonrect=unittypenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake()=()leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Tags a Voice ID resource with the provided list of tags."]moduleTagResourceRequest=structtypenonrect={resourceArn:AmazonResourceName.t[@ocaml.doc"The Amazon Resource Name (ARN) of the Voice ID resource you want to tag."];tags:TagList.t[@ocaml.doc"The list of tags to assign to the specified resource."]}letcontext_="TagResourceRequest"letmake~resourceArn=fun~tags->fun()->{resourceArn;tags}letto_valuex=structure_to_value[("ResourceArn",(Some(AmazonResourceName.to_valuex.resourceArn)));("Tags",(Some(TagList.to_valuex.tags)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=TagList.of_xml(Xml.child_exn~context:context_xml_arg0"Tags")inletresourceArn=AmazonResourceName.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"TagList.of_jsoninletresourceArn=field_map_exnjson__"ResourceArn"AmazonResourceName.of_jsoninmake~tags~resourceArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Tags a Voice ID resource with the provided list of tags."]moduleStartSpeakerEnrollmentJobResponse=structtypenonrect={job:SpeakerEnrollmentJob.toption[@ocaml.doc"Details about the started speaker enrollment job."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?job=fun()->{job}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceQuotaExceededExceptione->`Assoc[("error",(`String"ServiceQuotaExceededException"));("details",(ServiceQuotaExceededException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Job",(Option.mapx.job~f:SpeakerEnrollmentJob.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letjob=(Option.map~f:SpeakerEnrollmentJob.of_xml)(Xml.childxml_arg0"Job")inmake?job()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letjob=field_mapjson__"Job"SpeakerEnrollmentJob.of_jsoninmake?job()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Starts a new batch speaker enrollment job using specified details."]moduleStartSpeakerEnrollmentJobRequest=structtypenonrect={clientToken:ClientTokenString.toption[@ocaml.doc"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs."];dataAccessRoleArn:IamRoleArn.t[@ocaml.doc"The IAM role Amazon Resource Name (ARN) that grants Voice ID permissions to access customer's buckets to read the input manifest file and write the job output file. Refer to Batch enrollment using audio data from prior calls for the permissions needed in this role."];domainId:DomainId.t[@ocaml.doc"The identifier of the domain that contains the speaker enrollment job and in which the speakers are enrolled."];enrollmentConfig:EnrollmentConfig.toption[@ocaml.doc"The enrollment config that contains details such as the action to take when a speaker is already enrolled in Voice ID or when a speaker is identified as a fraudster."];inputDataConfig:InputDataConfig.t[@ocaml.doc"The input data config containing the S3 location for the input manifest file that contains the list of speaker enrollment requests."];jobName:JobName.toption[@ocaml.doc"A name for your speaker enrollment job."];outputDataConfig:OutputDataConfig.t[@ocaml.doc"The output data config containing the S3 location where Voice ID writes the job output file; you must also include a KMS key ID to encrypt the file."]}letcontext_="StartSpeakerEnrollmentJobRequest"letmake?clientToken=fun?enrollmentConfig->fun?jobName->fun~dataAccessRoleArn->fun~domainId->fun~inputDataConfig->fun~outputDataConfig->fun()->{clientToken;enrollmentConfig;jobName;dataAccessRoleArn;domainId;inputDataConfig;outputDataConfig}letto_valuex=structure_to_value[("ClientToken",(Option.mapx.clientToken~f:ClientTokenString.to_value));("DataAccessRoleArn",(Some(IamRoleArn.to_valuex.dataAccessRoleArn)));("DomainId",(Some(DomainId.to_valuex.domainId)));("EnrollmentConfig",(Option.mapx.enrollmentConfig~f:EnrollmentConfig.to_value));("InputDataConfig",(Some(InputDataConfig.to_valuex.inputDataConfig)));("JobName",(Option.mapx.jobName~f:JobName.to_value));("OutputDataConfig",(Some(OutputDataConfig.to_valuex.outputDataConfig)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letoutputDataConfig=OutputDataConfig.of_xml(Xml.child_exn~context:context_xml_arg0"OutputDataConfig")inletjobName=(Option.map~f:JobName.of_xml)(Xml.childxml_arg0"JobName")inletinputDataConfig=InputDataConfig.of_xml(Xml.child_exn~context:context_xml_arg0"InputDataConfig")inletenrollmentConfig=(Option.map~f:EnrollmentConfig.of_xml)(Xml.childxml_arg0"EnrollmentConfig")inletdomainId=DomainId.of_xml(Xml.child_exn~context:context_xml_arg0"DomainId")inletdataAccessRoleArn=IamRoleArn.of_xml(Xml.child_exn~context:context_xml_arg0"DataAccessRoleArn")inletclientToken=(Option.map~f:ClientTokenString.of_xml)(Xml.childxml_arg0"ClientToken")inmake~outputDataConfig?jobName~inputDataConfig?enrollmentConfig~domainId~dataAccessRoleArn?clientToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letoutputDataConfig=field_map_exnjson__"OutputDataConfig"OutputDataConfig.of_jsoninletjobName=field_mapjson__"JobName"JobName.of_jsoninletinputDataConfig=field_map_exnjson__"InputDataConfig"InputDataConfig.of_jsoninletenrollmentConfig=field_mapjson__"EnrollmentConfig"EnrollmentConfig.of_jsoninletdomainId=field_map_exnjson__"DomainId"DomainId.of_jsoninletdataAccessRoleArn=field_map_exnjson__"DataAccessRoleArn"IamRoleArn.of_jsoninletclientToken=field_mapjson__"ClientToken"ClientTokenString.of_jsoninmake~outputDataConfig?jobName~inputDataConfig?enrollmentConfig~domainId~dataAccessRoleArn?clientToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Starts a new batch speaker enrollment job using specified details."]moduleStartFraudsterRegistrationJobResponse=structtypenonrect={job:FraudsterRegistrationJob.toption[@ocaml.doc"Details about the started fraudster registration job."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?job=fun()->{job}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceQuotaExceededExceptione->`Assoc[("error",(`String"ServiceQuotaExceededException"));("details",(ServiceQuotaExceededException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Job",(Option.mapx.job~f:FraudsterRegistrationJob.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letjob=(Option.map~f:FraudsterRegistrationJob.of_xml)(Xml.childxml_arg0"Job")inmake?job()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letjob=field_mapjson__"Job"FraudsterRegistrationJob.of_jsoninmake?job()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Starts a new batch fraudster registration job using provided details."]moduleStartFraudsterRegistrationJobRequest=structtypenonrect={clientToken:ClientTokenString.toption[@ocaml.doc"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs."];dataAccessRoleArn:IamRoleArn.t[@ocaml.doc"The IAM role Amazon Resource Name (ARN) that grants Voice ID permissions to access customer's buckets to read the input manifest file and write the Job output file. Refer to the Create and edit a fraudster watchlist documentation for the permissions needed in this role."];domainId:DomainId.t[@ocaml.doc"The identifier of the domain that contains the fraudster registration job and in which the fraudsters are registered."];inputDataConfig:InputDataConfig.t[@ocaml.doc"The input data config containing an S3 URI for the input manifest file that contains the list of fraudster registration requests."];jobName:JobName.toption[@ocaml.doc"The name of the new fraudster registration job."];outputDataConfig:OutputDataConfig.t[@ocaml.doc"The output data config containing the S3 location where Voice ID writes the job output file; you must also include a KMS key ID to encrypt the file."];registrationConfig:RegistrationConfig.toption[@ocaml.doc"The registration config containing details such as the action to take when a duplicate fraudster is detected, and the similarity threshold to use for detecting a duplicate fraudster."]}letcontext_="StartFraudsterRegistrationJobRequest"letmake?clientToken=fun?jobName->fun?registrationConfig->fun~dataAccessRoleArn->fun~domainId->fun~inputDataConfig->fun~outputDataConfig->fun()->{clientToken;jobName;registrationConfig;dataAccessRoleArn;domainId;inputDataConfig;outputDataConfig}letto_valuex=structure_to_value[("ClientToken",(Option.mapx.clientToken~f:ClientTokenString.to_value));("DataAccessRoleArn",(Some(IamRoleArn.to_valuex.dataAccessRoleArn)));("DomainId",(Some(DomainId.to_valuex.domainId)));("InputDataConfig",(Some(InputDataConfig.to_valuex.inputDataConfig)));("JobName",(Option.mapx.jobName~f:JobName.to_value));("OutputDataConfig",(Some(OutputDataConfig.to_valuex.outputDataConfig)));("RegistrationConfig",(Option.mapx.registrationConfig~f:RegistrationConfig.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letregistrationConfig=(Option.map~f:RegistrationConfig.of_xml)(Xml.childxml_arg0"RegistrationConfig")inletoutputDataConfig=OutputDataConfig.of_xml(Xml.child_exn~context:context_xml_arg0"OutputDataConfig")inletjobName=(Option.map~f:JobName.of_xml)(Xml.childxml_arg0"JobName")inletinputDataConfig=InputDataConfig.of_xml(Xml.child_exn~context:context_xml_arg0"InputDataConfig")inletdomainId=DomainId.of_xml(Xml.child_exn~context:context_xml_arg0"DomainId")inletdataAccessRoleArn=IamRoleArn.of_xml(Xml.child_exn~context:context_xml_arg0"DataAccessRoleArn")inletclientToken=(Option.map~f:ClientTokenString.of_xml)(Xml.childxml_arg0"ClientToken")inmake?registrationConfig~outputDataConfig?jobName~inputDataConfig~domainId~dataAccessRoleArn?clientToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letregistrationConfig=field_mapjson__"RegistrationConfig"RegistrationConfig.of_jsoninletoutputDataConfig=field_map_exnjson__"OutputDataConfig"OutputDataConfig.of_jsoninletjobName=field_mapjson__"JobName"JobName.of_jsoninletinputDataConfig=field_map_exnjson__"InputDataConfig"InputDataConfig.of_jsoninletdomainId=field_map_exnjson__"DomainId"DomainId.of_jsoninletdataAccessRoleArn=field_map_exnjson__"DataAccessRoleArn"IamRoleArn.of_jsoninletclientToken=field_mapjson__"ClientToken"ClientTokenString.of_jsoninmake?registrationConfig~outputDataConfig?jobName~inputDataConfig~domainId~dataAccessRoleArn?clientToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Starts a new batch fraudster registration job using provided details."]moduleOptOutSpeakerResponse=structtypenonrect={speaker:Speaker.toption[@ocaml.doc"Details about the opted-out speaker."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?speaker=fun()->{speaker}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceQuotaExceededExceptione->`Assoc[("error",(`String"ServiceQuotaExceededException"));("details",(ServiceQuotaExceededException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Speaker",(Option.mapx.speaker~f:Speaker.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letspeaker=(Option.map~f:Speaker.of_xml)(Xml.childxml_arg0"Speaker")inmake?speaker()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letspeaker=field_mapjson__"Speaker"Speaker.of_jsoninmake?speaker()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Opts out a speaker from Voice ID. A speaker can be opted out regardless of whether or not they already exist in Voice ID. If they don't yet exist, a new speaker is created in an opted out state. If they already exist, their existing status is overridden and they are opted out. Enrollment and evaluation authentication requests are rejected for opted out speakers, and opted out speakers have no voice embeddings stored in Voice ID."]moduleOptOutSpeakerRequest=structtypenonrect={domainId:DomainId.t[@ocaml.doc"The identifier of the domain that contains the speaker."];speakerId:SpeakerId.t[@ocaml.doc"The identifier of the speaker you want opted-out."]}letcontext_="OptOutSpeakerRequest"letmake~domainId=fun~speakerId->fun()->{domainId;speakerId}letto_valuex=structure_to_value[("DomainId",(Some(DomainId.to_valuex.domainId)));("SpeakerId",(Some(SpeakerId.to_valuex.speakerId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letspeakerId=SpeakerId.of_xml(Xml.child_exn~context:context_xml_arg0"SpeakerId")inletdomainId=DomainId.of_xml(Xml.child_exn~context:context_xml_arg0"DomainId")inmake~speakerId~domainId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letspeakerId=field_map_exnjson__"SpeakerId"SpeakerId.of_jsoninletdomainId=field_map_exnjson__"DomainId"DomainId.of_jsoninmake~speakerId~domainId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Opts out a speaker from Voice ID. A speaker can be opted out regardless of whether or not they already exist in Voice ID. If they don't yet exist, a new speaker is created in an opted out state. If they already exist, their existing status is overridden and they are opted out. Enrollment and evaluation authentication requests are rejected for opted out speakers, and opted out speakers have no voice embeddings stored in Voice ID."]moduleListWatchlistsResponse=structtypenonrect={nextToken:String_.toption[@ocaml.doc"If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours."];watchlistSummaries:WatchlistSummaries.toption[@ocaml.doc"A list that contains details about each watchlist in the Amazon Web Services account."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?nextToken=fun?watchlistSummaries->fun()->{nextToken;watchlistSummaries}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("NextToken",(Option.mapx.nextToken~f:String_.to_value));("WatchlistSummaries",(Option.mapx.watchlistSummaries~f:WatchlistSummaries.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letwatchlistSummaries=(Option.map~f:WatchlistSummaries.of_xml)(Xml.childxml_arg0"WatchlistSummaries")inletnextToken=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"NextToken")inmake?watchlistSummaries?nextToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letwatchlistSummaries=field_mapjson__"WatchlistSummaries"WatchlistSummaries.of_jsoninletnextToken=field_mapjson__"NextToken"String_.of_jsoninmake?watchlistSummaries?nextToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists all watchlists in a specified domain."]moduleListWatchlistsRequest=structtypenonrect={domainId:DomainId.t[@ocaml.doc"The identifier of the domain."];maxResults:MaxResultsForList.toption[@ocaml.doc"The maximum number of results that are returned per call. You can use NextToken to obtain more pages of results. The default is 100; the maximum allowed page size is also 100."];nextToken:NextToken.toption[@ocaml.doc"If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours."]}letcontext_="ListWatchlistsRequest"letmake?maxResults=fun?nextToken->fun~domainId->fun()->{maxResults;nextToken;domainId}letto_valuex=structure_to_value[("DomainId",(Some(DomainId.to_valuex.domainId)));("MaxResults",(Option.mapx.maxResults~f:MaxResultsForList.to_value));("NextToken",(Option.mapx.nextToken~f:NextToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"NextToken")inletmaxResults=(Option.map~f:MaxResultsForList.of_xml)(Xml.childxml_arg0"MaxResults")inletdomainId=DomainId.of_xml(Xml.child_exn~context:context_xml_arg0"DomainId")inmake?nextToken?maxResults~domainId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"NextToken.of_jsoninletmaxResults=field_mapjson__"MaxResults"MaxResultsForList.of_jsoninletdomainId=field_map_exnjson__"DomainId"DomainId.of_jsoninmake?nextToken?maxResults~domainId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists all watchlists in a specified domain."]moduleListTagsForResourceResponse=structtypenonrect={tags:TagList.toption[@ocaml.doc"The list of tags associated with the specified resource."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?tags=fun()->{tags}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Tags",(Option.mapx.tags~f:TagList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:TagList.of_xml)(Xml.childxml_arg0"Tags")inmake?tags()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"Tags"TagList.of_jsoninmake?tags()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists all tags associated with a specified Voice ID resource."]moduleListTagsForResourceRequest=structtypenonrect={resourceArn:AmazonResourceName.t[@ocaml.doc"The Amazon Resource Name (ARN) of the Voice ID resource for which you want to list the tags."]}letcontext_="ListTagsForResourceRequest"letmake~resourceArn=fun()->{resourceArn}letto_valuex=structure_to_value[("ResourceArn",(Some(AmazonResourceName.to_valuex.resourceArn)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letresourceArn=AmazonResourceName.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"AmazonResourceName.of_jsoninmake~resourceArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists all tags associated with a specified Voice ID resource."]moduleListSpeakersResponse=structtypenonrect={nextToken:String_.toption[@ocaml.doc"If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours."];speakerSummaries:SpeakerSummaries.toption[@ocaml.doc"A list containing details about each speaker in the Amazon Web Services account."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?nextToken=fun?speakerSummaries->fun()->{nextToken;speakerSummaries}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("NextToken",(Option.mapx.nextToken~f:String_.to_value));("SpeakerSummaries",(Option.mapx.speakerSummaries~f:SpeakerSummaries.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letspeakerSummaries=(Option.map~f:SpeakerSummaries.of_xml)(Xml.childxml_arg0"SpeakerSummaries")inletnextToken=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"NextToken")inmake?speakerSummaries?nextToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letspeakerSummaries=field_mapjson__"SpeakerSummaries"SpeakerSummaries.of_jsoninletnextToken=field_mapjson__"NextToken"String_.of_jsoninmake?speakerSummaries?nextToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists all speakers in a specified domain."]moduleListSpeakersRequest=structtypenonrect={domainId:DomainId.t[@ocaml.doc"The identifier of the domain."];maxResults:MaxResultsForList.toption[@ocaml.doc"The maximum number of results that are returned per call. You can use NextToken to obtain more pages of results. The default is 100; the maximum allowed page size is also 100."];nextToken:NextToken.toption[@ocaml.doc"If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours."]}letcontext_="ListSpeakersRequest"letmake?maxResults=fun?nextToken->fun~domainId->fun()->{maxResults;nextToken;domainId}letto_valuex=structure_to_value[("DomainId",(Some(DomainId.to_valuex.domainId)));("MaxResults",(Option.mapx.maxResults~f:MaxResultsForList.to_value));("NextToken",(Option.mapx.nextToken~f:NextToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"NextToken")inletmaxResults=(Option.map~f:MaxResultsForList.of_xml)(Xml.childxml_arg0"MaxResults")inletdomainId=DomainId.of_xml(Xml.child_exn~context:context_xml_arg0"DomainId")inmake?nextToken?maxResults~domainId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"NextToken.of_jsoninletmaxResults=field_mapjson__"MaxResults"MaxResultsForList.of_jsoninletdomainId=field_map_exnjson__"DomainId"DomainId.of_jsoninmake?nextToken?maxResults~domainId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists all speakers in a specified domain."]moduleListSpeakerEnrollmentJobsResponse=structtypenonrect={jobSummaries:SpeakerEnrollmentJobSummaries.toption[@ocaml.doc"A list containing details about each specified speaker enrollment job."];nextToken:String_.toption[@ocaml.doc"If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?jobSummaries=fun?nextToken->fun()->{jobSummaries;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("JobSummaries",(Option.mapx.jobSummaries~f:SpeakerEnrollmentJobSummaries.to_value));("NextToken",(Option.mapx.nextToken~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"NextToken")inletjobSummaries=(Option.map~f:SpeakerEnrollmentJobSummaries.of_xml)(Xml.childxml_arg0"JobSummaries")inmake?nextToken?jobSummaries()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"String_.of_jsoninletjobSummaries=field_mapjson__"JobSummaries"SpeakerEnrollmentJobSummaries.of_jsoninmake?nextToken?jobSummaries()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists all the speaker enrollment jobs in the domain with the specified JobStatus. If JobStatus is not provided, this lists all jobs with all possible speaker enrollment job statuses."]moduleListSpeakerEnrollmentJobsRequest=structtypenonrect={domainId:DomainId.t[@ocaml.doc"The identifier of the domain that contains the speaker enrollment jobs."];jobStatus:SpeakerEnrollmentJobStatus.toption[@ocaml.doc"Provides the status of your speaker enrollment Job."];maxResults:MaxResultsForList.toption[@ocaml.doc"The maximum number of results that are returned per call. You can use NextToken to obtain more pages of results. The default is 100; the maximum allowed page size is also 100."];nextToken:NextToken.toption[@ocaml.doc"If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours."]}letcontext_="ListSpeakerEnrollmentJobsRequest"letmake?jobStatus=fun?maxResults->fun?nextToken->fun~domainId->fun()->{jobStatus;maxResults;nextToken;domainId}letto_valuex=structure_to_value[("DomainId",(Some(DomainId.to_valuex.domainId)));("JobStatus",(Option.mapx.jobStatus~f:SpeakerEnrollmentJobStatus.to_value));("MaxResults",(Option.mapx.maxResults~f:MaxResultsForList.to_value));("NextToken",(Option.mapx.nextToken~f:NextToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"NextToken")inletmaxResults=(Option.map~f:MaxResultsForList.of_xml)(Xml.childxml_arg0"MaxResults")inletjobStatus=(Option.map~f:SpeakerEnrollmentJobStatus.of_xml)(Xml.childxml_arg0"JobStatus")inletdomainId=DomainId.of_xml(Xml.child_exn~context:context_xml_arg0"DomainId")inmake?nextToken?maxResults?jobStatus~domainId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"NextToken.of_jsoninletmaxResults=field_mapjson__"MaxResults"MaxResultsForList.of_jsoninletjobStatus=field_mapjson__"JobStatus"SpeakerEnrollmentJobStatus.of_jsoninletdomainId=field_map_exnjson__"DomainId"DomainId.of_jsoninmake?nextToken?maxResults?jobStatus~domainId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists all the speaker enrollment jobs in the domain with the specified JobStatus. If JobStatus is not provided, this lists all jobs with all possible speaker enrollment job statuses."]moduleListFraudstersResponse=structtypenonrect={fraudsterSummaries:FraudsterSummaries.toption[@ocaml.doc"A list that contains details about each fraudster in the Amazon Web Services account."];nextToken:String_.toption[@ocaml.doc"If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?fraudsterSummaries=fun?nextToken->fun()->{fraudsterSummaries;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("FraudsterSummaries",(Option.mapx.fraudsterSummaries~f:FraudsterSummaries.to_value));("NextToken",(Option.mapx.nextToken~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"NextToken")inletfraudsterSummaries=(Option.map~f:FraudsterSummaries.of_xml)(Xml.childxml_arg0"FraudsterSummaries")inmake?nextToken?fraudsterSummaries()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"String_.of_jsoninletfraudsterSummaries=field_mapjson__"FraudsterSummaries"FraudsterSummaries.of_jsoninmake?nextToken?fraudsterSummaries()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists all fraudsters in a specified watchlist or domain."]moduleListFraudstersRequest=structtypenonrect={domainId:DomainId.t[@ocaml.doc"The identifier of the domain."];maxResults:MaxResultsForList.toption[@ocaml.doc"The maximum number of results that are returned per call. You can use NextToken to obtain more pages of results. The default is 100; the maximum allowed page size is also 100."];nextToken:NextToken.toption[@ocaml.doc"If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours."];watchlistId:WatchlistId.toption[@ocaml.doc"The identifier of the watchlist. If provided, all fraudsters in the watchlist are listed. If not provided, all fraudsters in the domain are listed."]}letcontext_="ListFraudstersRequest"letmake?maxResults=fun?nextToken->fun?watchlistId->fun~domainId->fun()->{maxResults;nextToken;watchlistId;domainId}letto_valuex=structure_to_value[("DomainId",(Some(DomainId.to_valuex.domainId)));("MaxResults",(Option.mapx.maxResults~f:MaxResultsForList.to_value));("NextToken",(Option.mapx.nextToken~f:NextToken.to_value));("WatchlistId",(Option.mapx.watchlistId~f:WatchlistId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letwatchlistId=(Option.map~f:WatchlistId.of_xml)(Xml.childxml_arg0"WatchlistId")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"NextToken")inletmaxResults=(Option.map~f:MaxResultsForList.of_xml)(Xml.childxml_arg0"MaxResults")inletdomainId=DomainId.of_xml(Xml.child_exn~context:context_xml_arg0"DomainId")inmake?watchlistId?nextToken?maxResults~domainId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letwatchlistId=field_mapjson__"WatchlistId"WatchlistId.of_jsoninletnextToken=field_mapjson__"NextToken"NextToken.of_jsoninletmaxResults=field_mapjson__"MaxResults"MaxResultsForList.of_jsoninletdomainId=field_map_exnjson__"DomainId"DomainId.of_jsoninmake?watchlistId?nextToken?maxResults~domainId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists all fraudsters in a specified watchlist or domain."]moduleListFraudsterRegistrationJobsResponse=structtypenonrect={jobSummaries:FraudsterRegistrationJobSummaries.toption[@ocaml.doc"A list containing details about each specified fraudster registration job."];nextToken:String_.toption[@ocaml.doc"If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?jobSummaries=fun?nextToken->fun()->{jobSummaries;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("JobSummaries",(Option.mapx.jobSummaries~f:FraudsterRegistrationJobSummaries.to_value));("NextToken",(Option.mapx.nextToken~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"NextToken")inletjobSummaries=(Option.map~f:FraudsterRegistrationJobSummaries.of_xml)(Xml.childxml_arg0"JobSummaries")inmake?nextToken?jobSummaries()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"String_.of_jsoninletjobSummaries=field_mapjson__"JobSummaries"FraudsterRegistrationJobSummaries.of_jsoninmake?nextToken?jobSummaries()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists all the fraudster registration jobs in the domain with the given JobStatus. If JobStatus is not provided, this lists all fraudster registration jobs in the given domain."]moduleListFraudsterRegistrationJobsRequest=structtypenonrect={domainId:DomainId.t[@ocaml.doc"The identifier of the domain that contains the fraudster registration Jobs."];jobStatus:FraudsterRegistrationJobStatus.toption[@ocaml.doc"Provides the status of your fraudster registration job."];maxResults:MaxResultsForList.toption[@ocaml.doc"The maximum number of results that are returned per call. You can use NextToken to obtain more pages of results. The default is 100; the maximum allowed page size is also 100."];nextToken:NextToken.toption[@ocaml.doc"If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours."]}letcontext_="ListFraudsterRegistrationJobsRequest"letmake?jobStatus=fun?maxResults->fun?nextToken->fun~domainId->fun()->{jobStatus;maxResults;nextToken;domainId}letto_valuex=structure_to_value[("DomainId",(Some(DomainId.to_valuex.domainId)));("JobStatus",(Option.mapx.jobStatus~f:FraudsterRegistrationJobStatus.to_value));("MaxResults",(Option.mapx.maxResults~f:MaxResultsForList.to_value));("NextToken",(Option.mapx.nextToken~f:NextToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"NextToken")inletmaxResults=(Option.map~f:MaxResultsForList.of_xml)(Xml.childxml_arg0"MaxResults")inletjobStatus=(Option.map~f:FraudsterRegistrationJobStatus.of_xml)(Xml.childxml_arg0"JobStatus")inletdomainId=DomainId.of_xml(Xml.child_exn~context:context_xml_arg0"DomainId")inmake?nextToken?maxResults?jobStatus~domainId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"NextToken.of_jsoninletmaxResults=field_mapjson__"MaxResults"MaxResultsForList.of_jsoninletjobStatus=field_mapjson__"JobStatus"FraudsterRegistrationJobStatus.of_jsoninletdomainId=field_map_exnjson__"DomainId"DomainId.of_jsoninmake?nextToken?maxResults?jobStatus~domainId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists all the fraudster registration jobs in the domain with the given JobStatus. If JobStatus is not provided, this lists all fraudster registration jobs in the given domain."]moduleListDomainsResponse=structtypenonrect={domainSummaries:DomainSummaries.toption[@ocaml.doc"A list containing details about each domain in the Amazon Web Services account."];nextToken:String_.toption[@ocaml.doc"If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?domainSummaries=fun?nextToken->fun()->{domainSummaries;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("DomainSummaries",(Option.mapx.domainSummaries~f:DomainSummaries.to_value));("NextToken",(Option.mapx.nextToken~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"NextToken")inletdomainSummaries=(Option.map~f:DomainSummaries.of_xml)(Xml.childxml_arg0"DomainSummaries")inmake?nextToken?domainSummaries()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"String_.of_jsoninletdomainSummaries=field_mapjson__"DomainSummaries"DomainSummaries.of_jsoninmake?nextToken?domainSummaries()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists all the domains in the Amazon Web Services account."]moduleListDomainsRequest=structtypenonrect={maxResults:MaxResultsForListDomainFe.toption[@ocaml.doc"The maximum number of results that are returned per call. You can use NextToken to obtain more pages of results. The default is 100; the maximum allowed page size is also 100."];nextToken:NextToken.toption[@ocaml.doc"If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours."]}letmake?maxResults=fun?nextToken->fun()->{maxResults;nextToken}letto_valuex=structure_to_value[("MaxResults",(Option.mapx.maxResults~f:MaxResultsForListDomainFe.to_value));("NextToken",(Option.mapx.nextToken~f:NextToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"NextToken")inletmaxResults=(Option.map~f:MaxResultsForListDomainFe.of_xml)(Xml.childxml_arg0"MaxResults")inmake?nextToken?maxResults()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"NextToken.of_jsoninletmaxResults=field_mapjson__"MaxResults"MaxResultsForListDomainFe.of_jsoninmake?nextToken?maxResults()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Lists all the domains in the Amazon Web Services account."]moduleEvaluateSessionResponse=structtypenonrect={authenticationResult:AuthenticationResult.toption[@ocaml.doc"Details resulting from the authentication process, such as authentication decision and authentication score."];domainId:DomainId.toption[@ocaml.doc"The identifier of the domain that contains the session."];fraudDetectionResult:FraudDetectionResult.toption[@ocaml.doc"Details resulting from the fraud detection process, such as fraud detection decision and risk score."];sessionId:SessionId.toption[@ocaml.doc"The service-generated identifier of the session."];sessionName:SessionName.toption[@ocaml.doc"The client-provided name of the session."];streamingStatus:StreamingStatus.toption[@ocaml.doc"The current status of audio streaming for this session. This field is useful to infer next steps when the Authentication or Fraud Detection results are empty or the decision is NOT_ENOUGH_SPEECH. In this situation, if the StreamingStatus is ONGOING/PENDING_CONFIGURATION, it can mean that the client should call the API again later, after Voice ID has enough audio to produce a result. If the decision remains NOT_ENOUGH_SPEECH even after StreamingStatus is ENDED, it means that the previously streamed session did not have enough speech to perform evaluation, and a new streaming session is needed to try again."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?authenticationResult=fun?domainId->fun?fraudDetectionResult->fun?sessionId->fun?sessionName->fun?streamingStatus->fun()->{authenticationResult;domainId;fraudDetectionResult;sessionId;sessionName;streamingStatus}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("AuthenticationResult",(Option.mapx.authenticationResult~f:AuthenticationResult.to_value));("DomainId",(Option.mapx.domainId~f:DomainId.to_value));("FraudDetectionResult",(Option.mapx.fraudDetectionResult~f:FraudDetectionResult.to_value));("SessionId",(Option.mapx.sessionId~f:SessionId.to_value));("SessionName",(Option.mapx.sessionName~f:SessionName.to_value));("StreamingStatus",(Option.mapx.streamingStatus~f:StreamingStatus.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstreamingStatus=(Option.map~f:StreamingStatus.of_xml)(Xml.childxml_arg0"StreamingStatus")inletsessionName=(Option.map~f:SessionName.of_xml)(Xml.childxml_arg0"SessionName")inletsessionId=(Option.map~f:SessionId.of_xml)(Xml.childxml_arg0"SessionId")inletfraudDetectionResult=(Option.map~f:FraudDetectionResult.of_xml)(Xml.childxml_arg0"FraudDetectionResult")inletdomainId=(Option.map~f:DomainId.of_xml)(Xml.childxml_arg0"DomainId")inletauthenticationResult=(Option.map~f:AuthenticationResult.of_xml)(Xml.childxml_arg0"AuthenticationResult")inmake?streamingStatus?sessionName?sessionId?fraudDetectionResult?domainId?authenticationResult()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstreamingStatus=field_mapjson__"StreamingStatus"StreamingStatus.of_jsoninletsessionName=field_mapjson__"SessionName"SessionName.of_jsoninletsessionId=field_mapjson__"SessionId"SessionId.of_jsoninletfraudDetectionResult=field_mapjson__"FraudDetectionResult"FraudDetectionResult.of_jsoninletdomainId=field_mapjson__"DomainId"DomainId.of_jsoninletauthenticationResult=field_mapjson__"AuthenticationResult"AuthenticationResult.of_jsoninmake?streamingStatus?sessionName?sessionId?fraudDetectionResult?domainId?authenticationResult()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Evaluates a specified session based on audio data accumulated during a streaming Amazon Connect Voice ID call."]moduleEvaluateSessionRequest=structtypenonrect={domainId:DomainId.t[@ocaml.doc"The identifier of the domain where the session started."];sessionNameOrId:SessionNameOrId.t[@ocaml.doc"The session identifier, or name of the session, that you want to evaluate. In Voice ID integration, this is the Contact-Id."]}letcontext_="EvaluateSessionRequest"letmake~domainId=fun~sessionNameOrId->fun()->{domainId;sessionNameOrId}letto_valuex=structure_to_value[("DomainId",(Some(DomainId.to_valuex.domainId)));("SessionNameOrId",(Some(SessionNameOrId.to_valuex.sessionNameOrId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsessionNameOrId=SessionNameOrId.of_xml(Xml.child_exn~context:context_xml_arg0"SessionNameOrId")inletdomainId=DomainId.of_xml(Xml.child_exn~context:context_xml_arg0"DomainId")inmake~sessionNameOrId~domainId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsessionNameOrId=field_map_exnjson__"SessionNameOrId"SessionNameOrId.of_jsoninletdomainId=field_map_exnjson__"DomainId"DomainId.of_jsoninmake~sessionNameOrId~domainId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Evaluates a specified session based on audio data accumulated during a streaming Amazon Connect Voice ID call."]moduleDisassociateFraudsterResponse=structtypenonrect={fraudster:Fraudster.toption}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?fraudster=fun()->{fraudster}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Fraudster",(Option.mapx.fraudster~f:Fraudster.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfraudster=(Option.map~f:Fraudster.of_xml)(Xml.childxml_arg0"Fraudster")inmake?fraudster()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfraudster=field_mapjson__"Fraudster"Fraudster.of_jsoninmake?fraudster()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Disassociates the fraudsters from the watchlist specified. Voice ID always expects a fraudster to be a part of at least one watchlist. If you try to disassociate a fraudster from its only watchlist, a ValidationException is thrown."]moduleDisassociateFraudsterRequest=structtypenonrect={domainId:DomainId.t[@ocaml.doc"The identifier of the domain that contains the fraudster."];fraudsterId:FraudsterId.t[@ocaml.doc"The identifier of the fraudster to be disassociated from the watchlist."];watchlistId:WatchlistId.t[@ocaml.doc"The identifier of the watchlist that you want to disassociate from the fraudster."]}letcontext_="DisassociateFraudsterRequest"letmake~domainId=fun~fraudsterId->fun~watchlistId->fun()->{domainId;fraudsterId;watchlistId}letto_valuex=structure_to_value[("DomainId",(Some(DomainId.to_valuex.domainId)));("FraudsterId",(Some(FraudsterId.to_valuex.fraudsterId)));("WatchlistId",(Some(WatchlistId.to_valuex.watchlistId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letwatchlistId=WatchlistId.of_xml(Xml.child_exn~context:context_xml_arg0"WatchlistId")inletfraudsterId=FraudsterId.of_xml(Xml.child_exn~context:context_xml_arg0"FraudsterId")inletdomainId=DomainId.of_xml(Xml.child_exn~context:context_xml_arg0"DomainId")inmake~watchlistId~fraudsterId~domainId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letwatchlistId=field_map_exnjson__"WatchlistId"WatchlistId.of_jsoninletfraudsterId=field_map_exnjson__"FraudsterId"FraudsterId.of_jsoninletdomainId=field_map_exnjson__"DomainId"DomainId.of_jsoninmake~watchlistId~fraudsterId~domainId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Disassociates the fraudsters from the watchlist specified. Voice ID always expects a fraudster to be a part of at least one watchlist. If you try to disassociate a fraudster from its only watchlist, a ValidationException is thrown."]moduleDescribeWatchlistResponse=structtypenonrect={watchlist:Watchlist.toption[@ocaml.doc"Information about the specified watchlist."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?watchlist=fun()->{watchlist}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Watchlist",(Option.mapx.watchlist~f:Watchlist.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letwatchlist=(Option.map~f:Watchlist.of_xml)(Xml.childxml_arg0"Watchlist")inmake?watchlist()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letwatchlist=field_mapjson__"Watchlist"Watchlist.of_jsoninmake?watchlist()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the specified watchlist."]moduleDescribeWatchlistRequest=structtypenonrect={domainId:DomainId.t[@ocaml.doc"The identifier of the domain that contains the watchlist."];watchlistId:WatchlistId.t[@ocaml.doc"The identifier of the watchlist that you are describing."]}letcontext_="DescribeWatchlistRequest"letmake~domainId=fun~watchlistId->fun()->{domainId;watchlistId}letto_valuex=structure_to_value[("DomainId",(Some(DomainId.to_valuex.domainId)));("WatchlistId",(Some(WatchlistId.to_valuex.watchlistId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letwatchlistId=WatchlistId.of_xml(Xml.child_exn~context:context_xml_arg0"WatchlistId")inletdomainId=DomainId.of_xml(Xml.child_exn~context:context_xml_arg0"DomainId")inmake~watchlistId~domainId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letwatchlistId=field_map_exnjson__"WatchlistId"WatchlistId.of_jsoninletdomainId=field_map_exnjson__"DomainId"DomainId.of_jsoninmake~watchlistId~domainId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the specified watchlist."]moduleDescribeSpeakerResponse=structtypenonrect={speaker:Speaker.toption[@ocaml.doc"Information about the specified speaker."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?speaker=fun()->{speaker}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Speaker",(Option.mapx.speaker~f:Speaker.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letspeaker=(Option.map~f:Speaker.of_xml)(Xml.childxml_arg0"Speaker")inmake?speaker()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letspeaker=field_mapjson__"Speaker"Speaker.of_jsoninmake?speaker()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the specified speaker."]moduleDescribeSpeakerRequest=structtypenonrect={domainId:DomainId.t[@ocaml.doc"The identifier of the domain that contains the speaker."];speakerId:SpeakerId.t[@ocaml.doc"The identifier of the speaker you are describing."]}letcontext_="DescribeSpeakerRequest"letmake~domainId=fun~speakerId->fun()->{domainId;speakerId}letto_valuex=structure_to_value[("DomainId",(Some(DomainId.to_valuex.domainId)));("SpeakerId",(Some(SpeakerId.to_valuex.speakerId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letspeakerId=SpeakerId.of_xml(Xml.child_exn~context:context_xml_arg0"SpeakerId")inletdomainId=DomainId.of_xml(Xml.child_exn~context:context_xml_arg0"DomainId")inmake~speakerId~domainId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letspeakerId=field_map_exnjson__"SpeakerId"SpeakerId.of_jsoninletdomainId=field_map_exnjson__"DomainId"DomainId.of_jsoninmake~speakerId~domainId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the specified speaker."]moduleDescribeSpeakerEnrollmentJobResponse=structtypenonrect={job:SpeakerEnrollmentJob.toption[@ocaml.doc"Contains details about the specified speaker enrollment job."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?job=fun()->{job}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Job",(Option.mapx.job~f:SpeakerEnrollmentJob.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letjob=(Option.map~f:SpeakerEnrollmentJob.of_xml)(Xml.childxml_arg0"Job")inmake?job()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letjob=field_mapjson__"Job"SpeakerEnrollmentJob.of_jsoninmake?job()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the specified speaker enrollment job."]moduleDescribeSpeakerEnrollmentJobRequest=structtypenonrect={domainId:DomainId.t[@ocaml.doc"The identifier of the domain that contains the speaker enrollment job."];jobId:JobId.t[@ocaml.doc"The identifier of the speaker enrollment job you are describing."]}letcontext_="DescribeSpeakerEnrollmentJobRequest"letmake~domainId=fun~jobId->fun()->{domainId;jobId}letto_valuex=structure_to_value[("DomainId",(Some(DomainId.to_valuex.domainId)));("JobId",(Some(JobId.to_valuex.jobId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letjobId=JobId.of_xml(Xml.child_exn~context:context_xml_arg0"JobId")inletdomainId=DomainId.of_xml(Xml.child_exn~context:context_xml_arg0"DomainId")inmake~jobId~domainId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letjobId=field_map_exnjson__"JobId"JobId.of_jsoninletdomainId=field_map_exnjson__"DomainId"DomainId.of_jsoninmake~jobId~domainId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the specified speaker enrollment job."]moduleDescribeFraudsterResponse=structtypenonrect={fraudster:Fraudster.toption[@ocaml.doc"Information about the specified fraudster."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?fraudster=fun()->{fraudster}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Fraudster",(Option.mapx.fraudster~f:Fraudster.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfraudster=(Option.map~f:Fraudster.of_xml)(Xml.childxml_arg0"Fraudster")inmake?fraudster()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfraudster=field_mapjson__"Fraudster"Fraudster.of_jsoninmake?fraudster()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the specified fraudster."]moduleDescribeFraudsterRequest=structtypenonrect={domainId:DomainId.t[@ocaml.doc"The identifier of the domain that contains the fraudster."];fraudsterId:FraudsterId.t[@ocaml.doc"The identifier of the fraudster you are describing."]}letcontext_="DescribeFraudsterRequest"letmake~domainId=fun~fraudsterId->fun()->{domainId;fraudsterId}letto_valuex=structure_to_value[("DomainId",(Some(DomainId.to_valuex.domainId)));("FraudsterId",(Some(FraudsterId.to_valuex.fraudsterId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfraudsterId=FraudsterId.of_xml(Xml.child_exn~context:context_xml_arg0"FraudsterId")inletdomainId=DomainId.of_xml(Xml.child_exn~context:context_xml_arg0"DomainId")inmake~fraudsterId~domainId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfraudsterId=field_map_exnjson__"FraudsterId"FraudsterId.of_jsoninletdomainId=field_map_exnjson__"DomainId"DomainId.of_jsoninmake~fraudsterId~domainId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the specified fraudster."]moduleDescribeFraudsterRegistrationJobResponse=structtypenonrect={job:FraudsterRegistrationJob.toption[@ocaml.doc"Contains details about the specified fraudster registration job."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?job=fun()->{job}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Job",(Option.mapx.job~f:FraudsterRegistrationJob.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letjob=(Option.map~f:FraudsterRegistrationJob.of_xml)(Xml.childxml_arg0"Job")inmake?job()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letjob=field_mapjson__"Job"FraudsterRegistrationJob.of_jsoninmake?job()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the specified fraudster registration job."]moduleDescribeFraudsterRegistrationJobRequest=structtypenonrect={domainId:DomainId.t[@ocaml.doc"The identifier of the domain that contains the fraudster registration job."];jobId:JobId.t[@ocaml.doc"The identifier of the fraudster registration job you are describing."]}letcontext_="DescribeFraudsterRegistrationJobRequest"letmake~domainId=fun~jobId->fun()->{domainId;jobId}letto_valuex=structure_to_value[("DomainId",(Some(DomainId.to_valuex.domainId)));("JobId",(Some(JobId.to_valuex.jobId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letjobId=JobId.of_xml(Xml.child_exn~context:context_xml_arg0"JobId")inletdomainId=DomainId.of_xml(Xml.child_exn~context:context_xml_arg0"DomainId")inmake~jobId~domainId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letjobId=field_map_exnjson__"JobId"JobId.of_jsoninletdomainId=field_map_exnjson__"DomainId"DomainId.of_jsoninmake~jobId~domainId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the specified fraudster registration job."]moduleDescribeDomainResponse=structtypenonrect={domain:Domain.toption[@ocaml.doc"Information about the specified domain."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?domain=fun()->{domain}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Domain",(Option.mapx.domain~f:Domain.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letdomain=(Option.map~f:Domain.of_xml)(Xml.childxml_arg0"Domain")inmake?domain()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letdomain=field_mapjson__"Domain"Domain.of_jsoninmake?domain()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the specified domain."]moduleDescribeDomainRequest=structtypenonrect={domainId:DomainId.t[@ocaml.doc"The identifier of the domain that you are describing."]}letcontext_="DescribeDomainRequest"letmake~domainId=fun()->{domainId}letto_valuex=structure_to_value[("DomainId",(Some(DomainId.to_valuex.domainId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letdomainId=DomainId.of_xml(Xml.child_exn~context:context_xml_arg0"DomainId")inmake~domainId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letdomainId=field_map_exnjson__"DomainId"DomainId.of_jsoninmake~domainId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Describes the specified domain."]moduleDeleteWatchlistRequest=structtypenonrect={domainId:DomainId.t[@ocaml.doc"The identifier of the domain that contains the watchlist."];watchlistId:WatchlistId.t[@ocaml.doc"The identifier of the watchlist to be deleted."]}letcontext_="DeleteWatchlistRequest"letmake~domainId=fun~watchlistId->fun()->{domainId;watchlistId}letto_valuex=structure_to_value[("DomainId",(Some(DomainId.to_valuex.domainId)));("WatchlistId",(Some(WatchlistId.to_valuex.watchlistId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letwatchlistId=WatchlistId.of_xml(Xml.child_exn~context:context_xml_arg0"WatchlistId")inletdomainId=DomainId.of_xml(Xml.child_exn~context:context_xml_arg0"DomainId")inmake~watchlistId~domainId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letwatchlistId=field_map_exnjson__"WatchlistId"WatchlistId.of_jsoninletdomainId=field_map_exnjson__"DomainId"DomainId.of_jsoninmake~watchlistId~domainId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes the specified watchlist from Voice ID. This API throws an exception when there are fraudsters in the watchlist that you are trying to delete. You must delete the fraudsters, and then delete the watchlist. Every domain has a default watchlist which cannot be deleted."]moduleDeleteSpeakerRequest=structtypenonrect={domainId:DomainId.t[@ocaml.doc"The identifier of the domain that contains the speaker."];speakerId:SpeakerId.t[@ocaml.doc"The identifier of the speaker you want to delete."]}letcontext_="DeleteSpeakerRequest"letmake~domainId=fun~speakerId->fun()->{domainId;speakerId}letto_valuex=structure_to_value[("DomainId",(Some(DomainId.to_valuex.domainId)));("SpeakerId",(Some(SpeakerId.to_valuex.speakerId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letspeakerId=SpeakerId.of_xml(Xml.child_exn~context:context_xml_arg0"SpeakerId")inletdomainId=DomainId.of_xml(Xml.child_exn~context:context_xml_arg0"DomainId")inmake~speakerId~domainId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letspeakerId=field_map_exnjson__"SpeakerId"SpeakerId.of_jsoninletdomainId=field_map_exnjson__"DomainId"DomainId.of_jsoninmake~speakerId~domainId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes the specified speaker from Voice ID."]moduleDeleteFraudsterRequest=structtypenonrect={domainId:DomainId.t[@ocaml.doc"The identifier of the domain that contains the fraudster."];fraudsterId:FraudsterId.t[@ocaml.doc"The identifier of the fraudster you want to delete."]}letcontext_="DeleteFraudsterRequest"letmake~domainId=fun~fraudsterId->fun()->{domainId;fraudsterId}letto_valuex=structure_to_value[("DomainId",(Some(DomainId.to_valuex.domainId)));("FraudsterId",(Some(FraudsterId.to_valuex.fraudsterId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfraudsterId=FraudsterId.of_xml(Xml.child_exn~context:context_xml_arg0"FraudsterId")inletdomainId=DomainId.of_xml(Xml.child_exn~context:context_xml_arg0"DomainId")inmake~fraudsterId~domainId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfraudsterId=field_map_exnjson__"FraudsterId"FraudsterId.of_jsoninletdomainId=field_map_exnjson__"DomainId"DomainId.of_jsoninmake~fraudsterId~domainId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes the specified fraudster from Voice ID. This action disassociates the fraudster from any watchlists it is a part of."]moduleDeleteDomainRequest=structtypenonrect={domainId:DomainId.t[@ocaml.doc"The identifier of the domain you want to delete."]}letcontext_="DeleteDomainRequest"letmake~domainId=fun()->{domainId}letto_valuex=structure_to_value[("DomainId",(Some(DomainId.to_valuex.domainId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letdomainId=DomainId.of_xml(Xml.child_exn~context:context_xml_arg0"DomainId")inmake~domainId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letdomainId=field_map_exnjson__"DomainId"DomainId.of_jsoninmake~domainId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes the specified domain from Voice ID."]moduleCreateWatchlistResponse=structtypenonrect={watchlist:Watchlist.toption[@ocaml.doc"Information about the newly created watchlist."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?watchlist=fun()->{watchlist}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceQuotaExceededExceptione->`Assoc[("error",(`String"ServiceQuotaExceededException"));("details",(ServiceQuotaExceededException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Watchlist",(Option.mapx.watchlist~f:Watchlist.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letwatchlist=(Option.map~f:Watchlist.of_xml)(Xml.childxml_arg0"Watchlist")inmake?watchlist()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letwatchlist=field_mapjson__"Watchlist"Watchlist.of_jsoninmake?watchlist()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a watchlist that fraudsters can be a part of."]moduleCreateWatchlistRequest=structtypenonrect={clientToken:ClientTokenString.toption[@ocaml.doc"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs."];description:WatchlistDescription.toption[@ocaml.doc"A brief description of this watchlist."];domainId:DomainId.t[@ocaml.doc"The identifier of the domain that contains the watchlist."];name:WatchlistName.t[@ocaml.doc"The name of the watchlist."]}letcontext_="CreateWatchlistRequest"letmake?clientToken=fun?description->fun~domainId->fun~name->fun()->{clientToken;description;domainId;name}letto_valuex=structure_to_value[("ClientToken",(Option.mapx.clientToken~f:ClientTokenString.to_value));("Description",(Option.mapx.description~f:WatchlistDescription.to_value));("DomainId",(Some(DomainId.to_valuex.domainId)));("Name",(Some(WatchlistName.to_valuex.name)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letname=WatchlistName.of_xml(Xml.child_exn~context:context_xml_arg0"Name")inletdomainId=DomainId.of_xml(Xml.child_exn~context:context_xml_arg0"DomainId")inletdescription=(Option.map~f:WatchlistDescription.of_xml)(Xml.childxml_arg0"Description")inletclientToken=(Option.map~f:ClientTokenString.of_xml)(Xml.childxml_arg0"ClientToken")inmake~name~domainId?description?clientToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letname=field_map_exnjson__"Name"WatchlistName.of_jsoninletdomainId=field_map_exnjson__"DomainId"DomainId.of_jsoninletdescription=field_mapjson__"Description"WatchlistDescription.of_jsoninletclientToken=field_mapjson__"ClientToken"ClientTokenString.of_jsoninmake~name~domainId?description?clientToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a watchlist that fraudsters can be a part of."]moduleCreateDomainResponse=structtypenonrect={domain:Domain.toption[@ocaml.doc"Information about the newly created domain."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?domain=fun()->{domain}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceQuotaExceededExceptione->`Assoc[("error",(`String"ServiceQuotaExceededException"));("details",(ServiceQuotaExceededException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Domain",(Option.mapx.domain~f:Domain.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letdomain=(Option.map~f:Domain.of_xml)(Xml.childxml_arg0"Domain")inmake?domain()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letdomain=field_mapjson__"Domain"Domain.of_jsoninmake?domain()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a domain that contains all Amazon Connect Voice ID data, such as speakers, fraudsters, customer audio, and voiceprints. Every domain is created with a default watchlist that fraudsters can be a part of."]moduleCreateDomainRequest=structtypenonrect={clientToken:ClientTokenString.toption[@ocaml.doc"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs."];description:Description.toption[@ocaml.doc"A brief description of this domain."];name:DomainName.t[@ocaml.doc"The name of the domain."];serverSideEncryptionConfiguration:ServerSideEncryptionConfiguration.t[@ocaml.doc"The configuration, containing the KMS key identifier, to be used by Voice ID for the server-side encryption of your data. Refer to Amazon Connect Voice ID encryption at rest for more details on how the KMS key is used."];tags:TagList.toption[@ocaml.doc"A list of tags you want added to the domain."]}letcontext_="CreateDomainRequest"letmake?clientToken=fun?description->fun?tags->fun~name->fun~serverSideEncryptionConfiguration->fun()->{clientToken;description;tags;name;serverSideEncryptionConfiguration}letto_valuex=structure_to_value[("ClientToken",(Option.mapx.clientToken~f:ClientTokenString.to_value));("Description",(Option.mapx.description~f:Description.to_value));("Name",(Some(DomainName.to_valuex.name)));("ServerSideEncryptionConfiguration",(Some(ServerSideEncryptionConfiguration.to_valuex.serverSideEncryptionConfiguration)));("Tags",(Option.mapx.tags~f:TagList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettags=(Option.map~f:TagList.of_xml)(Xml.childxml_arg0"Tags")inletserverSideEncryptionConfiguration=ServerSideEncryptionConfiguration.of_xml(Xml.child_exn~context:context_xml_arg0"ServerSideEncryptionConfiguration")inletname=DomainName.of_xml(Xml.child_exn~context:context_xml_arg0"Name")inletdescription=(Option.map~f:Description.of_xml)(Xml.childxml_arg0"Description")inletclientToken=(Option.map~f:ClientTokenString.of_xml)(Xml.childxml_arg0"ClientToken")inmake?tags~serverSideEncryptionConfiguration~name?description?clientToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettags=field_mapjson__"Tags"TagList.of_jsoninletserverSideEncryptionConfiguration=field_map_exnjson__"ServerSideEncryptionConfiguration"ServerSideEncryptionConfiguration.of_jsoninletname=field_map_exnjson__"Name"DomainName.of_jsoninletdescription=field_mapjson__"Description"Description.of_jsoninletclientToken=field_mapjson__"ClientToken"ClientTokenString.of_jsoninmake?tags~serverSideEncryptionConfiguration~name?description?clientToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a domain that contains all Amazon Connect Voice ID data, such as speakers, fraudsters, customer audio, and voiceprints. Every domain is created with a default watchlist that fraudsters can be a part of."]moduleAssociateFraudsterResponse=structtypenonrect={fraudster:Fraudster.toption}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ServiceQuotaExceededExceptionofServiceQuotaExceededException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?fraudster=fun()->{fraudster}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ServiceQuotaExceededException"->`ServiceQuotaExceededException(ServiceQuotaExceededException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ServiceQuotaExceededExceptione->`Assoc[("error",(`String"ServiceQuotaExceededException"));("details",(ServiceQuotaExceededException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Fraudster",(Option.mapx.fraudster~f:Fraudster.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfraudster=(Option.map~f:Fraudster.of_xml)(Xml.childxml_arg0"Fraudster")inmake?fraudster()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfraudster=field_mapjson__"Fraudster"Fraudster.of_jsoninmake?fraudster()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Associates the fraudsters with the watchlist specified in the same domain."]moduleAssociateFraudsterRequest=structtypenonrect={domainId:DomainId.t[@ocaml.doc"The identifier of the domain that contains the fraudster."];fraudsterId:FraudsterId.t[@ocaml.doc"The identifier of the fraudster to be associated with the watchlist."];watchlistId:WatchlistId.t[@ocaml.doc"The identifier of the watchlist you want to associate with the fraudster."]}letcontext_="AssociateFraudsterRequest"letmake~domainId=fun~fraudsterId->fun~watchlistId->fun()->{domainId;fraudsterId;watchlistId}letto_valuex=structure_to_value[("DomainId",(Some(DomainId.to_valuex.domainId)));("FraudsterId",(Some(FraudsterId.to_valuex.fraudsterId)));("WatchlistId",(Some(WatchlistId.to_valuex.watchlistId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letwatchlistId=WatchlistId.of_xml(Xml.child_exn~context:context_xml_arg0"WatchlistId")inletfraudsterId=FraudsterId.of_xml(Xml.child_exn~context:context_xml_arg0"FraudsterId")inletdomainId=DomainId.of_xml(Xml.child_exn~context:context_xml_arg0"DomainId")inmake~watchlistId~fraudsterId~domainId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letwatchlistId=field_map_exnjson__"WatchlistId"WatchlistId.of_jsoninletfraudsterId=field_map_exnjson__"FraudsterId"FraudsterId.of_jsoninletdomainId=field_map_exnjson__"DomainId"DomainId.of_jsoninmake~watchlistId~fraudsterId~domainId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Associates the fraudsters with the watchlist specified in the same domain."]