1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868(* 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.taxsettingsletapiVersion="2018-05-10"letendpointPrefix="tax"letserviceFullName="Tax Settings"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[]))])moduleCountryCode=structtypenonrect=stringletcontext_="CountryCode"letmakei=letopenResultinok_or_failwith((check_string_mini~min:2)>>=(fun()->(check_string_maxi~max:2)>>=(fun()->check_patterni~pattern:"^[a-zA-Z]+$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"CountryCode"jletto_json=simple_to_jsonto_valueendmoduleState=structtypenonrect=stringletcontext_="State"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:50)>>=(fun()->check_patterni~pattern:"^(?!\\s*$)[\\s\\S]+$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"State"jletto_json=simple_to_jsonto_valueendmoduleMalaysiaServiceTaxCode=structtypenonrect=|Consultancy|Digital_Service_And_Electronic_Medium|IT_Services|Training_Or_Coaching|Non_static_idofstringletmakei=iletto_string=function|Consultancy->"Consultancy"|Digital_Service_And_Electronic_Medium->"Digital Service And Electronic Medium"|IT_Services->"IT Services"|Training_Or_Coaching->"Training Or Coaching"|Non_static_ids->sletof_string=function|"Consultancy"->Consultancy|"Digital Service And Electronic Medium"->Digital_Service_And_Electronic_Medium|"IT Services"->IT_Services|"Training Or Coaching"->Training_Or_Coaching|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 MalaysiaServiceTaxCode"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"MalaysiaServiceTaxCode"j)letto_json=simple_to_jsonto_valueendmoduleAuthority=structtypenonrect={country:CountryCode.t[@ocaml.doc"The country code for the country that the address is in."];state:State.toption[@ocaml.doc"The state that the address is located."]}letcontext_="Authority"letmake?state=fun~country->fun()->{state;country}letto_valuex=structure_to_value[("country",(Some(CountryCode.to_valuex.country)));("state",(Option.mapx.state~f:State.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstate=(Option.map~f:State.of_xml)(Xml.childxml_arg0"state")inletcountry=CountryCode.of_xml(Xml.child_exn~context:context_xml_arg0"country")inmake?state~country()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstate=field_mapjson__"state"State.of_jsoninletcountry=field_map_exnjson__"country"CountryCode.of_jsoninmake?state~country()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The address domain associate with the tax information."]moduleS3BucketName=structtypenonrect=stringletcontext_="S3BucketName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:3)>>=(fun()->(check_string_maxi~max:63)>>=(fun()->check_patterni~pattern:"^(?=^.{3,63}$)(?!^(\\d+\\.)+\\d+$)(^(([a-z0-9]|[a-z0-9][a-z0-9\\-]*[a-z0-9])\\.)*([a-z0-9]|[a-z0-9][a-z0-9\\-]*[a-z0-9])$)$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"S3BucketName"jletto_json=simple_to_jsonto_valueendmoduleS3Key=structtypenonrect=stringletcontext_="S3Key"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:1024)>>=(fun()->check_patterni~pattern:"^.*\\S.*$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"S3Key"jletto_json=simple_to_jsonto_valueendmoduleFileBlob=structtypenonrect=stringletmakei=iletof_stringx=xletto_valuex=`Blobxletto_queryv=to_queryto_valuevletto_headerx=xletof_xmlxml_arg0=string_of_xml~kind:"a blob"xml_arg0letof_jsonj=string_of_json~kind:"a blob"jletto_json=simple_to_jsonto_valueendmoduleTaxDocumentName=structtypenonrect=stringletcontext_="TaxDocumentName"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^[\\s\\S]*$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"TaxDocumentName"jletto_json=simple_to_jsonto_valueendmoduleCcmCode=structtypenonrect=stringletcontext_="CcmCode"letmakei=letopenResultinok_or_failwith((check_string_mini~min:0)>>=(fun()->(check_string_maxi~max:1024)>>=(fun()->check_patterni~pattern:"^\\d+$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"CcmCode"jletto_json=simple_to_jsonto_valueendmoduleLegalNatureCode=structtypenonrect=stringletcontext_="LegalNatureCode"letmakei=letopenResultinok_or_failwith((check_string_mini~min:0)>>=(fun()->(check_string_maxi~max:1024)>>=(fun()->check_patterni~pattern:"^\\d+$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"LegalNatureCode"jletto_json=simple_to_jsonto_valueendmoduleBoolean=structtypenonrect=boolletmakei=iletof_string=Bool.of_stringletto_valuex=`Booleanxletto_queryv=to_queryto_valuevletto_headerx=Bool.to_stringxletof_xmlxml_arg0=Bool.of_string(string_of_xml~kind:"a boolean"xml_arg0)letof_json=bool_of_jsonletto_json=simple_to_jsonto_valueendmoduleCanadaProvincialSalesTaxIdString=structtypenonrect=stringletcontext_="CanadaProvincialSalesTaxIdString"letmakei=letopenResultinok_or_failwith((check_string_mini~min:7)>>=(fun()->(check_string_maxi~max:16)>>=(fun()->check_patterni~pattern:"^([0-9A-Z/-]+)$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"CanadaProvincialSalesTaxIdString"jletto_json=simple_to_jsonto_valueendmoduleCanadaQuebecSalesTaxNumberString=structtypenonrect=stringletcontext_="CanadaQuebecSalesTaxNumberString"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^([0-9]{10})(TQ[0-9]{4})?$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"CanadaQuebecSalesTaxNumberString"jletto_json=simple_to_jsonto_valueendmoduleCanadaRetailSalesTaxNumberString=structtypenonrect=stringletcontext_="CanadaRetailSalesTaxNumberString"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^([0-9]{6}-[0-9]{1})$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"CanadaRetailSalesTaxNumberString"jletto_json=simple_to_jsonto_valueendmoduleDateString=structtypenonrect=stringletcontext_="DateString"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^(\\d{4}-(0[0-9]|1[0-2])-([0-2][0-9]|3[0-1]))$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"DateString"jletto_json=simple_to_jsonto_valueendmoduleUniqueIdentificationNumber=structtypenonrect=stringletcontext_="UniqueIdentificationNumber"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^[a-zA-Z0-9]{39}$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"UniqueIdentificationNumber"jletto_json=simple_to_jsonto_valueendmoduleRegistryCommercialCode=structtypenonrect=stringletcontext_="RegistryCommercialCode"letmakei=letopenResultinok_or_failwith((check_string_mini~min:8)>>=(fun()->(check_string_maxi~max:8)>>=(fun()->check_patterni~pattern:"^\\d+$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"RegistryCommercialCode"jletto_json=simple_to_jsonto_valueendmodulePersonType=structtypenonrect=|Legal_Person|Physical_Person|Business|Non_static_idofstringletmakei=iletto_string=function|Legal_Person->"Legal Person"|Physical_Person->"Physical Person"|Business->"Business"|Non_static_ids->sletof_string=function|"Legal Person"->Legal_Person|"Physical Person"->Physical_Person|"Business"->Business|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 PersonType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"PersonType"j)letto_json=simple_to_jsonto_valueendmoduleContractingAuthorityCode=structtypenonrect=stringletcontext_="ContractingAuthorityCode"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^\\d{4}\\.[A-Z]\\d{5}\\.\\d{4}$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ContractingAuthorityCode"jletto_json=simple_to_jsonto_valueendmodulePan=structtypenonrect=stringletcontext_="Pan"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^[A-Z]{5}[0-9]{4}[A-Z]{1}$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"Pan"jletto_json=simple_to_jsonto_valueendmoduleDecisionNumber=structtypenonrect=stringletcontext_="DecisionNumber"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^([a-zA-Z0-9/.\\-]{0,200})$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"DecisionNumber"jletto_json=simple_to_jsonto_valueendmoduleIndonesiaTaxRegistrationNumberType=structtypenonrect=|NIK|PassportNumber|NPWP|NITKU|Non_static_idofstringletmakei=iletto_string=function|NIK->"NIK"|PassportNumber->"PassportNumber"|NPWP->"NPWP"|NITKU->"NITKU"|Non_static_ids->sletof_string=function|"NIK"->NIK|"PassportNumber"->PassportNumber|"NPWP"->NPWP|"NITKU"->NITKU|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 IndonesiaTaxRegistrationNumberType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"IndonesiaTaxRegistrationNumberType"j)letto_json=simple_to_jsonto_valueendmodulePpnExceptionDesignationCode=structtypenonrect=stringletcontext_="PpnExceptionDesignationCode"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^(01|02|03|07|08)$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"PpnExceptionDesignationCode"jletto_json=simple_to_jsonto_valueendmoduleIsraelCustomerType=structtypenonrect=|Business|Individual|Non_static_idofstringletmakei=iletto_string=function|Business->"Business"|Individual->"Individual"|Non_static_ids->sletof_string=function|"Business"->Business|"Individual"->Individual|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 IsraelCustomerType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"IsraelCustomerType"j)letto_json=simple_to_jsonto_valueendmoduleIsraelDealerType=structtypenonrect=|Authorized|Non_authorized|Non_static_idofstringletmakei=iletto_string=function|Authorized->"Authorized"|Non_authorized->"Non-authorized"|Non_static_ids->sletof_string=function|"Authorized"->Authorized|"Non-authorized"->Non_authorized|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 IsraelDealerType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"IsraelDealerType"j)letto_json=simple_to_jsonto_valueendmoduleCigNumber=structtypenonrect=stringletcontext_="CigNumber"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^([0-9A-Z]{1,15})$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"CigNumber"jletto_json=simple_to_jsonto_valueendmoduleCupNumber=structtypenonrect=stringletcontext_="CupNumber"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^([0-9A-Z]{1,15})$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"CupNumber"jletto_json=simple_to_jsonto_valueendmoduleSdiAccountId=structtypenonrect=stringletcontext_="SdiAccountId"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^[0-9A-Z]{6,7}$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"SdiAccountId"jletto_json=simple_to_jsonto_valueendmoduleTaxCode=structtypenonrect=stringletcontext_="TaxCode"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^([0-9]{11}|[A-Z]{6}[0-9]{2}[A-Z][0-9]{2}[A-Z][0-9]{3}[A-Z])$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"TaxCode"jletto_json=simple_to_jsonto_valueendmoduleBusinessRegistrationNumber=structtypenonrect=stringletcontext_="BusinessRegistrationNumber"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^[0-9]{12}$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"BusinessRegistrationNumber"jletto_json=simple_to_jsonto_valueendmoduleMalaysiaServiceTaxCodesList=structtypenonrect=MalaysiaServiceTaxCode.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:4)>>=(fun()->check_list_mini~min:0));iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:MalaysiaServiceTaxCode.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:MalaysiaServiceTaxCode.of_xml)letof_jsonj=list_of_json~kind:"MalaysiaServiceTaxCodesList"~of_json:MalaysiaServiceTaxCode.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleTaxInformationNumber=structtypenonrect=stringletcontext_="TaxInformationNumber"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^[A-Z]{1,2}[0-9]{1,11}$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"TaxInformationNumber"jletto_json=simple_to_jsonto_valueendmoduleIndividualRegistrationNumber=structtypenonrect=stringletcontext_="IndividualRegistrationNumber"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^([0-9]{10})$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"IndividualRegistrationNumber"jletto_json=simple_to_jsonto_valueendmoduleTaxRegistrationNumberType=structtypenonrect=|TaxRegistrationNumber|LocalRegistrationNumber|Non_static_idofstringletmakei=iletto_string=function|TaxRegistrationNumber->"TaxRegistrationNumber"|LocalRegistrationNumber->"LocalRegistrationNumber"|Non_static_ids->sletof_string=function|"TaxRegistrationNumber"->TaxRegistrationNumber|"LocalRegistrationNumber"->LocalRegistrationNumber|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 TaxRegistrationNumberType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"TaxRegistrationNumberType"j)letto_json=simple_to_jsonto_valueendmoduleSaudiArabiaTaxRegistrationNumberType=structtypenonrect=|TaxRegistrationNumber|TaxIdentificationNumber|CommercialRegistrationNumber|Non_static_idofstringletmakei=iletto_string=function|TaxRegistrationNumber->"TaxRegistrationNumber"|TaxIdentificationNumber->"TaxIdentificationNumber"|CommercialRegistrationNumber->"CommercialRegistrationNumber"|Non_static_ids->sletof_string=function|"TaxRegistrationNumber"->TaxRegistrationNumber|"TaxIdentificationNumber"->TaxIdentificationNumber|"CommercialRegistrationNumber"->CommercialRegistrationNumber|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 SaudiArabiaTaxRegistrationNumberType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"SaudiArabiaTaxRegistrationNumberType"j)letto_json=simple_to_jsonto_valueendmoduleBusinessRepresentativeName=structtypenonrect=stringletcontext_="BusinessRepresentativeName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:200)>>=(fun()->check_patterni~pattern:"^[0-9\\u3130-\\u318F\\uAC00-\\uD7AF,.( )-\\\\s]*$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"BusinessRepresentativeName"jletto_json=simple_to_jsonto_valueendmoduleItemOfBusiness=structtypenonrect=stringletcontext_="ItemOfBusiness"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:100)>>=(fun()->check_patterni~pattern:"^[0-9\\u3130-\\u318F\\uAC00-\\uD7AF,.( )-\\\\s]*$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ItemOfBusiness"jletto_json=simple_to_jsonto_valueendmoduleLineOfBusiness=structtypenonrect=stringletcontext_="LineOfBusiness"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:100)>>=(fun()->check_patterni~pattern:"^[0-9\\u3130-\\u318F\\uAC00-\\uD7AF,.( )-\\\\s]*$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"LineOfBusiness"jletto_json=simple_to_jsonto_valueendmoduleRegistrationType=structtypenonrect=|Intra_EU|Local|Non_static_idofstringletmakei=iletto_string=function|Intra_EU->"Intra-EU"|Local->"Local"|Non_static_ids->sletof_string=function|"Intra-EU"->Intra_EU|"Local"->Local|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 RegistrationType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"RegistrationType"j)letto_json=simple_to_jsonto_valueendmoduleIndustries=structtypenonrect=|CirculatingOrg|ProfessionalOrg|Banks|Insurance|PensionAndBenefitFunds|DevelopmentAgencies|Non_static_idofstringletmakei=iletto_string=function|CirculatingOrg->"CirculatingOrg"|ProfessionalOrg->"ProfessionalOrg"|Banks->"Banks"|Insurance->"Insurance"|PensionAndBenefitFunds->"PensionAndBenefitFunds"|DevelopmentAgencies->"DevelopmentAgencies"|Non_static_ids->sletof_string=function|"CirculatingOrg"->CirculatingOrg|"ProfessionalOrg"->ProfessionalOrg|"Banks"->Banks|"Insurance"->Insurance|"PensionAndBenefitFunds"->PensionAndBenefitFunds|"DevelopmentAgencies"->DevelopmentAgencies|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 Industries"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"Industries"j)letto_json=simple_to_jsonto_valueendmoduleKepEmailId=structtypenonrect=stringletcontext_="KepEmailId"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^[\\s\\S]*$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"KepEmailId"jletto_json=simple_to_jsonto_valueendmoduleSecondaryTaxId=structtypenonrect=stringletcontext_="SecondaryTaxId"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^([0-9]{10})$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"SecondaryTaxId"jletto_json=simple_to_jsonto_valueendmoduleTaxOffice=structtypenonrect=stringletcontext_="TaxOffice"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^[\\s\\S]*$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"TaxOffice"jletto_json=simple_to_jsonto_valueendmoduleUkraineTrnType=structtypenonrect=|Business|Individual|Non_static_idofstringletmakei=iletto_string=function|Business->"Business"|Individual->"Individual"|Non_static_ids->sletof_string=function|"Business"->Business|"Individual"->Individual|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 UkraineTrnType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"UkraineTrnType"j)letto_json=simple_to_jsonto_valueendmoduleUzbekistanTaxRegistrationNumberType=structtypenonrect=|Business|Individual|Non_static_idofstringletmakei=iletto_string=function|Business->"Business"|Individual->"Individual"|Non_static_ids->sletof_string=function|"Business"->Business|"Individual"->Individual|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 UzbekistanTaxRegistrationNumberType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"UzbekistanTaxRegistrationNumberType"j)letto_json=simple_to_jsonto_valueendmoduleVatRegistrationNumber=structtypenonrect=stringletcontext_="VatRegistrationNumber"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^[0-9]{12}$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"VatRegistrationNumber"jletto_json=simple_to_jsonto_valueendmoduleElectronicTransactionCodeNumber=structtypenonrect=stringletcontext_="ElectronicTransactionCodeNumber"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^\\d{17}$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ElectronicTransactionCodeNumber"jletto_json=simple_to_jsonto_valueendmoduleEnterpriseIdentificationNumber=structtypenonrect=stringletcontext_="EnterpriseIdentificationNumber"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^(\\d{10}|(\\d{10}-\\d{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:"EnterpriseIdentificationNumber"jletto_json=simple_to_jsonto_valueendmodulePaymentVoucherNumber=structtypenonrect=stringletcontext_="PaymentVoucherNumber"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^(\\d{17}|[A-Za-z]{3}\\d{13})$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"PaymentVoucherNumber"jletto_json=simple_to_jsonto_valueendmoduleTaxDocumentAccessToken=structtypenonrect=stringletcontext_="TaxDocumentAccessToken"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^[\\s\\S]*$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"TaxDocumentAccessToken"jletto_json=simple_to_jsonto_valueendmoduleAuthorities=structtypenonrect=Authority.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:Authority.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:Authority.of_xml)letof_jsonj=list_of_json~kind:"Authorities"~of_json:Authority.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleDisplayName=structtypenonrect=stringletcontext_="DisplayName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:0)>>=(fun()->(check_string_maxi~max:50)>>=(fun()->check_patterni~pattern:"^[\\s\\S]*$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"DisplayName"jletto_json=simple_to_jsonto_valueendmoduleGenericString=structtypenonrect=stringletcontext_="GenericString"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:200)>>=(fun()->check_patterni~pattern:"^[\\s\\S]*$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"GenericString"jletto_json=simple_to_jsonto_valueendmoduleSourceS3Location=structtypenonrect={bucket:S3BucketName.t[@ocaml.doc"The name of your Amazon S3 bucket that your tax document is located."];key:S3Key.t[@ocaml.doc"The object key of your tax document object in Amazon S3."]}letcontext_="SourceS3Location"letmake~bucket=fun~key->fun()->{bucket;key}letto_valuex=structure_to_value[("bucket",(Some(S3BucketName.to_valuex.bucket)));("key",(Some(S3Key.to_valuex.key)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letkey=S3Key.of_xml(Xml.child_exn~context:context_xml_arg0"key")inletbucket=S3BucketName.of_xml(Xml.child_exn~context:context_xml_arg0"bucket")inmake~key~bucket()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letkey=field_map_exnjson__"key"S3Key.of_jsoninletbucket=field_map_exnjson__"bucket"S3BucketName.of_jsoninmake~key~bucket()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The Amazon S3 bucket in your account where your tax document is located."]moduleTaxRegistrationDocFile=structtypenonrect={fileContent:FileBlob.t[@ocaml.doc"The tax registration document content."];fileName:TaxDocumentName.t[@ocaml.doc"The tax registration document name."]}letcontext_="TaxRegistrationDocFile"letmake~fileContent=fun~fileName->fun()->{fileContent;fileName}letto_valuex=structure_to_value[("fileContent",(Some(FileBlob.to_valuex.fileContent)));("fileName",(Some(TaxDocumentName.to_valuex.fileName)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letfileName=TaxDocumentName.of_xml(Xml.child_exn~context:context_xml_arg0"fileName")inletfileContent=FileBlob.of_xml(Xml.child_exn~context:context_xml_arg0"fileContent")inmake~fileName~fileContent()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letfileName=field_map_exnjson__"fileName"TaxDocumentName.of_jsoninletfileContent=field_map_exnjson__"fileContent"FileBlob.of_jsoninmake~fileName~fileContent()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The tax registration document."]moduleAddressLine1=structtypenonrect=stringletcontext_="AddressLine1"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:180)>>=(fun()->check_patterni~pattern:"^(?!\\s*$)[\\s\\S]+$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"AddressLine1"jletto_json=simple_to_jsonto_valueendmoduleAddressLine2=structtypenonrect=stringletcontext_="AddressLine2"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:60)>>=(fun()->check_patterni~pattern:"^(?!\\s*$)[\\s\\S]+$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"AddressLine2"jletto_json=simple_to_jsonto_valueendmoduleAddressLine3=structtypenonrect=stringletcontext_="AddressLine3"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:60)>>=(fun()->check_patterni~pattern:"^(?!\\s*$)[\\s\\S]+$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"AddressLine3"jletto_json=simple_to_jsonto_valueendmoduleCity=structtypenonrect=stringletcontext_="City"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:50)>>=(fun()->check_patterni~pattern:"^(?!\\s*$)[\\s\\S]+$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"City"jletto_json=simple_to_jsonto_valueendmoduleDistrict=structtypenonrect=stringletcontext_="District"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:50)>>=(fun()->check_patterni~pattern:"^(?!\\s*$)[\\s\\S]+$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"District"jletto_json=simple_to_jsonto_valueendmodulePostalCode=structtypenonrect=stringletcontext_="PostalCode"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:20)>>=(fun()->check_patterni~pattern:"^(?!\\s*$)[\\s\\S]+$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"PostalCode"jletto_json=simple_to_jsonto_valueendmoduleAddressRoleType=structtypenonrect=|TaxAddress|BillingAddress|ContactAddress|Non_static_idofstringletmakei=iletto_string=function|TaxAddress->"TaxAddress"|BillingAddress->"BillingAddress"|ContactAddress->"ContactAddress"|Non_static_ids->sletof_string=function|"TaxAddress"->TaxAddress|"BillingAddress"->BillingAddress|"ContactAddress"->ContactAddress|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 AddressRoleType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"AddressRoleType"j)letto_json=simple_to_jsonto_valueendmoduleJurisdiction=structtypenonrect={countryCode:CountryCode.toption[@ocaml.doc"The country code of the jurisdiction."];stateOrRegion:State.toption[@ocaml.doc"The state, region, or province associated with the country of the jurisdiction, if applicable."]}letmake?countryCode=fun?stateOrRegion->fun()->{countryCode;stateOrRegion}letto_valuex=structure_to_value[("countryCode",(Option.mapx.countryCode~f:CountryCode.to_value));("stateOrRegion",(Option.mapx.stateOrRegion~f:State.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstateOrRegion=(Option.map~f:State.of_xml)(Xml.childxml_arg0"stateOrRegion")inletcountryCode=(Option.map~f:CountryCode.of_xml)(Xml.childxml_arg0"countryCode")inmake?stateOrRegion?countryCode()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstateOrRegion=field_mapjson__"stateOrRegion"State.of_jsoninletcountryCode=field_mapjson__"countryCode"CountryCode.of_jsoninmake?stateOrRegion?countryCode()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The jurisdiction details of the TRN information of the customers. This doesn't contain full legal address, and contains only country code and state/region/province."]moduleBrazilAdditionalInfo=structtypenonrect={ccmCode:CcmCode.toption[@ocaml.doc"The Cadastro de Contribuintes Mobili\195\161rios (CCM) code for your TRN in Brazil. This only applies for a CNPJ tax type for the S\195\163o Paulo municipality."];legalNatureCode:LegalNatureCode.toption[@ocaml.doc"Legal nature of business, based on your TRN in Brazil. This only applies for a CNPJ tax type."]}letmake?ccmCode=fun?legalNatureCode->fun()->{ccmCode;legalNatureCode}letto_valuex=structure_to_value[("ccmCode",(Option.mapx.ccmCode~f:CcmCode.to_value));("legalNatureCode",(Option.mapx.legalNatureCode~f:LegalNatureCode.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlegalNatureCode=(Option.map~f:LegalNatureCode.of_xml)(Xml.childxml_arg0"legalNatureCode")inletccmCode=(Option.map~f:CcmCode.of_xml)(Xml.childxml_arg0"ccmCode")inmake?legalNatureCode?ccmCode()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlegalNatureCode=field_mapjson__"legalNatureCode"LegalNatureCode.of_jsoninletccmCode=field_mapjson__"ccmCode"CcmCode.of_jsoninmake?legalNatureCode?ccmCode()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional tax information associated with your TRN in Brazil."]moduleCanadaAdditionalInfo=structtypenonrect={canadaQuebecSalesTaxNumber:CanadaQuebecSalesTaxNumberString.toption[@ocaml.doc"The Quebec Sales Tax ID number. Leave blank if you do not have a Quebec Sales Tax ID number."];canadaRetailSalesTaxNumber:CanadaRetailSalesTaxNumberString.toption[@ocaml.doc"Manitoba Retail Sales Tax ID number. Customers purchasing Amazon Web Services services for resale in Manitoba must provide a valid Retail Sales Tax ID number for Manitoba. Leave this blank if you do not have a Retail Sales Tax ID number in Manitoba or are not purchasing Amazon Web Services services for resale."];isResellerAccount:Boolean.toption[@ocaml.doc"The value for this parameter must be true if the provincialSalesTaxId value is provided for a TRN in British Columbia, Saskatchewan, or Manitoba provinces. To claim a provincial sales tax (PST) and retail sales tax (RST) reseller exemption, you must confirm that purchases from this account were made for resale. Otherwise, remove the PST or RST number from the provincialSalesTaxId parameter from your request."];provincialSalesTaxId:CanadaProvincialSalesTaxIdString.toption[@ocaml.doc"The provincial sales tax ID for your TRN in Canada. This parameter can represent the following: Provincial sales tax ID number for British Columbia and Saskatchewan provinces Manitoba retail sales tax ID number for Manitoba province Quebec sales tax ID number for Quebec province The Tax Setting API only accepts this parameter if the TRN is specified for the previous provinces. For other provinces, the Tax Settings API doesn't accept this parameter."]}letmake?canadaQuebecSalesTaxNumber=fun?canadaRetailSalesTaxNumber->fun?isResellerAccount->fun?provincialSalesTaxId->fun()->{canadaQuebecSalesTaxNumber;canadaRetailSalesTaxNumber;isResellerAccount;provincialSalesTaxId}letto_valuex=structure_to_value[("canadaQuebecSalesTaxNumber",(Option.mapx.canadaQuebecSalesTaxNumber~f:CanadaQuebecSalesTaxNumberString.to_value));("canadaRetailSalesTaxNumber",(Option.mapx.canadaRetailSalesTaxNumber~f:CanadaRetailSalesTaxNumberString.to_value));("isResellerAccount",(Option.mapx.isResellerAccount~f:Boolean.to_value));("provincialSalesTaxId",(Option.mapx.provincialSalesTaxId~f:CanadaProvincialSalesTaxIdString.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letprovincialSalesTaxId=(Option.map~f:CanadaProvincialSalesTaxIdString.of_xml)(Xml.childxml_arg0"provincialSalesTaxId")inletisResellerAccount=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"isResellerAccount")inletcanadaRetailSalesTaxNumber=(Option.map~f:CanadaRetailSalesTaxNumberString.of_xml)(Xml.childxml_arg0"canadaRetailSalesTaxNumber")inletcanadaQuebecSalesTaxNumber=(Option.map~f:CanadaQuebecSalesTaxNumberString.of_xml)(Xml.childxml_arg0"canadaQuebecSalesTaxNumber")inmake?provincialSalesTaxId?isResellerAccount?canadaRetailSalesTaxNumber?canadaQuebecSalesTaxNumber()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letprovincialSalesTaxId=field_mapjson__"provincialSalesTaxId"CanadaProvincialSalesTaxIdString.of_jsoninletisResellerAccount=field_mapjson__"isResellerAccount"Boolean.of_jsoninletcanadaRetailSalesTaxNumber=field_mapjson__"canadaRetailSalesTaxNumber"CanadaRetailSalesTaxNumberString.of_jsoninletcanadaQuebecSalesTaxNumber=field_mapjson__"canadaQuebecSalesTaxNumber"CanadaQuebecSalesTaxNumberString.of_jsoninmake?provincialSalesTaxId?isResellerAccount?canadaRetailSalesTaxNumber?canadaQuebecSalesTaxNumber()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional tax information associated with your TRN in Canada ."]moduleEgyptAdditionalInfo=structtypenonrect={uniqueIdentificationNumber:UniqueIdentificationNumber.toption[@ocaml.doc"The unique identification number provided by the Egypt Tax Authority."];uniqueIdentificationNumberExpirationDate:DateString.toption[@ocaml.doc"The expiration date of the unique identification number provided by the Egypt Tax Authority."]}letmake?uniqueIdentificationNumber=fun?uniqueIdentificationNumberExpirationDate->fun()->{uniqueIdentificationNumber;uniqueIdentificationNumberExpirationDate}letto_valuex=structure_to_value[("uniqueIdentificationNumber",(Option.mapx.uniqueIdentificationNumber~f:UniqueIdentificationNumber.to_value));("uniqueIdentificationNumberExpirationDate",(Option.mapx.uniqueIdentificationNumberExpirationDate~f:DateString.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letuniqueIdentificationNumberExpirationDate=(Option.map~f:DateString.of_xml)(Xml.childxml_arg0"uniqueIdentificationNumberExpirationDate")inletuniqueIdentificationNumber=(Option.map~f:UniqueIdentificationNumber.of_xml)(Xml.childxml_arg0"uniqueIdentificationNumber")inmake?uniqueIdentificationNumberExpirationDate?uniqueIdentificationNumber()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letuniqueIdentificationNumberExpirationDate=field_mapjson__"uniqueIdentificationNumberExpirationDate"DateString.of_jsoninletuniqueIdentificationNumber=field_mapjson__"uniqueIdentificationNumber"UniqueIdentificationNumber.of_jsoninmake?uniqueIdentificationNumberExpirationDate?uniqueIdentificationNumber()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional tax information to specify for a TRN in Egypt."]moduleEstoniaAdditionalInfo=structtypenonrect={registryCommercialCode:RegistryCommercialCode.t[@ocaml.doc"Registry commercial code (RCC) for your TRN in Estonia. This value is an eight-numeric string, such as 12345678."]}letcontext_="EstoniaAdditionalInfo"letmake~registryCommercialCode=fun()->{registryCommercialCode}letto_valuex=structure_to_value[("registryCommercialCode",(Some(RegistryCommercialCode.to_valuex.registryCommercialCode)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letregistryCommercialCode=RegistryCommercialCode.of_xml(Xml.child_exn~context:context_xml_arg0"registryCommercialCode")inmake~registryCommercialCode()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letregistryCommercialCode=field_map_exnjson__"registryCommercialCode"RegistryCommercialCode.of_jsoninmake~registryCommercialCode()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional tax information associated with your TRN in Estonia."]moduleGeorgiaAdditionalInfo=structtypenonrect={personType:PersonType.t[@ocaml.doc"The legal person or physical person assigned to this TRN in Georgia."]}letcontext_="GeorgiaAdditionalInfo"letmake~personType=fun()->{personType}letto_valuex=structure_to_value[("personType",(Some(PersonType.to_valuex.personType)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpersonType=PersonType.of_xml(Xml.child_exn~context:context_xml_arg0"personType")inmake~personType()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpersonType=field_map_exnjson__"personType"PersonType.of_jsoninmake~personType()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional tax information associated with your TRN in Georgia."]moduleGreeceAdditionalInfo=structtypenonrect={contractingAuthorityCode:ContractingAuthorityCode.toption[@ocaml.doc"The code of contracting authority for e-invoicing."]}letmake?contractingAuthorityCode=fun()->{contractingAuthorityCode}letto_valuex=structure_to_value[("contractingAuthorityCode",(Option.mapx.contractingAuthorityCode~f:ContractingAuthorityCode.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcontractingAuthorityCode=(Option.map~f:ContractingAuthorityCode.of_xml)(Xml.childxml_arg0"contractingAuthorityCode")inmake?contractingAuthorityCode()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcontractingAuthorityCode=field_mapjson__"contractingAuthorityCode"ContractingAuthorityCode.of_jsoninmake?contractingAuthorityCode()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional tax information to specify for a TRN in Greece."]moduleIndiaAdditionalInfo=structtypenonrect={pan:Pan.toption[@ocaml.doc"India pan information associated with the account."]}letmake?pan=fun()->{pan}letto_valuex=structure_to_value[("pan",(Option.mapx.pan~f:Pan.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpan=(Option.map~f:Pan.of_xml)(Xml.childxml_arg0"pan")inmake?pan()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpan=field_mapjson__"pan"Pan.of_jsoninmake?pan()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional tax information in India."]moduleIndonesiaAdditionalInfo=structtypenonrect={decisionNumber:DecisionNumber.toption[@ocaml.doc"VAT-exempt customers have a Directorate General of Taxation (DGT) exemption letter or certificate (Surat Keterangan Bebas) decision number. Non-collected VAT have a DGT letter or certificate (Surat Keterangan Tidak Dipungut)."];ppnExceptionDesignationCode:PpnExceptionDesignationCode.toption[@ocaml.doc"Exception code if you are designated by Directorate General of Taxation (DGT) as a VAT collector, non-collected VAT, or VAT-exempt customer."];taxRegistrationNumberType:IndonesiaTaxRegistrationNumberType.toption[@ocaml.doc"The tax registration number type."]}letmake?decisionNumber=fun?ppnExceptionDesignationCode->fun?taxRegistrationNumberType->fun()->{decisionNumber;ppnExceptionDesignationCode;taxRegistrationNumberType}letto_valuex=structure_to_value[("decisionNumber",(Option.mapx.decisionNumber~f:DecisionNumber.to_value));("ppnExceptionDesignationCode",(Option.mapx.ppnExceptionDesignationCode~f:PpnExceptionDesignationCode.to_value));("taxRegistrationNumberType",(Option.mapx.taxRegistrationNumberType~f:IndonesiaTaxRegistrationNumberType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettaxRegistrationNumberType=(Option.map~f:IndonesiaTaxRegistrationNumberType.of_xml)(Xml.childxml_arg0"taxRegistrationNumberType")inletppnExceptionDesignationCode=(Option.map~f:PpnExceptionDesignationCode.of_xml)(Xml.childxml_arg0"ppnExceptionDesignationCode")inletdecisionNumber=(Option.map~f:DecisionNumber.of_xml)(Xml.childxml_arg0"decisionNumber")inmake?taxRegistrationNumberType?ppnExceptionDesignationCode?decisionNumber()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettaxRegistrationNumberType=field_mapjson__"taxRegistrationNumberType"IndonesiaTaxRegistrationNumberType.of_jsoninletppnExceptionDesignationCode=field_mapjson__"ppnExceptionDesignationCode"PpnExceptionDesignationCode.of_jsoninletdecisionNumber=field_mapjson__"decisionNumber"DecisionNumber.of_jsoninmake?taxRegistrationNumberType?ppnExceptionDesignationCode?decisionNumber()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional tax information associated with your TRN in Indonesia."]moduleIsraelAdditionalInfo=structtypenonrect={customerType:IsraelCustomerType.t[@ocaml.doc"Customer type for your TRN in Israel. The value can be Business or Individual. Use Businessfor entities such as not-for-profit and financial institutions."];dealerType:IsraelDealerType.t[@ocaml.doc"Dealer type for your TRN in Israel. If you're not a local authorized dealer with an Israeli VAT ID, specify your tax identification number so that Amazon Web Services can send you a compliant tax invoice."]}letcontext_="IsraelAdditionalInfo"letmake~customerType=fun~dealerType->fun()->{customerType;dealerType}letto_valuex=structure_to_value[("customerType",(Some(IsraelCustomerType.to_valuex.customerType)));("dealerType",(Some(IsraelDealerType.to_valuex.dealerType)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letdealerType=IsraelDealerType.of_xml(Xml.child_exn~context:context_xml_arg0"dealerType")inletcustomerType=IsraelCustomerType.of_xml(Xml.child_exn~context:context_xml_arg0"customerType")inmake~dealerType~customerType()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letdealerType=field_map_exnjson__"dealerType"IsraelDealerType.of_jsoninletcustomerType=field_map_exnjson__"customerType"IsraelCustomerType.of_jsoninmake~dealerType~customerType()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional tax information associated with your TRN in Israel."]moduleItalyAdditionalInfo=structtypenonrect={cigNumber:CigNumber.toption[@ocaml.doc"The tender procedure identification code."];cupNumber:CupNumber.toption[@ocaml.doc"Additional tax information to specify for a TRN in Italy. This is managed by the Interministerial Committee for Economic Planning (CIPE) which characterizes every public investment project (Individual Project Code)."];sdiAccountId:SdiAccountId.toption[@ocaml.doc"Additional tax information to specify for a TRN in Italy. Use CodiceDestinatario to receive your invoices via web service (API) or FTP."];taxCode:TaxCode.toption[@ocaml.doc"List of service tax codes for your TRN in Italy. You can use your customer tax code as part of a VAT Group."]}letmake?cigNumber=fun?cupNumber->fun?sdiAccountId->fun?taxCode->fun()->{cigNumber;cupNumber;sdiAccountId;taxCode}letto_valuex=structure_to_value[("cigNumber",(Option.mapx.cigNumber~f:CigNumber.to_value));("cupNumber",(Option.mapx.cupNumber~f:CupNumber.to_value));("sdiAccountId",(Option.mapx.sdiAccountId~f:SdiAccountId.to_value));("taxCode",(Option.mapx.taxCode~f:TaxCode.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettaxCode=(Option.map~f:TaxCode.of_xml)(Xml.childxml_arg0"taxCode")inletsdiAccountId=(Option.map~f:SdiAccountId.of_xml)(Xml.childxml_arg0"sdiAccountId")inletcupNumber=(Option.map~f:CupNumber.of_xml)(Xml.childxml_arg0"cupNumber")inletcigNumber=(Option.map~f:CigNumber.of_xml)(Xml.childxml_arg0"cigNumber")inmake?taxCode?sdiAccountId?cupNumber?cigNumber()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettaxCode=field_mapjson__"taxCode"TaxCode.of_jsoninletsdiAccountId=field_mapjson__"sdiAccountId"SdiAccountId.of_jsoninletcupNumber=field_mapjson__"cupNumber"CupNumber.of_jsoninletcigNumber=field_mapjson__"cigNumber"CigNumber.of_jsoninmake?taxCode?sdiAccountId?cupNumber?cigNumber()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional tax information associated with your TRN in Italy."]moduleKenyaAdditionalInfo=structtypenonrect={personType:PersonType.t[@ocaml.doc"The legal person or physical person assigned to this TRN in Kenya."]}letcontext_="KenyaAdditionalInfo"letmake~personType=fun()->{personType}letto_valuex=structure_to_value[("personType",(Some(PersonType.to_valuex.personType)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpersonType=PersonType.of_xml(Xml.child_exn~context:context_xml_arg0"personType")inmake~personType()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpersonType=field_map_exnjson__"personType"PersonType.of_jsoninmake~personType()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional tax information associated with your TRN in Kenya."]moduleMalaysiaAdditionalInfo=structtypenonrect={businessRegistrationNumber:BusinessRegistrationNumber.toption[@ocaml.doc"The tax registration number (TRN) in Malaysia. For individual, you can specify the taxInformationNumber in MalaysiaAdditionalInfo with NRIC type, and a valid MyKad or NRIC number. For business, you must specify a businessRegistrationNumber in MalaysiaAdditionalInfo with a TIN type and tax identification number. For business resellers, you must specify a businessRegistrationNumber and taxInformationNumber in MalaysiaAdditionalInfo with a sales and service tax (SST) type and a valid SST number. For business resellers with service codes, you must specify businessRegistrationNumber, taxInformationNumber, and distinct serviceTaxCodes in MalaysiaAdditionalInfo with a SST type and valid sales and service tax (SST) number. By using this API operation, Amazon Web Services registers your self-declaration that you\226\128\153re an authorized business reseller registered with the Royal Malaysia Customs Department (RMCD), and have a valid SST number."];serviceTaxCodes:MalaysiaServiceTaxCodesList.toption[@ocaml.doc"List of service tax codes for your TRN in Malaysia."];taxInformationNumber:TaxInformationNumber.toption[@ocaml.doc"The tax information number in Malaysia. For individual, you can specify the taxInformationNumber in MalaysiaAdditionalInfo with NRIC type, and a valid MyKad or NRIC number. For business resellers, you must specify a businessRegistrationNumber and taxInformationNumber in MalaysiaAdditionalInfo with a sales and service tax (SST) type and a valid SST number. For business resellers with service codes, you must specify businessRegistrationNumber, taxInformationNumber, and distinct serviceTaxCodes in MalaysiaAdditionalInfo with a SST type and valid sales and service tax (SST) number. By using this API operation, Amazon Web Services registers your self-declaration that you\226\128\153re an authorized business reseller registered with the Royal Malaysia Customs Department (RMCD), and have a valid SST number."]}letmake?businessRegistrationNumber=fun?serviceTaxCodes->fun?taxInformationNumber->fun()->{businessRegistrationNumber;serviceTaxCodes;taxInformationNumber}letto_valuex=structure_to_value[("businessRegistrationNumber",(Option.mapx.businessRegistrationNumber~f:BusinessRegistrationNumber.to_value));("serviceTaxCodes",(Option.mapx.serviceTaxCodes~f:MalaysiaServiceTaxCodesList.to_value));("taxInformationNumber",(Option.mapx.taxInformationNumber~f:TaxInformationNumber.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettaxInformationNumber=(Option.map~f:TaxInformationNumber.of_xml)(Xml.childxml_arg0"taxInformationNumber")inletserviceTaxCodes=(Option.map~f:MalaysiaServiceTaxCodesList.of_xml)(Xml.childxml_arg0"serviceTaxCodes")inletbusinessRegistrationNumber=(Option.map~f:BusinessRegistrationNumber.of_xml)(Xml.childxml_arg0"businessRegistrationNumber")inmake?taxInformationNumber?serviceTaxCodes?businessRegistrationNumber()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettaxInformationNumber=field_mapjson__"taxInformationNumber"TaxInformationNumber.of_jsoninletserviceTaxCodes=field_mapjson__"serviceTaxCodes"MalaysiaServiceTaxCodesList.of_jsoninletbusinessRegistrationNumber=field_mapjson__"businessRegistrationNumber"BusinessRegistrationNumber.of_jsoninmake?taxInformationNumber?serviceTaxCodes?businessRegistrationNumber()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional tax information associated with your TRN in Malaysia."]modulePolandAdditionalInfo=structtypenonrect={individualRegistrationNumber:IndividualRegistrationNumber.toption[@ocaml.doc"The individual tax registration number (NIP). Individual NIP is valid for other taxes excluding VAT purposes."];isGroupVatEnabled:Boolean.toption[@ocaml.doc"True if your business is a member of a VAT group with a NIP active for VAT purposes. Otherwise, this is false."]}letmake?individualRegistrationNumber=fun?isGroupVatEnabled->fun()->{individualRegistrationNumber;isGroupVatEnabled}letto_valuex=structure_to_value[("individualRegistrationNumber",(Option.mapx.individualRegistrationNumber~f:IndividualRegistrationNumber.to_value));("isGroupVatEnabled",(Option.mapx.isGroupVatEnabled~f:Boolean.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letisGroupVatEnabled=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"isGroupVatEnabled")inletindividualRegistrationNumber=(Option.map~f:IndividualRegistrationNumber.of_xml)(Xml.childxml_arg0"individualRegistrationNumber")inmake?isGroupVatEnabled?individualRegistrationNumber()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letisGroupVatEnabled=field_mapjson__"isGroupVatEnabled"Boolean.of_jsoninletindividualRegistrationNumber=field_mapjson__"individualRegistrationNumber"IndividualRegistrationNumber.of_jsoninmake?isGroupVatEnabled?individualRegistrationNumber()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional tax information associated with your TRN in Poland."]moduleRomaniaAdditionalInfo=structtypenonrect={taxRegistrationNumberType:TaxRegistrationNumberType.t[@ocaml.doc"The tax registration number type. The value can be TaxRegistrationNumber or LocalRegistrationNumber."]}letcontext_="RomaniaAdditionalInfo"letmake~taxRegistrationNumberType=fun()->{taxRegistrationNumberType}letto_valuex=structure_to_value[("taxRegistrationNumberType",(Some(TaxRegistrationNumberType.to_valuex.taxRegistrationNumberType)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettaxRegistrationNumberType=TaxRegistrationNumberType.of_xml(Xml.child_exn~context:context_xml_arg0"taxRegistrationNumberType")inmake~taxRegistrationNumberType()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettaxRegistrationNumberType=field_map_exnjson__"taxRegistrationNumberType"TaxRegistrationNumberType.of_jsoninmake~taxRegistrationNumberType()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional tax information to specify for a TRN in Romania."]moduleSaudiArabiaAdditionalInfo=structtypenonrect={taxRegistrationNumberType:SaudiArabiaTaxRegistrationNumberType.toption[@ocaml.doc"The tax registration number type."]}letmake?taxRegistrationNumberType=fun()->{taxRegistrationNumberType}letto_valuex=structure_to_value[("taxRegistrationNumberType",(Option.mapx.taxRegistrationNumberType~f:SaudiArabiaTaxRegistrationNumberType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettaxRegistrationNumberType=(Option.map~f:SaudiArabiaTaxRegistrationNumberType.of_xml)(Xml.childxml_arg0"taxRegistrationNumberType")inmake?taxRegistrationNumberType()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettaxRegistrationNumberType=field_mapjson__"taxRegistrationNumberType"SaudiArabiaTaxRegistrationNumberType.of_jsoninmake?taxRegistrationNumberType()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional tax information associated with your TRN in Saudi Arabia."]moduleSouthKoreaAdditionalInfo=structtypenonrect={businessRepresentativeName:BusinessRepresentativeName.t[@ocaml.doc"The business legal name based on the most recently uploaded tax registration certificate."];itemOfBusiness:ItemOfBusiness.t[@ocaml.doc"Item of business based on the most recently uploaded tax registration certificate."];lineOfBusiness:LineOfBusiness.t[@ocaml.doc"Line of business based on the most recently uploaded tax registration certificate."]}letcontext_="SouthKoreaAdditionalInfo"letmake~businessRepresentativeName=fun~itemOfBusiness->fun~lineOfBusiness->fun()->{businessRepresentativeName;itemOfBusiness;lineOfBusiness}letto_valuex=structure_to_value[("businessRepresentativeName",(Some(BusinessRepresentativeName.to_valuex.businessRepresentativeName)));("itemOfBusiness",(Some(ItemOfBusiness.to_valuex.itemOfBusiness)));("lineOfBusiness",(Some(LineOfBusiness.to_valuex.lineOfBusiness)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letlineOfBusiness=LineOfBusiness.of_xml(Xml.child_exn~context:context_xml_arg0"lineOfBusiness")inletitemOfBusiness=ItemOfBusiness.of_xml(Xml.child_exn~context:context_xml_arg0"itemOfBusiness")inletbusinessRepresentativeName=BusinessRepresentativeName.of_xml(Xml.child_exn~context:context_xml_arg0"businessRepresentativeName")inmake~lineOfBusiness~itemOfBusiness~businessRepresentativeName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letlineOfBusiness=field_map_exnjson__"lineOfBusiness"LineOfBusiness.of_jsoninletitemOfBusiness=field_map_exnjson__"itemOfBusiness"ItemOfBusiness.of_jsoninletbusinessRepresentativeName=field_map_exnjson__"businessRepresentativeName"BusinessRepresentativeName.of_jsoninmake~lineOfBusiness~itemOfBusiness~businessRepresentativeName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional tax information associated with your TRN in South Korea."]moduleSpainAdditionalInfo=structtypenonrect={registrationType:RegistrationType.t[@ocaml.doc"The registration type in Spain."]}letcontext_="SpainAdditionalInfo"letmake~registrationType=fun()->{registrationType}letto_valuex=structure_to_value[("registrationType",(Some(RegistrationType.to_valuex.registrationType)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letregistrationType=RegistrationType.of_xml(Xml.child_exn~context:context_xml_arg0"registrationType")inmake~registrationType()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letregistrationType=field_map_exnjson__"registrationType"RegistrationType.of_jsoninmake~registrationType()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional tax information associated with your TRN in Spain."]moduleTurkeyAdditionalInfo=structtypenonrect={industries:Industries.toption[@ocaml.doc"The industry information that tells the Tax Settings API if you're subject to additional withholding taxes. This information required for business-to-business (B2B) customers. This information is conditionally mandatory for B2B customers who are subject to KDV tax."];kepEmailId:KepEmailId.toption[@ocaml.doc"The Registered Electronic Mail (REM) that is used to send notarized communication. This parameter is optional for business-to-business (B2B) and business-to-government (B2G) customers. It's not required for business-to-consumer (B2C) customers."];secondaryTaxId:SecondaryTaxId.toption[@ocaml.doc"Secondary tax ID (\226\128\156harcama birimi VKN\226\128\157si\226\128\157). If one isn't provided, we will use your VKN as the secondary ID."];taxOffice:TaxOffice.toption[@ocaml.doc"The tax office where you're registered. You can enter this information as a string. The Tax Settings API will add this information to your invoice. This parameter is required for business-to-business (B2B) and business-to-government customers. It's not required for business-to-consumer (B2C) customers."]}letmake?industries=fun?kepEmailId->fun?secondaryTaxId->fun?taxOffice->fun()->{industries;kepEmailId;secondaryTaxId;taxOffice}letto_valuex=structure_to_value[("industries",(Option.mapx.industries~f:Industries.to_value));("kepEmailId",(Option.mapx.kepEmailId~f:KepEmailId.to_value));("secondaryTaxId",(Option.mapx.secondaryTaxId~f:SecondaryTaxId.to_value));("taxOffice",(Option.mapx.taxOffice~f:TaxOffice.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettaxOffice=(Option.map~f:TaxOffice.of_xml)(Xml.childxml_arg0"taxOffice")inletsecondaryTaxId=(Option.map~f:SecondaryTaxId.of_xml)(Xml.childxml_arg0"secondaryTaxId")inletkepEmailId=(Option.map~f:KepEmailId.of_xml)(Xml.childxml_arg0"kepEmailId")inletindustries=(Option.map~f:Industries.of_xml)(Xml.childxml_arg0"industries")inmake?taxOffice?secondaryTaxId?kepEmailId?industries()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettaxOffice=field_mapjson__"taxOffice"TaxOffice.of_jsoninletsecondaryTaxId=field_mapjson__"secondaryTaxId"SecondaryTaxId.of_jsoninletkepEmailId=field_mapjson__"kepEmailId"KepEmailId.of_jsoninletindustries=field_mapjson__"industries"Industries.of_jsoninmake?taxOffice?secondaryTaxId?kepEmailId?industries()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional tax information associated with your TRN in Turkey."]moduleUkraineAdditionalInfo=structtypenonrect={ukraineTrnType:UkraineTrnType.t[@ocaml.doc"The tax registration type."]}letcontext_="UkraineAdditionalInfo"letmake~ukraineTrnType=fun()->{ukraineTrnType}letto_valuex=structure_to_value[("ukraineTrnType",(Some(UkraineTrnType.to_valuex.ukraineTrnType)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letukraineTrnType=UkraineTrnType.of_xml(Xml.child_exn~context:context_xml_arg0"ukraineTrnType")inmake~ukraineTrnType()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letukraineTrnType=field_map_exnjson__"ukraineTrnType"UkraineTrnType.of_jsoninmake~ukraineTrnType()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional tax information associated with your TRN in Ukraine."]moduleUzbekistanAdditionalInfo=structtypenonrect={taxRegistrationNumberType:UzbekistanTaxRegistrationNumberType.toption[@ocaml.doc"The tax registration number type. The tax registration number type valid values are Business and Individual."];vatRegistrationNumber:VatRegistrationNumber.toption[@ocaml.doc"The unique 12-digit number issued to identify VAT-registered identities in Uzbekistan."]}letmake?taxRegistrationNumberType=fun?vatRegistrationNumber->fun()->{taxRegistrationNumberType;vatRegistrationNumber}letto_valuex=structure_to_value[("taxRegistrationNumberType",(Option.mapx.taxRegistrationNumberType~f:UzbekistanTaxRegistrationNumberType.to_value));("vatRegistrationNumber",(Option.mapx.vatRegistrationNumber~f:VatRegistrationNumber.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvatRegistrationNumber=(Option.map~f:VatRegistrationNumber.of_xml)(Xml.childxml_arg0"vatRegistrationNumber")inlettaxRegistrationNumberType=(Option.map~f:UzbekistanTaxRegistrationNumberType.of_xml)(Xml.childxml_arg0"taxRegistrationNumberType")inmake?vatRegistrationNumber?taxRegistrationNumberType()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvatRegistrationNumber=field_mapjson__"vatRegistrationNumber"VatRegistrationNumber.of_jsoninlettaxRegistrationNumberType=field_mapjson__"taxRegistrationNumberType"UzbekistanTaxRegistrationNumberType.of_jsoninmake?vatRegistrationNumber?taxRegistrationNumberType()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional tax information to specify for a TRN in Uzbekistan."]moduleVietnamAdditionalInfo=structtypenonrect={electronicTransactionCodeNumber:ElectronicTransactionCodeNumber.toption[@ocaml.doc"The electronic transaction code number on the tax return document. This field must be provided for successful API operation."];enterpriseIdentificationNumber:EnterpriseIdentificationNumber.toption[@ocaml.doc"The enterprise identification number for tax registration. This field must be provided for successful API operation."];paymentVoucherNumber:PaymentVoucherNumber.toption[@ocaml.doc"The payment voucher number on the tax return payment document. This field must be provided for successful API operation."];paymentVoucherNumberDate:DateString.toption[@ocaml.doc"The date on the tax return payment document. This field must be provided for successful API operation."]}letmake?electronicTransactionCodeNumber=fun?enterpriseIdentificationNumber->fun?paymentVoucherNumber->fun?paymentVoucherNumberDate->fun()->{electronicTransactionCodeNumber;enterpriseIdentificationNumber;paymentVoucherNumber;paymentVoucherNumberDate}letto_valuex=structure_to_value[("electronicTransactionCodeNumber",(Option.mapx.electronicTransactionCodeNumber~f:ElectronicTransactionCodeNumber.to_value));("enterpriseIdentificationNumber",(Option.mapx.enterpriseIdentificationNumber~f:EnterpriseIdentificationNumber.to_value));("paymentVoucherNumber",(Option.mapx.paymentVoucherNumber~f:PaymentVoucherNumber.to_value));("paymentVoucherNumberDate",(Option.mapx.paymentVoucherNumberDate~f:DateString.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpaymentVoucherNumberDate=(Option.map~f:DateString.of_xml)(Xml.childxml_arg0"paymentVoucherNumberDate")inletpaymentVoucherNumber=(Option.map~f:PaymentVoucherNumber.of_xml)(Xml.childxml_arg0"paymentVoucherNumber")inletenterpriseIdentificationNumber=(Option.map~f:EnterpriseIdentificationNumber.of_xml)(Xml.childxml_arg0"enterpriseIdentificationNumber")inletelectronicTransactionCodeNumber=(Option.map~f:ElectronicTransactionCodeNumber.of_xml)(Xml.childxml_arg0"electronicTransactionCodeNumber")inmake?paymentVoucherNumberDate?paymentVoucherNumber?enterpriseIdentificationNumber?electronicTransactionCodeNumber()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpaymentVoucherNumberDate=field_mapjson__"paymentVoucherNumberDate"DateString.of_jsoninletpaymentVoucherNumber=field_mapjson__"paymentVoucherNumber"PaymentVoucherNumber.of_jsoninletenterpriseIdentificationNumber=field_mapjson__"enterpriseIdentificationNumber"EnterpriseIdentificationNumber.of_jsoninletelectronicTransactionCodeNumber=field_mapjson__"electronicTransactionCodeNumber"ElectronicTransactionCodeNumber.of_jsoninmake?paymentVoucherNumberDate?paymentVoucherNumber?enterpriseIdentificationNumber?electronicTransactionCodeNumber()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional tax information to specify for a TRN in Vietnam."]moduleTaxDocumentMetadata=structtypenonrect={taxDocumentAccessToken:TaxDocumentAccessToken.t[@ocaml.doc"The tax document access token, which contains information that the Tax Settings API uses to locate the tax document. If you update your tax registration, the existing taxDocumentAccessToken won't be valid. To get the latest token, call the GetTaxRegistration or ListTaxRegistrations API operation. This token is valid for 24 hours."];taxDocumentName:TaxDocumentName.t[@ocaml.doc"The name of your tax document."]}letcontext_="TaxDocumentMetadata"letmake~taxDocumentAccessToken=fun~taxDocumentName->fun()->{taxDocumentAccessToken;taxDocumentName}letto_valuex=structure_to_value[("taxDocumentAccessToken",(Some(TaxDocumentAccessToken.to_valuex.taxDocumentAccessToken)));("taxDocumentName",(Some(TaxDocumentName.to_valuex.taxDocumentName)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettaxDocumentName=TaxDocumentName.of_xml(Xml.child_exn~context:context_xml_arg0"taxDocumentName")inlettaxDocumentAccessToken=TaxDocumentAccessToken.of_xml(Xml.child_exn~context:context_xml_arg0"taxDocumentAccessToken")inmake~taxDocumentName~taxDocumentAccessToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettaxDocumentName=field_map_exnjson__"taxDocumentName"TaxDocumentName.of_jsoninlettaxDocumentAccessToken=field_map_exnjson__"taxDocumentAccessToken"TaxDocumentAccessToken.of_jsoninmake~taxDocumentName~taxDocumentAccessToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The metadata for your tax document."]moduleEntityExemptionAccountStatus=structtypenonrect=|None|Valid|Expired|Pending|Non_static_idofstringletmakei=iletto_string=function|None->"None"|Valid->"Valid"|Expired->"Expired"|Pending->"Pending"|Non_static_ids->sletof_string=function|"None"->None|"Valid"->Valid|"Expired"->Expired|"Pending"->Pending|x->Non_static_idxletto_valuex=`Enum(to_stringx)letto_queryv=to_queryto_valuevletto_headerx=to_stringxletof_xmlxml_arg0=of_string(string_of_xml~kind:"enumeration EntityExemptionAccountStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"EntityExemptionAccountStatus"j)letto_json=simple_to_jsonto_valueendmoduleTaxExemptionType=structtypenonrect={applicableJurisdictions:Authorities.toption[@ocaml.doc"The tax exemption's applicable jurisdictions."];description:GenericString.toption[@ocaml.doc"The tax exemption's type description."];displayName:DisplayName.toption[@ocaml.doc"The tax exemption's type display name."]}letmake?applicableJurisdictions=fun?description->fun?displayName->fun()->{applicableJurisdictions;description;displayName}letto_valuex=structure_to_value[("applicableJurisdictions",(Option.mapx.applicableJurisdictions~f:Authorities.to_value));("description",(Option.mapx.description~f:GenericString.to_value));("displayName",(Option.mapx.displayName~f:DisplayName.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letdisplayName=(Option.map~f:DisplayName.of_xml)(Xml.childxml_arg0"displayName")inletdescription=(Option.map~f:GenericString.of_xml)(Xml.childxml_arg0"description")inletapplicableJurisdictions=(Option.map~f:Authorities.of_xml)(Xml.childxml_arg0"applicableJurisdictions")inmake?displayName?description?applicableJurisdictions()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letdisplayName=field_mapjson__"displayName"DisplayName.of_jsoninletdescription=field_mapjson__"description"GenericString.of_jsoninletapplicableJurisdictions=field_mapjson__"applicableJurisdictions"Authorities.of_jsoninmake?displayName?description?applicableJurisdictions()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The tax exemption type."]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_valueendmoduleFieldName=structtypenonrect=stringletcontext_="FieldName"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^(?!\\s*$)[\\s\\S]+$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"FieldName"jletto_json=simple_to_jsonto_valueendmoduleTaxRegistrationDocument=structtypenonrect={file:TaxRegistrationDocFile.toption[@ocaml.doc"The tax registration document."];s3Location:SourceS3Location.toption[@ocaml.doc"The Amazon S3 location where your tax registration document is stored."]}letmake?file=fun?s3Location->fun()->{file;s3Location}letto_valuex=structure_to_value[("file",(Option.mapx.file~f:TaxRegistrationDocFile.to_value));("s3Location",(Option.mapx.s3Location~f:SourceS3Location.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lets3Location=(Option.map~f:SourceS3Location.of_xml)(Xml.childxml_arg0"s3Location")inletfile=(Option.map~f:TaxRegistrationDocFile.of_xml)(Xml.childxml_arg0"file")inmake?s3Location?file()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lets3Location=field_mapjson__"s3Location"SourceS3Location.of_jsoninletfile=field_mapjson__"file"TaxRegistrationDocFile.of_jsoninmake?s3Location?file()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Tax registration document information."]moduleAccountName=structtypenonrect=stringletcontext_="AccountName"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^[\\s\\S]*$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"AccountName"jletto_json=simple_to_jsonto_valueendmoduleAddress=structtypenonrect={addressLine1:AddressLine1.t[@ocaml.doc"The first line of the address."];addressLine2:AddressLine2.toption[@ocaml.doc"The second line of the address, if applicable."];addressLine3:AddressLine3.toption[@ocaml.doc"The third line of the address, if applicable. Currently, the Tax Settings API accepts the addressLine3 parameter only for Saudi Arabia. When you specify a TRN in Saudi Arabia, you must enter the addressLine3 and specify the building number for the address. For example, you might enter 1234."];city:City.t[@ocaml.doc"The city that the address is in."];countryCode:CountryCode.t[@ocaml.doc"The country code for the country that the address is in."];districtOrCounty:District.toption[@ocaml.doc"The district or county the address is located. For addresses in Brazil, this parameter uses the name of the neighborhood. When you set a TRN in Brazil, use districtOrCounty for the neighborhood name."];postalCode:PostalCode.t[@ocaml.doc"The postal code associated with the address."];stateOrRegion:State.toption[@ocaml.doc"The state, region, or province that the address is located. This field is only required for Canada, India, United Arab Emirates, Romania, and Brazil (CPF). It is optional for all other countries. If this is required for tax settings, use the same name as shown on the Tax Settings page."]}letcontext_="Address"letmake?addressLine2=fun?addressLine3->fun?districtOrCounty->fun?stateOrRegion->fun~addressLine1->fun~city->fun~countryCode->fun~postalCode->fun()->{addressLine2;addressLine3;districtOrCounty;stateOrRegion;addressLine1;city;countryCode;postalCode}letto_valuex=structure_to_value[("addressLine1",(Some(AddressLine1.to_valuex.addressLine1)));("addressLine2",(Option.mapx.addressLine2~f:AddressLine2.to_value));("addressLine3",(Option.mapx.addressLine3~f:AddressLine3.to_value));("city",(Some(City.to_valuex.city)));("countryCode",(Some(CountryCode.to_valuex.countryCode)));("districtOrCounty",(Option.mapx.districtOrCounty~f:District.to_value));("postalCode",(Some(PostalCode.to_valuex.postalCode)));("stateOrRegion",(Option.mapx.stateOrRegion~f:State.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstateOrRegion=(Option.map~f:State.of_xml)(Xml.childxml_arg0"stateOrRegion")inletpostalCode=PostalCode.of_xml(Xml.child_exn~context:context_xml_arg0"postalCode")inletdistrictOrCounty=(Option.map~f:District.of_xml)(Xml.childxml_arg0"districtOrCounty")inletcountryCode=CountryCode.of_xml(Xml.child_exn~context:context_xml_arg0"countryCode")inletcity=City.of_xml(Xml.child_exn~context:context_xml_arg0"city")inletaddressLine3=(Option.map~f:AddressLine3.of_xml)(Xml.childxml_arg0"addressLine3")inletaddressLine2=(Option.map~f:AddressLine2.of_xml)(Xml.childxml_arg0"addressLine2")inletaddressLine1=AddressLine1.of_xml(Xml.child_exn~context:context_xml_arg0"addressLine1")inmake?stateOrRegion~postalCode?districtOrCounty~countryCode~city?addressLine3?addressLine2~addressLine1()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstateOrRegion=field_mapjson__"stateOrRegion"State.of_jsoninletpostalCode=field_map_exnjson__"postalCode"PostalCode.of_jsoninletdistrictOrCounty=field_mapjson__"districtOrCounty"District.of_jsoninletcountryCode=field_map_exnjson__"countryCode"CountryCode.of_jsoninletcity=field_map_exnjson__"city"City.of_jsoninletaddressLine3=field_mapjson__"addressLine3"AddressLine3.of_jsoninletaddressLine2=field_mapjson__"addressLine2"AddressLine2.of_jsoninletaddressLine1=field_map_exnjson__"addressLine1"AddressLine1.of_jsoninmake?stateOrRegion~postalCode?districtOrCounty~countryCode~city?addressLine3?addressLine2~addressLine1()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The details of the address associated with the TRN information."]moduleAddressRoleMap=structtypenonrect=(AddressRoleType.t*Jurisdiction.t)listletmakei=iletof_headerxs=make(List.filter_mapxs~f:(fun(k,v)->(Base.String.chop_prefixk~prefix:"x-amz-meta-")|>(Option.map~f:(funchopped->let(_:string)=vinlet(_:string)=choppedinfailwith"no of_header for complex types AddressRoleType Jurisdiction"))))letto_valuexs=(xs|>(List.map~f:(fun(x,y)->(AddressRoleType.to_valuex)|>(funx->(Jurisdiction.to_valuey)|>(funy->(x,y))))))|>(funx->`Mapx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for Map_shape objects"()letof_xml_=failwith"of_xml_converter_of_shape: Map_shape case not implemented"letof_jsonj=object_of_json~key_of_string:AddressRoleType.of_string~of_json:Jurisdiction.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleSeller=structtypenonrect=stringletcontext_="Seller"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^[\\s\\S]*$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"Seller"jletto_json=simple_to_jsonto_valueendmoduleAccountId=structtypenonrect=stringletcontext_="AccountId"letmakei=letopenResultinok_or_failwith((check_string_mini~min:12)>>=(fun()->(check_string_maxi~max:12)>>=(fun()->check_patterni~pattern:"^\\d+$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"AccountId"jletto_json=simple_to_jsonto_valueendmoduleInheritanceObtainedReason=structtypenonrect=stringletcontext_="InheritanceObtainedReason"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^[\\s\\S]*$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"InheritanceObtainedReason"jletto_json=simple_to_jsonto_valueendmoduleAdditionalInfoResponse=structtypenonrect={brazilAdditionalInfo:BrazilAdditionalInfo.toption[@ocaml.doc"Additional tax information associated with your TRN in Brazil. The Tax Settings API returns this information in your response when any additional information is present with your TRN in Brazil."];canadaAdditionalInfo:CanadaAdditionalInfo.toption[@ocaml.doc"Additional tax information associated with your TRN in Canada."];egyptAdditionalInfo:EgyptAdditionalInfo.toption[@ocaml.doc"Additional tax information to specify for a TRN in Egypt."];estoniaAdditionalInfo:EstoniaAdditionalInfo.toption[@ocaml.doc"Additional tax information associated with your TRN in Estonia."];georgiaAdditionalInfo:GeorgiaAdditionalInfo.toption[@ocaml.doc"Additional tax information associated with your TRN in Georgia."];greeceAdditionalInfo:GreeceAdditionalInfo.toption[@ocaml.doc"Additional tax information to specify for a TRN in Greece."];indiaAdditionalInfo:IndiaAdditionalInfo.toption[@ocaml.doc"Additional tax information in India."];indonesiaAdditionalInfo:IndonesiaAdditionalInfo.toption[@ocaml.doc"Additional tax information associated with your TRN in Indonesia."];israelAdditionalInfo:IsraelAdditionalInfo.toption[@ocaml.doc"Additional tax information associated with your TRN in Israel."];italyAdditionalInfo:ItalyAdditionalInfo.toption[@ocaml.doc"Additional tax information associated with your TRN in Italy."];kenyaAdditionalInfo:KenyaAdditionalInfo.toption[@ocaml.doc"Additional tax information associated with your TRN in Kenya."];malaysiaAdditionalInfo:MalaysiaAdditionalInfo.toption[@ocaml.doc"Additional tax information associated with your TRN in Malaysia."];polandAdditionalInfo:PolandAdditionalInfo.toption[@ocaml.doc"Additional tax information associated with your TRN in Poland."];romaniaAdditionalInfo:RomaniaAdditionalInfo.toption[@ocaml.doc"Additional tax information to specify for a TRN in Romania."];saudiArabiaAdditionalInfo:SaudiArabiaAdditionalInfo.toption[@ocaml.doc"Additional tax information associated with your TRN in Saudi Arabia."];southKoreaAdditionalInfo:SouthKoreaAdditionalInfo.toption[@ocaml.doc"Additional tax information associated with your TRN in South Korea."];spainAdditionalInfo:SpainAdditionalInfo.toption[@ocaml.doc"Additional tax information associated with your TRN in Spain."];turkeyAdditionalInfo:TurkeyAdditionalInfo.toption[@ocaml.doc"Additional tax information associated with your TRN in Turkey."];ukraineAdditionalInfo:UkraineAdditionalInfo.toption[@ocaml.doc"Additional tax information associated with your TRN in Ukraine."];uzbekistanAdditionalInfo:UzbekistanAdditionalInfo.toption[@ocaml.doc"Additional tax information associated with your TRN in Uzbekistan."];vietnamAdditionalInfo:VietnamAdditionalInfo.toption[@ocaml.doc"Additional tax information to specify for a TRN in Vietnam."]}letmake?brazilAdditionalInfo=fun?canadaAdditionalInfo->fun?egyptAdditionalInfo->fun?estoniaAdditionalInfo->fun?georgiaAdditionalInfo->fun?greeceAdditionalInfo->fun?indiaAdditionalInfo->fun?indonesiaAdditionalInfo->fun?israelAdditionalInfo->fun?italyAdditionalInfo->fun?kenyaAdditionalInfo->fun?malaysiaAdditionalInfo->fun?polandAdditionalInfo->fun?romaniaAdditionalInfo->fun?saudiArabiaAdditionalInfo->fun?southKoreaAdditionalInfo->fun?spainAdditionalInfo->fun?turkeyAdditionalInfo->fun?ukraineAdditionalInfo->fun?uzbekistanAdditionalInfo->fun?vietnamAdditionalInfo->fun()->{brazilAdditionalInfo;canadaAdditionalInfo;egyptAdditionalInfo;estoniaAdditionalInfo;georgiaAdditionalInfo;greeceAdditionalInfo;indiaAdditionalInfo;indonesiaAdditionalInfo;israelAdditionalInfo;italyAdditionalInfo;kenyaAdditionalInfo;malaysiaAdditionalInfo;polandAdditionalInfo;romaniaAdditionalInfo;saudiArabiaAdditionalInfo;southKoreaAdditionalInfo;spainAdditionalInfo;turkeyAdditionalInfo;ukraineAdditionalInfo;uzbekistanAdditionalInfo;vietnamAdditionalInfo}letto_valuex=structure_to_value[("brazilAdditionalInfo",(Option.mapx.brazilAdditionalInfo~f:BrazilAdditionalInfo.to_value));("canadaAdditionalInfo",(Option.mapx.canadaAdditionalInfo~f:CanadaAdditionalInfo.to_value));("egyptAdditionalInfo",(Option.mapx.egyptAdditionalInfo~f:EgyptAdditionalInfo.to_value));("estoniaAdditionalInfo",(Option.mapx.estoniaAdditionalInfo~f:EstoniaAdditionalInfo.to_value));("georgiaAdditionalInfo",(Option.mapx.georgiaAdditionalInfo~f:GeorgiaAdditionalInfo.to_value));("greeceAdditionalInfo",(Option.mapx.greeceAdditionalInfo~f:GreeceAdditionalInfo.to_value));("indiaAdditionalInfo",(Option.mapx.indiaAdditionalInfo~f:IndiaAdditionalInfo.to_value));("indonesiaAdditionalInfo",(Option.mapx.indonesiaAdditionalInfo~f:IndonesiaAdditionalInfo.to_value));("israelAdditionalInfo",(Option.mapx.israelAdditionalInfo~f:IsraelAdditionalInfo.to_value));("italyAdditionalInfo",(Option.mapx.italyAdditionalInfo~f:ItalyAdditionalInfo.to_value));("kenyaAdditionalInfo",(Option.mapx.kenyaAdditionalInfo~f:KenyaAdditionalInfo.to_value));("malaysiaAdditionalInfo",(Option.mapx.malaysiaAdditionalInfo~f:MalaysiaAdditionalInfo.to_value));("polandAdditionalInfo",(Option.mapx.polandAdditionalInfo~f:PolandAdditionalInfo.to_value));("romaniaAdditionalInfo",(Option.mapx.romaniaAdditionalInfo~f:RomaniaAdditionalInfo.to_value));("saudiArabiaAdditionalInfo",(Option.mapx.saudiArabiaAdditionalInfo~f:SaudiArabiaAdditionalInfo.to_value));("southKoreaAdditionalInfo",(Option.mapx.southKoreaAdditionalInfo~f:SouthKoreaAdditionalInfo.to_value));("spainAdditionalInfo",(Option.mapx.spainAdditionalInfo~f:SpainAdditionalInfo.to_value));("turkeyAdditionalInfo",(Option.mapx.turkeyAdditionalInfo~f:TurkeyAdditionalInfo.to_value));("ukraineAdditionalInfo",(Option.mapx.ukraineAdditionalInfo~f:UkraineAdditionalInfo.to_value));("uzbekistanAdditionalInfo",(Option.mapx.uzbekistanAdditionalInfo~f:UzbekistanAdditionalInfo.to_value));("vietnamAdditionalInfo",(Option.mapx.vietnamAdditionalInfo~f:VietnamAdditionalInfo.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvietnamAdditionalInfo=(Option.map~f:VietnamAdditionalInfo.of_xml)(Xml.childxml_arg0"vietnamAdditionalInfo")inletuzbekistanAdditionalInfo=(Option.map~f:UzbekistanAdditionalInfo.of_xml)(Xml.childxml_arg0"uzbekistanAdditionalInfo")inletukraineAdditionalInfo=(Option.map~f:UkraineAdditionalInfo.of_xml)(Xml.childxml_arg0"ukraineAdditionalInfo")inletturkeyAdditionalInfo=(Option.map~f:TurkeyAdditionalInfo.of_xml)(Xml.childxml_arg0"turkeyAdditionalInfo")inletspainAdditionalInfo=(Option.map~f:SpainAdditionalInfo.of_xml)(Xml.childxml_arg0"spainAdditionalInfo")inletsouthKoreaAdditionalInfo=(Option.map~f:SouthKoreaAdditionalInfo.of_xml)(Xml.childxml_arg0"southKoreaAdditionalInfo")inletsaudiArabiaAdditionalInfo=(Option.map~f:SaudiArabiaAdditionalInfo.of_xml)(Xml.childxml_arg0"saudiArabiaAdditionalInfo")inletromaniaAdditionalInfo=(Option.map~f:RomaniaAdditionalInfo.of_xml)(Xml.childxml_arg0"romaniaAdditionalInfo")inletpolandAdditionalInfo=(Option.map~f:PolandAdditionalInfo.of_xml)(Xml.childxml_arg0"polandAdditionalInfo")inletmalaysiaAdditionalInfo=(Option.map~f:MalaysiaAdditionalInfo.of_xml)(Xml.childxml_arg0"malaysiaAdditionalInfo")inletkenyaAdditionalInfo=(Option.map~f:KenyaAdditionalInfo.of_xml)(Xml.childxml_arg0"kenyaAdditionalInfo")inletitalyAdditionalInfo=(Option.map~f:ItalyAdditionalInfo.of_xml)(Xml.childxml_arg0"italyAdditionalInfo")inletisraelAdditionalInfo=(Option.map~f:IsraelAdditionalInfo.of_xml)(Xml.childxml_arg0"israelAdditionalInfo")inletindonesiaAdditionalInfo=(Option.map~f:IndonesiaAdditionalInfo.of_xml)(Xml.childxml_arg0"indonesiaAdditionalInfo")inletindiaAdditionalInfo=(Option.map~f:IndiaAdditionalInfo.of_xml)(Xml.childxml_arg0"indiaAdditionalInfo")inletgreeceAdditionalInfo=(Option.map~f:GreeceAdditionalInfo.of_xml)(Xml.childxml_arg0"greeceAdditionalInfo")inletgeorgiaAdditionalInfo=(Option.map~f:GeorgiaAdditionalInfo.of_xml)(Xml.childxml_arg0"georgiaAdditionalInfo")inletestoniaAdditionalInfo=(Option.map~f:EstoniaAdditionalInfo.of_xml)(Xml.childxml_arg0"estoniaAdditionalInfo")inletegyptAdditionalInfo=(Option.map~f:EgyptAdditionalInfo.of_xml)(Xml.childxml_arg0"egyptAdditionalInfo")inletcanadaAdditionalInfo=(Option.map~f:CanadaAdditionalInfo.of_xml)(Xml.childxml_arg0"canadaAdditionalInfo")inletbrazilAdditionalInfo=(Option.map~f:BrazilAdditionalInfo.of_xml)(Xml.childxml_arg0"brazilAdditionalInfo")inmake?vietnamAdditionalInfo?uzbekistanAdditionalInfo?ukraineAdditionalInfo?turkeyAdditionalInfo?spainAdditionalInfo?southKoreaAdditionalInfo?saudiArabiaAdditionalInfo?romaniaAdditionalInfo?polandAdditionalInfo?malaysiaAdditionalInfo?kenyaAdditionalInfo?italyAdditionalInfo?israelAdditionalInfo?indonesiaAdditionalInfo?indiaAdditionalInfo?greeceAdditionalInfo?georgiaAdditionalInfo?estoniaAdditionalInfo?egyptAdditionalInfo?canadaAdditionalInfo?brazilAdditionalInfo()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvietnamAdditionalInfo=field_mapjson__"vietnamAdditionalInfo"VietnamAdditionalInfo.of_jsoninletuzbekistanAdditionalInfo=field_mapjson__"uzbekistanAdditionalInfo"UzbekistanAdditionalInfo.of_jsoninletukraineAdditionalInfo=field_mapjson__"ukraineAdditionalInfo"UkraineAdditionalInfo.of_jsoninletturkeyAdditionalInfo=field_mapjson__"turkeyAdditionalInfo"TurkeyAdditionalInfo.of_jsoninletspainAdditionalInfo=field_mapjson__"spainAdditionalInfo"SpainAdditionalInfo.of_jsoninletsouthKoreaAdditionalInfo=field_mapjson__"southKoreaAdditionalInfo"SouthKoreaAdditionalInfo.of_jsoninletsaudiArabiaAdditionalInfo=field_mapjson__"saudiArabiaAdditionalInfo"SaudiArabiaAdditionalInfo.of_jsoninletromaniaAdditionalInfo=field_mapjson__"romaniaAdditionalInfo"RomaniaAdditionalInfo.of_jsoninletpolandAdditionalInfo=field_mapjson__"polandAdditionalInfo"PolandAdditionalInfo.of_jsoninletmalaysiaAdditionalInfo=field_mapjson__"malaysiaAdditionalInfo"MalaysiaAdditionalInfo.of_jsoninletkenyaAdditionalInfo=field_mapjson__"kenyaAdditionalInfo"KenyaAdditionalInfo.of_jsoninletitalyAdditionalInfo=field_mapjson__"italyAdditionalInfo"ItalyAdditionalInfo.of_jsoninletisraelAdditionalInfo=field_mapjson__"israelAdditionalInfo"IsraelAdditionalInfo.of_jsoninletindonesiaAdditionalInfo=field_mapjson__"indonesiaAdditionalInfo"IndonesiaAdditionalInfo.of_jsoninletindiaAdditionalInfo=field_mapjson__"indiaAdditionalInfo"IndiaAdditionalInfo.of_jsoninletgreeceAdditionalInfo=field_mapjson__"greeceAdditionalInfo"GreeceAdditionalInfo.of_jsoninletgeorgiaAdditionalInfo=field_mapjson__"georgiaAdditionalInfo"GeorgiaAdditionalInfo.of_jsoninletestoniaAdditionalInfo=field_mapjson__"estoniaAdditionalInfo"EstoniaAdditionalInfo.of_jsoninletegyptAdditionalInfo=field_mapjson__"egyptAdditionalInfo"EgyptAdditionalInfo.of_jsoninletcanadaAdditionalInfo=field_mapjson__"canadaAdditionalInfo"CanadaAdditionalInfo.of_jsoninletbrazilAdditionalInfo=field_mapjson__"brazilAdditionalInfo"BrazilAdditionalInfo.of_jsoninmake?vietnamAdditionalInfo?uzbekistanAdditionalInfo?ukraineAdditionalInfo?turkeyAdditionalInfo?spainAdditionalInfo?southKoreaAdditionalInfo?saudiArabiaAdditionalInfo?romaniaAdditionalInfo?polandAdditionalInfo?malaysiaAdditionalInfo?kenyaAdditionalInfo?italyAdditionalInfo?israelAdditionalInfo?indonesiaAdditionalInfo?indiaAdditionalInfo?greeceAdditionalInfo?georgiaAdditionalInfo?estoniaAdditionalInfo?egyptAdditionalInfo?canadaAdditionalInfo?brazilAdditionalInfo()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional tax information associated with your TRN. The Tax Settings API returns country-specific information in the response when any additional information is present with your TRN for the following countries."]moduleCertifiedEmailId=structtypenonrect=stringletcontext_="CertifiedEmailId"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,20}$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"CertifiedEmailId"jletto_json=simple_to_jsonto_valueendmoduleLegalName=structtypenonrect=stringletcontext_="LegalName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:200)>>=(fun()->check_patterni~pattern:"^(?!\\s*$)[\\s\\S]+$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"LegalName"jletto_json=simple_to_jsonto_valueendmoduleRegistrationId=structtypenonrect=stringletcontext_="RegistrationId"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:200)>>=(fun()->check_patterni~pattern:"^(?!\\s*$)[\\s\\S]+$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"RegistrationId"jletto_json=simple_to_jsonto_valueendmoduleSector=structtypenonrect=|Business|Individual|Government|Non_static_idofstringletmakei=iletto_string=function|Business->"Business"|Individual->"Individual"|Government->"Government"|Non_static_ids->sletof_string=function|"Business"->Business|"Individual"->Individual|"Government"->Government|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 Sector"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"Sector"j)letto_json=simple_to_jsonto_valueendmoduleTaxDocumentMetadatas=structtypenonrect=TaxDocumentMetadata.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:5)>>=(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:TaxDocumentMetadata.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:TaxDocumentMetadata.of_xml)letof_jsonj=list_of_json~kind:"TaxDocumentMetadatas"~of_json:TaxDocumentMetadata.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleTaxRegistrationStatus=structtypenonrect=|Verified|Pending|Deleted|Rejected|Non_static_idofstringletmakei=iletto_string=function|Verified->"Verified"|Pending->"Pending"|Deleted->"Deleted"|Rejected->"Rejected"|Non_static_ids->sletof_string=function|"Verified"->Verified|"Pending"->Pending|"Deleted"->Deleted|"Rejected"->Rejected|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 TaxRegistrationStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"TaxRegistrationStatus"j)letto_json=simple_to_jsonto_valueendmoduleTaxRegistrationType=structtypenonrect=|VAT|GST|CPF|CNPJ|SST|TIN|NRIC|Non_static_idofstringletmakei=iletto_string=function|VAT->"VAT"|GST->"GST"|CPF->"CPF"|CNPJ->"CNPJ"|SST->"SST"|TIN->"TIN"|NRIC->"NRIC"|Non_static_ids->sletof_string=function|"VAT"->VAT|"GST"->GST|"CPF"->CPF|"CNPJ"->CNPJ|"SST"->SST|"TIN"->TIN|"NRIC"->NRIC|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 TaxRegistrationType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"TaxRegistrationType"j)letto_json=simple_to_jsonto_valueendmoduleTaxExemption=structtypenonrect={authority:Authority.toption[@ocaml.doc"The address domain associate with tax exemption."];effectiveDate:Timestamp.toption[@ocaml.doc"The tax exemption effective date."];expirationDate:Timestamp.toption[@ocaml.doc"The tax exemption expiration date."];status:EntityExemptionAccountStatus.toption[@ocaml.doc"The tax exemption status."];systemEffectiveDate:Timestamp.toption[@ocaml.doc"The tax exemption recording time in the TaxSettings system."];taxExemptionType:TaxExemptionType.toption[@ocaml.doc"The tax exemption type."]}letmake?authority=fun?effectiveDate->fun?expirationDate->fun?status->fun?systemEffectiveDate->fun?taxExemptionType->fun()->{authority;effectiveDate;expirationDate;status;systemEffectiveDate;taxExemptionType}letto_valuex=structure_to_value[("authority",(Option.mapx.authority~f:Authority.to_value));("effectiveDate",(Option.mapx.effectiveDate~f:Timestamp.to_value));("expirationDate",(Option.mapx.expirationDate~f:Timestamp.to_value));("status",(Option.mapx.status~f:EntityExemptionAccountStatus.to_value));("systemEffectiveDate",(Option.mapx.systemEffectiveDate~f:Timestamp.to_value));("taxExemptionType",(Option.mapx.taxExemptionType~f:TaxExemptionType.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettaxExemptionType=(Option.map~f:TaxExemptionType.of_xml)(Xml.childxml_arg0"taxExemptionType")inletsystemEffectiveDate=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"systemEffectiveDate")inletstatus=(Option.map~f:EntityExemptionAccountStatus.of_xml)(Xml.childxml_arg0"status")inletexpirationDate=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"expirationDate")inleteffectiveDate=(Option.map~f:Timestamp.of_xml)(Xml.childxml_arg0"effectiveDate")inletauthority=(Option.map~f:Authority.of_xml)(Xml.childxml_arg0"authority")inmake?taxExemptionType?systemEffectiveDate?status?expirationDate?effectiveDate?authority()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettaxExemptionType=field_mapjson__"taxExemptionType"TaxExemptionType.of_jsoninletsystemEffectiveDate=field_mapjson__"systemEffectiveDate"Timestamp.of_jsoninletstatus=field_mapjson__"status"EntityExemptionAccountStatus.of_jsoninletexpirationDate=field_mapjson__"expirationDate"Timestamp.of_jsoninleteffectiveDate=field_mapjson__"effectiveDate"Timestamp.of_jsoninletauthority=field_mapjson__"authority"Authority.of_jsoninmake?taxExemptionType?systemEffectiveDate?status?expirationDate?effectiveDate?authority()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The tax exemption."]moduleValidationExceptionField=structtypenonrect={name:FieldName.toption[@ocaml.doc"The name of the parameter that caused a ValidationException error."]}letmake?name=fun()->{name}letto_valuex=structure_to_value[("name",(Option.mapx.name~f:FieldName.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letname=(Option.map~f:FieldName.of_xml)(Xml.childxml_arg0"name")inmake?name()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letname=field_mapjson__"name"FieldName.of_jsoninmake?name()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The information about the specified parameter in the request that caused an error."]moduleDateOfBirth=structtypenonrect=stringletcontext_="DateOfBirth"letmakei=letopenResultinok_or_failwith((check_string_mini~min:10)>>=(fun()->(check_string_maxi~max:10)>>=(fun()->check_patterni~pattern:"^(\\d{4}-(0[0-9]|1[0-2])-([0-2][0-9]|3[0-1]))$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"DateOfBirth"jletto_json=simple_to_jsonto_valueendmoduleTaxRegistrationDocuments=structtypenonrect=TaxRegistrationDocument.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:5)>>=(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:TaxRegistrationDocument.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:TaxRegistrationDocument.of_xml)letof_jsonj=list_of_json~kind:"TaxRegistrationDocuments"~of_json:TaxRegistrationDocument.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAccountMetaData=structtypenonrect={accountName:AccountName.toption[@ocaml.doc"The Amazon Web Services accounts name."];address:Address.toption;addressRoleMap:AddressRoleMap.toption[@ocaml.doc"Address roles associated with the account containing country code information."];addressType:AddressRoleType.toption[@ocaml.doc"The type of address associated with the legal profile."];seller:Seller.toption[@ocaml.doc"Seller information associated with the account."]}letmake?accountName=fun?address->fun?addressRoleMap->fun?addressType->fun?seller->fun()->{accountName;address;addressRoleMap;addressType;seller}letto_valuex=structure_to_value[("accountName",(Option.mapx.accountName~f:AccountName.to_value));("address",(Option.mapx.address~f:Address.to_value));("addressRoleMap",(Option.mapx.addressRoleMap~f:AddressRoleMap.to_value));("addressType",(Option.mapx.addressType~f:AddressRoleType.to_value));("seller",(Option.mapx.seller~f:Seller.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letseller=(Option.map~f:Seller.of_xml)(Xml.childxml_arg0"seller")inletaddressType=(Option.map~f:AddressRoleType.of_xml)(Xml.childxml_arg0"addressType")inletaddressRoleMap=(Option.map~f:AddressRoleMap.of_xml)(Xml.childxml_arg0"addressRoleMap")inletaddress=(Option.map~f:Address.of_xml)(Xml.childxml_arg0"address")inletaccountName=(Option.map~f:AccountName.of_xml)(Xml.childxml_arg0"accountName")inmake?seller?addressType?addressRoleMap?address?accountName()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letseller=field_mapjson__"seller"Seller.of_jsoninletaddressType=field_mapjson__"addressType"AddressRoleType.of_jsoninletaddressRoleMap=field_mapjson__"addressRoleMap"AddressRoleMap.of_jsoninletaddress=field_mapjson__"address"Address.of_jsoninletaccountName=field_mapjson__"accountName"AccountName.of_jsoninmake?seller?addressType?addressRoleMap?address?accountName()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The meta data information associated with the account."]moduleTaxInheritanceDetails=structtypenonrect={inheritanceObtainedReason:InheritanceObtainedReason.toption[@ocaml.doc"Tax inheritance reason information associated with the account."];parentEntityId:AccountId.toption[@ocaml.doc"Tax inheritance parent account information associated with the account."]}letmake?inheritanceObtainedReason=fun?parentEntityId->fun()->{inheritanceObtainedReason;parentEntityId}letto_valuex=structure_to_value[("inheritanceObtainedReason",(Option.mapx.inheritanceObtainedReason~f:InheritanceObtainedReason.to_value));("parentEntityId",(Option.mapx.parentEntityId~f:AccountId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letparentEntityId=(Option.map~f:AccountId.of_xml)(Xml.childxml_arg0"parentEntityId")inletinheritanceObtainedReason=(Option.map~f:InheritanceObtainedReason.of_xml)(Xml.childxml_arg0"inheritanceObtainedReason")inmake?parentEntityId?inheritanceObtainedReason()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letparentEntityId=field_mapjson__"parentEntityId"AccountId.of_jsoninletinheritanceObtainedReason=field_mapjson__"inheritanceObtainedReason"InheritanceObtainedReason.of_jsoninmake?parentEntityId?inheritanceObtainedReason()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Tax inheritance information associated with the account."]moduleTaxRegistrationWithJurisdiction=structtypenonrect={additionalTaxInformation:AdditionalInfoResponse.toption[@ocaml.doc"Additional tax information associated with your TRN."];certifiedEmailId:CertifiedEmailId.toption[@ocaml.doc"The email address to receive VAT invoices."];jurisdiction:Jurisdiction.toption[@ocaml.doc"The jurisdiction associated with your TRN information."];legalName:LegalName.toption[@ocaml.doc"The legal name associated with your TRN information."];registrationId:RegistrationId.toption[@ocaml.doc"Your tax registration unique identifier."];registrationType:TaxRegistrationType.toption[@ocaml.doc"The type of your tax registration. This can be either VAT or GST."];sector:Sector.toption[@ocaml.doc"The industry that describes your business. For business-to-business (B2B) customers, specify Business. For business-to-consumer (B2C) customers, specify Individual. For business-to-government (B2G), specify Government.Note that certain values may not applicable for the request country. Please refer to country specific information in API document."];status:TaxRegistrationStatus.toption[@ocaml.doc"The status of your TRN. This can be either Verified, Pending, Deleted, or Rejected."];taxDocumentMetadatas:TaxDocumentMetadatas.toption[@ocaml.doc"The metadata for your tax document."]}letmake?additionalTaxInformation=fun?certifiedEmailId->fun?jurisdiction->fun?legalName->fun?registrationId->fun?registrationType->fun?sector->fun?status->fun?taxDocumentMetadatas->fun()->{additionalTaxInformation;certifiedEmailId;jurisdiction;legalName;registrationId;registrationType;sector;status;taxDocumentMetadatas}letto_valuex=structure_to_value[("additionalTaxInformation",(Option.mapx.additionalTaxInformation~f:AdditionalInfoResponse.to_value));("certifiedEmailId",(Option.mapx.certifiedEmailId~f:CertifiedEmailId.to_value));("jurisdiction",(Option.mapx.jurisdiction~f:Jurisdiction.to_value));("legalName",(Option.mapx.legalName~f:LegalName.to_value));("registrationId",(Option.mapx.registrationId~f:RegistrationId.to_value));("registrationType",(Option.mapx.registrationType~f:TaxRegistrationType.to_value));("sector",(Option.mapx.sector~f:Sector.to_value));("status",(Option.mapx.status~f:TaxRegistrationStatus.to_value));("taxDocumentMetadatas",(Option.mapx.taxDocumentMetadatas~f:TaxDocumentMetadatas.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettaxDocumentMetadatas=(Option.map~f:TaxDocumentMetadatas.of_xml)(Xml.childxml_arg0"taxDocumentMetadatas")inletstatus=(Option.map~f:TaxRegistrationStatus.of_xml)(Xml.childxml_arg0"status")inletsector=(Option.map~f:Sector.of_xml)(Xml.childxml_arg0"sector")inletregistrationType=(Option.map~f:TaxRegistrationType.of_xml)(Xml.childxml_arg0"registrationType")inletregistrationId=(Option.map~f:RegistrationId.of_xml)(Xml.childxml_arg0"registrationId")inletlegalName=(Option.map~f:LegalName.of_xml)(Xml.childxml_arg0"legalName")inletjurisdiction=(Option.map~f:Jurisdiction.of_xml)(Xml.childxml_arg0"jurisdiction")inletcertifiedEmailId=(Option.map~f:CertifiedEmailId.of_xml)(Xml.childxml_arg0"certifiedEmailId")inletadditionalTaxInformation=(Option.map~f:AdditionalInfoResponse.of_xml)(Xml.childxml_arg0"additionalTaxInformation")inmake?taxDocumentMetadatas?status?sector?registrationType?registrationId?legalName?jurisdiction?certifiedEmailId?additionalTaxInformation()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettaxDocumentMetadatas=field_mapjson__"taxDocumentMetadatas"TaxDocumentMetadatas.of_jsoninletstatus=field_mapjson__"status"TaxRegistrationStatus.of_jsoninletsector=field_mapjson__"sector"Sector.of_jsoninletregistrationType=field_mapjson__"registrationType"TaxRegistrationType.of_jsoninletregistrationId=field_mapjson__"registrationId"RegistrationId.of_jsoninletlegalName=field_mapjson__"legalName"LegalName.of_jsoninletjurisdiction=field_mapjson__"jurisdiction"Jurisdiction.of_jsoninletcertifiedEmailId=field_mapjson__"certifiedEmailId"CertifiedEmailId.of_jsoninletadditionalTaxInformation=field_mapjson__"additionalTaxInformation"AdditionalInfoResponse.of_jsoninmake?taxDocumentMetadatas?status?sector?registrationType?registrationId?legalName?jurisdiction?certifiedEmailId?additionalTaxInformation()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Your TRN information with jurisdiction details. This doesn't contain the full legal address associated with the TRN information."]moduleTaxExemptions=structtypenonrect=TaxExemption.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:TaxExemption.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:TaxExemption.of_xml)letof_jsonj=list_of_json~kind:"TaxExemptions"~of_json:TaxExemption.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleSupplementalTaxRegistrationType=structtypenonrect=|VAT|Non_static_idofstringletmakei=iletto_string=function|VAT->"VAT"|Non_static_ids->sletof_string=function|"VAT"->VAT|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 SupplementalTaxRegistrationType"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"SupplementalTaxRegistrationType"j)letto_json=simple_to_jsonto_valueendmoduleErrorCode=structtypenonrect=stringletcontext_="ErrorCode"letmakei=letopenResultinok_or_failwith((check_string_mini~min:0)>>=(fun()->(check_string_maxi~max:50)>>=(fun()->check_patterni~pattern:"^[\\s\\S]*$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ErrorCode"jletto_json=simple_to_jsonto_valueendmoduleErrorMessage=structtypenonrect=stringletcontext_="ErrorMessage"letmakei=letopenResultinok_or_failwith((check_string_mini~min:0)>>=(fun()->(check_string_maxi~max:1024)>>=(fun()->check_patterni~pattern:"^[\\s\\S]*$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ErrorMessage"jletto_json=simple_to_jsonto_valueendmoduleValidationExceptionErrorCode=structtypenonrect=|MalformedToken|ExpiredToken|InvalidToken|FieldValidationFailed|MissingInput|Non_static_idofstringletmakei=iletto_string=function|MalformedToken->"MalformedToken"|ExpiredToken->"ExpiredToken"|InvalidToken->"InvalidToken"|FieldValidationFailed->"FieldValidationFailed"|MissingInput->"MissingInput"|Non_static_ids->sletof_string=function|"MalformedToken"->MalformedToken|"ExpiredToken"->ExpiredToken|"InvalidToken"->InvalidToken|"FieldValidationFailed"->FieldValidationFailed|"MissingInput"->MissingInput|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 ValidationExceptionErrorCode"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"ValidationExceptionErrorCode"j)letto_json=simple_to_jsonto_valueendmoduleValidationExceptionFieldList=structtypenonrect=ValidationExceptionField.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:ValidationExceptionField.to_value))|>(funx->`Listx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for List_shape objects"()letof_xmlx=make(List.map((Xml.all_childrenx)|>(List.filter~f:(function|`Datas->(matchStdlib.String.trimswith|""->false|_->true)|_->true)))~f:ValidationExceptionField.of_xml)letof_jsonj=list_of_json~kind:"ValidationExceptionFieldList"~of_json:ValidationExceptionField.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAdditionalInfoRequest=structtypenonrect={canadaAdditionalInfo:CanadaAdditionalInfo.toption[@ocaml.doc"Additional tax information associated with your TRN in Canada."];egyptAdditionalInfo:EgyptAdditionalInfo.toption[@ocaml.doc"Additional tax information to specify for a TRN in Egypt."];estoniaAdditionalInfo:EstoniaAdditionalInfo.toption[@ocaml.doc"Additional tax information to specify for a TRN in Estonia."];georgiaAdditionalInfo:GeorgiaAdditionalInfo.toption[@ocaml.doc"Additional tax information to specify for a TRN in Georgia."];greeceAdditionalInfo:GreeceAdditionalInfo.toption[@ocaml.doc"Additional tax information to specify for a TRN in Greece."];indonesiaAdditionalInfo:IndonesiaAdditionalInfo.toption;israelAdditionalInfo:IsraelAdditionalInfo.toption[@ocaml.doc"Additional tax information to specify for a TRN in Israel."];italyAdditionalInfo:ItalyAdditionalInfo.toption[@ocaml.doc"Additional tax information to specify for a TRN in Italy."];kenyaAdditionalInfo:KenyaAdditionalInfo.toption[@ocaml.doc"Additional tax information to specify for a TRN in Kenya."];malaysiaAdditionalInfo:MalaysiaAdditionalInfo.toption[@ocaml.doc"Additional tax information to specify for a TRN in Malaysia."];polandAdditionalInfo:PolandAdditionalInfo.toption[@ocaml.doc"Additional tax information associated with your TRN in Poland."];romaniaAdditionalInfo:RomaniaAdditionalInfo.toption[@ocaml.doc"Additional tax information to specify for a TRN in Romania."];saudiArabiaAdditionalInfo:SaudiArabiaAdditionalInfo.toption[@ocaml.doc"Additional tax information associated with your TRN in Saudi Arabia."];southKoreaAdditionalInfo:SouthKoreaAdditionalInfo.toption[@ocaml.doc"Additional tax information to specify for a TRN in South Korea."];spainAdditionalInfo:SpainAdditionalInfo.toption[@ocaml.doc"Additional tax information to specify for a TRN in Spain."];turkeyAdditionalInfo:TurkeyAdditionalInfo.toption[@ocaml.doc"Additional tax information to specify for a TRN in Turkey."];ukraineAdditionalInfo:UkraineAdditionalInfo.toption[@ocaml.doc"Additional tax information associated with your TRN in Ukraine."];uzbekistanAdditionalInfo:UzbekistanAdditionalInfo.toption[@ocaml.doc"Additional tax information to specify for a TRN in Uzbekistan."];vietnamAdditionalInfo:VietnamAdditionalInfo.toption[@ocaml.doc"Additional tax information to specify for a TRN in Vietnam."]}letmake?canadaAdditionalInfo=fun?egyptAdditionalInfo->fun?estoniaAdditionalInfo->fun?georgiaAdditionalInfo->fun?greeceAdditionalInfo->fun?indonesiaAdditionalInfo->fun?israelAdditionalInfo->fun?italyAdditionalInfo->fun?kenyaAdditionalInfo->fun?malaysiaAdditionalInfo->fun?polandAdditionalInfo->fun?romaniaAdditionalInfo->fun?saudiArabiaAdditionalInfo->fun?southKoreaAdditionalInfo->fun?spainAdditionalInfo->fun?turkeyAdditionalInfo->fun?ukraineAdditionalInfo->fun?uzbekistanAdditionalInfo->fun?vietnamAdditionalInfo->fun()->{canadaAdditionalInfo;egyptAdditionalInfo;estoniaAdditionalInfo;georgiaAdditionalInfo;greeceAdditionalInfo;indonesiaAdditionalInfo;israelAdditionalInfo;italyAdditionalInfo;kenyaAdditionalInfo;malaysiaAdditionalInfo;polandAdditionalInfo;romaniaAdditionalInfo;saudiArabiaAdditionalInfo;southKoreaAdditionalInfo;spainAdditionalInfo;turkeyAdditionalInfo;ukraineAdditionalInfo;uzbekistanAdditionalInfo;vietnamAdditionalInfo}letto_valuex=structure_to_value[("canadaAdditionalInfo",(Option.mapx.canadaAdditionalInfo~f:CanadaAdditionalInfo.to_value));("egyptAdditionalInfo",(Option.mapx.egyptAdditionalInfo~f:EgyptAdditionalInfo.to_value));("estoniaAdditionalInfo",(Option.mapx.estoniaAdditionalInfo~f:EstoniaAdditionalInfo.to_value));("georgiaAdditionalInfo",(Option.mapx.georgiaAdditionalInfo~f:GeorgiaAdditionalInfo.to_value));("greeceAdditionalInfo",(Option.mapx.greeceAdditionalInfo~f:GreeceAdditionalInfo.to_value));("indonesiaAdditionalInfo",(Option.mapx.indonesiaAdditionalInfo~f:IndonesiaAdditionalInfo.to_value));("israelAdditionalInfo",(Option.mapx.israelAdditionalInfo~f:IsraelAdditionalInfo.to_value));("italyAdditionalInfo",(Option.mapx.italyAdditionalInfo~f:ItalyAdditionalInfo.to_value));("kenyaAdditionalInfo",(Option.mapx.kenyaAdditionalInfo~f:KenyaAdditionalInfo.to_value));("malaysiaAdditionalInfo",(Option.mapx.malaysiaAdditionalInfo~f:MalaysiaAdditionalInfo.to_value));("polandAdditionalInfo",(Option.mapx.polandAdditionalInfo~f:PolandAdditionalInfo.to_value));("romaniaAdditionalInfo",(Option.mapx.romaniaAdditionalInfo~f:RomaniaAdditionalInfo.to_value));("saudiArabiaAdditionalInfo",(Option.mapx.saudiArabiaAdditionalInfo~f:SaudiArabiaAdditionalInfo.to_value));("southKoreaAdditionalInfo",(Option.mapx.southKoreaAdditionalInfo~f:SouthKoreaAdditionalInfo.to_value));("spainAdditionalInfo",(Option.mapx.spainAdditionalInfo~f:SpainAdditionalInfo.to_value));("turkeyAdditionalInfo",(Option.mapx.turkeyAdditionalInfo~f:TurkeyAdditionalInfo.to_value));("ukraineAdditionalInfo",(Option.mapx.ukraineAdditionalInfo~f:UkraineAdditionalInfo.to_value));("uzbekistanAdditionalInfo",(Option.mapx.uzbekistanAdditionalInfo~f:UzbekistanAdditionalInfo.to_value));("vietnamAdditionalInfo",(Option.mapx.vietnamAdditionalInfo~f:VietnamAdditionalInfo.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letvietnamAdditionalInfo=(Option.map~f:VietnamAdditionalInfo.of_xml)(Xml.childxml_arg0"vietnamAdditionalInfo")inletuzbekistanAdditionalInfo=(Option.map~f:UzbekistanAdditionalInfo.of_xml)(Xml.childxml_arg0"uzbekistanAdditionalInfo")inletukraineAdditionalInfo=(Option.map~f:UkraineAdditionalInfo.of_xml)(Xml.childxml_arg0"ukraineAdditionalInfo")inletturkeyAdditionalInfo=(Option.map~f:TurkeyAdditionalInfo.of_xml)(Xml.childxml_arg0"turkeyAdditionalInfo")inletspainAdditionalInfo=(Option.map~f:SpainAdditionalInfo.of_xml)(Xml.childxml_arg0"spainAdditionalInfo")inletsouthKoreaAdditionalInfo=(Option.map~f:SouthKoreaAdditionalInfo.of_xml)(Xml.childxml_arg0"southKoreaAdditionalInfo")inletsaudiArabiaAdditionalInfo=(Option.map~f:SaudiArabiaAdditionalInfo.of_xml)(Xml.childxml_arg0"saudiArabiaAdditionalInfo")inletromaniaAdditionalInfo=(Option.map~f:RomaniaAdditionalInfo.of_xml)(Xml.childxml_arg0"romaniaAdditionalInfo")inletpolandAdditionalInfo=(Option.map~f:PolandAdditionalInfo.of_xml)(Xml.childxml_arg0"polandAdditionalInfo")inletmalaysiaAdditionalInfo=(Option.map~f:MalaysiaAdditionalInfo.of_xml)(Xml.childxml_arg0"malaysiaAdditionalInfo")inletkenyaAdditionalInfo=(Option.map~f:KenyaAdditionalInfo.of_xml)(Xml.childxml_arg0"kenyaAdditionalInfo")inletitalyAdditionalInfo=(Option.map~f:ItalyAdditionalInfo.of_xml)(Xml.childxml_arg0"italyAdditionalInfo")inletisraelAdditionalInfo=(Option.map~f:IsraelAdditionalInfo.of_xml)(Xml.childxml_arg0"israelAdditionalInfo")inletindonesiaAdditionalInfo=(Option.map~f:IndonesiaAdditionalInfo.of_xml)(Xml.childxml_arg0"indonesiaAdditionalInfo")inletgreeceAdditionalInfo=(Option.map~f:GreeceAdditionalInfo.of_xml)(Xml.childxml_arg0"greeceAdditionalInfo")inletgeorgiaAdditionalInfo=(Option.map~f:GeorgiaAdditionalInfo.of_xml)(Xml.childxml_arg0"georgiaAdditionalInfo")inletestoniaAdditionalInfo=(Option.map~f:EstoniaAdditionalInfo.of_xml)(Xml.childxml_arg0"estoniaAdditionalInfo")inletegyptAdditionalInfo=(Option.map~f:EgyptAdditionalInfo.of_xml)(Xml.childxml_arg0"egyptAdditionalInfo")inletcanadaAdditionalInfo=(Option.map~f:CanadaAdditionalInfo.of_xml)(Xml.childxml_arg0"canadaAdditionalInfo")inmake?vietnamAdditionalInfo?uzbekistanAdditionalInfo?ukraineAdditionalInfo?turkeyAdditionalInfo?spainAdditionalInfo?southKoreaAdditionalInfo?saudiArabiaAdditionalInfo?romaniaAdditionalInfo?polandAdditionalInfo?malaysiaAdditionalInfo?kenyaAdditionalInfo?italyAdditionalInfo?israelAdditionalInfo?indonesiaAdditionalInfo?greeceAdditionalInfo?georgiaAdditionalInfo?estoniaAdditionalInfo?egyptAdditionalInfo?canadaAdditionalInfo()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letvietnamAdditionalInfo=field_mapjson__"vietnamAdditionalInfo"VietnamAdditionalInfo.of_jsoninletuzbekistanAdditionalInfo=field_mapjson__"uzbekistanAdditionalInfo"UzbekistanAdditionalInfo.of_jsoninletukraineAdditionalInfo=field_mapjson__"ukraineAdditionalInfo"UkraineAdditionalInfo.of_jsoninletturkeyAdditionalInfo=field_mapjson__"turkeyAdditionalInfo"TurkeyAdditionalInfo.of_jsoninletspainAdditionalInfo=field_mapjson__"spainAdditionalInfo"SpainAdditionalInfo.of_jsoninletsouthKoreaAdditionalInfo=field_mapjson__"southKoreaAdditionalInfo"SouthKoreaAdditionalInfo.of_jsoninletsaudiArabiaAdditionalInfo=field_mapjson__"saudiArabiaAdditionalInfo"SaudiArabiaAdditionalInfo.of_jsoninletromaniaAdditionalInfo=field_mapjson__"romaniaAdditionalInfo"RomaniaAdditionalInfo.of_jsoninletpolandAdditionalInfo=field_mapjson__"polandAdditionalInfo"PolandAdditionalInfo.of_jsoninletmalaysiaAdditionalInfo=field_mapjson__"malaysiaAdditionalInfo"MalaysiaAdditionalInfo.of_jsoninletkenyaAdditionalInfo=field_mapjson__"kenyaAdditionalInfo"KenyaAdditionalInfo.of_jsoninletitalyAdditionalInfo=field_mapjson__"italyAdditionalInfo"ItalyAdditionalInfo.of_jsoninletisraelAdditionalInfo=field_mapjson__"israelAdditionalInfo"IsraelAdditionalInfo.of_jsoninletindonesiaAdditionalInfo=field_mapjson__"indonesiaAdditionalInfo"IndonesiaAdditionalInfo.of_jsoninletgreeceAdditionalInfo=field_mapjson__"greeceAdditionalInfo"GreeceAdditionalInfo.of_jsoninletgeorgiaAdditionalInfo=field_mapjson__"georgiaAdditionalInfo"GeorgiaAdditionalInfo.of_jsoninletestoniaAdditionalInfo=field_mapjson__"estoniaAdditionalInfo"EstoniaAdditionalInfo.of_jsoninletegyptAdditionalInfo=field_mapjson__"egyptAdditionalInfo"EgyptAdditionalInfo.of_jsoninletcanadaAdditionalInfo=field_mapjson__"canadaAdditionalInfo"CanadaAdditionalInfo.of_jsoninmake?vietnamAdditionalInfo?uzbekistanAdditionalInfo?ukraineAdditionalInfo?turkeyAdditionalInfo?spainAdditionalInfo?southKoreaAdditionalInfo?saudiArabiaAdditionalInfo?romaniaAdditionalInfo?polandAdditionalInfo?malaysiaAdditionalInfo?kenyaAdditionalInfo?italyAdditionalInfo?israelAdditionalInfo?indonesiaAdditionalInfo?greeceAdditionalInfo?georgiaAdditionalInfo?estoniaAdditionalInfo?egyptAdditionalInfo?canadaAdditionalInfo()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Additional tax information associated with your tax registration number (TRN). Depending on the TRN for a specific country, you might need to specify this information when you set your TRN. You can only specify one of the following parameters and the value can't be empty. The parameter that you specify must match the country for the TRN, if available. For example, if you set a TRN in Canada for specific provinces, you must also specify the canadaAdditionalInfo parameter."]moduleVerificationDetails=structtypenonrect={dateOfBirth:DateOfBirth.toption[@ocaml.doc"Date of birth to verify your submitted TRN. Use the YYYY-MM-DD format."];taxRegistrationDocuments:TaxRegistrationDocuments.toption[@ocaml.doc"The tax registration document, which is required for specific countries such as Bangladesh, Kenya, South Korea and Spain."]}letmake?dateOfBirth=fun?taxRegistrationDocuments->fun()->{dateOfBirth;taxRegistrationDocuments}letto_valuex=structure_to_value[("dateOfBirth",(Option.mapx.dateOfBirth~f:DateOfBirth.to_value));("taxRegistrationDocuments",(Option.mapx.taxRegistrationDocuments~f:TaxRegistrationDocuments.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettaxRegistrationDocuments=(Option.map~f:TaxRegistrationDocuments.of_xml)(Xml.childxml_arg0"taxRegistrationDocuments")inletdateOfBirth=(Option.map~f:DateOfBirth.of_xml)(Xml.childxml_arg0"dateOfBirth")inmake?taxRegistrationDocuments?dateOfBirth()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettaxRegistrationDocuments=field_mapjson__"taxRegistrationDocuments"TaxRegistrationDocuments.of_jsoninletdateOfBirth=field_mapjson__"dateOfBirth"DateOfBirth.of_jsoninmake?taxRegistrationDocuments?dateOfBirth()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Required information to verify your TRN."]moduleExemptionDocumentName=structtypenonrect=stringletcontext_="ExemptionDocumentName"letmakei=letopenResultinok_or_failwith((check_string_mini~min:0)>>=(fun()->(check_string_maxi~max:128)>>=(fun()->check_patterni~pattern:"^([A-Za-z0-9-_.]+).(pdf|jpg|png)$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"ExemptionDocumentName"jletto_json=simple_to_jsonto_valueendmoduleExemptionFileBlob=structtypenonrect=stringletmakei=iletof_stringx=xletto_valuex=`Blobxletto_queryv=to_queryto_valuevletto_headerx=xletof_xmlxml_arg0=string_of_xml~kind:"a blob"xml_arg0letof_jsonj=string_of_json~kind:"a blob"jletto_json=simple_to_jsonto_valueendmoduleAccountDetails=structtypenonrect={accountId:AccountId.toption[@ocaml.doc"List of unique account identifiers."];accountMetaData:AccountMetaData.toption[@ocaml.doc"The meta data information associated with the account."];taxInheritanceDetails:TaxInheritanceDetails.toption[@ocaml.doc"Tax inheritance information associated with the account."];taxRegistration:TaxRegistrationWithJurisdiction.toption[@ocaml.doc"Your TRN information. Instead of having full legal address, here TRN information will have jurisdiction details (for example, country code and state/region/province if applicable)."]}letmake?accountId=fun?accountMetaData->fun?taxInheritanceDetails->fun?taxRegistration->fun()->{accountId;accountMetaData;taxInheritanceDetails;taxRegistration}letto_valuex=structure_to_value[("accountId",(Option.mapx.accountId~f:AccountId.to_value));("accountMetaData",(Option.mapx.accountMetaData~f:AccountMetaData.to_value));("taxInheritanceDetails",(Option.mapx.taxInheritanceDetails~f:TaxInheritanceDetails.to_value));("taxRegistration",(Option.mapx.taxRegistration~f:TaxRegistrationWithJurisdiction.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettaxRegistration=(Option.map~f:TaxRegistrationWithJurisdiction.of_xml)(Xml.childxml_arg0"taxRegistration")inlettaxInheritanceDetails=(Option.map~f:TaxInheritanceDetails.of_xml)(Xml.childxml_arg0"taxInheritanceDetails")inletaccountMetaData=(Option.map~f:AccountMetaData.of_xml)(Xml.childxml_arg0"accountMetaData")inletaccountId=(Option.map~f:AccountId.of_xml)(Xml.childxml_arg0"accountId")inmake?taxRegistration?taxInheritanceDetails?accountMetaData?accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettaxRegistration=field_mapjson__"taxRegistration"TaxRegistrationWithJurisdiction.of_jsoninlettaxInheritanceDetails=field_mapjson__"taxInheritanceDetails"TaxInheritanceDetails.of_jsoninletaccountMetaData=field_mapjson__"accountMetaData"AccountMetaData.of_jsoninletaccountId=field_mapjson__"accountId"AccountId.of_jsoninmake?taxRegistration?taxInheritanceDetails?accountMetaData?accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"An object with your accountId and TRN information."]moduleTaxExemptionDetails=structtypenonrect={heritageObtainedDetails:Boolean.toption[@ocaml.doc"The indicator if the tax exemption is inherited from the consolidated billing family management account."];heritageObtainedParentEntity:GenericString.toption[@ocaml.doc"The consolidated billing family management account the tax exemption inherited from."];heritageObtainedReason:GenericString.toption[@ocaml.doc"The reason of the heritage inheritance."];taxExemptions:TaxExemptions.toption[@ocaml.doc"Tax exemptions."]}letmake?heritageObtainedDetails=fun?heritageObtainedParentEntity->fun?heritageObtainedReason->fun?taxExemptions->fun()->{heritageObtainedDetails;heritageObtainedParentEntity;heritageObtainedReason;taxExemptions}letto_valuex=structure_to_value[("heritageObtainedDetails",(Option.mapx.heritageObtainedDetails~f:Boolean.to_value));("heritageObtainedParentEntity",(Option.mapx.heritageObtainedParentEntity~f:GenericString.to_value));("heritageObtainedReason",(Option.mapx.heritageObtainedReason~f:GenericString.to_value));("taxExemptions",(Option.mapx.taxExemptions~f:TaxExemptions.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettaxExemptions=(Option.map~f:TaxExemptions.of_xml)(Xml.childxml_arg0"taxExemptions")inletheritageObtainedReason=(Option.map~f:GenericString.of_xml)(Xml.childxml_arg0"heritageObtainedReason")inletheritageObtainedParentEntity=(Option.map~f:GenericString.of_xml)(Xml.childxml_arg0"heritageObtainedParentEntity")inletheritageObtainedDetails=(Option.map~f:Boolean.of_xml)(Xml.childxml_arg0"heritageObtainedDetails")inmake?taxExemptions?heritageObtainedReason?heritageObtainedParentEntity?heritageObtainedDetails()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettaxExemptions=field_mapjson__"taxExemptions"TaxExemptions.of_jsoninletheritageObtainedReason=field_mapjson__"heritageObtainedReason"GenericString.of_jsoninletheritageObtainedParentEntity=field_mapjson__"heritageObtainedParentEntity"GenericString.of_jsoninletheritageObtainedDetails=field_mapjson__"heritageObtainedDetails"Boolean.of_jsoninmake?taxExemptions?heritageObtainedReason?heritageObtainedParentEntity?heritageObtainedDetails()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The tax exemption details."]moduleSupplementalTaxRegistration=structtypenonrect={address:Address.toption;authorityId:GenericString.toption[@ocaml.doc"Unique authority ID for the supplemental TRN."];legalName:LegalName.toption[@ocaml.doc"The legal name associated with your TRN registration."];registrationId:RegistrationId.toption[@ocaml.doc"The supplemental TRN unique identifier."];registrationType:SupplementalTaxRegistrationType.toption[@ocaml.doc"Type of supplemental TRN. Currently, this can only be VAT."];status:TaxRegistrationStatus.toption[@ocaml.doc"The status of your TRN."]}letmake?address=fun?authorityId->fun?legalName->fun?registrationId->fun?registrationType->fun?status->fun()->{address;authorityId;legalName;registrationId;registrationType;status}letto_valuex=structure_to_value[("address",(Option.mapx.address~f:Address.to_value));("authorityId",(Option.mapx.authorityId~f:GenericString.to_value));("legalName",(Option.mapx.legalName~f:LegalName.to_value));("registrationId",(Option.mapx.registrationId~f:RegistrationId.to_value));("registrationType",(Option.mapx.registrationType~f:SupplementalTaxRegistrationType.to_value));("status",(Option.mapx.status~f:TaxRegistrationStatus.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstatus=(Option.map~f:TaxRegistrationStatus.of_xml)(Xml.childxml_arg0"status")inletregistrationType=(Option.map~f:SupplementalTaxRegistrationType.of_xml)(Xml.childxml_arg0"registrationType")inletregistrationId=(Option.map~f:RegistrationId.of_xml)(Xml.childxml_arg0"registrationId")inletlegalName=(Option.map~f:LegalName.of_xml)(Xml.childxml_arg0"legalName")inletauthorityId=(Option.map~f:GenericString.of_xml)(Xml.childxml_arg0"authorityId")inletaddress=(Option.map~f:Address.of_xml)(Xml.childxml_arg0"address")inmake?status?registrationType?registrationId?legalName?authorityId?address()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstatus=field_mapjson__"status"TaxRegistrationStatus.of_jsoninletregistrationType=field_mapjson__"registrationType"SupplementalTaxRegistrationType.of_jsoninletregistrationId=field_mapjson__"registrationId"RegistrationId.of_jsoninletlegalName=field_mapjson__"legalName"LegalName.of_jsoninletauthorityId=field_mapjson__"authorityId"GenericString.of_jsoninletaddress=field_mapjson__"address"Address.of_jsoninmake?status?registrationType?registrationId?legalName?authorityId?address()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Supplemental TRN details."]moduleS3Prefix=structtypenonrect=stringletcontext_="S3Prefix"letmakei=letopenResultinok_or_failwith((check_string_mini~min:0)>>=(fun()->(check_string_maxi~max:512)>>=(fun()->check_patterni~pattern:"^.*\\S.*$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"S3Prefix"jletto_json=simple_to_jsonto_valueendmoduleBatchPutTaxRegistrationError=structtypenonrect={accountId:AccountId.toption[@ocaml.doc"The unique account identifier for the account that the tax registration couldn't be added, or updated during the BatchPutTaxRegistration operation."];code:ErrorCode.toption[@ocaml.doc"The error code for an individual failure in the BatchPutTaxRegistration operation."];message:ErrorMessage.toption[@ocaml.doc"The error message for an individual failure in the BatchPutTaxRegistration operation."]}letmake?accountId=fun?code->fun?message->fun()->{accountId;code;message}letto_valuex=structure_to_value[("accountId",(Option.mapx.accountId~f:AccountId.to_value));("code",(Option.mapx.code~f:ErrorCode.to_value));("message",(Option.mapx.message~f:ErrorMessage.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:ErrorMessage.of_xml)(Xml.childxml_arg0"message")inletcode=(Option.map~f:ErrorCode.of_xml)(Xml.childxml_arg0"code")inletaccountId=(Option.map~f:AccountId.of_xml)(Xml.childxml_arg0"accountId")inmake?message?code?accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"ErrorMessage.of_jsoninletcode=field_mapjson__"code"ErrorCode.of_jsoninletaccountId=field_mapjson__"accountId"AccountId.of_jsoninmake?message?code?accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The error object for representing failures in the BatchPutTaxRegistration operation."]moduleBatchDeleteTaxRegistrationError=structtypenonrect={accountId:AccountId.toption[@ocaml.doc"The unique account identifier for the account whose tax registration couldn't be deleted during the BatchDeleteTaxRegistration operation."];code:ErrorCode.toption[@ocaml.doc"The error code for an individual failure in BatchDeleteTaxRegistration operation."];message:ErrorMessage.toption[@ocaml.doc"The error message for an individual failure in the BatchDeleteTaxRegistration operation."]}letmake?accountId=fun?code->fun?message->fun()->{accountId;code;message}letto_valuex=structure_to_value[("accountId",(Option.mapx.accountId~f:AccountId.to_value));("code",(Option.mapx.code~f:ErrorCode.to_value));("message",(Option.mapx.message~f:ErrorMessage.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:ErrorMessage.of_xml)(Xml.childxml_arg0"message")inletcode=(Option.map~f:ErrorCode.of_xml)(Xml.childxml_arg0"code")inletaccountId=(Option.map~f:AccountId.of_xml)(Xml.childxml_arg0"accountId")inmake?message?code?accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"ErrorMessage.of_jsoninletcode=field_mapjson__"code"ErrorCode.of_jsoninletaccountId=field_mapjson__"accountId"AccountId.of_jsoninmake?message?code?accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The error object for representing failures in the BatchDeleteTaxRegistration operation."]moduleConflictException=structtypenonrect={errorCode:ErrorCode.toption[@ocaml.doc"409"];message:ErrorMessage.toption}letmake?errorCode=fun?message->fun()->{errorCode;message}letto_valuex=structure_to_value[("errorCode",(Option.mapx.errorCode~f:ErrorCode.to_value));("message",(Option.mapx.message~f:ErrorMessage.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:ErrorMessage.of_xml)(Xml.childxml_arg0"message")inleterrorCode=(Option.map~f:ErrorCode.of_xml)(Xml.childxml_arg0"errorCode")inmake?message?errorCode()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"ErrorMessage.of_jsoninleterrorCode=field_mapjson__"errorCode"ErrorCode.of_jsoninmake?message?errorCode()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The exception when the input is creating conflict with the given state."]moduleInternalServerException=structtypenonrect={errorCode:ErrorCode.toption[@ocaml.doc"500"];message:ErrorMessage.toption}letmake?errorCode=fun?message->fun()->{errorCode;message}letto_valuex=structure_to_value[("errorCode",(Option.mapx.errorCode~f:ErrorCode.to_value));("message",(Option.mapx.message~f:ErrorMessage.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:ErrorMessage.of_xml)(Xml.childxml_arg0"message")inleterrorCode=(Option.map~f:ErrorCode.of_xml)(Xml.childxml_arg0"errorCode")inmake?message?errorCode()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"ErrorMessage.of_jsoninleterrorCode=field_mapjson__"errorCode"ErrorCode.of_jsoninmake?message?errorCode()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The exception thrown when an unexpected error occurs when processing a request."]moduleValidationException=structtypenonrect={errorCode:ValidationExceptionErrorCode.toption[@ocaml.doc"400"];fieldList:ValidationExceptionFieldList.toption[@ocaml.doc"400"];message:ErrorMessage.toption}letmake?errorCode=fun?fieldList->fun?message->fun()->{errorCode;fieldList;message}letto_valuex=structure_to_value[("errorCode",(Option.mapx.errorCode~f:ValidationExceptionErrorCode.to_value));("fieldList",(Option.mapx.fieldList~f:ValidationExceptionFieldList.to_value));("message",(Option.mapx.message~f:ErrorMessage.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:ErrorMessage.of_xml)(Xml.childxml_arg0"message")inletfieldList=(Option.map~f:ValidationExceptionFieldList.of_xml)(Xml.childxml_arg0"fieldList")inleterrorCode=(Option.map~f:ValidationExceptionErrorCode.of_xml)(Xml.childxml_arg0"errorCode")inmake?message?fieldList?errorCode()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"ErrorMessage.of_jsoninletfieldList=field_mapjson__"fieldList"ValidationExceptionFieldList.of_jsoninleterrorCode=field_mapjson__"errorCode"ValidationExceptionErrorCode.of_jsoninmake?message?fieldList?errorCode()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The exception when the input doesn't pass validation for at least one of the input parameters."]moduleTaxRegistrationEntry=structtypenonrect={additionalTaxInformation:AdditionalInfoRequest.toption[@ocaml.doc"Additional tax information associated with your TRN. You only need to specify this parameter if Amazon Web Services collects any additional information for your country within AdditionalInfoRequest."];certifiedEmailId:CertifiedEmailId.toption[@ocaml.doc"The email address to receive VAT invoices."];legalAddress:Address.toption[@ocaml.doc"The legal address associated with your TRN. If you're setting a TRN in Brazil for the CNPJ tax type, you don't need to specify the legal address. For TRNs in other countries and for CPF tax types Brazil, you must specify the legal address."];legalName:LegalName.toption[@ocaml.doc"The legal name associated with your TRN. If you're setting a TRN in Brazil, you don't need to specify the legal name. For TRNs in other countries, you must specify the legal name."];registrationId:RegistrationId.t[@ocaml.doc"Your tax registration unique identifier."];registrationType:TaxRegistrationType.t[@ocaml.doc"Your tax registration type. This can be either VAT or GST."];sector:Sector.toption[@ocaml.doc"The industry that describes your business. For business-to-business (B2B) customers, specify Business. For business-to-consumer (B2C) customers, specify Individual. For business-to-government (B2G), specify Government.Note that certain values may not applicable for the request country. Please refer to country specific information in API document."];verificationDetails:VerificationDetails.toption[@ocaml.doc"Additional details needed to verify your TRN information in Brazil. You only need to specify this parameter when you set a TRN in Brazil that is the CPF tax type. Don't specify this parameter to set a TRN in Brazil of the CNPJ tax type or to set a TRN for another country."]}letcontext_="TaxRegistrationEntry"letmake?additionalTaxInformation=fun?certifiedEmailId->fun?legalAddress->fun?legalName->fun?sector->fun?verificationDetails->fun~registrationId->fun~registrationType->fun()->{additionalTaxInformation;certifiedEmailId;legalAddress;legalName;sector;verificationDetails;registrationId;registrationType}letto_valuex=structure_to_value[("additionalTaxInformation",(Option.mapx.additionalTaxInformation~f:AdditionalInfoRequest.to_value));("certifiedEmailId",(Option.mapx.certifiedEmailId~f:CertifiedEmailId.to_value));("legalAddress",(Option.mapx.legalAddress~f:Address.to_value));("legalName",(Option.mapx.legalName~f:LegalName.to_value));("registrationId",(Some(RegistrationId.to_valuex.registrationId)));("registrationType",(Some(TaxRegistrationType.to_valuex.registrationType)));("sector",(Option.mapx.sector~f:Sector.to_value));("verificationDetails",(Option.mapx.verificationDetails~f:VerificationDetails.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letverificationDetails=(Option.map~f:VerificationDetails.of_xml)(Xml.childxml_arg0"verificationDetails")inletsector=(Option.map~f:Sector.of_xml)(Xml.childxml_arg0"sector")inletregistrationType=TaxRegistrationType.of_xml(Xml.child_exn~context:context_xml_arg0"registrationType")inletregistrationId=RegistrationId.of_xml(Xml.child_exn~context:context_xml_arg0"registrationId")inletlegalName=(Option.map~f:LegalName.of_xml)(Xml.childxml_arg0"legalName")inletlegalAddress=(Option.map~f:Address.of_xml)(Xml.childxml_arg0"legalAddress")inletcertifiedEmailId=(Option.map~f:CertifiedEmailId.of_xml)(Xml.childxml_arg0"certifiedEmailId")inletadditionalTaxInformation=(Option.map~f:AdditionalInfoRequest.of_xml)(Xml.childxml_arg0"additionalTaxInformation")inmake?verificationDetails?sector~registrationType~registrationId?legalName?legalAddress?certifiedEmailId?additionalTaxInformation()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letverificationDetails=field_mapjson__"verificationDetails"VerificationDetails.of_jsoninletsector=field_mapjson__"sector"Sector.of_jsoninletregistrationType=field_map_exnjson__"registrationType"TaxRegistrationType.of_jsoninletregistrationId=field_map_exnjson__"registrationId"RegistrationId.of_jsoninletlegalName=field_mapjson__"legalName"LegalName.of_jsoninletlegalAddress=field_mapjson__"legalAddress"Address.of_jsoninletcertifiedEmailId=field_mapjson__"certifiedEmailId"CertifiedEmailId.of_jsoninletadditionalTaxInformation=field_mapjson__"additionalTaxInformation"AdditionalInfoRequest.of_jsoninmake?verificationDetails?sector~registrationType~registrationId?legalName?legalAddress?certifiedEmailId?additionalTaxInformation()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The TRN information you provide when you add a new TRN, or update."]moduleResourceNotFoundException=structtypenonrect={errorCode:ErrorCode.toption[@ocaml.doc"404"];message:ErrorMessage.toption}letmake?errorCode=fun?message->fun()->{errorCode;message}letto_valuex=structure_to_value[("errorCode",(Option.mapx.errorCode~f:ErrorCode.to_value));("message",(Option.mapx.message~f:ErrorMessage.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:ErrorMessage.of_xml)(Xml.childxml_arg0"message")inleterrorCode=(Option.map~f:ErrorCode.of_xml)(Xml.childxml_arg0"errorCode")inmake?message?errorCode()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"ErrorMessage.of_jsoninleterrorCode=field_mapjson__"errorCode"ErrorCode.of_jsoninmake?message?errorCode()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The exception thrown when the input doesn't have a resource associated to it."]moduleHeritageStatus=structtypenonrect=|OptIn|OptOut|Non_static_idofstringletmakei=iletto_string=function|OptIn->"OptIn"|OptOut->"OptOut"|Non_static_ids->sletof_string=function|"OptIn"->OptIn|"OptOut"->OptOut|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 HeritageStatus"xml_arg0)letof_jsonj=of_string(string_of_json~kind:"HeritageStatus"j)letto_json=simple_to_jsonto_valueendmoduleAccessDeniedException=structtypenonrect={message:ErrorMessage.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:ErrorMessage.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:ErrorMessage.of_xml)(Xml.childxml_arg0"message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"ErrorMessage.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The access is denied for the Amazon Web ServicesSupport API."]moduleAttachmentUploadException=structtypenonrect={message:ErrorMessage.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:ErrorMessage.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:ErrorMessage.of_xml)(Xml.childxml_arg0"message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"ErrorMessage.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Failed to upload the tax exemption document to Amazon Web ServicesSupport case."]moduleCaseCreationLimitExceededException=structtypenonrect={message:ErrorMessage.toption}letmake?message=fun()->{message}letto_valuex=structure_to_value[("message",(Option.mapx.message~f:ErrorMessage.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letmessage=(Option.map~f:ErrorMessage.of_xml)(Xml.childxml_arg0"message")inmake?message()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letmessage=field_mapjson__"message"ErrorMessage.of_jsoninmake?message()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"You've exceeded the Amazon Web ServicesSupport case creation limit for your account."]moduleExemptionCertificate=structtypenonrect={documentFile:ExemptionFileBlob.t[@ocaml.doc"The exemption certificate file content."];documentName:ExemptionDocumentName.t[@ocaml.doc"The exemption certificate file name."]}letcontext_="ExemptionCertificate"letmake~documentFile=fun~documentName->fun()->{documentFile;documentName}letto_valuex=structure_to_value[("documentFile",(Some(ExemptionFileBlob.to_valuex.documentFile)));("documentName",(Some(ExemptionDocumentName.to_valuex.documentName)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letdocumentName=ExemptionDocumentName.of_xml(Xml.child_exn~context:context_xml_arg0"documentName")inletdocumentFile=ExemptionFileBlob.of_xml(Xml.child_exn~context:context_xml_arg0"documentFile")inmake~documentName~documentFile()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letdocumentName=field_map_exnjson__"documentName"ExemptionDocumentName.of_jsoninletdocumentFile=field_map_exnjson__"documentFile"ExemptionFileBlob.of_jsoninmake~documentName~documentFile()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The exemption certificate."]modulePutTaxExemptionRequestAccountIdsList=structtypenonrect=AccountId.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:550)>>=(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:AccountId.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:AccountId.of_xml)letof_jsonj=list_of_json~kind:"PutTaxExemptionRequestAccountIdsList"~of_json:AccountId.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleSupplementalTaxRegistrationEntry=structtypenonrect={address:Address.t;legalName:LegalName.t[@ocaml.doc"The legal name associated with your TRN registration."];registrationId:RegistrationId.t[@ocaml.doc"The supplemental TRN unique identifier."];registrationType:SupplementalTaxRegistrationType.t[@ocaml.doc"Type of supplemental TRN. Currently, this can only be VAT."]}letcontext_="SupplementalTaxRegistrationEntry"letmake~address=fun~legalName->fun~registrationId->fun~registrationType->fun()->{address;legalName;registrationId;registrationType}letto_valuex=structure_to_value[("address",(Some(Address.to_valuex.address)));("legalName",(Some(LegalName.to_valuex.legalName)));("registrationId",(Some(RegistrationId.to_valuex.registrationId)));("registrationType",(Some(SupplementalTaxRegistrationType.to_valuex.registrationType)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letregistrationType=SupplementalTaxRegistrationType.of_xml(Xml.child_exn~context:context_xml_arg0"registrationType")inletregistrationId=RegistrationId.of_xml(Xml.child_exn~context:context_xml_arg0"registrationId")inletlegalName=LegalName.of_xml(Xml.child_exn~context:context_xml_arg0"legalName")inletaddress=Address.of_xml(Xml.child_exn~context:context_xml_arg0"address")inmake~registrationType~registrationId~legalName~address()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letregistrationType=field_map_exnjson__"registrationType"SupplementalTaxRegistrationType.of_jsoninletregistrationId=field_map_exnjson__"registrationId"RegistrationId.of_jsoninletlegalName=field_map_exnjson__"legalName"LegalName.of_jsoninletaddress=field_map_exnjson__"address"Address.of_jsoninmake~registrationType~registrationId~legalName~address()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The supplemental TRN information to provide when adding or updating a supplemental TRN."]moduleAccountDetailsList=structtypenonrect=AccountDetails.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:AccountDetails.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:AccountDetails.of_xml)letof_jsonj=list_of_json~kind:"AccountDetailsList"~of_json:AccountDetails.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmodulePaginationTokenString=structtypenonrect=stringletcontext_="PaginationTokenString"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:2000)>>=(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:"PaginationTokenString"jletto_json=simple_to_jsonto_valueendmoduleMaxResults=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 MaxResults"xml_arg0)letof_jsonj=Int.of_float(float_of_json~kind:"an integer"j)letto_json=simple_to_jsonto_valueendmoduleTaxExemptionDetailsMap=structtypenonrect=(AccountId.t*TaxExemptionDetails.t)listletmakei=iletof_headerxs=make(List.filter_mapxs~f:(fun(k,v)->(Base.String.chop_prefixk~prefix:"x-amz-meta-")|>(Option.map~f:(funchopped->let(_:string)=vinlet(_:string)=choppedinfailwith"no of_header for complex types AccountId TaxExemptionDetails"))))letto_valuexs=(xs|>(List.map~f:(fun(x,y)->(AccountId.to_valuex)|>(funx->(TaxExemptionDetails.to_valuey)|>(funy->(x,y))))))|>(funx->`Mapx)letto_queryv=to_queryto_valuevletto_header_=failwithf"to_header is not implemented for Map_shape objects"()letof_xml_=failwith"of_xml_converter_of_shape: Map_shape case not implemented"letof_jsonj=object_of_json~key_of_string:AccountId.of_string~of_json:TaxExemptionDetails.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleSupplementalTaxRegistrationList=structtypenonrect=SupplementalTaxRegistration.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:SupplementalTaxRegistration.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:SupplementalTaxRegistration.of_xml)letof_jsonj=list_of_json~kind:"SupplementalTaxRegistrationList"~of_json:SupplementalTaxRegistration.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleTaxRegistration=structtypenonrect={additionalTaxInformation:AdditionalInfoResponse.toption[@ocaml.doc"Additional tax information associated with your TRN."];certifiedEmailId:CertifiedEmailId.toption[@ocaml.doc"The email address to receive VAT invoices."];legalAddress:Address.toption[@ocaml.doc"The legal address associated with your TRN registration."];legalName:LegalName.toption[@ocaml.doc"The legal name associated with your TRN registration."];registrationId:RegistrationId.toption[@ocaml.doc"Your tax registration unique identifier."];registrationType:TaxRegistrationType.toption[@ocaml.doc"Type of your tax registration."];sector:Sector.toption[@ocaml.doc"The industry that describes your business. For business-to-business (B2B) customers, specify Business. For business-to-consumer (B2C) customers, specify Individual. For business-to-government (B2G), specify Government. Note that certain values may not applicable for the request country. Please refer to country specific information in API document."];status:TaxRegistrationStatus.toption[@ocaml.doc"The status of your TRN. This can be either Verified, Pending, Deleted, or Rejected."];taxDocumentMetadatas:TaxDocumentMetadatas.toption[@ocaml.doc"The metadata for your tax document."]}letmake?additionalTaxInformation=fun?certifiedEmailId->fun?legalAddress->fun?legalName->fun?registrationId->fun?registrationType->fun?sector->fun?status->fun?taxDocumentMetadatas->fun()->{additionalTaxInformation;certifiedEmailId;legalAddress;legalName;registrationId;registrationType;sector;status;taxDocumentMetadatas}letto_valuex=structure_to_value[("additionalTaxInformation",(Option.mapx.additionalTaxInformation~f:AdditionalInfoResponse.to_value));("certifiedEmailId",(Option.mapx.certifiedEmailId~f:CertifiedEmailId.to_value));("legalAddress",(Option.mapx.legalAddress~f:Address.to_value));("legalName",(Option.mapx.legalName~f:LegalName.to_value));("registrationId",(Option.mapx.registrationId~f:RegistrationId.to_value));("registrationType",(Option.mapx.registrationType~f:TaxRegistrationType.to_value));("sector",(Option.mapx.sector~f:Sector.to_value));("status",(Option.mapx.status~f:TaxRegistrationStatus.to_value));("taxDocumentMetadatas",(Option.mapx.taxDocumentMetadatas~f:TaxDocumentMetadatas.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettaxDocumentMetadatas=(Option.map~f:TaxDocumentMetadatas.of_xml)(Xml.childxml_arg0"taxDocumentMetadatas")inletstatus=(Option.map~f:TaxRegistrationStatus.of_xml)(Xml.childxml_arg0"status")inletsector=(Option.map~f:Sector.of_xml)(Xml.childxml_arg0"sector")inletregistrationType=(Option.map~f:TaxRegistrationType.of_xml)(Xml.childxml_arg0"registrationType")inletregistrationId=(Option.map~f:RegistrationId.of_xml)(Xml.childxml_arg0"registrationId")inletlegalName=(Option.map~f:LegalName.of_xml)(Xml.childxml_arg0"legalName")inletlegalAddress=(Option.map~f:Address.of_xml)(Xml.childxml_arg0"legalAddress")inletcertifiedEmailId=(Option.map~f:CertifiedEmailId.of_xml)(Xml.childxml_arg0"certifiedEmailId")inletadditionalTaxInformation=(Option.map~f:AdditionalInfoResponse.of_xml)(Xml.childxml_arg0"additionalTaxInformation")inmake?taxDocumentMetadatas?status?sector?registrationType?registrationId?legalName?legalAddress?certifiedEmailId?additionalTaxInformation()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettaxDocumentMetadatas=field_mapjson__"taxDocumentMetadatas"TaxDocumentMetadatas.of_jsoninletstatus=field_mapjson__"status"TaxRegistrationStatus.of_jsoninletsector=field_mapjson__"sector"Sector.of_jsoninletregistrationType=field_mapjson__"registrationType"TaxRegistrationType.of_jsoninletregistrationId=field_mapjson__"registrationId"RegistrationId.of_jsoninletlegalName=field_mapjson__"legalName"LegalName.of_jsoninletlegalAddress=field_mapjson__"legalAddress"Address.of_jsoninletcertifiedEmailId=field_mapjson__"certifiedEmailId"CertifiedEmailId.of_jsoninletadditionalTaxInformation=field_mapjson__"additionalTaxInformation"AdditionalInfoResponse.of_jsoninmake?taxDocumentMetadatas?status?sector?registrationType?registrationId?legalName?legalAddress?certifiedEmailId?additionalTaxInformation()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Your TRN information."]moduleDestinationFilePath=structtypenonrect=stringletcontext_="DestinationFilePath"letmakei=letopenResultinok_or_failwith(check_patterni~pattern:"^[\\s\\S]*$");iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"DestinationFilePath"jletto_json=simple_to_jsonto_valueendmoduleUrl=structtypenonrect=stringletcontext_="Url"letmakei=letopenResultinok_or_failwith((check_string_mini~min:1)>>=(fun()->(check_string_maxi~max:200)>>=(fun()->check_patterni~pattern:"^https.*\\S.*$")));iletof_stringx=xletto_valuex=`Stringxletto_queryv=to_queryto_valuevletto_headerx=xletof_xml=Xml.string_data_exn~context:context_letof_jsonj=string_of_json~kind:"Url"jletto_json=simple_to_jsonto_valueendmoduleDestinationS3Location=structtypenonrect={bucket:S3BucketName.t[@ocaml.doc"The name of your Amazon S3 bucket that you specify to download your tax documents to."];prefix:S3Prefix.toption[@ocaml.doc"The Amazon S3 object prefix that you specify for your tax document file."]}letcontext_="DestinationS3Location"letmake?prefix=fun~bucket->fun()->{prefix;bucket}letto_valuex=structure_to_value[("bucket",(Some(S3BucketName.to_valuex.bucket)));("prefix",(Option.mapx.prefix~f:S3Prefix.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letprefix=(Option.map~f:S3Prefix.of_xml)(Xml.childxml_arg0"prefix")inletbucket=S3BucketName.of_xml(Xml.child_exn~context:context_xml_arg0"bucket")inmake?prefix~bucket()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letprefix=field_mapjson__"prefix"S3Prefix.of_jsoninletbucket=field_map_exnjson__"bucket"S3BucketName.of_jsoninmake?prefix~bucket()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The location of the Amazon S3 bucket that you specify to download your tax documents to."]moduleTaxExemptionTypes=structtypenonrect=TaxExemptionType.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:TaxExemptionType.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:TaxExemptionType.of_xml)letof_jsonj=list_of_json~kind:"TaxExemptionTypes"~of_json:TaxExemptionType.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleBatchPutTaxRegistrationErrors=structtypenonrect=BatchPutTaxRegistrationError.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:BatchPutTaxRegistrationError.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:BatchPutTaxRegistrationError.of_xml)letof_jsonj=list_of_json~kind:"BatchPutTaxRegistrationErrors"~of_json:BatchPutTaxRegistrationError.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleBatchPutTaxRegistrationRequestAccountIdsList=structtypenonrect=AccountId.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:550)>>=(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:AccountId.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:AccountId.of_xml)letof_jsonj=list_of_json~kind:"BatchPutTaxRegistrationRequestAccountIdsList"~of_json:AccountId.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleAccountIds=structtypenonrect=AccountId.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:AccountId.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:AccountId.of_xml)letof_jsonj=list_of_json~kind:"AccountIds"~of_json:AccountId.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleBatchGetTaxExemptionsRequestAccountIdsList=structtypenonrect=AccountId.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:5)>>=(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:AccountId.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:AccountId.of_xml)letof_jsonj=list_of_json~kind:"BatchGetTaxExemptionsRequestAccountIdsList"~of_json:AccountId.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleBatchDeleteTaxRegistrationErrors=structtypenonrect=BatchDeleteTaxRegistrationError.tlistletmakei=iletof_string_=failwithf"of_string is not implemented for List_shape objects"()[@@warning"-32"]letto_valuexs=(xs|>(List.map~f:BatchDeleteTaxRegistrationError.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:BatchDeleteTaxRegistrationError.of_xml)letof_jsonj=list_of_json~kind:"BatchDeleteTaxRegistrationErrors"~of_json:BatchDeleteTaxRegistrationError.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmoduleBatchDeleteTaxRegistrationRequestAccountIdsList=structtypenonrect=AccountId.tlistletmakei=letopenResultinok_or_failwith((check_list_maxi~max:5)>>=(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:AccountId.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:AccountId.of_xml)letof_jsonj=list_of_json~kind:"BatchDeleteTaxRegistrationRequestAccountIdsList"~of_json:AccountId.of_jsonjletto_jsonv=composed_to_jsonto_valuevendmodulePutTaxRegistrationResponse=structtypenonrect={status:TaxRegistrationStatus.toption[@ocaml.doc"The status of your TRN stored in the system after processing. Based on the validation occurring on the TRN, the status can be Verified, Pending or Rejected."]}typenonrecerror=[`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?status=fun()->{status}leterror_of_jsonnamejson=matchnamewith|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.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|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.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[("status",(Option.mapx.status~f:TaxRegistrationStatus.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstatus=(Option.map~f:TaxRegistrationStatus.of_xml)(Xml.childxml_arg0"status")inmake?status()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstatus=field_mapjson__"status"TaxRegistrationStatus.of_jsoninmake?status()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Adds or updates tax registration for a single account. You can't set a TRN if there's a pending TRN. You'll need to delete the pending TRN first. To call this API operation for specific countries, see the following country-specific requirements. Bangladesh You must specify the tax registration certificate document in the taxRegistrationDocuments field of the VerificationDetails object. Brazil You must complete the tax registration process in the Payment preferences page in the Billing and Cost Management console. After your TRN and billing address are verified, you can call this API operation. For Amazon Web Services accounts created through Organizations, you can call this API operation when you don't have a billing address. Georgia The valid personType values are Physical Person and Business. Indonesia PutTaxRegistration: The use of this operation to submit tax information is subject to the Amazon Web Services service terms. By submitting, you\226\128\153re providing consent for Amazon Web Services to validate NIK, NPWP, and NITKU data, provided by you with the Directorate General of Taxes of Indonesia in accordance with the Minister of Finance Regulation (PMK) Number 112/PMK.03/2022. BatchPutTaxRegistration: The use of this operation to submit tax information is subject to the Amazon Web Services service terms. By submitting, you\226\128\153re providing consent for Amazon Web Services to validate NIK, NPWP, and NITKU data, provided by you with the Directorate General of Taxes of Indonesia in accordance with the Minister of Finance Regulation (PMK) Number 112/PMK.03/2022, through our third-party partner PT Achilles Advanced Management (OnlinePajak). You must specify the taxRegistrationNumberType in the indonesiaAdditionalInfo field of the additionalTaxInformation object. If you specify decisionNumber, you must specify the ppnExceptionDesignationCode in the indonesiaAdditionalInfo field of the additionalTaxInformation object. If the taxRegistrationNumberType is set to NPWP or NITKU, valid values for ppnExceptionDesignationCode are either 01, 02, 03, 07, or 08. For other taxRegistrationNumberType values, ppnExceptionDesignationCode must be either 01, 07, or 08. If ppnExceptionDesignationCode is 07, you must specify the decisionNumber in the indonesiaAdditionalInfo field of the additionalTaxInformation object. Kenya You must specify the personType in the kenyaAdditionalInfo field of the additionalTaxInformation object. If the personType is Physical Person, you must specify the tax registration certificate document in the taxRegistrationDocuments field of the VerificationDetails object. Malaysia The sector valid values are Business and Individual. RegistrationType valid values are NRIC for individual, and TIN and sales and service tax (SST) for Business. For individual, you can specify the taxInformationNumber in MalaysiaAdditionalInfo with NRIC type, and a valid MyKad or NRIC number. For business, you must specify a businessRegistrationNumber in MalaysiaAdditionalInfo with a TIN type and tax identification number. For business resellers, you must specify a businessRegistrationNumber and taxInformationNumber in MalaysiaAdditionalInfo with a sales and service tax (SST) type and a valid SST number. For business resellers with service codes, you must specify businessRegistrationNumber, taxInformationNumber, and distinct serviceTaxCodes in MalaysiaAdditionalInfo with a SST type and valid sales and service tax (SST) number. By using this API operation, Amazon Web Services registers your self-declaration that you\226\128\153re an authorized business reseller registered with the Royal Malaysia Customs Department (RMCD), and have a valid SST number. Amazon Web Services reserves the right to seek additional information and/or take other actions to support your self-declaration as appropriate. Amazon Web Services is currently registered under the following service tax codes. You must include at least one of the service tax codes in the service tax code strings to declare yourself as an authorized registered business reseller. Taxable service and service tax codes: Consultancy - 9907061674 Training or coaching service - 9907071685 IT service - 9907101676 Digital services and electronic medium - 9907121690 Nepal The sector valid values are Business and Individual. Saudi Arabia For address, you must specify addressLine3. South Korea You must specify the certifiedEmailId and legalName in the TaxRegistrationEntry object. Use Korean characters for legalName. You must specify the businessRepresentativeName, itemOfBusiness, and lineOfBusiness in the southKoreaAdditionalInfo field of the additionalTaxInformation object. Use Korean characters for these fields. You must specify the tax registration certificate document in the taxRegistrationDocuments field of the VerificationDetails object. For the address object, use Korean characters for addressLine1, addressLine2 city, postalCode, and stateOrRegion. Spain You must specify the registrationType in the spainAdditionalInfo field of the additionalTaxInformation object. If the registrationType is Local, you must specify the tax registration certificate document in the taxRegistrationDocuments field of the VerificationDetails object. Turkey You must specify the sector in the taxRegistrationEntry object. If your sector is Business, Individual, or Government: Specify the taxOffice. If your sector is Individual, don't enter this value. (Optional) Specify the kepEmailId. If your sector is Individual, don't enter this value. Note: In the Tax Settings page of the Billing console, Government appears as Public institutions If your sector is Business and you're subject to KDV tax, you must specify your industry in the industries field. For address, you must specify districtOrCounty. Ukraine The sector valid values are Business and Individual."]modulePutTaxRegistrationRequest=structtypenonrect={accountId:AccountId.toption[@ocaml.doc"Your unique account identifier."];taxRegistrationEntry:TaxRegistrationEntry.t[@ocaml.doc"Your TRN information that will be stored to the account mentioned in accountId."]}letcontext_="PutTaxRegistrationRequest"letmake?accountId=fun~taxRegistrationEntry->fun()->{accountId;taxRegistrationEntry}letto_valuex=structure_to_value[("accountId",(Option.mapx.accountId~f:AccountId.to_value));("taxRegistrationEntry",(Some(TaxRegistrationEntry.to_valuex.taxRegistrationEntry)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettaxRegistrationEntry=TaxRegistrationEntry.of_xml(Xml.child_exn~context:context_xml_arg0"taxRegistrationEntry")inletaccountId=(Option.map~f:AccountId.of_xml)(Xml.childxml_arg0"accountId")inmake~taxRegistrationEntry?accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettaxRegistrationEntry=field_map_exnjson__"taxRegistrationEntry"TaxRegistrationEntry.of_jsoninletaccountId=field_mapjson__"accountId"AccountId.of_jsoninmake~taxRegistrationEntry?accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Adds or updates tax registration for a single account. You can't set a TRN if there's a pending TRN. You'll need to delete the pending TRN first. To call this API operation for specific countries, see the following country-specific requirements. Bangladesh You must specify the tax registration certificate document in the taxRegistrationDocuments field of the VerificationDetails object. Brazil You must complete the tax registration process in the Payment preferences page in the Billing and Cost Management console. After your TRN and billing address are verified, you can call this API operation. For Amazon Web Services accounts created through Organizations, you can call this API operation when you don't have a billing address. Georgia The valid personType values are Physical Person and Business. Indonesia PutTaxRegistration: The use of this operation to submit tax information is subject to the Amazon Web Services service terms. By submitting, you\226\128\153re providing consent for Amazon Web Services to validate NIK, NPWP, and NITKU data, provided by you with the Directorate General of Taxes of Indonesia in accordance with the Minister of Finance Regulation (PMK) Number 112/PMK.03/2022. BatchPutTaxRegistration: The use of this operation to submit tax information is subject to the Amazon Web Services service terms. By submitting, you\226\128\153re providing consent for Amazon Web Services to validate NIK, NPWP, and NITKU data, provided by you with the Directorate General of Taxes of Indonesia in accordance with the Minister of Finance Regulation (PMK) Number 112/PMK.03/2022, through our third-party partner PT Achilles Advanced Management (OnlinePajak). You must specify the taxRegistrationNumberType in the indonesiaAdditionalInfo field of the additionalTaxInformation object. If you specify decisionNumber, you must specify the ppnExceptionDesignationCode in the indonesiaAdditionalInfo field of the additionalTaxInformation object. If the taxRegistrationNumberType is set to NPWP or NITKU, valid values for ppnExceptionDesignationCode are either 01, 02, 03, 07, or 08. For other taxRegistrationNumberType values, ppnExceptionDesignationCode must be either 01, 07, or 08. If ppnExceptionDesignationCode is 07, you must specify the decisionNumber in the indonesiaAdditionalInfo field of the additionalTaxInformation object. Kenya You must specify the personType in the kenyaAdditionalInfo field of the additionalTaxInformation object. If the personType is Physical Person, you must specify the tax registration certificate document in the taxRegistrationDocuments field of the VerificationDetails object. Malaysia The sector valid values are Business and Individual. RegistrationType valid values are NRIC for individual, and TIN and sales and service tax (SST) for Business. For individual, you can specify the taxInformationNumber in MalaysiaAdditionalInfo with NRIC type, and a valid MyKad or NRIC number. For business, you must specify a businessRegistrationNumber in MalaysiaAdditionalInfo with a TIN type and tax identification number. For business resellers, you must specify a businessRegistrationNumber and taxInformationNumber in MalaysiaAdditionalInfo with a sales and service tax (SST) type and a valid SST number. For business resellers with service codes, you must specify businessRegistrationNumber, taxInformationNumber, and distinct serviceTaxCodes in MalaysiaAdditionalInfo with a SST type and valid sales and service tax (SST) number. By using this API operation, Amazon Web Services registers your self-declaration that you\226\128\153re an authorized business reseller registered with the Royal Malaysia Customs Department (RMCD), and have a valid SST number. Amazon Web Services reserves the right to seek additional information and/or take other actions to support your self-declaration as appropriate. Amazon Web Services is currently registered under the following service tax codes. You must include at least one of the service tax codes in the service tax code strings to declare yourself as an authorized registered business reseller. Taxable service and service tax codes: Consultancy - 9907061674 Training or coaching service - 9907071685 IT service - 9907101676 Digital services and electronic medium - 9907121690 Nepal The sector valid values are Business and Individual. Saudi Arabia For address, you must specify addressLine3. South Korea You must specify the certifiedEmailId and legalName in the TaxRegistrationEntry object. Use Korean characters for legalName. You must specify the businessRepresentativeName, itemOfBusiness, and lineOfBusiness in the southKoreaAdditionalInfo field of the additionalTaxInformation object. Use Korean characters for these fields. You must specify the tax registration certificate document in the taxRegistrationDocuments field of the VerificationDetails object. For the address object, use Korean characters for addressLine1, addressLine2 city, postalCode, and stateOrRegion. Spain You must specify the registrationType in the spainAdditionalInfo field of the additionalTaxInformation object. If the registrationType is Local, you must specify the tax registration certificate document in the taxRegistrationDocuments field of the VerificationDetails object. Turkey You must specify the sector in the taxRegistrationEntry object. If your sector is Business, Individual, or Government: Specify the taxOffice. If your sector is Individual, don't enter this value. (Optional) Specify the kepEmailId. If your sector is Individual, don't enter this value. Note: In the Tax Settings page of the Billing console, Government appears as Public institutions If your sector is Business and you're subject to KDV tax, you must specify your industry in the industries field. For address, you must specify districtOrCounty. Ukraine The sector valid values are Business and Individual."]modulePutTaxInheritanceResponse=structtypenonrect=unittypenonrecerror=[`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake()=()leterror_of_jsonnamejson=matchnamewith|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.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|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The updated tax inheritance status."]modulePutTaxInheritanceRequest=structtypenonrect={heritageStatus:HeritageStatus.toption[@ocaml.doc"The tax inheritance status."]}letmake?heritageStatus=fun()->{heritageStatus}letto_valuex=structure_to_value[("heritageStatus",(Option.mapx.heritageStatus~f:HeritageStatus.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letheritageStatus=(Option.map~f:HeritageStatus.of_xml)(Xml.childxml_arg0"heritageStatus")inmake?heritageStatus()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letheritageStatus=field_mapjson__"heritageStatus"HeritageStatus.of_jsoninmake?heritageStatus()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The updated tax inheritance status."]modulePutTaxExemptionResponse=structtypenonrect={caseId:GenericString.toption[@ocaml.doc"The customer support case ID."]}typenonrecerror=[`AccessDeniedExceptionofAccessDeniedException.t|`AttachmentUploadExceptionofAttachmentUploadException.t|`CaseCreationLimitExceededExceptionofCaseCreationLimitExceededException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?caseId=fun()->{caseId}leterror_of_jsonnamejson=matchnamewith|"AccessDeniedException"->`AccessDeniedException(AccessDeniedException.of_jsonjson)|"AttachmentUploadException"->`AttachmentUploadException(AttachmentUploadException.of_jsonjson)|"CaseCreationLimitExceededException"->`CaseCreationLimitExceededException(CaseCreationLimitExceededException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.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)|"AttachmentUploadException"->`AttachmentUploadException(AttachmentUploadException.of_xmlxml)|"CaseCreationLimitExceededException"->`CaseCreationLimitExceededException(CaseCreationLimitExceededException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.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))]|`AttachmentUploadExceptione->`Assoc[("error",(`String"AttachmentUploadException"));("details",(AttachmentUploadException.to_jsone))]|`CaseCreationLimitExceededExceptione->`Assoc[("error",(`String"CaseCreationLimitExceededException"));("details",(CaseCreationLimitExceededException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.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[("caseId",(Option.mapx.caseId~f:GenericString.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letcaseId=(Option.map~f:GenericString.of_xml)(Xml.childxml_arg0"caseId")inmake?caseId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letcaseId=field_mapjson__"caseId"GenericString.of_jsoninmake?caseId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Adds the tax exemption for a single account or all accounts listed in a consolidated billing family. The IAM action is tax:UpdateExemptions."]modulePutTaxExemptionRequest=structtypenonrect={accountIds:PutTaxExemptionRequestAccountIdsList.t[@ocaml.doc"The list of unique account identifiers."];authority:Authority.t;exemptionCertificate:ExemptionCertificate.t;exemptionType:GenericString.t[@ocaml.doc"The exemption type. Use the supported tax exemption type description."]}letcontext_="PutTaxExemptionRequest"letmake~accountIds=fun~authority->fun~exemptionCertificate->fun~exemptionType->fun()->{accountIds;authority;exemptionCertificate;exemptionType}letto_valuex=structure_to_value[("accountIds",(Some(PutTaxExemptionRequestAccountIdsList.to_valuex.accountIds)));("authority",(Some(Authority.to_valuex.authority)));("exemptionCertificate",(Some(ExemptionCertificate.to_valuex.exemptionCertificate)));("exemptionType",(Some(GenericString.to_valuex.exemptionType)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letexemptionType=GenericString.of_xml(Xml.child_exn~context:context_xml_arg0"exemptionType")inletexemptionCertificate=ExemptionCertificate.of_xml(Xml.child_exn~context:context_xml_arg0"exemptionCertificate")inletauthority=Authority.of_xml(Xml.child_exn~context:context_xml_arg0"authority")inletaccountIds=PutTaxExemptionRequestAccountIdsList.of_xml(Xml.child_exn~context:context_xml_arg0"accountIds")inmake~exemptionType~exemptionCertificate~authority~accountIds()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letexemptionType=field_map_exnjson__"exemptionType"GenericString.of_jsoninletexemptionCertificate=field_map_exnjson__"exemptionCertificate"ExemptionCertificate.of_jsoninletauthority=field_map_exnjson__"authority"Authority.of_jsoninletaccountIds=field_map_exnjson__"accountIds"PutTaxExemptionRequestAccountIdsList.of_jsoninmake~exemptionType~exemptionCertificate~authority~accountIds()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Adds the tax exemption for a single account or all accounts listed in a consolidated billing family. The IAM action is tax:UpdateExemptions."]modulePutSupplementalTaxRegistrationResponse=structtypenonrect={authorityId:GenericString.toption[@ocaml.doc"Unique authority ID for the supplemental TRN information that was stored."];status:TaxRegistrationStatus.toption[@ocaml.doc"The status of the supplemental TRN stored in the system after processing. Based on the validation occurring on the TRN, the status can be Verified, Pending, Rejected, or Deleted."]}typenonrecerror=[`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?authorityId=fun?status->fun()->{authorityId;status}leterror_of_jsonnamejson=matchnamewith|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.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|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.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[("authorityId",(Option.mapx.authorityId~f:GenericString.to_value));("status",(Option.mapx.status~f:TaxRegistrationStatus.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstatus=(Option.map~f:TaxRegistrationStatus.of_xml)(Xml.childxml_arg0"status")inletauthorityId=(Option.map~f:GenericString.of_xml)(Xml.childxml_arg0"authorityId")inmake?status?authorityId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstatus=field_mapjson__"status"TaxRegistrationStatus.of_jsoninletauthorityId=field_mapjson__"authorityId"GenericString.of_jsoninmake?status?authorityId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Stores supplemental tax registration for a single account."]modulePutSupplementalTaxRegistrationRequest=structtypenonrect={taxRegistrationEntry:SupplementalTaxRegistrationEntry.t[@ocaml.doc"The supplemental TRN information that will be stored for the caller account ID."]}letcontext_="PutSupplementalTaxRegistrationRequest"letmake~taxRegistrationEntry=fun()->{taxRegistrationEntry}letto_valuex=structure_to_value[("taxRegistrationEntry",(Some(SupplementalTaxRegistrationEntry.to_valuex.taxRegistrationEntry)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettaxRegistrationEntry=SupplementalTaxRegistrationEntry.of_xml(Xml.child_exn~context:context_xml_arg0"taxRegistrationEntry")inmake~taxRegistrationEntry()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettaxRegistrationEntry=field_map_exnjson__"taxRegistrationEntry"SupplementalTaxRegistrationEntry.of_jsoninmake~taxRegistrationEntry()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Stores supplemental tax registration for a single account."]moduleListTaxRegistrationsResponse=structtypenonrect={accountDetails:AccountDetailsList.toption[@ocaml.doc"The list of account details. This contains account Ids and TRN Information for each of the linked accounts."];nextToken:PaginationTokenString.toption[@ocaml.doc"The token to retrieve the next set of results."]}typenonrecerror=[`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?accountDetails=fun?nextToken->fun()->{accountDetails;nextToken}leterror_of_jsonnamejson=matchnamewith|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.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|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.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[("accountDetails",(Option.mapx.accountDetails~f:AccountDetailsList.to_value));("nextToken",(Option.mapx.nextToken~f:PaginationTokenString.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:PaginationTokenString.of_xml)(Xml.childxml_arg0"nextToken")inletaccountDetails=(Option.map~f:AccountDetailsList.of_xml)(Xml.childxml_arg0"accountDetails")inmake?nextToken?accountDetails()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letnextToken=field_mapjson__"nextToken"PaginationTokenString.of_jsoninletaccountDetails=field_mapjson__"accountDetails"AccountDetailsList.of_jsoninmake?nextToken?accountDetails()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Retrieves the tax registration of accounts listed in a consolidated billing family. This can be used to retrieve up to 100 accounts' tax registrations in one call (default 50)."]moduleListTaxRegistrationsRequest=structtypenonrect={maxResults:MaxResults.toption[@ocaml.doc"Number of accountDetails results you want in one response."];nextToken:PaginationTokenString.toption[@ocaml.doc"The token to retrieve the next set of results."]}letmake?maxResults=fun?nextToken->fun()->{maxResults;nextToken}letto_valuex=structure_to_value[("maxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("nextToken",(Option.mapx.nextToken~f:PaginationTokenString.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:PaginationTokenString.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:MaxResults.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"PaginationTokenString.of_jsoninletmaxResults=field_mapjson__"maxResults"MaxResults.of_jsoninmake?nextToken?maxResults()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Retrieves the tax registration of accounts listed in a consolidated billing family. This can be used to retrieve up to 100 accounts' tax registrations in one call (default 50)."]moduleListTaxExemptionsResponse=structtypenonrect={nextToken:PaginationTokenString.toption[@ocaml.doc"The token to retrieve the next set of results."];taxExemptionDetailsMap:TaxExemptionDetailsMap.toption[@ocaml.doc"The tax exemption details map of accountId and tax exemption details."]}typenonrecerror=[`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?nextToken=fun?taxExemptionDetailsMap->fun()->{nextToken;taxExemptionDetailsMap}leterror_of_jsonnamejson=matchnamewith|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.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|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("nextToken",(Option.mapx.nextToken~f:PaginationTokenString.to_value));("taxExemptionDetailsMap",(Option.mapx.taxExemptionDetailsMap~f:TaxExemptionDetailsMap.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettaxExemptionDetailsMap=(Option.map~f:TaxExemptionDetailsMap.of_xml)(Xml.childxml_arg0"taxExemptionDetailsMap")inletnextToken=(Option.map~f:PaginationTokenString.of_xml)(Xml.childxml_arg0"nextToken")inmake?taxExemptionDetailsMap?nextToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettaxExemptionDetailsMap=field_mapjson__"taxExemptionDetailsMap"TaxExemptionDetailsMap.of_jsoninletnextToken=field_mapjson__"nextToken"PaginationTokenString.of_jsoninmake?taxExemptionDetailsMap?nextToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Retrieves the tax exemption of accounts listed in a consolidated billing family. The IAM action is tax:GetExemptions."]moduleListTaxExemptionsRequest=structtypenonrect={maxResults:MaxResults.toption[@ocaml.doc"The number of results you want in one response."];nextToken:PaginationTokenString.toption[@ocaml.doc"The token to retrieve the next set of results."]}letmake?maxResults=fun?nextToken->fun()->{maxResults;nextToken}letto_valuex=structure_to_value[("maxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("nextToken",(Option.mapx.nextToken~f:PaginationTokenString.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:PaginationTokenString.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:MaxResults.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"PaginationTokenString.of_jsoninletmaxResults=field_mapjson__"maxResults"MaxResults.of_jsoninmake?nextToken?maxResults()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Retrieves the tax exemption of accounts listed in a consolidated billing family. The IAM action is tax:GetExemptions."]moduleListSupplementalTaxRegistrationsResponse=structtypenonrect={nextToken:PaginationTokenString.toption[@ocaml.doc"The token to retrieve the next set of results."];taxRegistrations:SupplementalTaxRegistrationList.toption[@ocaml.doc"The list of supplemental tax registrations."]}typenonrecerror=[`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?nextToken=fun?taxRegistrations->fun()->{nextToken;taxRegistrations}leterror_of_jsonnamejson=matchnamewith|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.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|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letto_valuex=structure_to_value[("nextToken",(Option.mapx.nextToken~f:PaginationTokenString.to_value));("taxRegistrations",(Option.mapx.taxRegistrations~f:SupplementalTaxRegistrationList.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettaxRegistrations=(Option.map~f:SupplementalTaxRegistrationList.of_xml)(Xml.childxml_arg0"taxRegistrations")inletnextToken=(Option.map~f:PaginationTokenString.of_xml)(Xml.childxml_arg0"nextToken")inmake?taxRegistrations?nextToken()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettaxRegistrations=field_mapjson__"taxRegistrations"SupplementalTaxRegistrationList.of_jsoninletnextToken=field_mapjson__"nextToken"PaginationTokenString.of_jsoninmake?taxRegistrations?nextToken()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Retrieves supplemental tax registrations for a single account."]moduleListSupplementalTaxRegistrationsRequest=structtypenonrect={maxResults:MaxResults.toption[@ocaml.doc"The number of taxRegistrations results you want in one response."];nextToken:PaginationTokenString.toption[@ocaml.doc"The token to retrieve the next set of results."]}letmake?maxResults=fun?nextToken->fun()->{maxResults;nextToken}letto_valuex=structure_to_value[("maxResults",(Option.mapx.maxResults~f:MaxResults.to_value));("nextToken",(Option.mapx.nextToken~f:PaginationTokenString.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letnextToken=(Option.map~f:PaginationTokenString.of_xml)(Xml.childxml_arg0"nextToken")inletmaxResults=(Option.map~f:MaxResults.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"PaginationTokenString.of_jsoninletmaxResults=field_mapjson__"maxResults"MaxResults.of_jsoninmake?nextToken?maxResults()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Retrieves supplemental tax registrations for a single account."]moduleGetTaxRegistrationResponse=structtypenonrect={taxRegistration:TaxRegistration.toption[@ocaml.doc"TRN information of the account mentioned in the request."]}typenonrecerror=[`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?taxRegistration=fun()->{taxRegistration}leterror_of_jsonnamejson=matchnamewith|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.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|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.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[("taxRegistration",(Option.mapx.taxRegistration~f:TaxRegistration.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettaxRegistration=(Option.map~f:TaxRegistration.of_xml)(Xml.childxml_arg0"taxRegistration")inmake?taxRegistration()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettaxRegistration=field_mapjson__"taxRegistration"TaxRegistration.of_jsoninmake?taxRegistration()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Retrieves tax registration for a single account."]moduleGetTaxRegistrationRequest=structtypenonrect={accountId:AccountId.toption[@ocaml.doc"Your unique account identifier."]}letmake?accountId=fun()->{accountId}letto_valuex=structure_to_value[("accountId",(Option.mapx.accountId~f:AccountId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letaccountId=(Option.map~f:AccountId.of_xml)(Xml.childxml_arg0"accountId")inmake?accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letaccountId=field_mapjson__"accountId"AccountId.of_jsoninmake?accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Retrieves tax registration for a single account."]moduleGetTaxRegistrationDocumentResponse=structtypenonrect={destinationFilePath:DestinationFilePath.toption[@ocaml.doc"The file path of the Amazon S3 bucket where you want to download your tax document to."];presignedS3Url:Url.toption[@ocaml.doc"The Amazon S3 presigned URL of the tax registration document."]}typenonrecerror=[`InternalServerExceptionofInternalServerException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?destinationFilePath=fun?presignedS3Url->fun()->{destinationFilePath;presignedS3Url}leterror_of_jsonnamejson=matchnamewith|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerException"->`InternalServerException(InternalServerException.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|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.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[("destinationFilePath",(Option.mapx.destinationFilePath~f:DestinationFilePath.to_value));("presignedS3Url",(Option.mapx.presignedS3Url~f:Url.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letpresignedS3Url=(Option.map~f:Url.of_xml)(Xml.childxml_arg0"presignedS3Url")inletdestinationFilePath=(Option.map~f:DestinationFilePath.of_xml)(Xml.childxml_arg0"destinationFilePath")inmake?presignedS3Url?destinationFilePath()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letpresignedS3Url=field_mapjson__"presignedS3Url"Url.of_jsoninletdestinationFilePath=field_mapjson__"destinationFilePath"DestinationFilePath.of_jsoninmake?presignedS3Url?destinationFilePath()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Downloads your tax documents to the Amazon S3 bucket that you specify in your request."]moduleGetTaxRegistrationDocumentRequest=structtypenonrect={destinationS3Location:DestinationS3Location.toption[@ocaml.doc"The Amazon S3 bucket that you specify to download your tax documents to."];taxDocumentMetadata:TaxDocumentMetadata.t[@ocaml.doc"The metadata for your tax document."]}letcontext_="GetTaxRegistrationDocumentRequest"letmake?destinationS3Location=fun~taxDocumentMetadata->fun()->{destinationS3Location;taxDocumentMetadata}letto_valuex=structure_to_value[("destinationS3Location",(Option.mapx.destinationS3Location~f:DestinationS3Location.to_value));("taxDocumentMetadata",(Some(TaxDocumentMetadata.to_valuex.taxDocumentMetadata)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettaxDocumentMetadata=TaxDocumentMetadata.of_xml(Xml.child_exn~context:context_xml_arg0"taxDocumentMetadata")inletdestinationS3Location=(Option.map~f:DestinationS3Location.of_xml)(Xml.childxml_arg0"destinationS3Location")inmake~taxDocumentMetadata?destinationS3Location()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettaxDocumentMetadata=field_map_exnjson__"taxDocumentMetadata"TaxDocumentMetadata.of_jsoninletdestinationS3Location=field_mapjson__"destinationS3Location"DestinationS3Location.of_jsoninmake~taxDocumentMetadata?destinationS3Location()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Downloads your tax documents to the Amazon S3 bucket that you specify in your request."]moduleGetTaxInheritanceResponse=structtypenonrect={heritageStatus:HeritageStatus.toption[@ocaml.doc"The tax inheritance status."]}typenonrecerror=[`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?heritageStatus=fun()->{heritageStatus}leterror_of_jsonnamejson=matchnamewith|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.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|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.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[("heritageStatus",(Option.mapx.heritageStatus~f:HeritageStatus.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letheritageStatus=(Option.map~f:HeritageStatus.of_xml)(Xml.childxml_arg0"heritageStatus")inmake?heritageStatus()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letheritageStatus=field_mapjson__"heritageStatus"HeritageStatus.of_jsoninmake?heritageStatus()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The get account tax inheritance status."]moduleGetTaxInheritanceRequest=structtypenonrect=unitletmake()=()letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"The get account tax inheritance status."]moduleGetTaxExemptionTypesResponse=structtypenonrect={taxExemptionTypes:TaxExemptionTypes.toption[@ocaml.doc"The supported types of tax exemptions."]}typenonrecerror=[`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?taxExemptionTypes=fun()->{taxExemptionTypes}leterror_of_jsonnamejson=matchnamewith|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.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|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.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[("taxExemptionTypes",(Option.mapx.taxExemptionTypes~f:TaxExemptionTypes.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettaxExemptionTypes=(Option.map~f:TaxExemptionTypes.of_xml)(Xml.childxml_arg0"taxExemptionTypes")inmake?taxExemptionTypes()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettaxExemptionTypes=field_mapjson__"taxExemptionTypes"TaxExemptionTypes.of_jsoninmake?taxExemptionTypes()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Get supported tax exemption types. The IAM action is tax:GetExemptions."]moduleGetTaxExemptionTypesRequest=structtypenonrect=unitletmake()=()letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Get supported tax exemption types. The IAM action is tax:GetExemptions."]moduleDeleteTaxRegistrationResponse=structtypenonrect=unittypenonrecerror=[`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake()=()leterror_of_jsonnamejson=matchnamewith|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.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|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes tax registration for a single account. This API operation can't be used to delete your tax registration in Brazil. Use the Payment preferences page in the Billing and Cost Management console instead."]moduleDeleteTaxRegistrationRequest=structtypenonrect={accountId:AccountId.toption[@ocaml.doc"Unique account identifier for the TRN information that needs to be deleted. If this isn't passed, the account ID corresponding to the credentials of the API caller will be used for this parameter."]}letmake?accountId=fun()->{accountId}letto_valuex=structure_to_value[("accountId",(Option.mapx.accountId~f:AccountId.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letaccountId=(Option.map~f:AccountId.of_xml)(Xml.childxml_arg0"accountId")inmake?accountId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letaccountId=field_mapjson__"accountId"AccountId.of_jsoninmake?accountId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes tax registration for a single account. This API operation can't be used to delete your tax registration in Brazil. Use the Payment preferences page in the Billing and Cost Management console instead."]moduleDeleteSupplementalTaxRegistrationResponse=structtypenonrect=unittypenonrecerror=[`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake()=()leterror_of_jsonnamejson=matchnamewith|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.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|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.to_jsone))]|`ValidationExceptione->`Assoc[("error",(`String"ValidationException"));("details",(ValidationException.to_jsone))]|`Unknown_operation_error(code,msg)->`Assoc(("error",(`Stringcode))::((matchmsgwith|None->[]|Somem->[("message",(`Stringm))])))letof_header_and_body=((fun(xs,pipe)->make())[@warning"-27"])letto_value_=`Structure[]letto_queryv=to_queryto_valuevletof_xml_=make()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_json_=make()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a supplemental tax registration for a single account."]moduleDeleteSupplementalTaxRegistrationRequest=structtypenonrect={authorityId:GenericString.t[@ocaml.doc"The unique authority Id for the supplemental TRN information that needs to be deleted."]}letcontext_="DeleteSupplementalTaxRegistrationRequest"letmake~authorityId=fun()->{authorityId}letto_valuex=structure_to_value[("authorityId",(Some(GenericString.to_valuex.authorityId)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letauthorityId=GenericString.of_xml(Xml.child_exn~context:context_xml_arg0"authorityId")inmake~authorityId()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letauthorityId=field_map_exnjson__"authorityId"GenericString.of_jsoninmake~authorityId()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes a supplemental tax registration for a single account."]moduleBatchPutTaxRegistrationResponse=structtypenonrect={errors:BatchPutTaxRegistrationErrors.toption[@ocaml.doc"List of errors for the accounts the TRN information could not be added or updated to."];status:TaxRegistrationStatus.toption[@ocaml.doc"The status of your TRN stored in the system after processing. Based on the validation occurring on the TRN, the status can be Verified, Pending or Rejected."]}typenonrecerror=[`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?errors=fun?status->fun()->{errors;status}leterror_of_jsonnamejson=matchnamewith|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.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|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.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[("errors",(Option.mapx.errors~f:BatchPutTaxRegistrationErrors.to_value));("status",(Option.mapx.status~f:TaxRegistrationStatus.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letstatus=(Option.map~f:TaxRegistrationStatus.of_xml)(Xml.childxml_arg0"status")inleterrors=(Option.map~f:BatchPutTaxRegistrationErrors.of_xml)(Xml.childxml_arg0"errors")inmake?status?errors()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letstatus=field_mapjson__"status"TaxRegistrationStatus.of_jsoninleterrors=field_mapjson__"errors"BatchPutTaxRegistrationErrors.of_jsoninmake?status?errors()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Adds or updates tax registration for multiple accounts in batch. This can be used to add or update tax registrations for up to five accounts in one batch. You can't set a TRN if there's a pending TRN. You'll need to delete the pending TRN first. To call this API operation for specific countries, see the following country-specific requirements. Bangladesh You must specify the tax registration certificate document in the taxRegistrationDocuments field of the VerificationDetails object. Brazil You must complete the tax registration process in the Payment preferences page in the Billing and Cost Management console. After your TRN and billing address are verified, you can call this API operation. For Amazon Web Services accounts created through Organizations, you can call this API operation when you don't have a billing address. Georgia The valid personType values are Physical Person and Business. Indonesia PutTaxRegistration: The use of this operation to submit tax information is subject to the Amazon Web Services service terms. By submitting, you\226\128\153re providing consent for Amazon Web Services to validate NIK, NPWP, and NITKU data, provided by you with the Directorate General of Taxes of Indonesia in accordance with the Minister of Finance Regulation (PMK) Number 112/PMK.03/2022. BatchPutTaxRegistration: The use of this operation to submit tax information is subject to the Amazon Web Services service terms. By submitting, you\226\128\153re providing consent for Amazon Web Services to validate NIK, NPWP, and NITKU data, provided by you with the Directorate General of Taxes of Indonesia in accordance with the Minister of Finance Regulation (PMK) Number 112/PMK.03/2022, through our third-party partner PT Achilles Advanced Management (OnlinePajak). You must specify the taxRegistrationNumberType in the indonesiaAdditionalInfo field of the additionalTaxInformation object. If you specify decisionNumber, you must specify the ppnExceptionDesignationCode in the indonesiaAdditionalInfo field of the additionalTaxInformation object. If the taxRegistrationNumberType is set to NPWP or NITKU, valid values for ppnExceptionDesignationCode are either 01, 02, 03, 07, or 08. For other taxRegistrationNumberType values, ppnExceptionDesignationCode must be either 01, 07, or 08. If ppnExceptionDesignationCode is 07, you must specify the decisionNumber in the indonesiaAdditionalInfo field of the additionalTaxInformation object. Kenya You must specify the personType in the kenyaAdditionalInfo field of the additionalTaxInformation object. If the personType is Physical Person, you must specify the tax registration certificate document in the taxRegistrationDocuments field of the VerificationDetails object. Malaysia The sector valid values are Business and Individual. RegistrationType valid values are NRIC for individual, and TIN and sales and service tax (SST) for Business. For individual, you can specify the taxInformationNumber in MalaysiaAdditionalInfo with NRIC type, and a valid MyKad or NRIC number. For business, you must specify a businessRegistrationNumber in MalaysiaAdditionalInfo with a TIN type and tax identification number. For business resellers, you must specify a businessRegistrationNumber and taxInformationNumber in MalaysiaAdditionalInfo with a sales and service tax (SST) type and a valid SST number. For business resellers with service codes, you must specify businessRegistrationNumber, taxInformationNumber, and distinct serviceTaxCodes in MalaysiaAdditionalInfo with a SST type and valid sales and service tax (SST) number. By using this API operation, Amazon Web Services registers your self-declaration that you\226\128\153re an authorized business reseller registered with the Royal Malaysia Customs Department (RMCD), and have a valid SST number. Amazon Web Services reserves the right to seek additional information and/or take other actions to support your self-declaration as appropriate. Amazon Web Services is currently registered under the following service tax codes. You must include at least one of the service tax codes in the service tax code strings to declare yourself as an authorized registered business reseller. Taxable service and service tax codes: Consultancy - 9907061674 Training or coaching service - 9907071685 IT service - 9907101676 Digital services and electronic medium - 9907121690 Nepal The sector valid values are Business and Individual. Saudi Arabia For address, you must specify addressLine3. South Korea You must specify the certifiedEmailId and legalName in the TaxRegistrationEntry object. Use Korean characters for legalName. You must specify the businessRepresentativeName, itemOfBusiness, and lineOfBusiness in the southKoreaAdditionalInfo field of the additionalTaxInformation object. Use Korean characters for these fields. You must specify the tax registration certificate document in the taxRegistrationDocuments field of the VerificationDetails object. For the address object, use Korean characters for addressLine1, addressLine2 city, postalCode, and stateOrRegion. Spain You must specify the registrationType in the spainAdditionalInfo field of the additionalTaxInformation object. If the registrationType is Local, you must specify the tax registration certificate document in the taxRegistrationDocuments field of the VerificationDetails object. Turkey You must specify the sector in the taxRegistrationEntry object. If your sector is Business, Individual, or Government: Specify the taxOffice. If your sector is Individual, don't enter this value. (Optional) Specify the kepEmailId. If your sector is Individual, don't enter this value. Note: In the Tax Settings page of the Billing console, Government appears as Public institutions If your sector is Business and you're subject to KDV tax, you must specify your industry in the industries field. For address, you must specify districtOrCounty. Ukraine The sector valid values are Business and Individual."]moduleBatchPutTaxRegistrationRequest=structtypenonrect={accountIds:BatchPutTaxRegistrationRequestAccountIdsList.t[@ocaml.doc"List of unique account identifiers."];taxRegistrationEntry:TaxRegistrationEntry.t[@ocaml.doc"Your TRN information that will be stored to the accounts mentioned in putEntries."]}letcontext_="BatchPutTaxRegistrationRequest"letmake~accountIds=fun~taxRegistrationEntry->fun()->{accountIds;taxRegistrationEntry}letto_valuex=structure_to_value[("accountIds",(Some(BatchPutTaxRegistrationRequestAccountIdsList.to_valuex.accountIds)));("taxRegistrationEntry",(Some(TaxRegistrationEntry.to_valuex.taxRegistrationEntry)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettaxRegistrationEntry=TaxRegistrationEntry.of_xml(Xml.child_exn~context:context_xml_arg0"taxRegistrationEntry")inletaccountIds=BatchPutTaxRegistrationRequestAccountIdsList.of_xml(Xml.child_exn~context:context_xml_arg0"accountIds")inmake~taxRegistrationEntry~accountIds()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettaxRegistrationEntry=field_map_exnjson__"taxRegistrationEntry"TaxRegistrationEntry.of_jsoninletaccountIds=field_map_exnjson__"accountIds"BatchPutTaxRegistrationRequestAccountIdsList.of_jsoninmake~taxRegistrationEntry~accountIds()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Adds or updates tax registration for multiple accounts in batch. This can be used to add or update tax registrations for up to five accounts in one batch. You can't set a TRN if there's a pending TRN. You'll need to delete the pending TRN first. To call this API operation for specific countries, see the following country-specific requirements. Bangladesh You must specify the tax registration certificate document in the taxRegistrationDocuments field of the VerificationDetails object. Brazil You must complete the tax registration process in the Payment preferences page in the Billing and Cost Management console. After your TRN and billing address are verified, you can call this API operation. For Amazon Web Services accounts created through Organizations, you can call this API operation when you don't have a billing address. Georgia The valid personType values are Physical Person and Business. Indonesia PutTaxRegistration: The use of this operation to submit tax information is subject to the Amazon Web Services service terms. By submitting, you\226\128\153re providing consent for Amazon Web Services to validate NIK, NPWP, and NITKU data, provided by you with the Directorate General of Taxes of Indonesia in accordance with the Minister of Finance Regulation (PMK) Number 112/PMK.03/2022. BatchPutTaxRegistration: The use of this operation to submit tax information is subject to the Amazon Web Services service terms. By submitting, you\226\128\153re providing consent for Amazon Web Services to validate NIK, NPWP, and NITKU data, provided by you with the Directorate General of Taxes of Indonesia in accordance with the Minister of Finance Regulation (PMK) Number 112/PMK.03/2022, through our third-party partner PT Achilles Advanced Management (OnlinePajak). You must specify the taxRegistrationNumberType in the indonesiaAdditionalInfo field of the additionalTaxInformation object. If you specify decisionNumber, you must specify the ppnExceptionDesignationCode in the indonesiaAdditionalInfo field of the additionalTaxInformation object. If the taxRegistrationNumberType is set to NPWP or NITKU, valid values for ppnExceptionDesignationCode are either 01, 02, 03, 07, or 08. For other taxRegistrationNumberType values, ppnExceptionDesignationCode must be either 01, 07, or 08. If ppnExceptionDesignationCode is 07, you must specify the decisionNumber in the indonesiaAdditionalInfo field of the additionalTaxInformation object. Kenya You must specify the personType in the kenyaAdditionalInfo field of the additionalTaxInformation object. If the personType is Physical Person, you must specify the tax registration certificate document in the taxRegistrationDocuments field of the VerificationDetails object. Malaysia The sector valid values are Business and Individual. RegistrationType valid values are NRIC for individual, and TIN and sales and service tax (SST) for Business. For individual, you can specify the taxInformationNumber in MalaysiaAdditionalInfo with NRIC type, and a valid MyKad or NRIC number. For business, you must specify a businessRegistrationNumber in MalaysiaAdditionalInfo with a TIN type and tax identification number. For business resellers, you must specify a businessRegistrationNumber and taxInformationNumber in MalaysiaAdditionalInfo with a sales and service tax (SST) type and a valid SST number. For business resellers with service codes, you must specify businessRegistrationNumber, taxInformationNumber, and distinct serviceTaxCodes in MalaysiaAdditionalInfo with a SST type and valid sales and service tax (SST) number. By using this API operation, Amazon Web Services registers your self-declaration that you\226\128\153re an authorized business reseller registered with the Royal Malaysia Customs Department (RMCD), and have a valid SST number. Amazon Web Services reserves the right to seek additional information and/or take other actions to support your self-declaration as appropriate. Amazon Web Services is currently registered under the following service tax codes. You must include at least one of the service tax codes in the service tax code strings to declare yourself as an authorized registered business reseller. Taxable service and service tax codes: Consultancy - 9907061674 Training or coaching service - 9907071685 IT service - 9907101676 Digital services and electronic medium - 9907121690 Nepal The sector valid values are Business and Individual. Saudi Arabia For address, you must specify addressLine3. South Korea You must specify the certifiedEmailId and legalName in the TaxRegistrationEntry object. Use Korean characters for legalName. You must specify the businessRepresentativeName, itemOfBusiness, and lineOfBusiness in the southKoreaAdditionalInfo field of the additionalTaxInformation object. Use Korean characters for these fields. You must specify the tax registration certificate document in the taxRegistrationDocuments field of the VerificationDetails object. For the address object, use Korean characters for addressLine1, addressLine2 city, postalCode, and stateOrRegion. Spain You must specify the registrationType in the spainAdditionalInfo field of the additionalTaxInformation object. If the registrationType is Local, you must specify the tax registration certificate document in the taxRegistrationDocuments field of the VerificationDetails object. Turkey You must specify the sector in the taxRegistrationEntry object. If your sector is Business, Individual, or Government: Specify the taxOffice. If your sector is Individual, don't enter this value. (Optional) Specify the kepEmailId. If your sector is Individual, don't enter this value. Note: In the Tax Settings page of the Billing console, Government appears as Public institutions If your sector is Business and you're subject to KDV tax, you must specify your industry in the industries field. For address, you must specify districtOrCounty. Ukraine The sector valid values are Business and Individual."]moduleBatchGetTaxExemptionsResponse=structtypenonrect={failedAccounts:AccountIds.toption[@ocaml.doc"The list of accounts that failed to get tax exemptions."];taxExemptionDetailsMap:TaxExemptionDetailsMap.toption[@ocaml.doc"The tax exemption details map of accountId and tax exemption details."]}typenonrecerror=[`InternalServerExceptionofInternalServerException.t|`ResourceNotFoundExceptionofResourceNotFoundException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?failedAccounts=fun?taxExemptionDetailsMap->fun()->{failedAccounts;taxExemptionDetailsMap}leterror_of_jsonnamejson=matchnamewith|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"InternalServerException"->`InternalServerException(InternalServerException.of_xmlxml)|"ResourceNotFoundException"->`ResourceNotFoundException(ResourceNotFoundException.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|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.to_jsone))]|`ResourceNotFoundExceptione->`Assoc[("error",(`String"ResourceNotFoundException"));("details",(ResourceNotFoundException.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[("failedAccounts",(Option.mapx.failedAccounts~f:AccountIds.to_value));("taxExemptionDetailsMap",(Option.mapx.taxExemptionDetailsMap~f:TaxExemptionDetailsMap.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=lettaxExemptionDetailsMap=(Option.map~f:TaxExemptionDetailsMap.of_xml)(Xml.childxml_arg0"taxExemptionDetailsMap")inletfailedAccounts=(Option.map~f:AccountIds.of_xml)(Xml.childxml_arg0"failedAccounts")inmake?taxExemptionDetailsMap?failedAccounts()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=lettaxExemptionDetailsMap=field_mapjson__"taxExemptionDetailsMap"TaxExemptionDetailsMap.of_jsoninletfailedAccounts=field_mapjson__"failedAccounts"AccountIds.of_jsoninmake?taxExemptionDetailsMap?failedAccounts()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Get the active tax exemptions for a given list of accounts. The IAM action is tax:GetExemptions."]moduleBatchGetTaxExemptionsRequest=structtypenonrect={accountIds:BatchGetTaxExemptionsRequestAccountIdsList.t[@ocaml.doc"List of unique account identifiers."]}letcontext_="BatchGetTaxExemptionsRequest"letmake~accountIds=fun()->{accountIds}letto_valuex=structure_to_value[("accountIds",(Some(BatchGetTaxExemptionsRequestAccountIdsList.to_valuex.accountIds)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letaccountIds=BatchGetTaxExemptionsRequestAccountIdsList.of_xml(Xml.child_exn~context:context_xml_arg0"accountIds")inmake~accountIds()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letaccountIds=field_map_exnjson__"accountIds"BatchGetTaxExemptionsRequestAccountIdsList.of_jsoninmake~accountIds()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Get the active tax exemptions for a given list of accounts. The IAM action is tax:GetExemptions."]moduleBatchDeleteTaxRegistrationResponse=structtypenonrect={errors:BatchDeleteTaxRegistrationErrors.toption[@ocaml.doc"The list of errors for the accounts the TRN information could not be deleted for."]}typenonrecerror=[`ConflictExceptionofConflictException.t|`InternalServerExceptionofInternalServerException.t|`ValidationExceptionofValidationException.t|`Unknown_operation_errorof(string*stringoption)]letmake?errors=fun()->{errors}leterror_of_jsonnamejson=matchnamewith|"ConflictException"->`ConflictException(ConflictException.of_jsonjson)|"InternalServerException"->`InternalServerException(InternalServerException.of_jsonjson)|"ValidationException"->`ValidationException(ValidationException.of_jsonjson)|name->`Unknown_operation_error(name,(Some(Yojson.Safe.to_stringjson)))leterror_of_xmlnamexml=matchnamewith|"ConflictException"->`ConflictException(ConflictException.of_xmlxml)|"InternalServerException"->`InternalServerException(InternalServerException.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|`ConflictExceptione->`Assoc[("error",(`String"ConflictException"));("details",(ConflictException.to_jsone))]|`InternalServerExceptione->`Assoc[("error",(`String"InternalServerException"));("details",(InternalServerException.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[("errors",(Option.mapx.errors~f:BatchDeleteTaxRegistrationErrors.to_value))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=leterrors=(Option.map~f:BatchDeleteTaxRegistrationErrors.of_xml)(Xml.childxml_arg0"errors")inmake?errors()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=leterrors=field_mapjson__"errors"BatchDeleteTaxRegistrationErrors.of_jsoninmake?errors()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes tax registration for multiple accounts in batch. This can be used to delete tax registrations for up to five accounts in one batch. This API operation can't be used to delete your tax registration in Brazil. Use the Payment preferences page in the Billing and Cost Management console instead."]moduleBatchDeleteTaxRegistrationRequest=structtypenonrect={accountIds:BatchDeleteTaxRegistrationRequestAccountIdsList.t[@ocaml.doc"List of unique account identifiers."]}letcontext_="BatchDeleteTaxRegistrationRequest"letmake~accountIds=fun()->{accountIds}letto_valuex=structure_to_value[("accountIds",(Some(BatchDeleteTaxRegistrationRequestAccountIdsList.to_valuex.accountIds)))]letto_queryv=to_queryto_valuevletof_xmlxml_arg0=letaccountIds=BatchDeleteTaxRegistrationRequestAccountIdsList.of_xml(Xml.child_exn~context:context_xml_arg0"accountIds")inmake~accountIds()letof_strings=of_xml(Awso.Xml.parse_responses)[@@warning"-32"]letof_jsonjson__=letaccountIds=field_map_exnjson__"accountIds"BatchDeleteTaxRegistrationRequestAccountIdsList.of_jsoninmake~accountIds()letto_jsonv=composed_to_jsonto_valuevend[@@ocaml.doc"Deletes tax registration for multiple accounts in batch. This can be used to delete tax registrations for up to five accounts in one batch. This API operation can't be used to delete your tax registration in Brazil. Use the Payment preferences page in the Billing and Cost Management console instead."]