1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504(* 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.ds_dataletapiVersion="2023-05-31"letendpointPrefix="ds-data"letserviceFullName="AWS Directory Service Data"letsignatureVersion="v4"letprotocol="rest_json"letglobalEndpoint=endpointPrefix^".amazonaws.com"letsimple_to_jsonto_valuex=Botodata.Json.value_to_json_scalar(to_valuex)letcomposed_to_jsonto_valuex=Botodata.Json.value_to_json(to_valuex)letto_queryto_valuex=Client.Query.of_value(to_valuex)letstructure_to_value_auxst~f=letfilter=function|(k,Somev)->Some(k,v)|_->Noneinletpairkv=(k,v)inletdefer_value(k,dv)=pairkdvin((List.filter_mapst~f:filter)|>(List.map~f:defer_value))|>(funx->`Structure(fx))letstructure_to_value=structure_to_value_aux~f:Fn.idletstructure_to_wrapped_value~wrapper~response=structure_to_value_aux~f:(funx->[(wrapper,(`Structurex));(response,(`Structure[]))])moduleStringAttributeValue=structtypenonrect=stringletcontext_="StringAttributeValue"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:1024)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"StringAttributeValue"jletto_json=simple_to_jsonto_valueendmoduleBooleanAttributeValue=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_valueendmoduleNumberAttributeValue=structtypenonrect=Int64.tletmakei=iletof_string=Int64.of_stringletto_valuex=`Longxletto_queryv=to_queryto_valuevletto_headerx=Int64.to_stringxletof_xmlxml_arg0=Int64.of_string(string_of_xml~kind:"a long"xml_arg0)letof_jsonj=Int64.of_float(float_of_json~kind:"a long"j)letto_json=simple_to_jsonto_valueendmoduleStringSetAttributeValue=structtypenonrect=StringAttributeValue.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:25)>>=(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:StringAttributeValue.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:StringAttributeValue.of_xml)letof_jsonj=list_of_json~kind:"StringSetAttributeValue"~of_json:StringAttributeValue.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAttributeValue=structtypenonrect={bOOL:BooleanAttributeValue.toption[@ocaml.doc"Indicates that the attribute type value is a boolean. For example: \"BOOL\": true"];n:NumberAttributeValue.toption[@ocaml.doc"Indicates that the attribute type value is a number. For example: \"N\": \"16\""];s:StringAttributeValue.toption[@ocaml.doc"Indicates that the attribute type value is a string. For example: \"S\": \"S Group\""];sS:StringSetAttributeValue.toption[@ocaml.doc"Indicates that the attribute type value is a string set. For example: \"SS\": \\[\"sample_service_class/host.sample.com:1234/sample_service_name_1\", \"sample_service_class/host.sample.com:1234/sample_service_name_2\"\\]"]}letmake?bOOL=fun?n->fun?s->fun?sS->fun()->{bOOL;n;s;sS}letto_valuex=structure_to_value[("BOOL",(Option.mapx.bOOL~f:BooleanAttributeValue.to_value));("N",(Option.mapx.n~f:NumberAttributeValue.to_value));("S",(Option.mapx.s~f:StringAttributeValue.to_value));("SS",(Option.mapx.sS~f:StringSetAttributeValue.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsS=(Option.map~f:StringSetAttributeValue.of_xml)(Xml.childxml_arg0"SS")inlets=(Option.map~f:StringAttributeValue.of_xml)(Xml.childxml_arg0"S")inletn=(Option.map~f:NumberAttributeValue.of_xml)(Xml.childxml_arg0"N")inletbOOL=(Option.map~f:BooleanAttributeValue.of_xml)(Xml.childxml_arg0"BOOL")inmake?sS?s?n?bOOL()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsS=field_mapjson__"SS"StringSetAttributeValue.of_jsoninlets=field_mapjson__"S"StringAttributeValue.of_jsoninletn=field_mapjson__"N"NumberAttributeValue.of_jsoninletbOOL=field_mapjson__"BOOL"BooleanAttributeValue.of_jsoninmake?sS?s?n?bOOL()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The data type for an attribute. Each attribute value is described as a name-value pair. The name is the AD schema name, and the value is the data itself. For a list of supported attributes, see Directory Service Data Attributes."]moduleLdapDisplayName=structtypenonrect=stringletcontext_="LdapDisplayName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:63)>>=(fun()->check_patterni~pattern:"^[A-Za-z*][A-Za-z-*]*$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"LdapDisplayName"jletto_json=simple_to_jsonto_valueendmoduleAttributes=structtypenonrect=(LdapDisplayName.t*AttributeValue.t)listletmakei=letopenResultinok_or_failwith((check_list_maxi~max:25)>>=(fun()->check_list_mini~min:1));iletof_headerxs=make(List.filter_mapxs~f:(fun(k,v)->(Base.String.chop_prefixk~prefix:"x-amz-meta-")|>(Option.map~f:(funchopped->let(_:string)=vinlet(_:string)=choppedinfailwith"no of_header for complex types LdapDisplayName AttributeValue"))))letto_valuexs=(xs|>(List.map~f:(fun(x,y)->(LdapDisplayName.to_valuex)|>(funx->(AttributeValue.to_valuey)|>(funy->(x,y))))))|>(funx->`Mapx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for Map_shape objects"()letof_xml_=failwith"of_xml_converter_of_shape: Map_shape case not implemented"letof_jsonj=object_of_json~key_of_string:LdapDisplayName.of_string~of_json:AttributeValue.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_valueendmoduleDistinguishedName=structtypenonrect=stringletcontext_="DistinguishedName"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:256)>>=(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:"DistinguishedName"jletto_json=simple_to_jsonto_valueendmoduleEmailAddress=structtypenonrect=stringletcontext_="EmailAddress"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:256)>>=(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:"EmailAddress"jletto_json=simple_to_jsonto_valueendmoduleGivenName=structtypenonrect=stringletcontext_="GivenName"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:64)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"GivenName"jletto_json=simple_to_jsonto_valueendmoduleSID=structtypenonrect=stringletcontext_="SID"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:256)>>=(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:"SID"jletto_json=simple_to_jsonto_valueendmoduleSurname=structtypenonrect=stringletcontext_="Surname"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:64)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"Surname"jletto_json=simple_to_jsonto_valueendmoduleUserName=structtypenonrect=stringletcontext_="UserName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:20)>>=(fun()->check_patterni~pattern:"^[\\w\\-.]+$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"UserName"jletto_json=simple_to_jsonto_valueendmoduleUserPrincipalName=structtypenonrect=stringletcontext_="UserPrincipalName"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:256)>>=(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:"UserPrincipalName"jletto_json=simple_to_jsonto_valueendmoduleGroupName=structtypenonrect=stringletcontext_="GroupName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:64)>>=(fun()->check_patterni~pattern:"^[^:;|=+\"*?<>/\\\\,\\[\\]@]+$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"GroupName"jletto_json=simple_to_jsonto_valueendmoduleGroupScope=structtypenonrect=|DomainLocal|Global|Universal|BuiltinLocal|Non_static_idofstringletmakei=iletto_string=function|DomainLocal->"DomainLocal"|Global->"Global"|Universal->"Universal"|BuiltinLocal->"BuiltinLocal"|Non_static_ids->sletof_string=function|"DomainLocal"->DomainLocal|"Global"->Global|"Universal"->Universal|"BuiltinLocal"->BuiltinLocal|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 GroupScope"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"GroupScope"j)letto_json=simple_to_jsonto_valueendmoduleGroupType=structtypenonrect=|Distribution|Security|Non_static_idofstringletmakei=iletto_string=function|Distribution->"Distribution"|Security->"Security"|Non_static_ids->sletof_string=function|"Distribution"->Distribution|"Security"->Security|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 GroupType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"GroupType"j)letto_json=simple_to_jsonto_valueendmoduleMemberName=structtypenonrect=stringletcontext_="MemberName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:63)>>=(fun()->check_patterni~pattern:"^[^:;|=+\"*?<>/\\\\,\\[\\]@]+$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"MemberName"jletto_json=simple_to_jsonto_valueendmoduleMemberType=structtypenonrect=|USER|GROUP|COMPUTER|Non_static_idofstringletmakei=iletto_string=function|USER->"USER"|GROUP->"GROUP"|COMPUTER->"COMPUTER"|Non_static_ids->sletof_string=function|"USER"->USER|"GROUP"->GROUP|"COMPUTER"->COMPUTER|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 MemberType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"MemberType"j)letto_json=simple_to_jsonto_valueendmoduleAccessDeniedReason=structtypenonrect=|IAM_AUTH|DIRECTORY_AUTH|DATA_DISABLED|Non_static_idofstringletmakei=iletto_string=function|IAM_AUTH->"IAM_AUTH"|DIRECTORY_AUTH->"DIRECTORY_AUTH"|DATA_DISABLED->"DATA_DISABLED"|Non_static_ids->sletof_string=function|"IAM_AUTH"->IAM_AUTH|"DIRECTORY_AUTH"->DIRECTORY_AUTH|"DATA_DISABLED"->DATA_DISABLED|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 AccessDeniedReason"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"AccessDeniedReason"j)letto_json=simple_to_jsonto_valueendmoduleExceptionMessage=structtypenonrect=stringletcontext_="ExceptionMessage"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ExceptionMessage"jletto_json=simple_to_jsonto_valueendmoduleDirectoryUnavailableReason=structtypenonrect=|INVALID_DIRECTORY_STATE|DIRECTORY_TIMEOUT|DIRECTORY_RESOURCES_EXCEEDED|NO_DISK_SPACE|TRUST_AUTH_FAILURE|Non_static_idofstringletmakei=iletto_string=function|INVALID_DIRECTORY_STATE->"INVALID_DIRECTORY_STATE"|DIRECTORY_TIMEOUT->"DIRECTORY_TIMEOUT"|DIRECTORY_RESOURCES_EXCEEDED->"DIRECTORY_RESOURCES_EXCEEDED"|NO_DISK_SPACE->"NO_DISK_SPACE"|TRUST_AUTH_FAILURE->"TRUST_AUTH_FAILURE"|Non_static_ids->sletof_string=function|"INVALID_DIRECTORY_STATE"->INVALID_DIRECTORY_STATE|"DIRECTORY_TIMEOUT"->DIRECTORY_TIMEOUT|"DIRECTORY_RESOURCES_EXCEEDED"->DIRECTORY_RESOURCES_EXCEEDED|"NO_DISK_SPACE"->NO_DISK_SPACE|"TRUST_AUTH_FAILURE"->TRUST_AUTH_FAILURE|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 DirectoryUnavailableReason"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"DirectoryUnavailableReason"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_valueendmoduleValidationExceptionReason=structtypenonrect=|INVALID_REALM|INVALID_DIRECTORY_TYPE|INVALID_SECONDARY_REGION|INVALID_NEXT_TOKEN|INVALID_ATTRIBUTE_VALUE|INVALID_ATTRIBUTE_NAME|INVALID_ATTRIBUTE_FOR_USER|INVALID_ATTRIBUTE_FOR_GROUP|INVALID_ATTRIBUTE_FOR_SEARCH|INVALID_ATTRIBUTE_FOR_MODIFY|DUPLICATE_ATTRIBUTE|MISSING_ATTRIBUTE|ATTRIBUTE_EXISTS|LDAP_SIZE_LIMIT_EXCEEDED|LDAP_UNSUPPORTED_OPERATION|Non_static_idofstringletmakei=iletto_string=function|INVALID_REALM->"INVALID_REALM"|INVALID_DIRECTORY_TYPE->"INVALID_DIRECTORY_TYPE"|INVALID_SECONDARY_REGION->"INVALID_SECONDARY_REGION"|INVALID_NEXT_TOKEN->"INVALID_NEXT_TOKEN"|INVALID_ATTRIBUTE_VALUE->"INVALID_ATTRIBUTE_VALUE"|INVALID_ATTRIBUTE_NAME->"INVALID_ATTRIBUTE_NAME"|INVALID_ATTRIBUTE_FOR_USER->"INVALID_ATTRIBUTE_FOR_USER"|INVALID_ATTRIBUTE_FOR_GROUP->"INVALID_ATTRIBUTE_FOR_GROUP"|INVALID_ATTRIBUTE_FOR_SEARCH->"INVALID_ATTRIBUTE_FOR_SEARCH"|INVALID_ATTRIBUTE_FOR_MODIFY->"INVALID_ATTRIBUTE_FOR_MODIFY"|DUPLICATE_ATTRIBUTE->"DUPLICATE_ATTRIBUTE"|MISSING_ATTRIBUTE->"MISSING_ATTRIBUTE"|ATTRIBUTE_EXISTS->"ATTRIBUTE_EXISTS"|LDAP_SIZE_LIMIT_EXCEEDED->"LDAP_SIZE_LIMIT_EXCEEDED"|LDAP_UNSUPPORTED_OPERATION->"LDAP_UNSUPPORTED_OPERATION"|Non_static_ids->sletof_string=function|"INVALID_REALM"->INVALID_REALM|"INVALID_DIRECTORY_TYPE"->INVALID_DIRECTORY_TYPE|"INVALID_SECONDARY_REGION"->INVALID_SECONDARY_REGION|"INVALID_NEXT_TOKEN"->INVALID_NEXT_TOKEN|"INVALID_ATTRIBUTE_VALUE"->INVALID_ATTRIBUTE_VALUE|"INVALID_ATTRIBUTE_NAME"->INVALID_ATTRIBUTE_NAME|"INVALID_ATTRIBUTE_FOR_USER"->INVALID_ATTRIBUTE_FOR_USER|"INVALID_ATTRIBUTE_FOR_GROUP"->INVALID_ATTRIBUTE_FOR_GROUP|"INVALID_ATTRIBUTE_FOR_SEARCH"->INVALID_ATTRIBUTE_FOR_SEARCH|"INVALID_ATTRIBUTE_FOR_MODIFY"->INVALID_ATTRIBUTE_FOR_MODIFY|"DUPLICATE_ATTRIBUTE"->DUPLICATE_ATTRIBUTE|"MISSING_ATTRIBUTE"->MISSING_ATTRIBUTE|"ATTRIBUTE_EXISTS"->ATTRIBUTE_EXISTS|"LDAP_SIZE_LIMIT_EXCEEDED"->LDAP_SIZE_LIMIT_EXCEEDED|"LDAP_UNSUPPORTED_OPERATION"->LDAP_UNSUPPORTED_OPERATION|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration ValidationExceptionReason"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ValidationExceptionReason"j)letto_json=simple_to_jsonto_valueendmoduleUser=structtypenonrect={distinguishedName:DistinguishedName.toption[@ocaml.doc"The distinguished name of the object."];emailAddress:EmailAddress.toption[@ocaml.doc"The email address of the user."];enabled:Boolean.toption[@ocaml.doc"Indicates whether the user account is active."];givenName:GivenName.toption[@ocaml.doc"The first name of the user."];otherAttributes:Attributes.toption[@ocaml.doc"An expression that includes one or more attributes, data types, and values of a user."];sAMAccountName:UserName.toption[@ocaml.doc"The name of the user."];sID:SID.toption[@ocaml.doc"The unique security identifier (SID) of the user."];surname:Surname.toption[@ocaml.doc"The last name of the user."];userPrincipalName:UserPrincipalName.toption[@ocaml.doc"The UPN that is an internet-style login name for a user and based on the internet standard RFC 822. The UPN is shorter than the distinguished name and easier to remember."]}letmake?distinguishedName=fun?emailAddress->fun?enabled->fun?givenName->fun?otherAttributes->fun?sAMAccountName->fun?sID->fun?surname->fun?userPrincipalName->fun()->{distinguishedName;emailAddress;enabled;givenName;otherAttributes;sAMAccountName;sID;surname;userPrincipalName}letto_valuex=structure_to_value[("DistinguishedName",(Option.mapx.distinguishedName~f:DistinguishedName.to_value));("EmailAddress",(Option.mapx.emailAddress~f:EmailAddress.to_value));("Enabled",(Option.mapx.enabled~f:Boolean.to_value));("GivenName",(Option.mapx.givenName~f:GivenName.to_value));("OtherAttributes",(Option.mapx.otherAttributes~f:Attributes.to_value));("SAMAccountName",(Option.mapx.sAMAccountName~f:UserName.to_value));("SID",(Option.mapx.sID~f:SID.to_value));("Surname",(Option.mapx.surname~f:Surname.to_value));("UserPrincipalName",(Option.mapx.userPrincipalName~f:UserPrincipalName.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letuserPrincipalName=(Option.map~f:UserPrincipalName.of_xml)(Xml.childxml_arg0"UserPrincipalName")inletsurname=(Option.map~f:Surname.of_xml)(Xml.childxml_arg0"Surname")inletsID=(Option.map~f:SID.of_xml)(Xml.childxml_arg0"SID")inletsAMAccountName=(Option.map~f:UserName.of_xml)(Xml.childxml_arg0"SAMAccountName")inletotherAttributes=(Option.map~f:Attributes.of_xml)(Xml.childxml_arg0"OtherAttributes")inletgivenName=(Option.map~f:GivenName.of_xml)(Xml.childxml_arg0"GivenName")inletenabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"Enabled")inletemailAddress=(Option.map~f:EmailAddress.of_xml)(Xml.childxml_arg0"EmailAddress")inletdistinguishedName=(Option.map~f:DistinguishedName.of_xml)(Xml.childxml_arg0"DistinguishedName")inmake?userPrincipalName?surname?sID?sAMAccountName?otherAttributes?givenName?enabled?emailAddress?distinguishedName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letuserPrincipalName=field_mapjson__"UserPrincipalName"UserPrincipalName.of_jsoninletsurname=field_mapjson__"Surname"Surname.of_jsoninletsID=field_mapjson__"SID"SID.of_jsoninletsAMAccountName=field_mapjson__"SAMAccountName"UserName.of_jsoninletotherAttributes=field_mapjson__"OtherAttributes"Attributes.of_jsoninletgivenName=field_mapjson__"GivenName"GivenName.of_jsoninletenabled=field_mapjson__"Enabled"Boolean.of_jsoninletemailAddress=field_mapjson__"EmailAddress"EmailAddress.of_jsoninletdistinguishedName=field_mapjson__"DistinguishedName"DistinguishedName.of_jsoninmake?userPrincipalName?surname?sID?sAMAccountName?otherAttributes?givenName?enabled?emailAddress?distinguishedName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A user object that contains identifying information and attributes for a specified user."]moduleGroup=structtypenonrect={distinguishedName:DistinguishedName.toption[@ocaml.doc"The distinguished name of the object."];groupScope:GroupScope.toption[@ocaml.doc"The scope of the AD group. For details, see Active Directory security groups"];groupType:GroupType.toption[@ocaml.doc"The AD group type. For details, see Active Directory security group type."];otherAttributes:Attributes.toption[@ocaml.doc"An expression of one or more attributes, data types, and the values of a group."];sAMAccountName:GroupName.toption[@ocaml.doc"The name of the group."];sID:SID.toption[@ocaml.doc"The unique security identifier (SID) of the group."]}letmake?distinguishedName=fun?groupScope->fun?groupType->fun?otherAttributes->fun?sAMAccountName->fun?sID->fun()->{distinguishedName;groupScope;groupType;otherAttributes;sAMAccountName;sID}letto_valuex=structure_to_value[("DistinguishedName",(Option.mapx.distinguishedName~f:DistinguishedName.to_value));("GroupScope",(Option.mapx.groupScope~f:GroupScope.to_value));("GroupType",(Option.mapx.groupType~f:GroupType.to_value));("OtherAttributes",(Option.mapx.otherAttributes~f:Attributes.to_value));("SAMAccountName",(Option.mapx.sAMAccountName~f:GroupName.to_value));("SID",(Option.mapx.sID~f:SID.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsID=(Option.map~f:SID.of_xml)(Xml.childxml_arg0"SID")inletsAMAccountName=(Option.map~f:GroupName.of_xml)(Xml.childxml_arg0"SAMAccountName")inletotherAttributes=(Option.map~f:Attributes.of_xml)(Xml.childxml_arg0"OtherAttributes")inletgroupType=(Option.map~f:GroupType.of_xml)(Xml.childxml_arg0"GroupType")inletgroupScope=(Option.map~f:GroupScope.of_xml)(Xml.childxml_arg0"GroupScope")inletdistinguishedName=(Option.map~f:DistinguishedName.of_xml)(Xml.childxml_arg0"DistinguishedName")inmake?sID?sAMAccountName?otherAttributes?groupType?groupScope?distinguishedName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsID=field_mapjson__"SID"SID.of_jsoninletsAMAccountName=field_mapjson__"SAMAccountName"GroupName.of_jsoninletotherAttributes=field_mapjson__"OtherAttributes"Attributes.of_jsoninletgroupType=field_mapjson__"GroupType"GroupType.of_jsoninletgroupScope=field_mapjson__"GroupScope"GroupScope.of_jsoninletdistinguishedName=field_mapjson__"DistinguishedName"DistinguishedName.of_jsoninmake?sID?sAMAccountName?otherAttributes?groupType?groupScope?distinguishedName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A group object that contains identifying information and attributes for a specified group."]moduleUserSummary=structtypenonrect={enabled:Boolean.toption[@ocaml.doc"Indicates whether the user account is active."];givenName:GivenName.toption[@ocaml.doc"The first name of the user."];sAMAccountName:UserName.toption[@ocaml.doc"The name of the user."];sID:SID.toption[@ocaml.doc"The unique security identifier (SID) of the user."];surname:Surname.toption[@ocaml.doc"The last name of the user."]}letmake?enabled=fun?givenName->fun?sAMAccountName->fun?sID->fun?surname->fun()->{enabled;givenName;sAMAccountName;sID;surname}letto_valuex=structure_to_value[("Enabled",(Option.mapx.enabled~f:Boolean.to_value));("GivenName",(Option.mapx.givenName~f:GivenName.to_value));("SAMAccountName",(Option.mapx.sAMAccountName~f:UserName.to_value));("SID",(Option.mapx.sID~f:SID.to_value));("Surname",(Option.mapx.surname~f:Surname.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsurname=(Option.map~f:Surname.of_xml)(Xml.childxml_arg0"Surname")inletsID=(Option.map~f:SID.of_xml)(Xml.childxml_arg0"SID")inletsAMAccountName=(Option.map~f:UserName.of_xml)(Xml.childxml_arg0"SAMAccountName")inletgivenName=(Option.map~f:GivenName.of_xml)(Xml.childxml_arg0"GivenName")inletenabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"Enabled")inmake?surname?sID?sAMAccountName?givenName?enabled()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsurname=field_mapjson__"Surname"Surname.of_jsoninletsID=field_mapjson__"SID"SID.of_jsoninletsAMAccountName=field_mapjson__"SAMAccountName"UserName.of_jsoninletgivenName=field_mapjson__"GivenName"GivenName.of_jsoninletenabled=field_mapjson__"Enabled"Boolean.of_jsoninmake?surname?sID?sAMAccountName?givenName?enabled()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A structure containing a subset of the fields of a user object from a directory."]moduleGroupSummary=structtypenonrect={groupScope:GroupScope.toption[@ocaml.doc"The scope of the AD group. For details, see Active Directory security groups."];groupType:GroupType.toption[@ocaml.doc"The AD group type. For details, see Active Directory security group type."];sAMAccountName:GroupName.toption[@ocaml.doc"The name of the group."];sID:SID.toption[@ocaml.doc"The unique security identifier (SID) of the group."]}letmake?groupScope=fun?groupType->fun?sAMAccountName->fun?sID->fun()->{groupScope;groupType;sAMAccountName;sID}letto_valuex=structure_to_value[("GroupScope",(Option.mapx.groupScope~f:GroupScope.to_value));("GroupType",(Option.mapx.groupType~f:GroupType.to_value));("SAMAccountName",(Option.mapx.sAMAccountName~f:GroupName.to_value));("SID",(Option.mapx.sID~f:SID.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsID=(Option.map~f:SID.of_xml)(Xml.childxml_arg0"SID")inletsAMAccountName=(Option.map~f:GroupName.of_xml)(Xml.childxml_arg0"SAMAccountName")inletgroupType=(Option.map~f:GroupType.of_xml)(Xml.childxml_arg0"GroupType")inletgroupScope=(Option.map~f:GroupScope.of_xml)(Xml.childxml_arg0"GroupScope")inmake?sID?sAMAccountName?groupType?groupScope()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsID=field_mapjson__"SID"SID.of_jsoninletsAMAccountName=field_mapjson__"SAMAccountName"GroupName.of_jsoninletgroupType=field_mapjson__"GroupType"GroupType.of_jsoninletgroupScope=field_mapjson__"GroupScope"GroupScope.of_jsoninmake?sID?sAMAccountName?groupType?groupScope()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A structure containing a subset of fields of a group object from a directory."]moduleMember=structtypenonrect={memberType:MemberType.toption[@ocaml.doc"The AD type of the member object."];sAMAccountName:MemberName.toption[@ocaml.doc"The name of the group member."];sID:SID.toption[@ocaml.doc"The unique security identifier (SID) of the group member."]}letmake?memberType=fun?sAMAccountName->fun?sID->fun()->{memberType;sAMAccountName;sID}letto_valuex=structure_to_value[("MemberType",(Option.mapx.memberType~f:MemberType.to_value));("SAMAccountName",(Option.mapx.sAMAccountName~f:MemberName.to_value));("SID",(Option.mapx.sID~f:SID.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsID=(Option.map~f:SID.of_xml)(Xml.childxml_arg0"SID")inletsAMAccountName=(Option.map~f:MemberName.of_xml)(Xml.childxml_arg0"SAMAccountName")inletmemberType=(Option.map~f:MemberType.of_xml)(Xml.childxml_arg0"MemberType")inmake?sID?sAMAccountName?memberType()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsID=field_mapjson__"SID"SID.of_jsoninletsAMAccountName=field_mapjson__"SAMAccountName"MemberName.of_jsoninletmemberType=field_mapjson__"MemberType"MemberType.of_jsoninmake?sID?sAMAccountName?memberType()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A member object that contains identifying information for a specified member."]moduleAccessDeniedException=structtypenonrect={message:ExceptionMessage.toption;reason:AccessDeniedReason.toption[@ocaml.doc"Reason the request was unauthorized."]}letmake?message=fun?reason->fun()->{message;reason}letto_valuex=structure_to_value[("Message",(Option.mapx.message~f:ExceptionMessage.to_value));("Reason",(Option.mapx.reason~f:AccessDeniedReason.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letreason=(Option.map~f:AccessDeniedReason.of_xml)(Xml.childxml_arg0"Reason")inletmessage=(Option.map~f:ExceptionMessage.of_xml)(Xml.childxml_arg0"Message")inmake?reason?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letreason=field_mapjson__"Reason"AccessDeniedReason.of_jsoninletmessage=field_mapjson__"Message"ExceptionMessage.of_jsoninmake?reason?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"You don't have permission to perform the request or access the directory. It can also occur when the DirectoryId doesn't exist or the user, member, or group might be outside of your organizational unit (OU). Make sure that you have the authentication and authorization to perform the action. Review the directory information in the request, and make sure that the object isn't outside of your OU."]moduleConflictException=structtypenonrect={message:ExceptionMessage.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("Message",(Option.mapx.message~f:ExceptionMessage.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:ExceptionMessage.of_xml)(Xml.childxml_arg0"Message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"Message"ExceptionMessage.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"This error will occur when you try to create a resource that conflicts with an existing object. It can also occur when adding a member to a group that the member is already in. This error can be caused by a request sent within the 8-hour idempotency window with the same client token but different input parameters. Client tokens should not be re-used across different requests. After 8 hours, any request with the same client token is treated as a new request."]moduleDirectoryUnavailableException=structtypenonrect={message:ExceptionMessage.toption;reason:DirectoryUnavailableReason.toption[@ocaml.doc"Reason the request failed for the specified directory."]}letmake?message=fun?reason->fun()->{message;reason}letto_valuex=structure_to_value[("Message",(Option.mapx.message~f:ExceptionMessage.to_value));("Reason",(Option.mapx.reason~f:DirectoryUnavailableReason.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letreason=(Option.map~f:DirectoryUnavailableReason.of_xml)(Xml.childxml_arg0"Reason")inletmessage=(Option.map~f:ExceptionMessage.of_xml)(Xml.childxml_arg0"Message")inmake?reason?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letreason=field_mapjson__"Reason"DirectoryUnavailableReason.of_jsoninletmessage=field_mapjson__"Message"ExceptionMessage.of_jsoninmake?reason?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The request could not be completed due to a problem in the configuration or current state of the specified directory."]moduleInternalServerException=structtypenonrect={message:ExceptionMessage.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("Message",(Option.mapx.message~f:ExceptionMessage.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:ExceptionMessage.of_xml)(Xml.childxml_arg0"Message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"Message"ExceptionMessage.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The operation didn't succeed because an internal error occurred. Try again later."]moduleResourceNotFoundException=structtypenonrect={message:ExceptionMessage.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("Message",(Option.mapx.message~f:ExceptionMessage.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:ExceptionMessage.of_xml)(Xml.childxml_arg0"Message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"Message"ExceptionMessage.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The resource couldn't be found."]moduleThrottlingException=structtypenonrect={message:ExceptionMessage.toption;retryAfterSeconds:Integer.toption[@ocaml.doc"The recommended amount of seconds to retry after a throttling exception."]}letmake?message=fun?retryAfterSeconds->fun()->{message;retryAfterSeconds}letto_valuex=structure_to_value[("Message",(Option.mapx.message~f:ExceptionMessage.to_value));("Retry-After",(Option.mapx.retryAfterSeconds~f:Integer.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letretryAfterSeconds=(Option.map~f:Integer.of_xml)(Xml.childxml_arg0"Retry-After")inletmessage=(Option.map~f:ExceptionMessage.of_xml)(Xml.childxml_arg0"Message")inmake?retryAfterSeconds?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letretryAfterSeconds=field_mapjson__"RetryAfterSeconds"Integer.of_jsoninletmessage=field_mapjson__"Message"ExceptionMessage.of_jsoninmake?retryAfterSeconds?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The limit on the number of requests per second has been exceeded."]moduleValidationException=structtypenonrect={message:ExceptionMessage.toption;reason:ValidationExceptionReason.toption[@ocaml.doc"Reason the request failed validation."]}letmake?message=fun?reason->fun()->{message;reason}letto_valuex=structure_to_value[("Message",(Option.mapx.message~f:ExceptionMessage.to_value));("Reason",(Option.mapx.reason~f:ValidationExceptionReason.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letreason=(Option.map~f:ValidationExceptionReason.of_xml)(Xml.childxml_arg0"Reason")inletmessage=(Option.map~f:ExceptionMessage.of_xml)(Xml.childxml_arg0"Message")inmake?reason?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letreason=field_mapjson__"Reason"ValidationExceptionReason.of_jsoninletmessage=field_mapjson__"Message"ExceptionMessage.of_jsoninmake?reason?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The request isn't valid. Review the details in the error message to update the invalid parameters or values in your request."]moduleClientToken=structtypenonrect=stringletcontext_="ClientToken"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:128)>>=(fun()->check_patterni~pattern:"^[\\x00-\\x7F]+$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ClientToken"jletto_json=simple_to_jsonto_valueendmoduleDirectoryId=structtypenonrect=stringletcontext_="DirectoryId"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^d-[0-9a-f]{10}$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"DirectoryId"jletto_json=simple_to_jsonto_valueendmoduleUpdateType=structtypenonrect=|ADD|REPLACE|REMOVE|Non_static_idofstringletmakei=iletto_string=function|ADD->"ADD"|REPLACE->"REPLACE"|REMOVE->"REMOVE"|Non_static_ids->sletof_string=function|"ADD"->ADD|"REPLACE"->REPLACE|"REMOVE"->REMOVE|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 UpdateType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"UpdateType"j)letto_json=simple_to_jsonto_valueendmoduleNextToken=structtypenonrect=stringletcontext_="NextToken"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:6144)>>=(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:"NextToken"jletto_json=simple_to_jsonto_valueendmoduleRealm=structtypenonrect=stringletcontext_="Realm"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:255)>>=(fun()->check_patterni~pattern:"^([a-zA-Z0-9]+[\\\\.-])+([a-zA-Z0-9])+[.]?$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"Realm"jletto_json=simple_to_jsonto_valueendmoduleUserList=structtypenonrect=User.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:User.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:User.of_xml)letof_jsonj=list_of_json~kind:"UserList"~of_json:User.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleLdapDisplayNameList=structtypenonrect=LdapDisplayName.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:25)>>=(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:LdapDisplayName.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:LdapDisplayName.of_xml)letof_jsonj=list_of_json~kind:"LdapDisplayNameList"~of_json:LdapDisplayName.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleMaxResults=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:250)>>=(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 MaxResults"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleSearchString=structtypenonrect=stringletcontext_="SearchString"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:64)>>=(fun()->check_string_mini~min:1));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"SearchString"jletto_json=simple_to_jsonto_valueendmoduleGroupList=structtypenonrect=Group.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Group.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:Group.of_xml)letof_jsonj=list_of_json~kind:"GroupList"~of_json:Group.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleUserSummaryList=structtypenonrect=UserSummary.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:UserSummary.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:UserSummary.of_xml)letof_jsonj=list_of_json~kind:"UserSummaryList"~of_json:UserSummary.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleGroupSummaryList=structtypenonrect=GroupSummary.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:GroupSummary.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:GroupSummary.of_xml)letof_jsonj=list_of_json~kind:"GroupSummaryList"~of_json:GroupSummary.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleMemberList=structtypenonrect=Member.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Member.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:Member.of_xml)letof_jsonj=list_of_json~kind:"MemberList"~of_json:Member.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleUpdateUserResult=structtypenonrect=unittypenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`DirectoryUnavailableExceptionofDirectoryUnavailableException.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)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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))]|`DirectoryUnavailableExceptione->`Assoc[("error",(`String"DirectoryUnavailableException"));("details",(DirectoryUnavailableException.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"Updates user information."]moduleUpdateUserRequest=structtypenonrect={clientToken:ClientToken.toption[@ocaml.doc"A unique and case-sensitive identifier that you provide to make sure the idempotency of the request, so multiple identical calls have the same effect as one single call. A client token is valid for 8 hours after the first request that uses it completes. After 8 hours, any request with the same client token is treated as a new request. If the request succeeds, any future uses of that token will be idempotent for another 8 hours. If you submit a request with the same client token but change one of the other parameters within the 8-hour idempotency window, Directory Service Data returns an ConflictException. This parameter is optional when using the CLI or SDK."];directoryId:DirectoryId.t[@ocaml.doc"The identifier (ID) of the directory that's associated with the user."];emailAddress:EmailAddress.toption[@ocaml.doc"The email address of the user."];givenName:GivenName.toption[@ocaml.doc"The first name of the user."];otherAttributes:Attributes.toption[@ocaml.doc"An expression that defines one or more attribute names with the data type and value of each attribute. A key is an attribute name, and the value is a list of maps. For a list of supported attributes, see Directory Service Data Attributes. Attribute names are case insensitive."];sAMAccountName:UserName.t[@ocaml.doc"The name of the user."];surname:Surname.toption[@ocaml.doc"The last name of the user."];updateType:UpdateType.toption[@ocaml.doc"The type of update to be performed. If no value exists for the attribute, use ADD. Otherwise, use REPLACE to change an attribute value or REMOVE to clear the attribute value."]}letcontext_="UpdateUserRequest"letmake?clientToken=fun?emailAddress->fun?givenName->fun?otherAttributes->fun?surname->fun?updateType->fun~directoryId->fun~sAMAccountName->fun()->{clientToken;emailAddress;givenName;otherAttributes;surname;updateType;directoryId;sAMAccountName}letto_valuex=structure_to_value[("ClientToken",(Option.mapx.clientToken~f:ClientToken.to_value));("DirectoryId",(Some(DirectoryId.to_valuex.directoryId)));("EmailAddress",(Option.mapx.emailAddress~f:EmailAddress.to_value));("GivenName",(Option.mapx.givenName~f:GivenName.to_value));("OtherAttributes",(Option.mapx.otherAttributes~f:Attributes.to_value));("SAMAccountName",(Some(UserName.to_valuex.sAMAccountName)));("Surname",(Option.mapx.surname~f:Surname.to_value));("UpdateType",(Option.mapx.updateType~f:UpdateType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letupdateType=(Option.map~f:UpdateType.of_xml)(Xml.childxml_arg0"UpdateType")inletsurname=(Option.map~f:Surname.of_xml)(Xml.childxml_arg0"Surname")inletsAMAccountName=UserName.of_xml(Xml.child_exn~context:context_xml_arg0"SAMAccountName")inletotherAttributes=(Option.map~f:Attributes.of_xml)(Xml.childxml_arg0"OtherAttributes")inletgivenName=(Option.map~f:GivenName.of_xml)(Xml.childxml_arg0"GivenName")inletemailAddress=(Option.map~f:EmailAddress.of_xml)(Xml.childxml_arg0"EmailAddress")inletdirectoryId=DirectoryId.of_xml(Xml.child_exn~context:context_xml_arg0"DirectoryId")inletclientToken=(Option.map~f:ClientToken.of_xml)(Xml.childxml_arg0"ClientToken")inmake?updateType?surname~sAMAccountName?otherAttributes?givenName?emailAddress~directoryId?clientToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letupdateType=field_mapjson__"UpdateType"UpdateType.of_jsoninletsurname=field_mapjson__"Surname"Surname.of_jsoninletsAMAccountName=field_map_exnjson__"SAMAccountName"UserName.of_jsoninletotherAttributes=field_mapjson__"OtherAttributes"Attributes.of_jsoninletgivenName=field_mapjson__"GivenName"GivenName.of_jsoninletemailAddress=field_mapjson__"EmailAddress"EmailAddress.of_jsoninletdirectoryId=field_map_exnjson__"DirectoryId"DirectoryId.of_jsoninletclientToken=field_mapjson__"ClientToken"ClientToken.of_jsoninmake?updateType?surname~sAMAccountName?otherAttributes?givenName?emailAddress~directoryId?clientToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates user information."]moduleUpdateGroupResult=structtypenonrect=unittypenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`DirectoryUnavailableExceptionofDirectoryUnavailableException.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)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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))]|`DirectoryUnavailableExceptione->`Assoc[("error",(`String"DirectoryUnavailableException"));("details",(DirectoryUnavailableException.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"Updates group information."]moduleUpdateGroupRequest=structtypenonrect={clientToken:ClientToken.toption[@ocaml.doc"A unique and case-sensitive identifier that you provide to make sure the idempotency of the request, so multiple identical calls have the same effect as one single call. A client token is valid for 8 hours after the first request that uses it completes. After 8 hours, any request with the same client token is treated as a new request. If the request succeeds, any future uses of that token will be idempotent for another 8 hours. If you submit a request with the same client token but change one of the other parameters within the 8-hour idempotency window, Directory Service Data returns an ConflictException. This parameter is optional when using the CLI or SDK."];directoryId:DirectoryId.t[@ocaml.doc"The identifier (ID) of the directory that's associated with the group."];groupScope:GroupScope.toption[@ocaml.doc"The scope of the AD group. For details, see Active Directory security groups."];groupType:GroupType.toption[@ocaml.doc"The AD group type. For details, see Active Directory security group type."];otherAttributes:Attributes.toption[@ocaml.doc"An expression that defines one or more attributes with the data type and the value of each attribute."];sAMAccountName:GroupName.t[@ocaml.doc"The name of the group."];updateType:UpdateType.toption[@ocaml.doc"The type of update to be performed. If no value exists for the attribute, use ADD. Otherwise, use REPLACE to change an attribute value or REMOVE to clear the attribute value."]}letcontext_="UpdateGroupRequest"letmake?clientToken=fun?groupScope->fun?groupType->fun?otherAttributes->fun?updateType->fun~directoryId->fun~sAMAccountName->fun()->{clientToken;groupScope;groupType;otherAttributes;updateType;directoryId;sAMAccountName}letto_valuex=structure_to_value[("ClientToken",(Option.mapx.clientToken~f:ClientToken.to_value));("DirectoryId",(Some(DirectoryId.to_valuex.directoryId)));("GroupScope",(Option.mapx.groupScope~f:GroupScope.to_value));("GroupType",(Option.mapx.groupType~f:GroupType.to_value));("OtherAttributes",(Option.mapx.otherAttributes~f:Attributes.to_value));("SAMAccountName",(Some(GroupName.to_valuex.sAMAccountName)));("UpdateType",(Option.mapx.updateType~f:UpdateType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letupdateType=(Option.map~f:UpdateType.of_xml)(Xml.childxml_arg0"UpdateType")inletsAMAccountName=GroupName.of_xml(Xml.child_exn~context:context_xml_arg0"SAMAccountName")inletotherAttributes=(Option.map~f:Attributes.of_xml)(Xml.childxml_arg0"OtherAttributes")inletgroupType=(Option.map~f:GroupType.of_xml)(Xml.childxml_arg0"GroupType")inletgroupScope=(Option.map~f:GroupScope.of_xml)(Xml.childxml_arg0"GroupScope")inletdirectoryId=DirectoryId.of_xml(Xml.child_exn~context:context_xml_arg0"DirectoryId")inletclientToken=(Option.map~f:ClientToken.of_xml)(Xml.childxml_arg0"ClientToken")inmake?updateType~sAMAccountName?otherAttributes?groupType?groupScope~directoryId?clientToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letupdateType=field_mapjson__"UpdateType"UpdateType.of_jsoninletsAMAccountName=field_map_exnjson__"SAMAccountName"GroupName.of_jsoninletotherAttributes=field_mapjson__"OtherAttributes"Attributes.of_jsoninletgroupType=field_mapjson__"GroupType"GroupType.of_jsoninletgroupScope=field_mapjson__"GroupScope"GroupScope.of_jsoninletdirectoryId=field_map_exnjson__"DirectoryId"DirectoryId.of_jsoninletclientToken=field_mapjson__"ClientToken"ClientToken.of_jsoninmake?updateType~sAMAccountName?otherAttributes?groupType?groupScope~directoryId?clientToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Updates group information."]moduleSearchUsersResult=structtypenonrect={directoryId:DirectoryId.toption[@ocaml.doc"The identifier (ID) of the directory where the address block is added."];nextToken:NextToken.toption[@ocaml.doc"An encoded paging token for paginated calls that can be passed back to retrieve the next page."];realm:Realm.toption[@ocaml.doc"The domain that's associated with the user."];users:UserList.toption[@ocaml.doc"The user information that the request returns."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`DirectoryUnavailableExceptionofDirectoryUnavailableException.t|`InternalServerExceptionofInternalServerException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?directoryId=fun?nextToken->fun?realm->fun?users->fun()->{directoryId;nextToken;realm;users}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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))]|`DirectoryUnavailableExceptione->`Assoc[("error",(`String"DirectoryUnavailableException"));("details",(DirectoryUnavailableException.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[("DirectoryId",(Option.mapx.directoryId~f:DirectoryId.to_value));("NextToken",(Option.mapx.nextToken~f:NextToken.to_value));("Realm",(Option.mapx.realm~f:Realm.to_value));("Users",(Option.mapx.users~f:UserList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letusers=(Option.map~f:UserList.of_xml)(Xml.childxml_arg0"Users")inletrealm=(Option.map~f:Realm.of_xml)(Xml.childxml_arg0"Realm")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"NextToken")inletdirectoryId=(Option.map~f:DirectoryId.of_xml)(Xml.childxml_arg0"DirectoryId")inmake?users?realm?nextToken?directoryId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letusers=field_mapjson__"Users"UserList.of_jsoninletrealm=field_mapjson__"Realm"Realm.of_jsoninletnextToken=field_mapjson__"NextToken"NextToken.of_jsoninletdirectoryId=field_mapjson__"DirectoryId"DirectoryId.of_jsoninmake?users?realm?nextToken?directoryId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Searches the specified directory for a user. You can find users that match the SearchString parameter with the value of their attributes included in the SearchString parameter. This operation supports pagination with the use of the NextToken request and response parameters. If more results are available, the SearchUsers.NextToken member contains a token that you pass in the next call to SearchUsers. This retrieves the next set of items. You can also specify a maximum number of return results with the MaxResults parameter."]moduleSearchUsersRequest=structtypenonrect={directoryId:DirectoryId.t[@ocaml.doc"The identifier (ID) of the directory that's associated with the user."];maxResults:MaxResults.toption[@ocaml.doc"The maximum number of results to be returned per request."];nextToken:NextToken.toption[@ocaml.doc"An encoded paging token for paginated calls that can be passed back to retrieve the next page."];realm:Realm.toption[@ocaml.doc"The domain name that's associated with the user. This parameter is optional, so you can return users outside of your Managed Microsoft AD domain. When no value is defined, only your Managed Microsoft AD users are returned. This value is case insensitive."];searchAttributes:LdapDisplayNameList.t[@ocaml.doc"One or more data attributes that are used to search for a user. For a list of supported attributes, see Directory Service Data Attributes."];searchString:SearchString.t[@ocaml.doc"The attribute value that you want to search for. Wildcard (*) searches aren't supported. For a list of supported attributes, see Directory Service Data Attributes."]}letcontext_="SearchUsersRequest"letmake?maxResults=fun?nextToken->fun?realm->fun~directoryId->fun~searchAttributes->fun~searchString->fun()->{maxResults;nextToken;realm;directoryId;searchAttributes;searchString}letto_valuex=structure_to_value[("DirectoryId",(Some(DirectoryId.to_valuex.directoryId)));("MaxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("NextToken",(Option.mapx.nextToken~f:NextToken.to_value));("Realm",(Option.mapx.realm~f:Realm.to_value));("SearchAttributes",(Some(LdapDisplayNameList.to_valuex.searchAttributes)));("SearchString",(Some(SearchString.to_valuex.searchString)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsearchString=SearchString.of_xml(Xml.child_exn~context:context_xml_arg0"SearchString")inletsearchAttributes=LdapDisplayNameList.of_xml(Xml.child_exn~context:context_xml_arg0"SearchAttributes")inletrealm=(Option.map~f:Realm.of_xml)(Xml.childxml_arg0"Realm")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"NextToken")inletmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"MaxResults")inletdirectoryId=DirectoryId.of_xml(Xml.child_exn~context:context_xml_arg0"DirectoryId")inmake~searchString~searchAttributes?realm?nextToken?maxResults~directoryId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsearchString=field_map_exnjson__"SearchString"SearchString.of_jsoninletsearchAttributes=field_map_exnjson__"SearchAttributes"LdapDisplayNameList.of_jsoninletrealm=field_mapjson__"Realm"Realm.of_jsoninletnextToken=field_mapjson__"NextToken"NextToken.of_jsoninletmaxResults=field_mapjson__"MaxResults"MaxResults.of_jsoninletdirectoryId=field_map_exnjson__"DirectoryId"DirectoryId.of_jsoninmake~searchString~searchAttributes?realm?nextToken?maxResults~directoryId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Searches the specified directory for a user. You can find users that match the SearchString parameter with the value of their attributes included in the SearchString parameter. This operation supports pagination with the use of the NextToken request and response parameters. If more results are available, the SearchUsers.NextToken member contains a token that you pass in the next call to SearchUsers. This retrieves the next set of items. You can also specify a maximum number of return results with the MaxResults parameter."]moduleSearchGroupsResult=structtypenonrect={directoryId:DirectoryId.toption[@ocaml.doc"The identifier (ID) of the directory that's associated with the group."];groups:GroupList.toption[@ocaml.doc"The group information that the request returns."];nextToken:NextToken.toption[@ocaml.doc"An encoded paging token for paginated calls that can be passed back to retrieve the next page."];realm:Realm.toption[@ocaml.doc"The domain that's associated with the group."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`DirectoryUnavailableExceptionofDirectoryUnavailableException.t|`InternalServerExceptionofInternalServerException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?directoryId=fun?groups->fun?nextToken->fun?realm->fun()->{directoryId;groups;nextToken;realm}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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))]|`DirectoryUnavailableExceptione->`Assoc[("error",(`String"DirectoryUnavailableException"));("details",(DirectoryUnavailableException.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[("DirectoryId",(Option.mapx.directoryId~f:DirectoryId.to_value));("Groups",(Option.mapx.groups~f:GroupList.to_value));("NextToken",(Option.mapx.nextToken~f:NextToken.to_value));("Realm",(Option.mapx.realm~f:Realm.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letrealm=(Option.map~f:Realm.of_xml)(Xml.childxml_arg0"Realm")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"NextToken")inletgroups=(Option.map~f:GroupList.of_xml)(Xml.childxml_arg0"Groups")inletdirectoryId=(Option.map~f:DirectoryId.of_xml)(Xml.childxml_arg0"DirectoryId")inmake?realm?nextToken?groups?directoryId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letrealm=field_mapjson__"Realm"Realm.of_jsoninletnextToken=field_mapjson__"NextToken"NextToken.of_jsoninletgroups=field_mapjson__"Groups"GroupList.of_jsoninletdirectoryId=field_mapjson__"DirectoryId"DirectoryId.of_jsoninmake?realm?nextToken?groups?directoryId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Searches the specified directory for a group. You can find groups that match the SearchString parameter with the value of their attributes included in the SearchString parameter. This operation supports pagination with the use of the NextToken request and response parameters. If more results are available, the SearchGroups.NextToken member contains a token that you pass in the next call to SearchGroups. This retrieves the next set of items. You can also specify a maximum number of return results with the MaxResults parameter."]moduleSearchGroupsRequest=structtypenonrect={directoryId:DirectoryId.t[@ocaml.doc"The identifier (ID) of the directory that's associated with the group."];maxResults:MaxResults.toption[@ocaml.doc"The maximum number of results to be returned per request."];nextToken:NextToken.toption[@ocaml.doc"An encoded paging token for paginated calls that can be passed back to retrieve the next page."];realm:Realm.toption[@ocaml.doc"The domain name that's associated with the group. This parameter is optional, so you can return groups outside of your Managed Microsoft AD domain. When no value is defined, only your Managed Microsoft AD groups are returned. This value is case insensitive."];searchAttributes:LdapDisplayNameList.t[@ocaml.doc"One or more data attributes that are used to search for a group. For a list of supported attributes, see Directory Service Data Attributes."];searchString:SearchString.t[@ocaml.doc"The attribute value that you want to search for. Wildcard (*) searches aren't supported. For a list of supported attributes, see Directory Service Data Attributes."]}letcontext_="SearchGroupsRequest"letmake?maxResults=fun?nextToken->fun?realm->fun~directoryId->fun~searchAttributes->fun~searchString->fun()->{maxResults;nextToken;realm;directoryId;searchAttributes;searchString}letto_valuex=structure_to_value[("DirectoryId",(Some(DirectoryId.to_valuex.directoryId)));("MaxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("NextToken",(Option.mapx.nextToken~f:NextToken.to_value));("Realm",(Option.mapx.realm~f:Realm.to_value));("SearchAttributes",(Some(LdapDisplayNameList.to_valuex.searchAttributes)));("SearchString",(Some(SearchString.to_valuex.searchString)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsearchString=SearchString.of_xml(Xml.child_exn~context:context_xml_arg0"SearchString")inletsearchAttributes=LdapDisplayNameList.of_xml(Xml.child_exn~context:context_xml_arg0"SearchAttributes")inletrealm=(Option.map~f:Realm.of_xml)(Xml.childxml_arg0"Realm")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"NextToken")inletmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"MaxResults")inletdirectoryId=DirectoryId.of_xml(Xml.child_exn~context:context_xml_arg0"DirectoryId")inmake~searchString~searchAttributes?realm?nextToken?maxResults~directoryId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsearchString=field_map_exnjson__"SearchString"SearchString.of_jsoninletsearchAttributes=field_map_exnjson__"SearchAttributes"LdapDisplayNameList.of_jsoninletrealm=field_mapjson__"Realm"Realm.of_jsoninletnextToken=field_mapjson__"NextToken"NextToken.of_jsoninletmaxResults=field_mapjson__"MaxResults"MaxResults.of_jsoninletdirectoryId=field_map_exnjson__"DirectoryId"DirectoryId.of_jsoninmake~searchString~searchAttributes?realm?nextToken?maxResults~directoryId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Searches the specified directory for a group. You can find groups that match the SearchString parameter with the value of their attributes included in the SearchString parameter. This operation supports pagination with the use of the NextToken request and response parameters. If more results are available, the SearchGroups.NextToken member contains a token that you pass in the next call to SearchGroups. This retrieves the next set of items. You can also specify a maximum number of return results with the MaxResults parameter."]moduleRemoveGroupMemberResult=structtypenonrect=unittypenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`DirectoryUnavailableExceptionofDirectoryUnavailableException.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)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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))]|`DirectoryUnavailableExceptione->`Assoc[("error",(`String"DirectoryUnavailableException"));("details",(DirectoryUnavailableException.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 a member from a group."]moduleRemoveGroupMemberRequest=structtypenonrect={clientToken:ClientToken.toption[@ocaml.doc"A unique and case-sensitive identifier that you provide to make sure the idempotency of the request, so multiple identical calls have the same effect as one single call. A client token is valid for 8 hours after the first request that uses it completes. After 8 hours, any request with the same client token is treated as a new request. If the request succeeds, any future uses of that token will be idempotent for another 8 hours. If you submit a request with the same client token but change one of the other parameters within the 8-hour idempotency window, Directory Service Data returns an ConflictException. This parameter is optional when using the CLI or SDK."];directoryId:DirectoryId.t[@ocaml.doc"The identifier (ID) of the directory that's associated with the member."];groupName:GroupName.t[@ocaml.doc"The name of the group."];memberName:MemberName.t[@ocaml.doc"The SAMAccountName of the user, group, or computer to remove from the group."];memberRealm:Realm.toption[@ocaml.doc"The domain name that's associated with the group member. This parameter defaults to the Managed Microsoft AD domain. This parameter is optional and case insensitive."]}letcontext_="RemoveGroupMemberRequest"letmake?clientToken=fun?memberRealm->fun~directoryId->fun~groupName->fun~memberName->fun()->{clientToken;memberRealm;directoryId;groupName;memberName}letto_valuex=structure_to_value[("ClientToken",(Option.mapx.clientToken~f:ClientToken.to_value));("DirectoryId",(Some(DirectoryId.to_valuex.directoryId)));("GroupName",(Some(GroupName.to_valuex.groupName)));("MemberName",(Some(MemberName.to_valuex.memberName)));("MemberRealm",(Option.mapx.memberRealm~f:Realm.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmemberRealm=(Option.map~f:Realm.of_xml)(Xml.childxml_arg0"MemberRealm")inletmemberName=MemberName.of_xml(Xml.child_exn~context:context_xml_arg0"MemberName")inletgroupName=GroupName.of_xml(Xml.child_exn~context:context_xml_arg0"GroupName")inletdirectoryId=DirectoryId.of_xml(Xml.child_exn~context:context_xml_arg0"DirectoryId")inletclientToken=(Option.map~f:ClientToken.of_xml)(Xml.childxml_arg0"ClientToken")inmake?memberRealm~memberName~groupName~directoryId?clientToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmemberRealm=field_mapjson__"MemberRealm"Realm.of_jsoninletmemberName=field_map_exnjson__"MemberName"MemberName.of_jsoninletgroupName=field_map_exnjson__"GroupName"GroupName.of_jsoninletdirectoryId=field_map_exnjson__"DirectoryId"DirectoryId.of_jsoninletclientToken=field_mapjson__"ClientToken"ClientToken.of_jsoninmake?memberRealm~memberName~groupName~directoryId?clientToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Removes a member from a group."]moduleListUsersResult=structtypenonrect={directoryId:DirectoryId.toption[@ocaml.doc"The identifier (ID) of the directory that's associated with the user."];nextToken:NextToken.toption[@ocaml.doc"An encoded paging token for paginated calls that can be passed back to retrieve the next page."];realm:Realm.toption[@ocaml.doc"The domain that's associated with the user."];users:UserSummaryList.toption[@ocaml.doc"The user information that the request returns."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`DirectoryUnavailableExceptionofDirectoryUnavailableException.t|`InternalServerExceptionofInternalServerException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?directoryId=fun?nextToken->fun?realm->fun?users->fun()->{directoryId;nextToken;realm;users}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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))]|`DirectoryUnavailableExceptione->`Assoc[("error",(`String"DirectoryUnavailableException"));("details",(DirectoryUnavailableException.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[("DirectoryId",(Option.mapx.directoryId~f:DirectoryId.to_value));("NextToken",(Option.mapx.nextToken~f:NextToken.to_value));("Realm",(Option.mapx.realm~f:Realm.to_value));("Users",(Option.mapx.users~f:UserSummaryList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letusers=(Option.map~f:UserSummaryList.of_xml)(Xml.childxml_arg0"Users")inletrealm=(Option.map~f:Realm.of_xml)(Xml.childxml_arg0"Realm")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"NextToken")inletdirectoryId=(Option.map~f:DirectoryId.of_xml)(Xml.childxml_arg0"DirectoryId")inmake?users?realm?nextToken?directoryId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letusers=field_mapjson__"Users"UserSummaryList.of_jsoninletrealm=field_mapjson__"Realm"Realm.of_jsoninletnextToken=field_mapjson__"NextToken"NextToken.of_jsoninletdirectoryId=field_mapjson__"DirectoryId"DirectoryId.of_jsoninmake?users?realm?nextToken?directoryId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns user information for the specified directory. This operation supports pagination with the use of the NextToken request and response parameters. If more results are available, the ListUsers.NextToken member contains a token that you pass in the next call to ListUsers. This retrieves the next set of items. You can also specify a maximum number of return results with the MaxResults parameter."]moduleListUsersRequest=structtypenonrect={directoryId:DirectoryId.t[@ocaml.doc"The identifier (ID) of the directory that's associated with the user."];maxResults:MaxResults.toption[@ocaml.doc"The maximum number of results to be returned per request."];nextToken:NextToken.toption[@ocaml.doc"An encoded paging token for paginated calls that can be passed back to retrieve the next page."];realm:Realm.toption[@ocaml.doc"The domain name that's associated with the user. This parameter is optional, so you can return users outside of your Managed Microsoft AD domain. When no value is defined, only your Managed Microsoft AD users are returned. This value is case insensitive."]}letcontext_="ListUsersRequest"letmake?maxResults=fun?nextToken->fun?realm->fun~directoryId->fun()->{maxResults;nextToken;realm;directoryId}letto_valuex=structure_to_value[("DirectoryId",(Some(DirectoryId.to_valuex.directoryId)));("MaxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("NextToken",(Option.mapx.nextToken~f:NextToken.to_value));("Realm",(Option.mapx.realm~f:Realm.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letrealm=(Option.map~f:Realm.of_xml)(Xml.childxml_arg0"Realm")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"NextToken")inletmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"MaxResults")inletdirectoryId=DirectoryId.of_xml(Xml.child_exn~context:context_xml_arg0"DirectoryId")inmake?realm?nextToken?maxResults~directoryId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letrealm=field_mapjson__"Realm"Realm.of_jsoninletnextToken=field_mapjson__"NextToken"NextToken.of_jsoninletmaxResults=field_mapjson__"MaxResults"MaxResults.of_jsoninletdirectoryId=field_map_exnjson__"DirectoryId"DirectoryId.of_jsoninmake?realm?nextToken?maxResults~directoryId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns user information for the specified directory. This operation supports pagination with the use of the NextToken request and response parameters. If more results are available, the ListUsers.NextToken member contains a token that you pass in the next call to ListUsers. This retrieves the next set of items. You can also specify a maximum number of return results with the MaxResults parameter."]moduleListGroupsResult=structtypenonrect={directoryId:DirectoryId.toption[@ocaml.doc"The identifier (ID) of the directory that's associated with the group."];groups:GroupSummaryList.toption[@ocaml.doc"The group information that the request returns."];nextToken:NextToken.toption[@ocaml.doc"An encoded paging token for paginated calls that can be passed back to retrieve the next page."];realm:Realm.toption[@ocaml.doc"The domain name associated with the group."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`DirectoryUnavailableExceptionofDirectoryUnavailableException.t|`InternalServerExceptionofInternalServerException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?directoryId=fun?groups->fun?nextToken->fun?realm->fun()->{directoryId;groups;nextToken;realm}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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))]|`DirectoryUnavailableExceptione->`Assoc[("error",(`String"DirectoryUnavailableException"));("details",(DirectoryUnavailableException.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[("DirectoryId",(Option.mapx.directoryId~f:DirectoryId.to_value));("Groups",(Option.mapx.groups~f:GroupSummaryList.to_value));("NextToken",(Option.mapx.nextToken~f:NextToken.to_value));("Realm",(Option.mapx.realm~f:Realm.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letrealm=(Option.map~f:Realm.of_xml)(Xml.childxml_arg0"Realm")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"NextToken")inletgroups=(Option.map~f:GroupSummaryList.of_xml)(Xml.childxml_arg0"Groups")inletdirectoryId=(Option.map~f:DirectoryId.of_xml)(Xml.childxml_arg0"DirectoryId")inmake?realm?nextToken?groups?directoryId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letrealm=field_mapjson__"Realm"Realm.of_jsoninletnextToken=field_mapjson__"NextToken"NextToken.of_jsoninletgroups=field_mapjson__"Groups"GroupSummaryList.of_jsoninletdirectoryId=field_mapjson__"DirectoryId"DirectoryId.of_jsoninmake?realm?nextToken?groups?directoryId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns group information for the specified directory. This operation supports pagination with the use of the NextToken request and response parameters. If more results are available, the ListGroups.NextToken member contains a token that you pass in the next call to ListGroups. This retrieves the next set of items. You can also specify a maximum number of return results with the MaxResults parameter."]moduleListGroupsRequest=structtypenonrect={directoryId:DirectoryId.t[@ocaml.doc"The identifier (ID) of the directory that's associated with the group."];maxResults:MaxResults.toption[@ocaml.doc"The maximum number of results to be returned per request."];nextToken:NextToken.toption[@ocaml.doc"An encoded paging token for paginated calls that can be passed back to retrieve the next page."];realm:Realm.toption[@ocaml.doc"The domain name associated with the directory. This parameter is optional, so you can return groups outside of your Managed Microsoft AD domain. When no value is defined, only your Managed Microsoft AD groups are returned. This value is case insensitive."]}letcontext_="ListGroupsRequest"letmake?maxResults=fun?nextToken->fun?realm->fun~directoryId->fun()->{maxResults;nextToken;realm;directoryId}letto_valuex=structure_to_value[("DirectoryId",(Some(DirectoryId.to_valuex.directoryId)));("MaxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("NextToken",(Option.mapx.nextToken~f:NextToken.to_value));("Realm",(Option.mapx.realm~f:Realm.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letrealm=(Option.map~f:Realm.of_xml)(Xml.childxml_arg0"Realm")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"NextToken")inletmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"MaxResults")inletdirectoryId=DirectoryId.of_xml(Xml.child_exn~context:context_xml_arg0"DirectoryId")inmake?realm?nextToken?maxResults~directoryId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letrealm=field_mapjson__"Realm"Realm.of_jsoninletnextToken=field_mapjson__"NextToken"NextToken.of_jsoninletmaxResults=field_mapjson__"MaxResults"MaxResults.of_jsoninletdirectoryId=field_map_exnjson__"DirectoryId"DirectoryId.of_jsoninmake?realm?nextToken?maxResults~directoryId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns group information for the specified directory. This operation supports pagination with the use of the NextToken request and response parameters. If more results are available, the ListGroups.NextToken member contains a token that you pass in the next call to ListGroups. This retrieves the next set of items. You can also specify a maximum number of return results with the MaxResults parameter."]moduleListGroupsForMemberResult=structtypenonrect={directoryId:DirectoryId.toption[@ocaml.doc"The identifier (ID) of the directory that's associated with the member."];groups:GroupSummaryList.toption[@ocaml.doc"The group information that the request returns."];memberRealm:Realm.toption[@ocaml.doc"The domain that's associated with the member."];nextToken:NextToken.toption[@ocaml.doc"An encoded paging token for paginated calls that can be passed back to retrieve the next page."];realm:Realm.toption[@ocaml.doc"The domain that's associated with the group."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`DirectoryUnavailableExceptionofDirectoryUnavailableException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?directoryId=fun?groups->fun?memberRealm->fun?nextToken->fun?realm->fun()->{directoryId;groups;memberRealm;nextToken;realm}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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))]|`DirectoryUnavailableExceptione->`Assoc[("error",(`String"DirectoryUnavailableException"));("details",(DirectoryUnavailableException.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[("DirectoryId",(Option.mapx.directoryId~f:DirectoryId.to_value));("Groups",(Option.mapx.groups~f:GroupSummaryList.to_value));("MemberRealm",(Option.mapx.memberRealm~f:Realm.to_value));("NextToken",(Option.mapx.nextToken~f:NextToken.to_value));("Realm",(Option.mapx.realm~f:Realm.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letrealm=(Option.map~f:Realm.of_xml)(Xml.childxml_arg0"Realm")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"NextToken")inletmemberRealm=(Option.map~f:Realm.of_xml)(Xml.childxml_arg0"MemberRealm")inletgroups=(Option.map~f:GroupSummaryList.of_xml)(Xml.childxml_arg0"Groups")inletdirectoryId=(Option.map~f:DirectoryId.of_xml)(Xml.childxml_arg0"DirectoryId")inmake?realm?nextToken?memberRealm?groups?directoryId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letrealm=field_mapjson__"Realm"Realm.of_jsoninletnextToken=field_mapjson__"NextToken"NextToken.of_jsoninletmemberRealm=field_mapjson__"MemberRealm"Realm.of_jsoninletgroups=field_mapjson__"Groups"GroupSummaryList.of_jsoninletdirectoryId=field_mapjson__"DirectoryId"DirectoryId.of_jsoninmake?realm?nextToken?memberRealm?groups?directoryId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns group information for the specified member. This operation supports pagination with the use of the NextToken request and response parameters. If more results are available, the ListGroupsForMember.NextToken member contains a token that you pass in the next call to ListGroupsForMember. This retrieves the next set of items. You can also specify a maximum number of return results with the MaxResults parameter."]moduleListGroupsForMemberRequest=structtypenonrect={directoryId:DirectoryId.t[@ocaml.doc"The identifier (ID) of the directory that's associated with the member."];maxResults:MaxResults.toption[@ocaml.doc"The maximum number of results to be returned per request."];memberRealm:Realm.toption[@ocaml.doc"The domain name that's associated with the group member. This parameter is optional, so you can limit your results to the group members in a specific domain. This parameter is case insensitive and defaults to Realm"];nextToken:NextToken.toption[@ocaml.doc"An encoded paging token for paginated calls that can be passed back to retrieve the next page."];realm:Realm.toption[@ocaml.doc"The domain name that's associated with the group. This parameter is optional, so you can return groups outside of your Managed Microsoft AD domain. When no value is defined, only your Managed Microsoft AD groups are returned. This value is case insensitive and defaults to your Managed Microsoft AD domain."];sAMAccountName:MemberName.t[@ocaml.doc"The SAMAccountName of the user, group, or computer that's a member of the group."]}letcontext_="ListGroupsForMemberRequest"letmake?maxResults=fun?memberRealm->fun?nextToken->fun?realm->fun~directoryId->fun~sAMAccountName->fun()->{maxResults;memberRealm;nextToken;realm;directoryId;sAMAccountName}letto_valuex=structure_to_value[("DirectoryId",(Some(DirectoryId.to_valuex.directoryId)));("MaxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("MemberRealm",(Option.mapx.memberRealm~f:Realm.to_value));("NextToken",(Option.mapx.nextToken~f:NextToken.to_value));("Realm",(Option.mapx.realm~f:Realm.to_value));("SAMAccountName",(Some(MemberName.to_valuex.sAMAccountName)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsAMAccountName=MemberName.of_xml(Xml.child_exn~context:context_xml_arg0"SAMAccountName")inletrealm=(Option.map~f:Realm.of_xml)(Xml.childxml_arg0"Realm")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"NextToken")inletmemberRealm=(Option.map~f:Realm.of_xml)(Xml.childxml_arg0"MemberRealm")inletmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"MaxResults")inletdirectoryId=DirectoryId.of_xml(Xml.child_exn~context:context_xml_arg0"DirectoryId")inmake~sAMAccountName?realm?nextToken?memberRealm?maxResults~directoryId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsAMAccountName=field_map_exnjson__"SAMAccountName"MemberName.of_jsoninletrealm=field_mapjson__"Realm"Realm.of_jsoninletnextToken=field_mapjson__"NextToken"NextToken.of_jsoninletmemberRealm=field_mapjson__"MemberRealm"Realm.of_jsoninletmaxResults=field_mapjson__"MaxResults"MaxResults.of_jsoninletdirectoryId=field_map_exnjson__"DirectoryId"DirectoryId.of_jsoninmake~sAMAccountName?realm?nextToken?memberRealm?maxResults~directoryId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns group information for the specified member. This operation supports pagination with the use of the NextToken request and response parameters. If more results are available, the ListGroupsForMember.NextToken member contains a token that you pass in the next call to ListGroupsForMember. This retrieves the next set of items. You can also specify a maximum number of return results with the MaxResults parameter."]moduleListGroupMembersResult=structtypenonrect={directoryId:DirectoryId.toption[@ocaml.doc"Identifier (ID) of the directory associated with the group."];memberRealm:Realm.toption[@ocaml.doc"The domain name that's associated with the member."];members:MemberList.toption[@ocaml.doc"The member information that the request returns."];nextToken:NextToken.toption[@ocaml.doc"An encoded paging token for paginated calls that can be passed back to retrieve the next page."];realm:Realm.toption[@ocaml.doc"The domain name that's associated with the group."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`DirectoryUnavailableExceptionofDirectoryUnavailableException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?directoryId=fun?memberRealm->fun?members->fun?nextToken->fun?realm->fun()->{directoryId;memberRealm;members;nextToken;realm}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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))]|`DirectoryUnavailableExceptione->`Assoc[("error",(`String"DirectoryUnavailableException"));("details",(DirectoryUnavailableException.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[("DirectoryId",(Option.mapx.directoryId~f:DirectoryId.to_value));("MemberRealm",(Option.mapx.memberRealm~f:Realm.to_value));("Members",(Option.mapx.members~f:MemberList.to_value));("NextToken",(Option.mapx.nextToken~f:NextToken.to_value));("Realm",(Option.mapx.realm~f:Realm.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letrealm=(Option.map~f:Realm.of_xml)(Xml.childxml_arg0"Realm")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"NextToken")inletmembers=(Option.map~f:MemberList.of_xml)(Xml.childxml_arg0"Members")inletmemberRealm=(Option.map~f:Realm.of_xml)(Xml.childxml_arg0"MemberRealm")inletdirectoryId=(Option.map~f:DirectoryId.of_xml)(Xml.childxml_arg0"DirectoryId")inmake?realm?nextToken?members?memberRealm?directoryId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letrealm=field_mapjson__"Realm"Realm.of_jsoninletnextToken=field_mapjson__"NextToken"NextToken.of_jsoninletmembers=field_mapjson__"Members"MemberList.of_jsoninletmemberRealm=field_mapjson__"MemberRealm"Realm.of_jsoninletdirectoryId=field_mapjson__"DirectoryId"DirectoryId.of_jsoninmake?realm?nextToken?members?memberRealm?directoryId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns member information for the specified group. This operation supports pagination with the use of the NextToken request and response parameters. If more results are available, the ListGroupMembers.NextToken member contains a token that you pass in the next call to ListGroupMembers. This retrieves the next set of items. You can also specify a maximum number of return results with the MaxResults parameter."]moduleListGroupMembersRequest=structtypenonrect={directoryId:DirectoryId.t[@ocaml.doc"The identifier (ID) of the directory that's associated with the group."];maxResults:MaxResults.toption[@ocaml.doc"The maximum number of results to be returned per request."];memberRealm:Realm.toption[@ocaml.doc"The domain name that's associated with the group member. This parameter defaults to the Managed Microsoft AD domain. This parameter is optional and case insensitive."];nextToken:NextToken.toption[@ocaml.doc"An encoded paging token for paginated calls that can be passed back to retrieve the next page."];realm:Realm.toption[@ocaml.doc"The domain name that's associated with the group. This parameter is optional, so you can return members from a group outside of your Managed Microsoft AD domain. When no value is defined, only members of your Managed Microsoft AD groups are returned. This value is case insensitive."];sAMAccountName:GroupName.t[@ocaml.doc"The name of the group."]}letcontext_="ListGroupMembersRequest"letmake?maxResults=fun?memberRealm->fun?nextToken->fun?realm->fun~directoryId->fun~sAMAccountName->fun()->{maxResults;memberRealm;nextToken;realm;directoryId;sAMAccountName}letto_valuex=structure_to_value[("DirectoryId",(Some(DirectoryId.to_valuex.directoryId)));("MaxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("MemberRealm",(Option.mapx.memberRealm~f:Realm.to_value));("NextToken",(Option.mapx.nextToken~f:NextToken.to_value));("Realm",(Option.mapx.realm~f:Realm.to_value));("SAMAccountName",(Some(GroupName.to_valuex.sAMAccountName)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsAMAccountName=GroupName.of_xml(Xml.child_exn~context:context_xml_arg0"SAMAccountName")inletrealm=(Option.map~f:Realm.of_xml)(Xml.childxml_arg0"Realm")inletnextToken=(Option.map~f:NextToken.of_xml)(Xml.childxml_arg0"NextToken")inletmemberRealm=(Option.map~f:Realm.of_xml)(Xml.childxml_arg0"MemberRealm")inletmaxResults=(Option.map~f:MaxResults.of_xml)(Xml.childxml_arg0"MaxResults")inletdirectoryId=DirectoryId.of_xml(Xml.child_exn~context:context_xml_arg0"DirectoryId")inmake~sAMAccountName?realm?nextToken?memberRealm?maxResults~directoryId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsAMAccountName=field_map_exnjson__"SAMAccountName"GroupName.of_jsoninletrealm=field_mapjson__"Realm"Realm.of_jsoninletnextToken=field_mapjson__"NextToken"NextToken.of_jsoninletmemberRealm=field_mapjson__"MemberRealm"Realm.of_jsoninletmaxResults=field_mapjson__"MaxResults"MaxResults.of_jsoninletdirectoryId=field_map_exnjson__"DirectoryId"DirectoryId.of_jsoninmake~sAMAccountName?realm?nextToken?memberRealm?maxResults~directoryId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns member information for the specified group. This operation supports pagination with the use of the NextToken request and response parameters. If more results are available, the ListGroupMembers.NextToken member contains a token that you pass in the next call to ListGroupMembers. This retrieves the next set of items. You can also specify a maximum number of return results with the MaxResults parameter."]moduleDisableUserResult=structtypenonrect=unittypenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`DirectoryUnavailableExceptionofDirectoryUnavailableException.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)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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))]|`DirectoryUnavailableExceptione->`Assoc[("error",(`String"DirectoryUnavailableException"));("details",(DirectoryUnavailableException.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"Deactivates an active user account. For information about how to enable an inactive user account, see ResetUserPassword in the Directory Service API Reference."]moduleDisableUserRequest=structtypenonrect={clientToken:ClientToken.toption[@ocaml.doc"A unique and case-sensitive identifier that you provide to make sure the idempotency of the request, so multiple identical calls have the same effect as one single call. A client token is valid for 8 hours after the first request that uses it completes. After 8 hours, any request with the same client token is treated as a new request. If the request succeeds, any future uses of that token will be idempotent for another 8 hours. If you submit a request with the same client token but change one of the other parameters within the 8-hour idempotency window, Directory Service Data returns an ConflictException. This parameter is optional when using the CLI or SDK."];directoryId:DirectoryId.t[@ocaml.doc"The identifier (ID) of the directory that's associated with the user."];sAMAccountName:UserName.t[@ocaml.doc"The name of the user."]}letcontext_="DisableUserRequest"letmake?clientToken=fun~directoryId->fun~sAMAccountName->fun()->{clientToken;directoryId;sAMAccountName}letto_valuex=structure_to_value[("ClientToken",(Option.mapx.clientToken~f:ClientToken.to_value));("DirectoryId",(Some(DirectoryId.to_valuex.directoryId)));("SAMAccountName",(Some(UserName.to_valuex.sAMAccountName)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsAMAccountName=UserName.of_xml(Xml.child_exn~context:context_xml_arg0"SAMAccountName")inletdirectoryId=DirectoryId.of_xml(Xml.child_exn~context:context_xml_arg0"DirectoryId")inletclientToken=(Option.map~f:ClientToken.of_xml)(Xml.childxml_arg0"ClientToken")inmake~sAMAccountName~directoryId?clientToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsAMAccountName=field_map_exnjson__"SAMAccountName"UserName.of_jsoninletdirectoryId=field_map_exnjson__"DirectoryId"DirectoryId.of_jsoninletclientToken=field_mapjson__"ClientToken"ClientToken.of_jsoninmake~sAMAccountName~directoryId?clientToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deactivates an active user account. For information about how to enable an inactive user account, see ResetUserPassword in the Directory Service API Reference."]moduleDescribeUserResult=structtypenonrect={directoryId:DirectoryId.toption[@ocaml.doc"The identifier (ID) of the directory that's associated with the user."];distinguishedName:DistinguishedName.toption[@ocaml.doc"The distinguished name of the object."];emailAddress:EmailAddress.toption[@ocaml.doc"The email address of the user."];enabled:Boolean.toption[@ocaml.doc"Indicates whether the user account is active."];givenName:GivenName.toption[@ocaml.doc"The first name of the user."];otherAttributes:Attributes.toption[@ocaml.doc"The attribute values that are returned for the attribute names that are included in the request. Attribute names are case insensitive."];realm:Realm.toption[@ocaml.doc"The domain name that's associated with the user."];sAMAccountName:UserName.toption[@ocaml.doc"The name of the user."];sID:SID.toption[@ocaml.doc"The unique security identifier (SID) of the user."];surname:Surname.toption[@ocaml.doc"The last name of the user."];userPrincipalName:UserPrincipalName.toption[@ocaml.doc"The UPN that is an Internet-style login name for a user and is based on the Internet standard RFC 822. The UPN is shorter than the distinguished name and easier to remember."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`DirectoryUnavailableExceptionofDirectoryUnavailableException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?directoryId=fun?distinguishedName->fun?emailAddress->fun?enabled->fun?givenName->fun?otherAttributes->fun?realm->fun?sAMAccountName->fun?sID->fun?surname->fun?userPrincipalName->fun()->{directoryId;distinguishedName;emailAddress;enabled;givenName;otherAttributes;realm;sAMAccountName;sID;surname;userPrincipalName}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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))]|`DirectoryUnavailableExceptione->`Assoc[("error",(`String"DirectoryUnavailableException"));("details",(DirectoryUnavailableException.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[("DirectoryId",(Option.mapx.directoryId~f:DirectoryId.to_value));("DistinguishedName",(Option.mapx.distinguishedName~f:DistinguishedName.to_value));("EmailAddress",(Option.mapx.emailAddress~f:EmailAddress.to_value));("Enabled",(Option.mapx.enabled~f:Boolean.to_value));("GivenName",(Option.mapx.givenName~f:GivenName.to_value));("OtherAttributes",(Option.mapx.otherAttributes~f:Attributes.to_value));("Realm",(Option.mapx.realm~f:Realm.to_value));("SAMAccountName",(Option.mapx.sAMAccountName~f:UserName.to_value));("SID",(Option.mapx.sID~f:SID.to_value));("Surname",(Option.mapx.surname~f:Surname.to_value));("UserPrincipalName",(Option.mapx.userPrincipalName~f:UserPrincipalName.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letuserPrincipalName=(Option.map~f:UserPrincipalName.of_xml)(Xml.childxml_arg0"UserPrincipalName")inletsurname=(Option.map~f:Surname.of_xml)(Xml.childxml_arg0"Surname")inletsID=(Option.map~f:SID.of_xml)(Xml.childxml_arg0"SID")inletsAMAccountName=(Option.map~f:UserName.of_xml)(Xml.childxml_arg0"SAMAccountName")inletrealm=(Option.map~f:Realm.of_xml)(Xml.childxml_arg0"Realm")inletotherAttributes=(Option.map~f:Attributes.of_xml)(Xml.childxml_arg0"OtherAttributes")inletgivenName=(Option.map~f:GivenName.of_xml)(Xml.childxml_arg0"GivenName")inletenabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"Enabled")inletemailAddress=(Option.map~f:EmailAddress.of_xml)(Xml.childxml_arg0"EmailAddress")inletdistinguishedName=(Option.map~f:DistinguishedName.of_xml)(Xml.childxml_arg0"DistinguishedName")inletdirectoryId=(Option.map~f:DirectoryId.of_xml)(Xml.childxml_arg0"DirectoryId")inmake?userPrincipalName?surname?sID?sAMAccountName?realm?otherAttributes?givenName?enabled?emailAddress?distinguishedName?directoryId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letuserPrincipalName=field_mapjson__"UserPrincipalName"UserPrincipalName.of_jsoninletsurname=field_mapjson__"Surname"Surname.of_jsoninletsID=field_mapjson__"SID"SID.of_jsoninletsAMAccountName=field_mapjson__"SAMAccountName"UserName.of_jsoninletrealm=field_mapjson__"Realm"Realm.of_jsoninletotherAttributes=field_mapjson__"OtherAttributes"Attributes.of_jsoninletgivenName=field_mapjson__"GivenName"GivenName.of_jsoninletenabled=field_mapjson__"Enabled"Boolean.of_jsoninletemailAddress=field_mapjson__"EmailAddress"EmailAddress.of_jsoninletdistinguishedName=field_mapjson__"DistinguishedName"DistinguishedName.of_jsoninletdirectoryId=field_mapjson__"DirectoryId"DirectoryId.of_jsoninmake?userPrincipalName?surname?sID?sAMAccountName?realm?otherAttributes?givenName?enabled?emailAddress?distinguishedName?directoryId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns information about a specific user."]moduleDescribeUserRequest=structtypenonrect={directoryId:DirectoryId.t[@ocaml.doc"The identifier (ID) of the directory that's associated with the user."];otherAttributes:LdapDisplayNameList.toption[@ocaml.doc"One or more attribute names to be returned for the user. A key is an attribute name, and the value is a list of maps. For a list of supported attributes, see Directory Service Data Attributes."];realm:Realm.toption[@ocaml.doc"The domain name that's associated with the user. This parameter is optional, so you can return users outside your Managed Microsoft AD domain. When no value is defined, only your Managed Microsoft AD users are returned. This value is case insensitive."];sAMAccountName:UserName.t[@ocaml.doc"The name of the user."]}letcontext_="DescribeUserRequest"letmake?otherAttributes=fun?realm->fun~directoryId->fun~sAMAccountName->fun()->{otherAttributes;realm;directoryId;sAMAccountName}letto_valuex=structure_to_value[("DirectoryId",(Some(DirectoryId.to_valuex.directoryId)));("OtherAttributes",(Option.mapx.otherAttributes~f:LdapDisplayNameList.to_value));("Realm",(Option.mapx.realm~f:Realm.to_value));("SAMAccountName",(Some(UserName.to_valuex.sAMAccountName)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsAMAccountName=UserName.of_xml(Xml.child_exn~context:context_xml_arg0"SAMAccountName")inletrealm=(Option.map~f:Realm.of_xml)(Xml.childxml_arg0"Realm")inletotherAttributes=(Option.map~f:LdapDisplayNameList.of_xml)(Xml.childxml_arg0"OtherAttributes")inletdirectoryId=DirectoryId.of_xml(Xml.child_exn~context:context_xml_arg0"DirectoryId")inmake~sAMAccountName?realm?otherAttributes~directoryId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsAMAccountName=field_map_exnjson__"SAMAccountName"UserName.of_jsoninletrealm=field_mapjson__"Realm"Realm.of_jsoninletotherAttributes=field_mapjson__"OtherAttributes"LdapDisplayNameList.of_jsoninletdirectoryId=field_map_exnjson__"DirectoryId"DirectoryId.of_jsoninmake~sAMAccountName?realm?otherAttributes~directoryId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns information about a specific user."]moduleDescribeGroupResult=structtypenonrect={directoryId:DirectoryId.toption[@ocaml.doc"The identifier (ID) of the directory that's associated with the group."];distinguishedName:DistinguishedName.toption[@ocaml.doc"The distinguished name of the object."];groupScope:GroupScope.toption[@ocaml.doc"The scope of the AD group. For details, see Active Directory security groups."];groupType:GroupType.toption[@ocaml.doc"The AD group type. For details, see Active Directory security group type."];otherAttributes:Attributes.toption[@ocaml.doc"The attribute values that are returned for the attribute names that are included in the request."];realm:Realm.toption[@ocaml.doc"The domain name that's associated with the group."];sAMAccountName:GroupName.toption[@ocaml.doc"The name of the group."];sID:SID.toption[@ocaml.doc"The unique security identifier (SID) of the group."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`DirectoryUnavailableExceptionofDirectoryUnavailableException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?directoryId=fun?distinguishedName->fun?groupScope->fun?groupType->fun?otherAttributes->fun?realm->fun?sAMAccountName->fun?sID->fun()->{directoryId;distinguishedName;groupScope;groupType;otherAttributes;realm;sAMAccountName;sID}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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))]|`DirectoryUnavailableExceptione->`Assoc[("error",(`String"DirectoryUnavailableException"));("details",(DirectoryUnavailableException.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[("DirectoryId",(Option.mapx.directoryId~f:DirectoryId.to_value));("DistinguishedName",(Option.mapx.distinguishedName~f:DistinguishedName.to_value));("GroupScope",(Option.mapx.groupScope~f:GroupScope.to_value));("GroupType",(Option.mapx.groupType~f:GroupType.to_value));("OtherAttributes",(Option.mapx.otherAttributes~f:Attributes.to_value));("Realm",(Option.mapx.realm~f:Realm.to_value));("SAMAccountName",(Option.mapx.sAMAccountName~f:GroupName.to_value));("SID",(Option.mapx.sID~f:SID.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsID=(Option.map~f:SID.of_xml)(Xml.childxml_arg0"SID")inletsAMAccountName=(Option.map~f:GroupName.of_xml)(Xml.childxml_arg0"SAMAccountName")inletrealm=(Option.map~f:Realm.of_xml)(Xml.childxml_arg0"Realm")inletotherAttributes=(Option.map~f:Attributes.of_xml)(Xml.childxml_arg0"OtherAttributes")inletgroupType=(Option.map~f:GroupType.of_xml)(Xml.childxml_arg0"GroupType")inletgroupScope=(Option.map~f:GroupScope.of_xml)(Xml.childxml_arg0"GroupScope")inletdistinguishedName=(Option.map~f:DistinguishedName.of_xml)(Xml.childxml_arg0"DistinguishedName")inletdirectoryId=(Option.map~f:DirectoryId.of_xml)(Xml.childxml_arg0"DirectoryId")inmake?sID?sAMAccountName?realm?otherAttributes?groupType?groupScope?distinguishedName?directoryId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsID=field_mapjson__"SID"SID.of_jsoninletsAMAccountName=field_mapjson__"SAMAccountName"GroupName.of_jsoninletrealm=field_mapjson__"Realm"Realm.of_jsoninletotherAttributes=field_mapjson__"OtherAttributes"Attributes.of_jsoninletgroupType=field_mapjson__"GroupType"GroupType.of_jsoninletgroupScope=field_mapjson__"GroupScope"GroupScope.of_jsoninletdistinguishedName=field_mapjson__"DistinguishedName"DistinguishedName.of_jsoninletdirectoryId=field_mapjson__"DirectoryId"DirectoryId.of_jsoninmake?sID?sAMAccountName?realm?otherAttributes?groupType?groupScope?distinguishedName?directoryId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns information about a specific group."]moduleDescribeGroupRequest=structtypenonrect={directoryId:DirectoryId.t[@ocaml.doc"The Identifier (ID) of the directory associated with the group."];otherAttributes:LdapDisplayNameList.toption[@ocaml.doc"One or more attributes to be returned for the group. For a list of supported attributes, see Directory Service Data Attributes."];realm:Realm.toption[@ocaml.doc"The domain name that's associated with the group. This parameter is optional, so you can return groups outside of your Managed Microsoft AD domain. When no value is defined, only your Managed Microsoft AD groups are returned. This value is case insensitive."];sAMAccountName:GroupName.t[@ocaml.doc"The name of the group."]}letcontext_="DescribeGroupRequest"letmake?otherAttributes=fun?realm->fun~directoryId->fun~sAMAccountName->fun()->{otherAttributes;realm;directoryId;sAMAccountName}letto_valuex=structure_to_value[("DirectoryId",(Some(DirectoryId.to_valuex.directoryId)));("OtherAttributes",(Option.mapx.otherAttributes~f:LdapDisplayNameList.to_value));("Realm",(Option.mapx.realm~f:Realm.to_value));("SAMAccountName",(Some(GroupName.to_valuex.sAMAccountName)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsAMAccountName=GroupName.of_xml(Xml.child_exn~context:context_xml_arg0"SAMAccountName")inletrealm=(Option.map~f:Realm.of_xml)(Xml.childxml_arg0"Realm")inletotherAttributes=(Option.map~f:LdapDisplayNameList.of_xml)(Xml.childxml_arg0"OtherAttributes")inletdirectoryId=DirectoryId.of_xml(Xml.child_exn~context:context_xml_arg0"DirectoryId")inmake~sAMAccountName?realm?otherAttributes~directoryId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsAMAccountName=field_map_exnjson__"SAMAccountName"GroupName.of_jsoninletrealm=field_mapjson__"Realm"Realm.of_jsoninletotherAttributes=field_mapjson__"OtherAttributes"LdapDisplayNameList.of_jsoninletdirectoryId=field_map_exnjson__"DirectoryId"DirectoryId.of_jsoninmake~sAMAccountName?realm?otherAttributes~directoryId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns information about a specific group."]moduleDeleteUserResult=structtypenonrect=unittypenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`DirectoryUnavailableExceptionofDirectoryUnavailableException.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)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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))]|`DirectoryUnavailableExceptione->`Assoc[("error",(`String"DirectoryUnavailableException"));("details",(DirectoryUnavailableException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a user."]moduleDeleteUserRequest=structtypenonrect={clientToken:ClientToken.toption[@ocaml.doc"A unique and case-sensitive identifier that you provide to make sure the idempotency of the request, so multiple identical calls have the same effect as one single call. A client token is valid for 8 hours after the first request that uses it completes. After 8 hours, any request with the same client token is treated as a new request. If the request succeeds, any future uses of that token will be idempotent for another 8 hours. If you submit a request with the same client token but change one of the other parameters within the 8-hour idempotency window, Directory Service Data returns an ConflictException. This parameter is optional when using the CLI or SDK."];directoryId:DirectoryId.t[@ocaml.doc"The identifier (ID) of the directory that's associated with the user."];sAMAccountName:UserName.t[@ocaml.doc"The name of the user."]}letcontext_="DeleteUserRequest"letmake?clientToken=fun~directoryId->fun~sAMAccountName->fun()->{clientToken;directoryId;sAMAccountName}letto_valuex=structure_to_value[("ClientToken",(Option.mapx.clientToken~f:ClientToken.to_value));("DirectoryId",(Some(DirectoryId.to_valuex.directoryId)));("SAMAccountName",(Some(UserName.to_valuex.sAMAccountName)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsAMAccountName=UserName.of_xml(Xml.child_exn~context:context_xml_arg0"SAMAccountName")inletdirectoryId=DirectoryId.of_xml(Xml.child_exn~context:context_xml_arg0"DirectoryId")inletclientToken=(Option.map~f:ClientToken.of_xml)(Xml.childxml_arg0"ClientToken")inmake~sAMAccountName~directoryId?clientToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsAMAccountName=field_map_exnjson__"SAMAccountName"UserName.of_jsoninletdirectoryId=field_map_exnjson__"DirectoryId"DirectoryId.of_jsoninletclientToken=field_mapjson__"ClientToken"ClientToken.of_jsoninmake~sAMAccountName~directoryId?clientToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a user."]moduleDeleteGroupResult=structtypenonrect=unittypenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`DirectoryUnavailableExceptionofDirectoryUnavailableException.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)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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))]|`DirectoryUnavailableExceptione->`Assoc[("error",(`String"DirectoryUnavailableException"));("details",(DirectoryUnavailableException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a group."]moduleDeleteGroupRequest=structtypenonrect={clientToken:ClientToken.toption[@ocaml.doc"A unique and case-sensitive identifier that you provide to make sure the idempotency of the request, so multiple identical calls have the same effect as one single call. A client token is valid for 8 hours after the first request that uses it completes. After 8 hours, any request with the same client token is treated as a new request. If the request succeeds, any future uses of that token will be idempotent for another 8 hours. If you submit a request with the same client token but change one of the other parameters within the 8-hour idempotency window, Directory Service Data returns an ConflictException. This parameter is optional when using the CLI or SDK."];directoryId:DirectoryId.t[@ocaml.doc"The identifier (ID) of the directory that's associated with the group."];sAMAccountName:GroupName.t[@ocaml.doc"The name of the group."]}letcontext_="DeleteGroupRequest"letmake?clientToken=fun~directoryId->fun~sAMAccountName->fun()->{clientToken;directoryId;sAMAccountName}letto_valuex=structure_to_value[("ClientToken",(Option.mapx.clientToken~f:ClientToken.to_value));("DirectoryId",(Some(DirectoryId.to_valuex.directoryId)));("SAMAccountName",(Some(GroupName.to_valuex.sAMAccountName)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsAMAccountName=GroupName.of_xml(Xml.child_exn~context:context_xml_arg0"SAMAccountName")inletdirectoryId=DirectoryId.of_xml(Xml.child_exn~context:context_xml_arg0"DirectoryId")inletclientToken=(Option.map~f:ClientToken.of_xml)(Xml.childxml_arg0"ClientToken")inmake~sAMAccountName~directoryId?clientToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsAMAccountName=field_map_exnjson__"SAMAccountName"GroupName.of_jsoninletdirectoryId=field_map_exnjson__"DirectoryId"DirectoryId.of_jsoninletclientToken=field_mapjson__"ClientToken"ClientToken.of_jsoninmake~sAMAccountName~directoryId?clientToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a group."]moduleCreateUserResult=structtypenonrect={directoryId:DirectoryId.toption[@ocaml.doc"The identifier (ID) of the directory where the address block is added."];sAMAccountName:UserName.toption[@ocaml.doc"The name of the user."];sID:SID.toption[@ocaml.doc"The unique security identifier (SID) of the user."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`DirectoryUnavailableExceptionofDirectoryUnavailableException.t|`InternalServerExceptionofInternalServerException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?directoryId=fun?sAMAccountName->fun?sID->fun()->{directoryId;sAMAccountName;sID}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`DirectoryUnavailableExceptione->`Assoc[("error",(`String"DirectoryUnavailableException"));("details",(DirectoryUnavailableException.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[("DirectoryId",(Option.mapx.directoryId~f:DirectoryId.to_value));("SAMAccountName",(Option.mapx.sAMAccountName~f:UserName.to_value));("SID",(Option.mapx.sID~f:SID.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsID=(Option.map~f:SID.of_xml)(Xml.childxml_arg0"SID")inletsAMAccountName=(Option.map~f:UserName.of_xml)(Xml.childxml_arg0"SAMAccountName")inletdirectoryId=(Option.map~f:DirectoryId.of_xml)(Xml.childxml_arg0"DirectoryId")inmake?sID?sAMAccountName?directoryId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsID=field_mapjson__"SID"SID.of_jsoninletsAMAccountName=field_mapjson__"SAMAccountName"UserName.of_jsoninletdirectoryId=field_mapjson__"DirectoryId"DirectoryId.of_jsoninmake?sID?sAMAccountName?directoryId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a new user."]moduleCreateUserRequest=structtypenonrect={clientToken:ClientToken.toption[@ocaml.doc"A unique and case-sensitive identifier that you provide to make sure the idempotency of the request, so multiple identical calls have the same effect as one single call. A client token is valid for 8 hours after the first request that uses it completes. After 8 hours, any request with the same client token is treated as a new request. If the request succeeds, any future uses of that token will be idempotent for another 8 hours. If you submit a request with the same client token but change one of the other parameters within the 8-hour idempotency window, Directory Service Data returns an ConflictException. This parameter is optional when using the CLI or SDK."];directoryId:DirectoryId.t[@ocaml.doc"The identifier (ID) of the directory that\226\128\153s associated with the user."];emailAddress:EmailAddress.toption[@ocaml.doc"The email address of the user."];givenName:GivenName.toption[@ocaml.doc"The first name of the user."];otherAttributes:Attributes.toption[@ocaml.doc"An expression that defines one or more attribute names with the data type and value of each attribute. A key is an attribute name, and the value is a list of maps. For a list of supported attributes, see Directory Service Data Attributes. Attribute names are case insensitive."];sAMAccountName:UserName.t[@ocaml.doc"The name of the user."];surname:Surname.toption[@ocaml.doc"The last name of the user."]}letcontext_="CreateUserRequest"letmake?clientToken=fun?emailAddress->fun?givenName->fun?otherAttributes->fun?surname->fun~directoryId->fun~sAMAccountName->fun()->{clientToken;emailAddress;givenName;otherAttributes;surname;directoryId;sAMAccountName}letto_valuex=structure_to_value[("ClientToken",(Option.mapx.clientToken~f:ClientToken.to_value));("DirectoryId",(Some(DirectoryId.to_valuex.directoryId)));("EmailAddress",(Option.mapx.emailAddress~f:EmailAddress.to_value));("GivenName",(Option.mapx.givenName~f:GivenName.to_value));("OtherAttributes",(Option.mapx.otherAttributes~f:Attributes.to_value));("SAMAccountName",(Some(UserName.to_valuex.sAMAccountName)));("Surname",(Option.mapx.surname~f:Surname.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsurname=(Option.map~f:Surname.of_xml)(Xml.childxml_arg0"Surname")inletsAMAccountName=UserName.of_xml(Xml.child_exn~context:context_xml_arg0"SAMAccountName")inletotherAttributes=(Option.map~f:Attributes.of_xml)(Xml.childxml_arg0"OtherAttributes")inletgivenName=(Option.map~f:GivenName.of_xml)(Xml.childxml_arg0"GivenName")inletemailAddress=(Option.map~f:EmailAddress.of_xml)(Xml.childxml_arg0"EmailAddress")inletdirectoryId=DirectoryId.of_xml(Xml.child_exn~context:context_xml_arg0"DirectoryId")inletclientToken=(Option.map~f:ClientToken.of_xml)(Xml.childxml_arg0"ClientToken")inmake?surname~sAMAccountName?otherAttributes?givenName?emailAddress~directoryId?clientToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsurname=field_mapjson__"Surname"Surname.of_jsoninletsAMAccountName=field_map_exnjson__"SAMAccountName"UserName.of_jsoninletotherAttributes=field_mapjson__"OtherAttributes"Attributes.of_jsoninletgivenName=field_mapjson__"GivenName"GivenName.of_jsoninletemailAddress=field_mapjson__"EmailAddress"EmailAddress.of_jsoninletdirectoryId=field_map_exnjson__"DirectoryId"DirectoryId.of_jsoninletclientToken=field_mapjson__"ClientToken"ClientToken.of_jsoninmake?surname~sAMAccountName?otherAttributes?givenName?emailAddress~directoryId?clientToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a new user."]moduleCreateGroupResult=structtypenonrect={directoryId:DirectoryId.toption[@ocaml.doc"The identifier (ID) of the directory that's associated with the group."];sAMAccountName:GroupName.toption[@ocaml.doc"The name of the group."];sID:SID.toption[@ocaml.doc"The unique security identifier (SID) of the group."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`DirectoryUnavailableExceptionofDirectoryUnavailableException.t|`InternalServerExceptionofInternalServerException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?directoryId=fun?sAMAccountName->fun?sID->fun()->{directoryId;sAMAccountName;sID}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`DirectoryUnavailableExceptione->`Assoc[("error",(`String"DirectoryUnavailableException"));("details",(DirectoryUnavailableException.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[("DirectoryId",(Option.mapx.directoryId~f:DirectoryId.to_value));("SAMAccountName",(Option.mapx.sAMAccountName~f:GroupName.to_value));("SID",(Option.mapx.sID~f:SID.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsID=(Option.map~f:SID.of_xml)(Xml.childxml_arg0"SID")inletsAMAccountName=(Option.map~f:GroupName.of_xml)(Xml.childxml_arg0"SAMAccountName")inletdirectoryId=(Option.map~f:DirectoryId.of_xml)(Xml.childxml_arg0"DirectoryId")inmake?sID?sAMAccountName?directoryId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsID=field_mapjson__"SID"SID.of_jsoninletsAMAccountName=field_mapjson__"SAMAccountName"GroupName.of_jsoninletdirectoryId=field_mapjson__"DirectoryId"DirectoryId.of_jsoninmake?sID?sAMAccountName?directoryId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a new group."]moduleCreateGroupRequest=structtypenonrect={clientToken:ClientToken.toption[@ocaml.doc"A unique and case-sensitive identifier that you provide to make sure the idempotency of the request, so multiple identical calls have the same effect as one single call. A client token is valid for 8 hours after the first request that uses it completes. After 8 hours, any request with the same client token is treated as a new request. If the request succeeds, any future uses of that token will be idempotent for another 8 hours. If you submit a request with the same client token but change one of the other parameters within the 8-hour idempotency window, Directory Service Data returns an ConflictException. This parameter is optional when using the CLI or SDK."];directoryId:DirectoryId.t[@ocaml.doc"The identifier (ID) of the directory that's associated with the group."];groupScope:GroupScope.toption[@ocaml.doc"The scope of the AD group. For details, see Active Directory security group scope."];groupType:GroupType.toption[@ocaml.doc"The AD group type. For details, see Active Directory security group type."];otherAttributes:Attributes.toption[@ocaml.doc"An expression that defines one or more attributes with the data type and value of each attribute."];sAMAccountName:GroupName.t[@ocaml.doc"The name of the group."]}letcontext_="CreateGroupRequest"letmake?clientToken=fun?groupScope->fun?groupType->fun?otherAttributes->fun~directoryId->fun~sAMAccountName->fun()->{clientToken;groupScope;groupType;otherAttributes;directoryId;sAMAccountName}letto_valuex=structure_to_value[("ClientToken",(Option.mapx.clientToken~f:ClientToken.to_value));("DirectoryId",(Some(DirectoryId.to_valuex.directoryId)));("GroupScope",(Option.mapx.groupScope~f:GroupScope.to_value));("GroupType",(Option.mapx.groupType~f:GroupType.to_value));("OtherAttributes",(Option.mapx.otherAttributes~f:Attributes.to_value));("SAMAccountName",(Some(GroupName.to_valuex.sAMAccountName)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letsAMAccountName=GroupName.of_xml(Xml.child_exn~context:context_xml_arg0"SAMAccountName")inletotherAttributes=(Option.map~f:Attributes.of_xml)(Xml.childxml_arg0"OtherAttributes")inletgroupType=(Option.map~f:GroupType.of_xml)(Xml.childxml_arg0"GroupType")inletgroupScope=(Option.map~f:GroupScope.of_xml)(Xml.childxml_arg0"GroupScope")inletdirectoryId=DirectoryId.of_xml(Xml.child_exn~context:context_xml_arg0"DirectoryId")inletclientToken=(Option.map~f:ClientToken.of_xml)(Xml.childxml_arg0"ClientToken")inmake~sAMAccountName?otherAttributes?groupType?groupScope~directoryId?clientToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letsAMAccountName=field_map_exnjson__"SAMAccountName"GroupName.of_jsoninletotherAttributes=field_mapjson__"OtherAttributes"Attributes.of_jsoninletgroupType=field_mapjson__"GroupType"GroupType.of_jsoninletgroupScope=field_mapjson__"GroupScope"GroupScope.of_jsoninletdirectoryId=field_map_exnjson__"DirectoryId"DirectoryId.of_jsoninletclientToken=field_mapjson__"ClientToken"ClientToken.of_jsoninmake~sAMAccountName?otherAttributes?groupType?groupScope~directoryId?clientToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Creates a new group."]moduleAddGroupMemberResult=structtypenonrect=unittypenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`ConflictExceptionofConflictException.t|`DirectoryUnavailableExceptionofDirectoryUnavailableException.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)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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)|"DirectoryUnavailableException"->`DirectoryUnavailableException(DirectoryUnavailableException.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))]|`DirectoryUnavailableExceptione->`Assoc[("error",(`String"DirectoryUnavailableException"));("details",(DirectoryUnavailableException.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"Adds an existing user, group, or computer as a group member."]moduleAddGroupMemberRequest=structtypenonrect={clientToken:ClientToken.toption[@ocaml.doc"A unique and case-sensitive identifier that you provide to make sure the idempotency of the request, so multiple identical calls have the same effect as one single call. A client token is valid for 8 hours after the first request that uses it completes. After 8 hours, any request with the same client token is treated as a new request. If the request succeeds, any future uses of that token will be idempotent for another 8 hours. If you submit a request with the same client token but change one of the other parameters within the 8-hour idempotency window, Directory Service Data returns an ConflictException. This parameter is optional when using the CLI or SDK."];directoryId:DirectoryId.t[@ocaml.doc"The identifier (ID) of the directory that's associated with the group."];groupName:GroupName.t[@ocaml.doc"The name of the group."];memberName:MemberName.t[@ocaml.doc"The SAMAccountName of the user, group, or computer to add as a group member."];memberRealm:Realm.toption[@ocaml.doc"The domain name that's associated with the group member. This parameter is required only when adding a member outside of your Managed Microsoft AD domain to a group inside of your Managed Microsoft AD domain. This parameter defaults to the Managed Microsoft AD domain. This parameter is case insensitive."]}letcontext_="AddGroupMemberRequest"letmake?clientToken=fun?memberRealm->fun~directoryId->fun~groupName->fun~memberName->fun()->{clientToken;memberRealm;directoryId;groupName;memberName}letto_valuex=structure_to_value[("ClientToken",(Option.mapx.clientToken~f:ClientToken.to_value));("DirectoryId",(Some(DirectoryId.to_valuex.directoryId)));("GroupName",(Some(GroupName.to_valuex.groupName)));("MemberName",(Some(MemberName.to_valuex.memberName)));("MemberRealm",(Option.mapx.memberRealm~f:Realm.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmemberRealm=(Option.map~f:Realm.of_xml)(Xml.childxml_arg0"MemberRealm")inletmemberName=MemberName.of_xml(Xml.child_exn~context:context_xml_arg0"MemberName")inletgroupName=GroupName.of_xml(Xml.child_exn~context:context_xml_arg0"GroupName")inletdirectoryId=DirectoryId.of_xml(Xml.child_exn~context:context_xml_arg0"DirectoryId")inletclientToken=(Option.map~f:ClientToken.of_xml)(Xml.childxml_arg0"ClientToken")inmake?memberRealm~memberName~groupName~directoryId?clientToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmemberRealm=field_mapjson__"MemberRealm"Realm.of_jsoninletmemberName=field_map_exnjson__"MemberName"MemberName.of_jsoninletgroupName=field_map_exnjson__"GroupName"GroupName.of_jsoninletdirectoryId=field_map_exnjson__"DirectoryId"DirectoryId.of_jsoninletclientToken=field_mapjson__"ClientToken"ClientToken.of_jsoninmake?memberRealm~memberName~groupName~directoryId?clientToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Adds an existing user, group, or computer as a group member."]