123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811(* 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.controlcatalogletapiVersion="2018-05-10"letendpointPrefix="controlcatalog"letserviceFullName="AWS Control Catalog"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[]))])moduleCommonControlArn=structtypenonrect=stringletcontext_="CommonControlArn"letmakei=letopenResultinok_or_failwith((check_string_mini~min:41)>>=(fun()->(check_string_maxi~max:2048)>>=(fun()->check_patterni~pattern:"arn:(aws(?:[-a-z]*)?):controlcatalog:::common-control/[0-9a-z]+")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"CommonControlArn"jletto_json=simple_to_jsonto_valueendmoduleFrameworkItem=structtypenonrect=stringletcontext_="FrameworkItem"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:250)>>=(fun()->check_string_mini~min:3));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"FrameworkItem"jletto_json=simple_to_jsonto_valueendmoduleFrameworkName=structtypenonrect=stringletcontext_="FrameworkName"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:250)>>=(fun()->check_string_mini~min:3));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"FrameworkName"jletto_json=simple_to_jsonto_valueendmoduleControlArn=structtypenonrect=stringletcontext_="ControlArn"letmakei=letopenResultinok_or_failwith((check_string_mini~min:34)>>=(fun()->(check_string_maxi~max:2048)>>=(fun()->check_patterni~pattern:"arn:(aws(?:[-a-z]*)?):(controlcatalog|controltower):[a-zA-Z0-9-]*::control/[0-9a-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:"ControlArn"jletto_json=simple_to_jsonto_valueendmoduleControlRelationType=structtypenonrect=|COMPLEMENTARY|ALTERNATIVE|MUTUALLY_EXCLUSIVE|Non_static_idofstringletmakei=iletto_string=function|COMPLEMENTARY->"COMPLEMENTARY"|ALTERNATIVE->"ALTERNATIVE"|MUTUALLY_EXCLUSIVE->"MUTUALLY_EXCLUSIVE"|Non_static_ids->sletof_string=function|"COMPLEMENTARY"->COMPLEMENTARY|"ALTERNATIVE"->ALTERNATIVE|"MUTUALLY_EXCLUSIVE"->MUTUALLY_EXCLUSIVE|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 ControlRelationType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ControlRelationType"j)letto_json=simple_to_jsonto_valueendmoduleDomainArn=structtypenonrect=stringletcontext_="DomainArn"letmakei=letopenResultinok_or_failwith((check_string_mini~min:33)>>=(fun()->(check_string_maxi~max:2048)>>=(fun()->check_patterni~pattern:"arn:(aws(?:[-a-z]*)?):controlcatalog:::domain/[0-9a-z]+")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"DomainArn"jletto_json=simple_to_jsonto_valueendmoduleString_=structtypenonrect=stringletcontext_="String"letmakei=iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"String"jletto_json=simple_to_jsonto_valueendmoduleControlAlias=structtypenonrect=stringletcontext_="ControlAlias"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"[a-zA-Z0-9](?:[a-zA-Z0-9_.-]{0,254}[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:"ControlAlias"jletto_json=simple_to_jsonto_valueendmoduleGovernedResource=structtypenonrect=stringletcontext_="GovernedResource"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"GovernedResource"jletto_json=simple_to_jsonto_valueendmoduleImplementationIdentifier=structtypenonrect=stringletcontext_="ImplementationIdentifier"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:256)>>=(fun()->check_patterni~pattern:"[a-zA-Z0-9_\\.-]+")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ImplementationIdentifier"jletto_json=simple_to_jsonto_valueendmoduleImplementationType=structtypenonrect=stringletcontext_="ImplementationType"letmakei=letopenResultinok_or_failwith((check_string_mini~min:7)>>=(fun()->(check_string_maxi~max:2048)>>=(fun()->check_patterni~pattern:"[A-Za-z0-9]+(::[A-Za-z0-9_]+){2,3}")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ImplementationType"jletto_json=simple_to_jsonto_valueendmoduleCommonControlMappingDetails=structtypenonrect={commonControlArn:CommonControlArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) that identifies the common control in the mapping."]}letmake?commonControlArn=fun()->{commonControlArn}letto_valuex=structure_to_value[("CommonControlArn",(Option.mapx.commonControlArn~f:CommonControlArn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcommonControlArn=(Option.map~f:CommonControlArn.of_xml)(Xml.childxml_arg0"CommonControlArn")inmake?commonControlArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcommonControlArn=field_mapjson__"CommonControlArn"CommonControlArn.of_jsoninmake?commonControlArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A structure that contains details about a common control mapping. In particular, it returns the Amazon Resource Name (ARN) of the common control."]moduleFrameworkMappingDetails=structtypenonrect={name:FrameworkName.toption[@ocaml.doc"The name of the compliance framework that the control maps to."];item:FrameworkItem.toption[@ocaml.doc"The specific item or requirement within the framework that the control maps to."]}letmake?name=fun?item->fun()->{name;item}letto_valuex=structure_to_value[("Name",(Option.mapx.name~f:FrameworkName.to_value));("Item",(Option.mapx.item~f:FrameworkItem.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letitem=(Option.map~f:FrameworkItem.of_xml)(Xml.childxml_arg0"Item")inletname=(Option.map~f:FrameworkName.of_xml)(Xml.childxml_arg0"Name")inmake?item?name()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letitem=field_mapjson__"Item"FrameworkItem.of_jsoninletname=field_mapjson__"Name"FrameworkName.of_jsoninmake?item?name()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A structure that contains details about a framework mapping, including the framework name and specific item within the framework that the control maps to."]moduleRelatedControlMappingDetails=structtypenonrect={controlArn:ControlArn.toption[@ocaml.doc"The unique identifier of a control."];relationType:ControlRelationType.toption[@ocaml.doc"Returns an enumerated value that represents the relationship between two or more controls."]}letmake?controlArn=fun?relationType->fun()->{controlArn;relationType}letto_valuex=structure_to_value[("ControlArn",(Option.mapx.controlArn~f:ControlArn.to_value));("RelationType",(Option.mapx.relationType~f:ControlRelationType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letrelationType=(Option.map~f:ControlRelationType.of_xml)(Xml.childxml_arg0"RelationType")inletcontrolArn=(Option.map~f:ControlArn.of_xml)(Xml.childxml_arg0"ControlArn")inmake?relationType?controlArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letrelationType=field_mapjson__"RelationType"ControlRelationType.of_jsoninletcontrolArn=field_mapjson__"ControlArn"ControlArn.of_jsoninmake?relationType?controlArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A structure that describes a control's relationship status with other controls."]moduleObjectiveArn=structtypenonrect=stringletcontext_="ObjectiveArn"letmakei=letopenResultinok_or_failwith((check_string_mini~min:36)>>=(fun()->(check_string_maxi~max:2048)>>=(fun()->check_patterni~pattern:"arn:(aws(?:[-a-z]*)?):controlcatalog:::objective/[0-9a-z]+")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ObjectiveArn"jletto_json=simple_to_jsonto_valueendmoduleAssociatedDomainSummary=structtypenonrect={arn:DomainArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the related domain."];name:String_.toption[@ocaml.doc"The name of the related domain."]}letmake?arn=fun?name->fun()->{arn;name}letto_valuex=structure_to_value[("Arn",(Option.mapx.arn~f:DomainArn.to_value));("Name",(Option.mapx.name~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letname=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Name")inletarn=(Option.map~f:DomainArn.of_xml)(Xml.childxml_arg0"Arn")inmake?name?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letname=field_mapjson__"Name"String_.of_jsoninletarn=field_mapjson__"Arn"DomainArn.of_jsoninmake?name?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A summary of the domain that a common control or an objective belongs to."]moduleTimestamp=structtypenonrect=stringletmakei=iletof_stringx=xletto_valuex=`Timestampxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=string_of_xml~kind:"a timestamp"letof_json=timestamp_of_jsonletto_json=simple_to_jsonto_valueendmoduleDomainResourceFilter=structtypenonrect={arn:DomainArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the domain."]}letmake?arn=fun()->{arn}letto_valuex=structure_to_value[("Arn",(Option.mapx.arn~f:DomainArn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letarn=(Option.map~f:DomainArn.of_xml)(Xml.childxml_arg0"Arn")inmake?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letarn=field_mapjson__"Arn"DomainArn.of_jsoninmake?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The domain resource that's being used as a filter."]moduleControlAliases=structtypenonrect=ControlAlias.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ControlAlias.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:ControlAlias.of_xml)letof_jsonj=list_of_json~kind:"ControlAliases"~of_json:ControlAlias.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleControlBehavior=structtypenonrect=|PREVENTIVE|PROACTIVE|DETECTIVE|Non_static_idofstringletmakei=iletto_string=function|PREVENTIVE->"PREVENTIVE"|PROACTIVE->"PROACTIVE"|DETECTIVE->"DETECTIVE"|Non_static_ids->sletof_string=function|"PREVENTIVE"->PREVENTIVE|"PROACTIVE"->PROACTIVE|"DETECTIVE"->DETECTIVE|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 ControlBehavior"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ControlBehavior"j)letto_json=simple_to_jsonto_valueendmoduleControlSeverity=structtypenonrect=|LOW|MEDIUM|HIGH|CRITICAL|Non_static_idofstringletmakei=iletto_string=function|LOW->"LOW"|MEDIUM->"MEDIUM"|HIGH->"HIGH"|CRITICAL->"CRITICAL"|Non_static_ids->sletof_string=function|"LOW"->LOW|"MEDIUM"->MEDIUM|"HIGH"->HIGH|"CRITICAL"->CRITICAL|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 ControlSeverity"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ControlSeverity"j)letto_json=simple_to_jsonto_valueendmoduleGovernedResources=structtypenonrect=GovernedResource.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:GovernedResource.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:GovernedResource.of_xml)letof_jsonj=list_of_json~kind:"GovernedResources"~of_json:GovernedResource.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleImplementationSummary=structtypenonrect={type_:ImplementationType.toption[@ocaml.doc"A string that represents the Amazon Web Services service that implements this control. For example, a value of AWS::Config::ConfigRule indicates that the control is implemented by Amazon Web Services Config, and AWS::SecurityHub::SecurityControl indicates implementation by Amazon Web Services Security Hub."];identifier:ImplementationIdentifier.toption[@ocaml.doc"The identifier originally assigned by the Amazon Web Services service that implements the control. For example, CODEPIPELINE_DEPLOYMENT_COUNT_CHECK."]}letmake?type_=fun?identifier->fun()->{type_;identifier}letto_valuex=structure_to_value[("Type",(Option.mapx.type_~f:ImplementationType.to_value));("Identifier",(Option.mapx.identifier~f:ImplementationIdentifier.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letidentifier=(Option.map~f:ImplementationIdentifier.of_xml)(Xml.childxml_arg0"Identifier")inlettype_=(Option.map~f:ImplementationType.of_xml)(Xml.childxml_arg0"Type")inmake?identifier?type_()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letidentifier=field_mapjson__"Identifier"ImplementationIdentifier.of_jsoninlettype_=field_mapjson__"Type"ImplementationType.of_jsoninmake?identifier?type_()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A summary of how the control is implemented, including the Amazon Web Services service that enforces the control and its service-specific identifier. For example, the value of this field could indicate that the control is implemented as an Amazon Web Services Config Rule or an Amazon Web Services Security Hub control."]moduleImplementationIdentifierFilterList=structtypenonrect=ImplementationIdentifier.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:1)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ImplementationIdentifier.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:ImplementationIdentifier.of_xml)letof_jsonj=list_of_json~kind:"ImplementationIdentifierFilterList"~of_json:ImplementationIdentifier.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleImplementationTypeFilterList=structtypenonrect=ImplementationType.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:1)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ImplementationType.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:ImplementationType.of_xml)letof_jsonj=list_of_json~kind:"ImplementationTypeFilterList"~of_json:ImplementationType.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleMapping=structtypenonrect={framework:FrameworkMappingDetails.toption[@ocaml.doc"The framework mapping details when the mapping type relates to a compliance framework."];commonControl:CommonControlMappingDetails.toption[@ocaml.doc"The common control mapping details when the mapping type relates to a common control."];relatedControl:RelatedControlMappingDetails.toption[@ocaml.doc"Returns information about controls that are related to the specified control."]}letmake?framework=fun?commonControl->fun?relatedControl->fun()->{framework;commonControl;relatedControl}letto_valuex=structure_to_value[("Framework",(Option.mapx.framework~f:FrameworkMappingDetails.to_value));("CommonControl",(Option.mapx.commonControl~f:CommonControlMappingDetails.to_value));("RelatedControl",(Option.mapx.relatedControl~f:RelatedControlMappingDetails.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letrelatedControl=(Option.map~f:RelatedControlMappingDetails.of_xml)(Xml.childxml_arg0"RelatedControl")inletcommonControl=(Option.map~f:CommonControlMappingDetails.of_xml)(Xml.childxml_arg0"CommonControl")inletframework=(Option.map~f:FrameworkMappingDetails.of_xml)(Xml.childxml_arg0"Framework")inmake?relatedControl?commonControl?framework()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letrelatedControl=field_mapjson__"RelatedControl"RelatedControlMappingDetails.of_jsoninletcommonControl=field_mapjson__"CommonControl"CommonControlMappingDetails.of_jsoninletframework=field_mapjson__"Framework"FrameworkMappingDetails.of_jsoninmake?relatedControl?commonControl?framework()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A structure that contains the details of a mapping relationship, which can be either to a framework or to a common control."]moduleMappingType=structtypenonrect=|FRAMEWORK|COMMON_CONTROL|RELATED_CONTROL|Non_static_idofstringletmakei=iletto_string=function|FRAMEWORK->"FRAMEWORK"|COMMON_CONTROL->"COMMON_CONTROL"|RELATED_CONTROL->"RELATED_CONTROL"|Non_static_ids->sletof_string=function|"FRAMEWORK"->FRAMEWORK|"COMMON_CONTROL"->COMMON_CONTROL|"RELATED_CONTROL"->RELATED_CONTROL|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration MappingType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"MappingType"j)letto_json=simple_to_jsonto_valueendmoduleAssociatedObjectiveSummary=structtypenonrect={arn:ObjectiveArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the related objective."];name:String_.toption[@ocaml.doc"The name of the related objective."]}letmake?arn=fun?name->fun()->{arn;name}letto_valuex=structure_to_value[("Arn",(Option.mapx.arn~f:ObjectiveArn.to_value));("Name",(Option.mapx.name~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letname=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Name")inletarn=(Option.map~f:ObjectiveArn.of_xml)(Xml.childxml_arg0"Arn")inmake?name?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letname=field_mapjson__"Name"String_.of_jsoninletarn=field_mapjson__"Arn"ObjectiveArn.of_jsoninmake?name?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A summary of the objective that a common control supports."]moduleObjectiveResourceFilter=structtypenonrect={arn:ObjectiveArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the objective."]}letmake?arn=fun()->{arn}letto_valuex=structure_to_value[("Arn",(Option.mapx.arn~f:ObjectiveArn.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letarn=(Option.map~f:ObjectiveArn.of_xml)(Xml.childxml_arg0"Arn")inmake?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letarn=field_mapjson__"Arn"ObjectiveArn.of_jsoninmake?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The objective resource that's being used as a filter."]moduleRegionCode=structtypenonrect=stringletcontext_="RegionCode"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"[a-zA-Z0-9-]{1,128}");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"RegionCode"jletto_json=simple_to_jsonto_valueendmoduleObjectiveSummary=structtypenonrect={arn:ObjectiveArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) that identifies the objective."];name:String_.toption[@ocaml.doc"The name of the objective."];description:String_.toption[@ocaml.doc"The description of the objective."];domain:AssociatedDomainSummary.toption[@ocaml.doc"The domain that the objective belongs to."];createTime:Timestamp.toption[@ocaml.doc"The time when the objective was created."];lastUpdateTime:Timestamp.toption[@ocaml.doc"The time when the objective was most recently updated."]}letmake?arn=fun?name->fun?description->fun?domain->fun?createTime->fun?lastUpdateTime->fun()->{arn;name;description;domain;createTime;lastUpdateTime}letto_valuex=structure_to_value[("Arn",(Option.mapx.arn~f:ObjectiveArn.to_value));("Name",(Option.mapx.name~f:String_.to_value));("Description",(Option.mapx.description~f:String_.to_value));("Domain",(Option.mapx.domain~f:AssociatedDomainSummary.to_value));("CreateTime",(Option.mapx.createTime~f:Timestamp.to_value));("LastUpdateTime",(Option.mapx.lastUpdateTime~f:Timestamp.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlastUpdateTime=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"LastUpdateTime")inletcreateTime=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"CreateTime")inletdomain=(Option.map~f:AssociatedDomainSummary.of_xml)(Xml.childxml_arg0"Domain")inletdescription=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Description")inletname=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Name")inletarn=(Option.map~f:ObjectiveArn.of_xml)(Xml.childxml_arg0"Arn")inmake?lastUpdateTime?createTime?domain?description?name?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlastUpdateTime=field_mapjson__"LastUpdateTime"Timestamp.of_jsoninletcreateTime=field_mapjson__"CreateTime"Timestamp.of_jsoninletdomain=field_mapjson__"Domain"AssociatedDomainSummary.of_jsoninletdescription=field_mapjson__"Description"String_.of_jsoninletname=field_mapjson__"Name"String_.of_jsoninletarn=field_mapjson__"Arn"ObjectiveArn.of_jsoninmake?lastUpdateTime?createTime?domain?description?name?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A summary of metadata for an objective."]moduleDomainResourceFilterList=structtypenonrect=DomainResourceFilter.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:DomainResourceFilter.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:DomainResourceFilter.of_xml)letof_jsonj=list_of_json~kind:"DomainResourceFilterList"~of_json:DomainResourceFilter.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleDomainSummary=structtypenonrect={arn:DomainArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) that identifies the domain."];name:String_.toption[@ocaml.doc"The name of the domain."];description:String_.toption[@ocaml.doc"The description of the domain."];createTime:Timestamp.toption[@ocaml.doc"The time when the domain was created."];lastUpdateTime:Timestamp.toption[@ocaml.doc"The time when the domain was most recently updated."]}letmake?arn=fun?name->fun?description->fun?createTime->fun?lastUpdateTime->fun()->{arn;name;description;createTime;lastUpdateTime}letto_valuex=structure_to_value[("Arn",(Option.mapx.arn~f:DomainArn.to_value));("Name",(Option.mapx.name~f:String_.to_value));("Description",(Option.mapx.description~f:String_.to_value));("CreateTime",(Option.mapx.createTime~f:Timestamp.to_value));("LastUpdateTime",(Option.mapx.lastUpdateTime~f:Timestamp.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlastUpdateTime=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"LastUpdateTime")inletcreateTime=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"CreateTime")inletdescription=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Description")inletname=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Name")inletarn=(Option.map~f:DomainArn.of_xml)(Xml.childxml_arg0"Arn")inmake?lastUpdateTime?createTime?description?name?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlastUpdateTime=field_mapjson__"LastUpdateTime"Timestamp.of_jsoninletcreateTime=field_mapjson__"CreateTime"Timestamp.of_jsoninletdescription=field_mapjson__"Description"String_.of_jsoninletname=field_mapjson__"Name"String_.of_jsoninletarn=field_mapjson__"Arn"DomainArn.of_jsoninmake?lastUpdateTime?createTime?description?name?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A summary of metadata for a domain."]moduleControlSummary=structtypenonrect={arn:ControlArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the control."];aliases:ControlAliases.toption[@ocaml.doc"A list of alternative identifiers for the control. These are human-readable designators, such as SH.S3.1. Several aliases can refer to the same control across different Amazon Web Services services or compliance frameworks."];name:String_.toption[@ocaml.doc"The display name of the control."];description:String_.toption[@ocaml.doc"A description of the control, as it may appear in the console. Describes the functionality of the control."];behavior:ControlBehavior.toption[@ocaml.doc"An enumerated type, with the following possible values:"];severity:ControlSeverity.toption[@ocaml.doc"An enumerated type, with the following possible values:"];implementation:ImplementationSummary.toption[@ocaml.doc"An object of type ImplementationSummary that describes how the control is implemented."];createTime:Timestamp.toption[@ocaml.doc"A timestamp that notes the time when the control was released (start of its life) as a governance capability in Amazon Web Services."];governedResources:GovernedResources.toption[@ocaml.doc"A list of Amazon Web Services resource types that are governed by this control. This information helps you understand which controls can govern certain types of resources, and conversely, which resources are affected when the control is implemented. The resources are represented as Amazon Web Services CloudFormation resource types. If GovernedResources cannot be represented by available CloudFormation resource types, it\226\128\153s returned as an empty list."]}letmake?arn=fun?aliases->fun?name->fun?description->fun?behavior->fun?severity->fun?implementation->fun?createTime->fun?governedResources->fun()->{arn;aliases;name;description;behavior;severity;implementation;createTime;governedResources}letto_valuex=structure_to_value[("Arn",(Option.mapx.arn~f:ControlArn.to_value));("Aliases",(Option.mapx.aliases~f:ControlAliases.to_value));("Name",(Option.mapx.name~f:String_.to_value));("Description",(Option.mapx.description~f:String_.to_value));("Behavior",(Option.mapx.behavior~f:ControlBehavior.to_value));("Severity",(Option.mapx.severity~f:ControlSeverity.to_value));("Implementation",(Option.mapx.implementation~f:ImplementationSummary.to_value));("CreateTime",(Option.mapx.createTime~f:Timestamp.to_value));("GovernedResources",(Option.mapx.governedResources~f:GovernedResources.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgovernedResources=(Option.map~f:GovernedResources.of_xml)(Xml.childxml_arg0"GovernedResources")inletcreateTime=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"CreateTime")inletimplementation=(Option.map~f:ImplementationSummary.of_xml)(Xml.childxml_arg0"Implementation")inletseverity=(Option.map~f:ControlSeverity.of_xml)(Xml.childxml_arg0"Severity")inletbehavior=(Option.map~f:ControlBehavior.of_xml)(Xml.childxml_arg0"Behavior")inletdescription=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Description")inletname=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Name")inletaliases=(Option.map~f:ControlAliases.of_xml)(Xml.childxml_arg0"Aliases")inletarn=(Option.map~f:ControlArn.of_xml)(Xml.childxml_arg0"Arn")inmake?governedResources?createTime?implementation?severity?behavior?description?name?aliases?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgovernedResources=field_mapjson__"GovernedResources"GovernedResources.of_jsoninletcreateTime=field_mapjson__"CreateTime"Timestamp.of_jsoninletimplementation=field_mapjson__"Implementation"ImplementationSummary.of_jsoninletseverity=field_mapjson__"Severity"ControlSeverity.of_jsoninletbehavior=field_mapjson__"Behavior"ControlBehavior.of_jsoninletdescription=field_mapjson__"Description"String_.of_jsoninletname=field_mapjson__"Name"String_.of_jsoninletaliases=field_mapjson__"Aliases"ControlAliases.of_jsoninletarn=field_mapjson__"Arn"ControlArn.of_jsoninmake?governedResources?createTime?implementation?severity?behavior?description?name?aliases?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Overview of information about a control."]moduleImplementationFilter=structtypenonrect={types:ImplementationTypeFilterList.toption[@ocaml.doc"A list of implementation types that can serve as filters. For example, you can filter for controls implemented as Amazon Web Services Config Rules by specifying AWS::Config::ConfigRule as a type."];identifiers:ImplementationIdentifierFilterList.toption[@ocaml.doc"A list of service-specific identifiers that can serve as filters. For example, you can filter for controls with specific Amazon Web Services Config Rule IDs or Security Hub Control IDs."]}letmake?types=fun?identifiers->fun()->{types;identifiers}letto_valuex=structure_to_value[("Types",(Option.mapx.types~f:ImplementationTypeFilterList.to_value));("Identifiers",(Option.mapx.identifiers~f:ImplementationIdentifierFilterList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letidentifiers=(Option.map~f:ImplementationIdentifierFilterList.of_xml)(Xml.childxml_arg0"Identifiers")inlettypes=(Option.map~f:ImplementationTypeFilterList.of_xml)(Xml.childxml_arg0"Types")inmake?identifiers?types()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letidentifiers=field_mapjson__"Identifiers"ImplementationIdentifierFilterList.of_jsoninlettypes=field_mapjson__"Types"ImplementationTypeFilterList.of_jsoninmake?identifiers?types()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A structure that defines filtering criteria for control implementations. You can use this filter to find controls that are implemented by specific Amazon Web Services services or with specific service identifiers."]moduleControlMapping=structtypenonrect={controlArn:ControlArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) that identifies the control in the mapping."];mappingType:MappingType.toption[@ocaml.doc"The type of mapping relationship between the control and other entities."];mapping:Mapping.toption[@ocaml.doc"The details of the mapping relationship, for example, containing framework, common control, or related control information."]}letmake?controlArn=fun?mappingType->fun?mapping->fun()->{controlArn;mappingType;mapping}letto_valuex=structure_to_value[("ControlArn",(Option.mapx.controlArn~f:ControlArn.to_value));("MappingType",(Option.mapx.mappingType~f:MappingType.to_value));("Mapping",(Option.mapx.mapping~f:Mapping.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmapping=(Option.map~f:Mapping.of_xml)(Xml.childxml_arg0"Mapping")inletmappingType=(Option.map~f:MappingType.of_xml)(Xml.childxml_arg0"MappingType")inletcontrolArn=(Option.map~f:ControlArn.of_xml)(Xml.childxml_arg0"ControlArn")inmake?mapping?mappingType?controlArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmapping=field_mapjson__"Mapping"Mapping.of_jsoninletmappingType=field_mapjson__"MappingType"MappingType.of_jsoninletcontrolArn=field_mapjson__"ControlArn"ControlArn.of_jsoninmake?mapping?mappingType?controlArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A structure that contains information about a control mapping, including the control ARN, mapping type, and mapping details."]moduleCommonControlArnFilterList=structtypenonrect=CommonControlArn.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:1)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:CommonControlArn.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:CommonControlArn.of_xml)letof_jsonj=list_of_json~kind:"CommonControlArnFilterList"~of_json:CommonControlArn.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleControlArnFilterList=structtypenonrect=ControlArn.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:1)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ControlArn.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:ControlArn.of_xml)letof_jsonj=list_of_json~kind:"ControlArnFilterList"~of_json:ControlArn.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleMappingTypeFilterList=structtypenonrect=MappingType.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:1)>>=(fun()->check_list_mini~min:1));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:MappingType.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:MappingType.of_xml)letof_jsonj=list_of_json~kind:"MappingTypeFilterList"~of_json:MappingType.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleCommonControlSummary=structtypenonrect={arn:CommonControlArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) that identifies the common control."];name:String_.toption[@ocaml.doc"The name of the common control."];description:String_.toption[@ocaml.doc"The description of the common control."];domain:AssociatedDomainSummary.toption[@ocaml.doc"The domain that the common control belongs to."];objective:AssociatedObjectiveSummary.toption[@ocaml.doc"The objective that the common control belongs to."];createTime:Timestamp.toption[@ocaml.doc"The time when the common control was created."];lastUpdateTime:Timestamp.toption[@ocaml.doc"The time when the common control was most recently updated."]}letmake?arn=fun?name->fun?description->fun?domain->fun?objective->fun?createTime->fun?lastUpdateTime->fun()->{arn;name;description;domain;objective;createTime;lastUpdateTime}letto_valuex=structure_to_value[("Arn",(Option.mapx.arn~f:CommonControlArn.to_value));("Name",(Option.mapx.name~f:String_.to_value));("Description",(Option.mapx.description~f:String_.to_value));("Domain",(Option.mapx.domain~f:AssociatedDomainSummary.to_value));("Objective",(Option.mapx.objective~f:AssociatedObjectiveSummary.to_value));("CreateTime",(Option.mapx.createTime~f:Timestamp.to_value));("LastUpdateTime",(Option.mapx.lastUpdateTime~f:Timestamp.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlastUpdateTime=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"LastUpdateTime")inletcreateTime=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"CreateTime")inletobjective=(Option.map~f:AssociatedObjectiveSummary.of_xml)(Xml.childxml_arg0"Objective")inletdomain=(Option.map~f:AssociatedDomainSummary.of_xml)(Xml.childxml_arg0"Domain")inletdescription=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Description")inletname=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Name")inletarn=(Option.map~f:CommonControlArn.of_xml)(Xml.childxml_arg0"Arn")inmake?lastUpdateTime?createTime?objective?domain?description?name?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlastUpdateTime=field_mapjson__"LastUpdateTime"Timestamp.of_jsoninletcreateTime=field_mapjson__"CreateTime"Timestamp.of_jsoninletobjective=field_mapjson__"Objective"AssociatedObjectiveSummary.of_jsoninletdomain=field_mapjson__"Domain"AssociatedDomainSummary.of_jsoninletdescription=field_mapjson__"Description"String_.of_jsoninletname=field_mapjson__"Name"String_.of_jsoninletarn=field_mapjson__"Arn"CommonControlArn.of_jsoninmake?lastUpdateTime?createTime?objective?domain?description?name?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A summary of metadata for a common control."]moduleObjectiveResourceFilterList=structtypenonrect=ObjectiveResourceFilter.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ObjectiveResourceFilter.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:ObjectiveResourceFilter.of_xml)letof_jsonj=list_of_json~kind:"ObjectiveResourceFilterList"~of_json:ObjectiveResourceFilter.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleControlParameter=structtypenonrect={name:String_.toption[@ocaml.doc"The parameter name. This name is the parameter key when you call EnableControl or UpdateEnabledControl ."]}letmake?name=fun()->{name}letto_valuex=structure_to_value[("Name",(Option.mapx.name~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letname=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Name")inmake?name()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letname=field_mapjson__"Name"String_.of_jsoninmake?name()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Five types of control parameters are supported. AllowedRegions: List of Amazon Web Services Regions exempted from the control. Each string is expected to be an Amazon Web Services Region code. This parameter is mandatory for the OU Region deny control, CT.MULTISERVICE.PV.1. Example: \\[\"us-east-1\",\"us-west-2\"\\] ExemptedActions: List of Amazon Web Services IAM actions exempted from the control. Each string is expected to be an IAM action. Example: \\[\"logs:DescribeLogGroups\",\"logs:StartQuery\",\"logs:GetQueryResults\"\\] ExemptedPrincipalArns: List of Amazon Web Services IAM principal ARNs exempted from the control. Each string is expected to be an IAM principal that follows the format arn:partition:service::account:resource Example: \\[\"arn:aws:iam::*:role/ReadOnly\",\"arn:aws:sts::*:assumed-role/ReadOnly/*\"\\] ExemptedResourceArns: List of resource ARNs exempted from the control. Each string is expected to be a resource ARN. Example: \\[\"arn:aws:s3:::my-bucket-name\"\\] ExemptAssumeRoot: A parameter that lets you choose whether to exempt requests made with AssumeRoot from this control, for this OU. For member accounts, the AssumeRoot property is included in requests initiated by IAM centralized root access. This parameter applies only to the AWS-GR_RESTRICT_ROOT_USER control. If you add the parameter when enabling the control, the AssumeRoot exemption is allowed. If you omit the parameter, the AssumeRoot exception is not permitted. The parameter does not accept False as a value. Example: Enabling the control and allowing AssumeRoot \\{ \"controlIdentifier\": \"arn:aws:controlcatalog:::control/5kvme4m5d2b4d7if2fs5yg2ui\", \"parameters\": \\[ \\{ \"key\": \"ExemptAssumeRoot\", \"value\": true \\} \\], \"targetIdentifier\": \"arn:aws:organizations::8633900XXXXX:ou/o-6jmn81636m/ou-qsah-jtiihcla\" \\}"]moduleControlScope=structtypenonrect=|GLOBAL|REGIONAL|Non_static_idofstringletmakei=iletto_string=function|GLOBAL->"GLOBAL"|REGIONAL->"REGIONAL"|Non_static_ids->sletof_string=function|"GLOBAL"->GLOBAL|"REGIONAL"->REGIONAL|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 ControlScope"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ControlScope"j)letto_json=simple_to_jsonto_valueendmoduleDeployableRegions=structtypenonrect=RegionCode.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:RegionCode.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:RegionCode.of_xml)letof_jsonj=list_of_json~kind:"DeployableRegions"~of_json:RegionCode.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAccessDeniedException=structtypenonrect={message:String_.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("Message",(Option.mapx.message~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"Message"String_.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"You do not have sufficient access to perform this action."]moduleInternalServerException=structtypenonrect={message:String_.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("Message",(Option.mapx.message~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"Message"String_.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"An internal service error occurred during the processing of your request. Try again later."]moduleObjectiveSummaryList=structtypenonrect=ObjectiveSummary.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ObjectiveSummary.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:ObjectiveSummary.of_xml)letof_jsonj=list_of_json~kind:"ObjectiveSummaryList"~of_json:ObjectiveSummary.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmodulePaginationToken=structtypenonrect=stringletcontext_="PaginationToken"letmakei=letopenResultinok_or_failwith((check_string_maxi~max:1024)>>=(fun()->check_string_mini~min:0));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"PaginationToken"jletto_json=simple_to_jsonto_valueendmoduleThrottlingException=structtypenonrect={message:String_.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("Message",(Option.mapx.message~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"Message"String_.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The request was denied due to request throttling."]moduleValidationException=structtypenonrect={message:String_.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("Message",(Option.mapx.message~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"Message"String_.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The request has invalid or missing parameters."]moduleMaxListObjectivesResults=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:100)>>=(fun()->check_int_mini~min:1));iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for MaxListObjectivesResults"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleObjectiveFilter=structtypenonrect={domains:DomainResourceFilterList.toption[@ocaml.doc"The domain that's used as filter criteria. You can use this parameter to specify one domain ARN at a time. Passing multiple ARNs in the ObjectiveFilter isn\226\128\153t supported."]}letmake?domains=fun()->{domains}letto_valuex=structure_to_value[("Domains",(Option.mapx.domains~f:DomainResourceFilterList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letdomains=(Option.map~f:DomainResourceFilterList.of_xml)(Xml.childxml_arg0"Domains")inmake?domains()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letdomains=field_mapjson__"Domains"DomainResourceFilterList.of_jsoninmake?domains()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"An optional filter that narrows the list of objectives to a specific domain."]moduleDomainSummaryList=structtypenonrect=DomainSummary.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:DomainSummary.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:DomainSummary.of_xml)letof_jsonj=list_of_json~kind:"DomainSummaryList"~of_json:DomainSummary.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleMaxListDomainsResults=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:100)>>=(fun()->check_int_mini~min:1));iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for MaxListDomainsResults"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleControls=structtypenonrect=ControlSummary.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ControlSummary.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:ControlSummary.of_xml)letof_jsonj=list_of_json~kind:"Controls"~of_json:ControlSummary.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleControlFilter=structtypenonrect={implementations:ImplementationFilter.toption[@ocaml.doc"A filter that narrows the results to controls with specific implementation types or identifiers. This field allows you to find controls that are implemented by specific Amazon Web Services services or with specific service identifiers."]}letmake?implementations=fun()->{implementations}letto_valuex=structure_to_value[("Implementations",(Option.mapx.implementations~f:ImplementationFilter.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letimplementations=(Option.map~f:ImplementationFilter.of_xml)(Xml.childxml_arg0"Implementations")inmake?implementations()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letimplementations=field_mapjson__"Implementations"ImplementationFilter.of_jsoninmake?implementations()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A structure that defines filtering criteria for the ListControls operation. You can use this filter to narrow down the list of controls based on their implementation details."]moduleMaxListControlsResults=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:100)>>=(fun()->check_int_mini~min:1));iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for MaxListControlsResults"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleControlMappings=structtypenonrect=ControlMapping.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ControlMapping.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:ControlMapping.of_xml)letof_jsonj=list_of_json~kind:"ControlMappings"~of_json:ControlMapping.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleControlMappingFilter=structtypenonrect={controlArns:ControlArnFilterList.toption[@ocaml.doc"A list of control ARNs to filter the mappings. When specified, only mappings associated with these controls are returned."];commonControlArns:CommonControlArnFilterList.toption[@ocaml.doc"A list of common control ARNs to filter the mappings. When specified, only mappings associated with these common controls are returned."];mappingTypes:MappingTypeFilterList.toption[@ocaml.doc"A list of mapping types to filter the mappings. When specified, only mappings of these types are returned."]}letmake?controlArns=fun?commonControlArns->fun?mappingTypes->fun()->{controlArns;commonControlArns;mappingTypes}letto_valuex=structure_to_value[("ControlArns",(Option.mapx.controlArns~f:ControlArnFilterList.to_value));("CommonControlArns",(Option.mapx.commonControlArns~f:CommonControlArnFilterList.to_value));("MappingTypes",(Option.mapx.mappingTypes~f:MappingTypeFilterList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmappingTypes=(Option.map~f:MappingTypeFilterList.of_xml)(Xml.childxml_arg0"MappingTypes")inletcommonControlArns=(Option.map~f:CommonControlArnFilterList.of_xml)(Xml.childxml_arg0"CommonControlArns")inletcontrolArns=(Option.map~f:ControlArnFilterList.of_xml)(Xml.childxml_arg0"ControlArns")inmake?mappingTypes?commonControlArns?controlArns()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmappingTypes=field_mapjson__"MappingTypes"MappingTypeFilterList.of_jsoninletcommonControlArns=field_mapjson__"CommonControlArns"CommonControlArnFilterList.of_jsoninletcontrolArns=field_mapjson__"ControlArns"ControlArnFilterList.of_jsoninmake?mappingTypes?commonControlArns?controlArns()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"A structure that defines filtering criteria for the ListControlMappings operation. You can use this filter to narrow down the list of control mappings based on control ARNs, common control ARNs, or mapping types."]moduleMaxListControlMappingsResults=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:1000)>>=(fun()->check_int_mini~min:1));iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for MaxListControlMappingsResults"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleCommonControlSummaryList=structtypenonrect=CommonControlSummary.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:CommonControlSummary.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:CommonControlSummary.of_xml)letof_jsonj=list_of_json~kind:"CommonControlSummaryList"~of_json:CommonControlSummary.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleCommonControlFilter=structtypenonrect={objectives:ObjectiveResourceFilterList.toption[@ocaml.doc"The objective that's used as filter criteria. You can use this parameter to specify one objective ARN at a time. Passing multiple ARNs in the CommonControlFilter isn\226\128\153t supported."]}letmake?objectives=fun()->{objectives}letto_valuex=structure_to_value[("Objectives",(Option.mapx.objectives~f:ObjectiveResourceFilterList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letobjectives=(Option.map~f:ObjectiveResourceFilterList.of_xml)(Xml.childxml_arg0"Objectives")inmake?objectives()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letobjectives=field_mapjson__"Objectives"ObjectiveResourceFilterList.of_jsoninmake?objectives()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"An optional filter that narrows the results to a specific objective."]moduleMaxListCommonControlsResults=structtypenonrect=intletmakei=letopenResultinok_or_failwith((check_int_maxi~max:100)>>=(fun()->check_int_mini~min:1));iletof_string=Int.of_stringletto_valuex=`Integerxletto_queryv=to_queryto_valuevletto_headerx=Int.to_stringxletof_xmlxml_arg0=Int.of_string(string_of_xml~kind:"an integer for MaxListCommonControlsResults"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleControlParameters=structtypenonrect=ControlParameter.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ControlParameter.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:ControlParameter.of_xml)letof_jsonj=list_of_json~kind:"ControlParameters"~of_json:ControlParameter.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleImplementationDetails=structtypenonrect={type_:ImplementationType.toption[@ocaml.doc"A string that describes a control's implementation type."];identifier:ImplementationIdentifier.toption[@ocaml.doc"A service-specific identifier for the control, assigned by the service that implemented the control. For example, this identifier could be an Amazon Web Services Config Rule ID or a Security Hub Control ID."]}letmake?type_=fun?identifier->fun()->{type_;identifier}letto_valuex=structure_to_value[("Type",(Option.mapx.type_~f:ImplementationType.to_value));("Identifier",(Option.mapx.identifier~f:ImplementationIdentifier.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letidentifier=(Option.map~f:ImplementationIdentifier.of_xml)(Xml.childxml_arg0"Identifier")inlettype_=(Option.map~f:ImplementationType.of_xml)(Xml.childxml_arg0"Type")inmake?identifier?type_()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letidentifier=field_mapjson__"Identifier"ImplementationIdentifier.of_jsoninlettype_=field_mapjson__"Type"ImplementationType.of_jsoninmake?identifier?type_()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"An object that describes the implementation type for a control. Our ImplementationDetails Type format has three required segments: SERVICE-PROVIDER::SERVICE-NAME::RESOURCE-NAME For example, AWS::Config::ConfigRule or AWS::SecurityHub::SecurityControl resources have the format with three required segments. Our ImplementationDetails Type format has an optional fourth segment, which is present for applicable implementation types. The format is as follows: SERVICE-PROVIDER::SERVICE-NAME::RESOURCE-NAME::RESOURCE-TYPE-DESCRIPTION For example, AWS::Organizations::Policy::SERVICE_CONTROL_POLICY or AWS::CloudFormation::Type::HOOK have the format with four segments. Although the format is similar, the values for the Type field do not match any Amazon Web Services CloudFormation values."]moduleRegionConfiguration=structtypenonrect={scope:ControlScope.toption[@ocaml.doc"The coverage of the control, if deployed. Scope is an enumerated type, with value Regional, or Global. A control with Global scope is effective in all Amazon Web Services Regions, regardless of the Region from which it is enabled, or to which it is deployed. A control implemented by an SCP is usually Global in scope. A control with Regional scope has operations that are restricted specifically to the Region from which it is enabled and to which it is deployed. Controls implemented by Config rules and CloudFormation hooks usually are Regional in scope. Security Hub controls usually are Regional in scope."];deployableRegions:DeployableRegions.toption[@ocaml.doc"Regions in which the control is available to be deployed."]}letmake?scope=fun?deployableRegions->fun()->{scope;deployableRegions}letto_valuex=structure_to_value[("Scope",(Option.mapx.scope~f:ControlScope.to_value));("DeployableRegions",(Option.mapx.deployableRegions~f:DeployableRegions.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letdeployableRegions=(Option.map~f:DeployableRegions.of_xml)(Xml.childxml_arg0"DeployableRegions")inletscope=(Option.map~f:ControlScope.of_xml)(Xml.childxml_arg0"Scope")inmake?deployableRegions?scope()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letdeployableRegions=field_mapjson__"DeployableRegions"DeployableRegions.of_jsoninletscope=field_mapjson__"Scope"ControlScope.of_jsoninmake?deployableRegions?scope()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns information about the control, including the scope of the control, if enabled, and the Regions in which the control is available for deployment. For more information about scope, see Global services. If you are applying controls through an Amazon Web Services Control Tower landing zone environment, remember that the values returned in the RegionConfiguration API operation are not related to the governed Regions in your landing zone. For example, if you are governing Regions A,B,and C while the control is available in Regions A, B, C, and D, you'd see a response with DeployableRegions of A, B, C, and D for a control with REGIONAL scope, even though you may not intend to deploy the control in Region D, because you do not govern it through your landing zone."]moduleResourceNotFoundException=structtypenonrect={message:String_.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("Message",(Option.mapx.message~f:String_.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"Message"String_.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The requested resource does not exist."]moduleListObjectivesResponse=structtypenonrect={objectives:ObjectiveSummaryList.toption[@ocaml.doc"The list of objectives that the ListObjectives API returns."];nextToken:PaginationToken.toption[@ocaml.doc"The pagination token that's used to fetch the next set of results."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?objectives=fun?nextToken->fun()->{objectives;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Objectives",(Option.mapx.objectives~f:ObjectiveSummaryList.to_value));("NextToken",(Option.mapx.nextToken~f:PaginationToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:PaginationToken.of_xml)(Xml.childxml_arg0"NextToken")inletobjectives=(Option.map~f:ObjectiveSummaryList.of_xml)(Xml.childxml_arg0"Objectives")inmake?nextToken?objectives()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"PaginationToken.of_jsoninletobjectives=field_mapjson__"Objectives"ObjectiveSummaryList.of_jsoninmake?nextToken?objectives()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a paginated list of objectives from the Control Catalog. You can apply an optional filter to see the objectives that belong to a specific domain. If you don\226\128\153t provide a filter, the operation returns all objectives."]moduleListObjectivesRequest=structtypenonrect={maxResults:MaxListObjectivesResults.toption[@ocaml.doc"The maximum number of results on a page or for an API request call."];nextToken:PaginationToken.toption[@ocaml.doc"The pagination token that's used to fetch the next set of results."];objectiveFilter:ObjectiveFilter.toption[@ocaml.doc"An optional filter that narrows the results to a specific domain. This filter allows you to specify one domain ARN at a time. Passing multiple ARNs in the ObjectiveFilter isn\226\128\153t supported."]}letmake?maxResults=fun?nextToken->fun?objectiveFilter->fun()->{maxResults;nextToken;objectiveFilter}letto_valuex=structure_to_value[("maxResults",(Option.mapx.maxResults~f:MaxListObjectivesResults.to_value));("nextToken",(Option.mapx.nextToken~f:PaginationToken.to_value));("ObjectiveFilter",(Option.mapx.objectiveFilter~f:ObjectiveFilter.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letobjectiveFilter=(Option.map~f:ObjectiveFilter.of_xml)(Xml.childxml_arg0"ObjectiveFilter")inletnextToken=(Option.map~f:PaginationToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:MaxListObjectivesResults.of_xml)(Xml.childxml_arg0"maxResults")inmake?objectiveFilter?nextToken?maxResults()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letobjectiveFilter=field_mapjson__"ObjectiveFilter"ObjectiveFilter.of_jsoninletnextToken=field_mapjson__"NextToken"PaginationToken.of_jsoninletmaxResults=field_mapjson__"MaxResults"MaxListObjectivesResults.of_jsoninmake?objectiveFilter?nextToken?maxResults()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a paginated list of objectives from the Control Catalog. You can apply an optional filter to see the objectives that belong to a specific domain. If you don\226\128\153t provide a filter, the operation returns all objectives."]moduleListDomainsResponse=structtypenonrect={domains:DomainSummaryList.toption[@ocaml.doc"The list of domains that the ListDomains API returns."];nextToken:PaginationToken.toption[@ocaml.doc"The pagination token that's used to fetch the next set of results."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?domains=fun?nextToken->fun()->{domains;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Domains",(Option.mapx.domains~f:DomainSummaryList.to_value));("NextToken",(Option.mapx.nextToken~f:PaginationToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:PaginationToken.of_xml)(Xml.childxml_arg0"NextToken")inletdomains=(Option.map~f:DomainSummaryList.of_xml)(Xml.childxml_arg0"Domains")inmake?nextToken?domains()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"PaginationToken.of_jsoninletdomains=field_mapjson__"Domains"DomainSummaryList.of_jsoninmake?nextToken?domains()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a paginated list of domains from the Control Catalog."]moduleListDomainsRequest=structtypenonrect={maxResults:MaxListDomainsResults.toption[@ocaml.doc"The maximum number of results on a page or for an API request call."];nextToken:PaginationToken.toption[@ocaml.doc"The pagination token that's used to fetch the next set of results."]}letmake?maxResults=fun?nextToken->fun()->{maxResults;nextToken}letto_valuex=structure_to_value[("maxResults",(Option.mapx.maxResults~f:MaxListDomainsResults.to_value));("nextToken",(Option.mapx.nextToken~f:PaginationToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:PaginationToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:MaxListDomainsResults.of_xml)(Xml.childxml_arg0"maxResults")inmake?nextToken?maxResults()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"PaginationToken.of_jsoninletmaxResults=field_mapjson__"MaxResults"MaxListDomainsResults.of_jsoninmake?nextToken?maxResults()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a paginated list of domains from the Control Catalog."]moduleListControlsResponse=structtypenonrect={controls:Controls.toption[@ocaml.doc"Returns a list of controls, given as structures of type controlSummary."];nextToken:PaginationToken.toption[@ocaml.doc"The pagination token that's used to fetch the next set of results."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?controls=fun?nextToken->fun()->{controls;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Controls",(Option.mapx.controls~f:Controls.to_value));("NextToken",(Option.mapx.nextToken~f:PaginationToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:PaginationToken.of_xml)(Xml.childxml_arg0"NextToken")inletcontrols=(Option.map~f:Controls.of_xml)(Xml.childxml_arg0"Controls")inmake?nextToken?controls()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"PaginationToken.of_jsoninletcontrols=field_mapjson__"Controls"Controls.of_jsoninmake?nextToken?controls()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a paginated list of all available controls in the Control Catalog library. Allows you to discover available controls. The list of controls is given as structures of type controlSummary. The ARN is returned in the global controlcatalog format, as shown in the examples."]moduleListControlsRequest=structtypenonrect={nextToken:PaginationToken.toption[@ocaml.doc"The pagination token that's used to fetch the next set of results."];maxResults:MaxListControlsResults.toption[@ocaml.doc"The maximum number of results on a page or for an API request call."];filter:ControlFilter.toption[@ocaml.doc"An optional filter that narrows the results to controls with specific implementation types or identifiers. If you don't provide a filter, the operation returns all available controls."]}letmake?nextToken=fun?maxResults->fun?filter->fun()->{nextToken;maxResults;filter}letto_valuex=structure_to_value[("nextToken",(Option.mapx.nextToken~f:PaginationToken.to_value));("maxResults",(Option.mapx.maxResults~f:MaxListControlsResults.to_value));("Filter",(Option.mapx.filter~f:ControlFilter.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfilter=(Option.map~f:ControlFilter.of_xml)(Xml.childxml_arg0"Filter")inletmaxResults=(Option.map~f:MaxListControlsResults.of_xml)(Xml.childxml_arg0"maxResults")inletnextToken=(Option.map~f:PaginationToken.of_xml)(Xml.childxml_arg0"nextToken")inmake?filter?maxResults?nextToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfilter=field_mapjson__"Filter"ControlFilter.of_jsoninletmaxResults=field_mapjson__"MaxResults"MaxListControlsResults.of_jsoninletnextToken=field_mapjson__"NextToken"PaginationToken.of_jsoninmake?filter?maxResults?nextToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a paginated list of all available controls in the Control Catalog library. Allows you to discover available controls. The list of controls is given as structures of type controlSummary. The ARN is returned in the global controlcatalog format, as shown in the examples."]moduleListControlMappingsResponse=structtypenonrect={controlMappings:ControlMappings.toption[@ocaml.doc"The list of control mappings that the ListControlMappings API returns."];nextToken:PaginationToken.toption[@ocaml.doc"The pagination token that's used to fetch the next set of results."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?controlMappings=fun?nextToken->fun()->{controlMappings;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("ControlMappings",(Option.mapx.controlMappings~f:ControlMappings.to_value));("NextToken",(Option.mapx.nextToken~f:PaginationToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:PaginationToken.of_xml)(Xml.childxml_arg0"NextToken")inletcontrolMappings=(Option.map~f:ControlMappings.of_xml)(Xml.childxml_arg0"ControlMappings")inmake?nextToken?controlMappings()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"PaginationToken.of_jsoninletcontrolMappings=field_mapjson__"ControlMappings"ControlMappings.of_jsoninmake?nextToken?controlMappings()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a paginated list of control mappings from the Control Catalog. Control mappings show relationships between controls and other entities, such as common controls or compliance frameworks."]moduleListControlMappingsRequest=structtypenonrect={nextToken:PaginationToken.toption[@ocaml.doc"The pagination token that's used to fetch the next set of results."];maxResults:MaxListControlMappingsResults.toption[@ocaml.doc"The maximum number of results on a page or for an API request call."];filter:ControlMappingFilter.toption[@ocaml.doc"An optional filter that narrows the results to specific control mappings based on control ARNs, common control ARNs, or mapping types."]}letmake?nextToken=fun?maxResults->fun?filter->fun()->{nextToken;maxResults;filter}letto_valuex=structure_to_value[("nextToken",(Option.mapx.nextToken~f:PaginationToken.to_value));("maxResults",(Option.mapx.maxResults~f:MaxListControlMappingsResults.to_value));("Filter",(Option.mapx.filter~f:ControlMappingFilter.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfilter=(Option.map~f:ControlMappingFilter.of_xml)(Xml.childxml_arg0"Filter")inletmaxResults=(Option.map~f:MaxListControlMappingsResults.of_xml)(Xml.childxml_arg0"maxResults")inletnextToken=(Option.map~f:PaginationToken.of_xml)(Xml.childxml_arg0"nextToken")inmake?filter?maxResults?nextToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfilter=field_mapjson__"Filter"ControlMappingFilter.of_jsoninletmaxResults=field_mapjson__"MaxResults"MaxListControlMappingsResults.of_jsoninletnextToken=field_mapjson__"NextToken"PaginationToken.of_jsoninmake?filter?maxResults?nextToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a paginated list of control mappings from the Control Catalog. Control mappings show relationships between controls and other entities, such as common controls or compliance frameworks."]moduleListCommonControlsResponse=structtypenonrect={commonControls:CommonControlSummaryList.toption[@ocaml.doc"The list of common controls that the ListCommonControls API returns."];nextToken:PaginationToken.toption[@ocaml.doc"The pagination token that's used to fetch the next set of results."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?commonControls=fun?nextToken->fun()->{commonControls;nextToken}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("CommonControls",(Option.mapx.commonControls~f:CommonControlSummaryList.to_value));("NextToken",(Option.mapx.nextToken~f:PaginationToken.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:PaginationToken.of_xml)(Xml.childxml_arg0"NextToken")inletcommonControls=(Option.map~f:CommonControlSummaryList.of_xml)(Xml.childxml_arg0"CommonControls")inmake?nextToken?commonControls()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"NextToken"PaginationToken.of_jsoninletcommonControls=field_mapjson__"CommonControls"CommonControlSummaryList.of_jsoninmake?nextToken?commonControls()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a paginated list of common controls from the Amazon Web Services Control Catalog. You can apply an optional filter to see common controls that have a specific objective. If you don\226\128\153t provide a filter, the operation returns all common controls."]moduleListCommonControlsRequest=structtypenonrect={maxResults:MaxListCommonControlsResults.toption[@ocaml.doc"The maximum number of results on a page or for an API request call."];nextToken:PaginationToken.toption[@ocaml.doc"The pagination token that's used to fetch the next set of results."];commonControlFilter:CommonControlFilter.toption[@ocaml.doc"An optional filter that narrows the results to a specific objective. This filter allows you to specify one objective ARN at a time. Passing multiple ARNs in the CommonControlFilter isn\226\128\153t supported."]}letmake?maxResults=fun?nextToken->fun?commonControlFilter->fun()->{maxResults;nextToken;commonControlFilter}letto_valuex=structure_to_value[("maxResults",(Option.mapx.maxResults~f:MaxListCommonControlsResults.to_value));("nextToken",(Option.mapx.nextToken~f:PaginationToken.to_value));("CommonControlFilter",(Option.mapx.commonControlFilter~f:CommonControlFilter.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcommonControlFilter=(Option.map~f:CommonControlFilter.of_xml)(Xml.childxml_arg0"CommonControlFilter")inletnextToken=(Option.map~f:PaginationToken.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:MaxListCommonControlsResults.of_xml)(Xml.childxml_arg0"maxResults")inmake?commonControlFilter?nextToken?maxResults()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcommonControlFilter=field_mapjson__"CommonControlFilter"CommonControlFilter.of_jsoninletnextToken=field_mapjson__"NextToken"PaginationToken.of_jsoninletmaxResults=field_mapjson__"MaxResults"MaxListCommonControlsResults.of_jsoninmake?commonControlFilter?nextToken?maxResults()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns a paginated list of common controls from the Amazon Web Services Control Catalog. You can apply an optional filter to see common controls that have a specific objective. If you don\226\128\153t provide a filter, the operation returns all common controls."]moduleGetControlResponse=structtypenonrect={arn:ControlArn.toption[@ocaml.doc"The Amazon Resource Name (ARN) of the control."];aliases:ControlAliases.toption[@ocaml.doc"A list of alternative identifiers for the control. These are human-readable designators, such as SH.S3.1. Several aliases can refer to the same control across different Amazon Web Services services or compliance frameworks."];name:String_.toption[@ocaml.doc"The display name of the control."];description:String_.toption[@ocaml.doc"A description of what the control does."];behavior:ControlBehavior.toption[@ocaml.doc"A term that identifies the control's functional behavior. One of Preventive, Detective, Proactive"];severity:ControlSeverity.toption[@ocaml.doc"An enumerated type, with the following possible values:"];regionConfiguration:RegionConfiguration.toption;implementation:ImplementationDetails.toption[@ocaml.doc"Returns information about the control, as an ImplementationDetails object that shows the underlying implementation type for a control."];parameters:ControlParameters.toption[@ocaml.doc"Returns an array of ControlParameter objects that specify the parameters a control supports. An empty list is returned for controls that don\226\128\153t support parameters."];createTime:Timestamp.toption[@ocaml.doc"A timestamp that notes the time when the control was released (start of its life) as a governance capability in Amazon Web Services."];governedResources:GovernedResources.toption[@ocaml.doc"A list of Amazon Web Services resource types that are governed by this control. This information helps you understand which controls can govern certain types of resources, and conversely, which resources are affected when the control is implemented. The resources are represented as Amazon Web Services CloudFormation resource types. If GovernedResources cannot be represented by available CloudFormation resource types, it\226\128\153s returned as an empty list."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ThrottlingExceptionofThrottlingException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?arn=fun?aliases->fun?name->fun?description->fun?behavior->fun?severity->fun?regionConfiguration->fun?implementation->fun?parameters->fun?createTime->fun?governedResources->fun()->{arn;aliases;name;description;behavior;severity;regionConfiguration;implementation;parameters;createTime;governedResources}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_xmlxml)|"ThrottlingException"->`ThrottlingException(ThrottlingException.of_xmlxml)|"ValidationException"->`ValidationException(ValidationException.of_xmlxml)|name->`Unknown_operation_error(name,(Some(Awso.Xml.to_stringxml)))leterror_to_json:error->Yojson.Safe.t=function|`AccessDeniedExceptione->`Assoc[("error",(`String"AccessDeniedException"));("details",(AccessDeniedException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ThrottlingExceptione->`Assoc[("error",(`String"ThrottlingException"));("details",(ThrottlingException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("Arn",(Option.mapx.arn~f:ControlArn.to_value));("Aliases",(Option.mapx.aliases~f:ControlAliases.to_value));("Name",(Option.mapx.name~f:String_.to_value));("Description",(Option.mapx.description~f:String_.to_value));("Behavior",(Option.mapx.behavior~f:ControlBehavior.to_value));("Severity",(Option.mapx.severity~f:ControlSeverity.to_value));("RegionConfiguration",(Option.mapx.regionConfiguration~f:RegionConfiguration.to_value));("Implementation",(Option.mapx.implementation~f:ImplementationDetails.to_value));("Parameters",(Option.mapx.parameters~f:ControlParameters.to_value));("CreateTime",(Option.mapx.createTime~f:Timestamp.to_value));("GovernedResources",(Option.mapx.governedResources~f:GovernedResources.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letgovernedResources=(Option.map~f:GovernedResources.of_xml)(Xml.childxml_arg0"GovernedResources")inletcreateTime=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"CreateTime")inletparameters=(Option.map~f:ControlParameters.of_xml)(Xml.childxml_arg0"Parameters")inletimplementation=(Option.map~f:ImplementationDetails.of_xml)(Xml.childxml_arg0"Implementation")inletregionConfiguration=(Option.map~f:RegionConfiguration.of_xml)(Xml.childxml_arg0"RegionConfiguration")inletseverity=(Option.map~f:ControlSeverity.of_xml)(Xml.childxml_arg0"Severity")inletbehavior=(Option.map~f:ControlBehavior.of_xml)(Xml.childxml_arg0"Behavior")inletdescription=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Description")inletname=(Option.map~f:String_.of_xml)(Xml.childxml_arg0"Name")inletaliases=(Option.map~f:ControlAliases.of_xml)(Xml.childxml_arg0"Aliases")inletarn=(Option.map~f:ControlArn.of_xml)(Xml.childxml_arg0"Arn")inmake?governedResources?createTime?parameters?implementation?regionConfiguration?severity?behavior?description?name?aliases?arn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letgovernedResources=field_mapjson__"GovernedResources"GovernedResources.of_jsoninletcreateTime=field_mapjson__"CreateTime"Timestamp.of_jsoninletparameters=field_mapjson__"Parameters"ControlParameters.of_jsoninletimplementation=field_mapjson__"Implementation"ImplementationDetails.of_jsoninletregionConfiguration=field_mapjson__"RegionConfiguration"RegionConfiguration.of_jsoninletseverity=field_mapjson__"Severity"ControlSeverity.of_jsoninletbehavior=field_mapjson__"Behavior"ControlBehavior.of_jsoninletdescription=field_mapjson__"Description"String_.of_jsoninletname=field_mapjson__"Name"String_.of_jsoninletaliases=field_mapjson__"Aliases"ControlAliases.of_jsoninletarn=field_mapjson__"Arn"ControlArn.of_jsoninmake?governedResources?createTime?parameters?implementation?regionConfiguration?severity?behavior?description?name?aliases?arn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns details about a specific control, most notably a list of Amazon Web Services Regions where this control is supported. Input a value for the ControlArn parameter, in ARN form. GetControl accepts controltower or controlcatalog control ARNs as input. Returns a controlcatalog ARN format. In the API response, controls that have the value GLOBAL in the Scope field do not show the DeployableRegions field, because it does not apply. Controls that have the value REGIONAL in the Scope field return a value for the DeployableRegions field, as shown in the example."]moduleGetControlRequest=structtypenonrect={controlArn:ControlArn.t[@ocaml.doc"The Amazon Resource Name (ARN) of the control. It has one of the following formats: Global format arn:\\{PARTITION\\}:controlcatalog:::control/\\{CONTROL_CATALOG_OPAQUE_ID\\} Or Regional format arn:\\{PARTITION\\}:controltower:\\{REGION\\}::control/\\{CONTROL_TOWER_OPAQUE_ID\\} Here is a more general pattern that covers Amazon Web Services Control Tower and Control Catalog ARNs: ^arn:(aws(?:\\[-a-z\\]*)?):(controlcatalog|controltower):\\[a-zA-Z0-9-\\]*::control/\\[0-9a-zA-Z_\\\\-\\]+$"]}letcontext_="GetControlRequest"letmake~controlArn=fun()->{controlArn}letto_valuex=structure_to_value[("ControlArn",(Some(ControlArn.to_valuex.controlArn)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcontrolArn=ControlArn.of_xml(Xml.child_exn~context:context_xml_arg0"ControlArn")inmake~controlArn()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcontrolArn=field_map_exnjson__"ControlArn"ControlArn.of_jsoninmake~controlArn()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Returns details about a specific control, most notably a list of Amazon Web Services Regions where this control is supported. Input a value for the ControlArn parameter, in ARN form. GetControl accepts controltower or controlcatalog control ARNs as input. Returns a controlcatalog ARN format. In the API response, controls that have the value GLOBAL in the Scope field do not show the DeployableRegions field, because it does not apply. Controls that have the value REGIONAL in the Scope field return a value for the DeployableRegions field, as shown in the example."]